00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _SO_BEVEL_PROPERTY_ELEMENT
00024 #define _SO_BEVEL_PROPERTY_ELEMENT
00025
00026 #include <Inventor/fields/SoMFInt32.h>
00027 #include <Inventor/elements/SoReplacedElement.h>
00028 #include <Inventor/nodes/SoBevelProperty.h>
00029
00040 SoEXTENDER_Documented class SoBevelPropertyElement : public SoReplacedElement {
00041
00042 SO_ELEMENT_HEADER(SoBevelPropertyElement);
00043
00044 public:
00045
00050 static void setAngle(SoState *state, SoNode *node, float);
00055 static void setRadius(SoState *state, SoNode *node, float = SoBevelProperty::DEFAULT_RADIUS);
00059 static void setAbsoluteRadius(SoState *state, SoNode *node, float);
00060
00065 static void setTests(SoState *state, SoNode *node, int);
00066
00070 static const SoBevelPropertyElement * getInstance(SoState *state)
00071 {return getConstElement<SoBevelPropertyElement>(state);}
00072
00076 float getAngle() const {return angle;}
00080 float getRadius() const {return radius;}
00084 SbBool isAbsoluteRadius() const {return absoluteRadius;}
00088 SbBool isEnabled() const {return propertyEnabled;}
00093 SbBool isCoplanarTestEnabled() const {return tests & SoBevelProperty::COPLANAR_TEST;}
00098 SbBool isDuplicateTestEnabled() const {return tests & SoBevelProperty::DUPLICATE_TEST;}
00103 SbBool isOrderingTestEnabled() const {return tests & SoBevelProperty::ORDERING_TEST;}
00108 int getTestsToDoBeforeBevel() const {return tests;}
00109
00113 virtual void print(FILE *fp) const;
00114
00115 private:
00116
00118 virtual void init(SoState *state);
00119
00120 private:
00121
00122 static void initClass();
00123 static void exitClass();
00124
00125 private:
00126 float angle, radius;
00127 SbBool absoluteRadius, propertyEnabled;
00128 int tests;
00129
00130 virtual ~SoBevelPropertyElement();
00131 };
00132
00133 #endif
00134
00135
00136