00001 #ifndef _emitter_H_ 00002 #define _emitter_H_ 00003 00004 #include "dev/room6d.H" 00005 00006 // 00007 // This class really refers to a device level concept of a single tracking 00008 // unit, that is, some collection (possibly one) of emitters and tracking 00009 // systems with a collection of receivers or tracked devices. For instance, 00010 // the intersense emitters and trackers, a whole flock of birds, the whole 00011 // polhemus system, etc. The trackers themselves refer to the widgets whose 00012 // position is actually tracked. 00013 // 00014 class DllImpExp DEVemitter : public DEVice { 00015 protected: 00016 ARRAY<DEVice_room6d *> _trackers; // DEVice_room6d's encapsulates 00017 // tracker_to_device 00018 ARRAY<Wtransf> &_physCS_to_appCS; 00019 Wtransf &_device_to_room; 00020 Wtransf &_appCS_to_tracker; 00021 00022 public: 00023 DEVemitter(Cstr_ptr &name); 00024 virtual ~DEVemitter() { } 00025 00026 int num() { return _trackers.num(); } 00027 00028 /* ----------- TYPEDOBJ methods --------------- */ 00029 DEFINE_DERIVED_TYPE(DEVemitter, DEVice, const DEVice *); 00030 }; 00031 00032 #endif