#ifndef G4Lab_TrajectoryAccessor_h #define G4Lab_TrajectoryAccessor_h // Inheritance : #include class SoGroup; class SoSeparator; class SoCoordinate3; class SbName; class SbVec3f; class SbColor; class IOut; class G4RunManager; #include #include #include namespace G4Lab { class TrajectoryAccessor : public OnX::InventorAccessor { public: //Slash::Data::IAccessor virtual std::string name() const; virtual Slash::Data::IIterator* iterator(); virtual Slash::Core::IValue* findValue(Slash::Data::IAccessor::Data,const std::string&,void*); public: //Slash::Data::IVisualizer virtual void beginVisualize(); virtual void visualize(Slash::Data::IAccessor::Data,void*); virtual void endVisualize(); public: TrajectoryAccessor(Slash::Core::ISession&,G4RunManager*); virtual ~TrajectoryAccessor(); private: void addPolyline(SoGroup*,const SbName&, int,SbVec3f*,const SbColor&,const SbColor&,IOut&); bool isIGeant4Trajectory(); void addAttDefsProperties(); Slash::Core::IValue* findAttDefsValue(Slash::Data::IAccessor::Data, const std::string&,void*); private: std::string fType; G4RunManager* fRunManager; std::map* fAttDefs; std::string fModeling; bool fIGeant4Trajectory; SoSeparator* fSeparator; SoCoordinate3* fCoordinate; int fIndex; }; } #endif