MeVisLabToolboxReference
|
00001 // **InsertLicense** code 00002 //---------------------------------------------------------------------------------- 00004 00009 //---------------------------------------------------------------------------------- 00010 00011 #ifndef __SoCSO3DVis_H 00012 #define __SoCSO3DVis_H 00013 00014 00015 #include "SoCSOIncludes.h" 00016 #include "SoCSOSystem.h" 00017 00018 00020 00022 class SOCSO_EXPORT SoCSO3DVis : public SoSeparator 00023 { 00024 00025 public: 00026 00028 SoCSO3DVis(); 00030 static void initClass(); 00031 00032 00033 /* FIELDS */ 00034 00036 SoSFMLBase inCSOList; 00038 SoSFMLBase inStylePalette; 00039 00041 SoSFBool autoApply; 00043 SoSFTrigger apply; 00044 00046 SoSFBool enableSelection; 00048 SoSFBool highlightSelectedGroups; 00050 SoSFFloat pathPointWidthOffset; 00052 SoSFFloat seedPointSizeScaling; 00054 SoSFBool useRenderTimeDelay; 00056 SoSFFloat timerDelayMilliSeconds; 00058 SoSFBool listenToRepaintNotifications; 00060 SoSFBool listenToFinishingNotifications; 00062 SoSFBool listenToSelectionChangedNotifications; 00063 00065 SoSFBool useStylePalette; 00067 SoSFEnum stylePaletteUseIndexAs; 00068 00069 /* METHODS */ 00070 00072 virtual void handleEvent(SoHandleEventAction *action); 00073 00074 protected: 00075 00077 virtual ~SoCSO3DVis(); 00078 00079 private: 00080 00081 /* MEMBER VARIABLES */ 00082 00084 SoSeparator* _separator; 00086 SoNodeSensor *_nodeSensor; 00088 ml::CSOList* _csoList; 00090 bool _isInNotificationCB; 00092 SbTime _lastUpdateTime; 00094 bool _useRenderDelayTimer; 00096 float _timerDelayMilliSeconds; 00097 00099 bool _hasValidStylePalette; 00100 00101 00102 /* METHODS */ 00103 00105 void _generateScene(); 00107 void _setUpVisualization(ml::CSO* cso, float& red, float& green, float& blue, float& alpha, 00108 int& linePattern, float& lineWidth, 00109 int& markerMode, float& markerRed, float& markerGreen, float& markerBlue, float& markerAlpha, 00110 float& markerSize); 00111 00113 void _setClosestCSOSelected(const SbVec3f& selectionPoint); 00114 00116 static void _nodeChangedCB(void *data, SoDataSensor* a); 00118 void _nodeChanged(SoDataSensor* sensor); 00120 static void _csoListNotificationCB(void* userData, int notificationFlag); 00121 00122 SO_NODE_HEADER(SoCSO3DVis); 00123 }; 00124 00126 00127 00128 #endif // __SoCSO3DVis_H