00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef _SO_NURBS_PROPERTY_ELEMENT_
00026 #define _SO_NURBS_PROPERTY_ELEMENT_
00027
00028 #include <Inventor/elements/SoReplacedElement.h>
00029 #include <Inventor/nodes/SoNurbsProperty.h>
00030
00031 #include <Inventor/SbColor.h>
00044 SoEXTENDER_Documented class SoNurbsPropertyElement : public SoReplacedElement {
00045
00046 SO_ELEMENT_HEADER(SoNurbsPropertyElement) ;
00047 public:
00048
00050 enum DrawStyle {
00052 NORMAL = 0x01,
00054 BOUNDARIES_AND_TRIM_CURVES = 0x02,
00056 CENTRAL_ISO_PARAM_CURVES = 0x04
00057 } ;
00058
00062 static void set(SoState *state, SoNode *node, DrawStyle drawStyleMask,
00063 int numSamplePoints, const SbColor &color,
00064 u_short isoParamCurvesPattern,
00065 SoNurbsProperty::TessellationType tessType,
00066 float tessDistance, float tessAngle);
00070 static void get(SoState *state, DrawStyle &drawStyleMask, int &numSamplePoints,
00071 SbColor &color, u_short &isoParamCurvesPattern,
00072 SoNurbsProperty::TessellationType &tessType,
00073 float &tessDistance, float &tessAngle);
00074
00078 static void getDefault(DrawStyle &drawStyleMask, int &numSamplePoints,
00079 SbColor &color, u_short &isoParamCurvesPattern,
00080 SoNurbsProperty::TessellationType &tessType,
00081 float &tessDistance, float &tessAngle);
00082
00083 private:
00084
00086 virtual void init(SoState *state);
00087
00088 private:
00089
00090 static void initClass() ;
00091 static void exitClass() ;
00092
00093 private:
00094 DrawStyle m_drawStyleMask ;
00095 int m_numSamplePoints ;
00096 SbColor m_color ;
00097 u_short m_isoParamCurvesPattern ;
00098 SoNurbsProperty::TessellationType m_tessType;
00099 float m_tessDistance;
00100 float m_tessAngle;
00101
00102 private:
00103 virtual ~SoNurbsPropertyElement() ;
00104 } ;
00105
00106 #endif
00107
00108
00109