MeVisLabToolboxReference
MeVisLab/Standard/Sources/Inventor/SoCSO/SoView2DCSOEditor/SoView2DCSOExtensibleEditor/SoCSOCreatorEditorExtension.h
Go to the documentation of this file.
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