MeVisLabToolboxReference
|
00001 // **InsertLicense** code 00002 //---------------------------------------------------------------------------------- 00005 00010 //---------------------------------------------------------------------------------- 00011 00012 00013 #ifndef __SoCSOCreatorEditorExtension_H 00014 #define __SoCSOCreatorEditorExtension_H 00015 00016 #include "SoCSOEditorExtension.h" 00017 00018 #include <CSOBase/CSOModuleBase/CSOGeneratorBase.h> 00019 00020 00022 00025 class SOCSO_EXPORT SoCSOCreatorEditorExtension : public SoCSOEditorExtension, public ml::CSOGeneratorBase 00026 { 00027 SO_NODE_ABSTRACT_HEADER(SoCSOCreatorEditorExtension); 00028 00029 public: 00030 00032 static void initClass(); 00033 00035 virtual bool canCreateCSOs() const { return true; } 00036 00037 00038 // Fields 00039 00041 SoSFInt32 moduleCreatorId; 00043 SoSFString moduleCreatorString; 00045 SoSFString labelPrefixString; 00046 00048 SoSFBool requirePointerPositionMovementToCreateCSO; 00050 SoSFInt32 pointerPositionEpsilonForCreatingCSO; 00051 00053 SoSFBool shouldEmptyGroupBeforeGenerating; 00055 SoSFEnum addCSOToGroupMode; 00057 SoSFString addCSOToGroupLabel; 00059 SoSFInt32 addCSOToGroupId; 00061 SoSFEnum defaultPathPointStyle; 00063 SoSFFloat defaultPathPointWidth; 00065 SoSFColor defaultPathPointColor; 00067 SoSFFloat defaultPathPointAlpha; 00069 SoSFEnum defaultSeedPointStyle; 00071 SoSFFloat defaultSeedPointSize; 00073 SoSFColor defaultSeedPointColor; 00075 SoSFFloat defaultSeedPointAlpha; 00077 SoSFEnum defaultVoxelWriteMode; 00079 SoSFFloat defaultVoxelWriteValue; 00080 00081 protected: 00082 00084 SoCSOCreatorEditorExtension(); 00085 00087 virtual int getModuleCreatorId() const { return moduleCreatorId.getValue(); } 00089 virtual std::string getModuleType() const { return moduleCreatorString.getValue().getString(); } 00090 00092 virtual void setCreationData(const SoPointerPosition& pos, ml::CSO* newCSO); 00093 00095 int getMaxAvailableId(); 00096 00099 virtual bool getShouldEmptyBeforeGeneration() const { return shouldEmptyGroupBeforeGenerating.getValue() == 1; } 00101 virtual int getAddCSOToGroupMode() const { return addCSOToGroupMode.getValue(); } 00103 virtual std::string getAddCSOToGroupLabel() const { return addCSOToGroupLabel.getValue().getString(); } 00105 virtual int getAddCSOToGroupId() const { return addCSOToGroupId.getValue(); } 00106 00108 virtual int getDefaultPathPointStyle() const { return defaultPathPointStyle.getValue(); } 00110 virtual float getDefaultPathPointWidth() const { return defaultPathPointWidth.getValue(); } 00112 virtual ml::Vector3 getDefaultPathPointColor() const 00113 { 00114 SbVec3f color = defaultPathPointColor.getValue(); 00115 return ml::Vector3(color[0], color[1], color[2]); 00116 } 00118 virtual float getDefaultPathPointAlpha() const { return defaultPathPointAlpha.getValue(); } 00119 00121 virtual int getDefaultSeedPointStyle() const { return defaultSeedPointStyle.getValue(); } 00123 virtual float getDefaultSeedPointSize() const { return defaultSeedPointSize.getValue(); } 00125 virtual ml::Vector3 getDefaultSeedPointColor() const 00126 { 00127 SbVec3f color = defaultSeedPointColor.getValue(); 00128 return ml::Vector3(color[0], color[1], color[2]); 00129 } 00131 virtual float getDefaultSeedPointAlpha() const { return defaultSeedPointAlpha.getValue(); } 00132 00134 virtual int getDefaultVoxelWriteMode() const { return defaultVoxelWriteMode.getValue(); } 00136 virtual float getDefaultVoxelWriteValue() const { return defaultVoxelWriteValue.getValue(); } 00137 00140 bool isFartherThanEpsilon(const SoPointerPosition& pos) const; 00141 00143 SbVec2f _startDevicePointerPosition; 00144 00145 }; 00146 00147 #endif // __SoCSOCreatorEditorExtension_H