00001 00020 #ifndef VRML1SHAPEHINTS_HH_ 00021 #define VRML1SHAPEHINTS_HH_ 00022 00023 #include "Node.hh" 00024 00025 namespace vrml1 00026 { 00027 00028 class ShapeHints : public vrml1::Node 00029 { 00030 public: 00031 enum e_VertexOrdering { UNKNOWN_ORDERING=0, CLOCKWISE, COUNTERCLOCKWISE }; 00032 enum e_ShapeType { UNKNOWN_SHAPE_TYPE=0, SOLID }; 00033 enum e_FaceType { UNKNOWN_FACE_TYPE=0, CONVEX }; 00034 00035 ShapeHints(); 00036 00037 void setVertexOrdering(e_VertexOrdering vertexOrdering); 00038 e_VertexOrdering vertexOrdering() const; 00039 00040 void setShapeType(e_ShapeType shapeType); 00041 e_ShapeType shapeType() const; 00042 00043 void setFaceType(e_FaceType faceType); 00044 e_FaceType faceType() const; 00045 00046 void setCreaseAngle(float creaseAngle); 00047 float creaseAngle() const; 00048 00049 virtual void setAttribute(Attribute *A); 00050 00051 private: 00052 e_VertexOrdering m_vertexOrdering; 00053 e_ShapeType m_shapeType; 00054 e_FaceType m_faceType; 00055 float m_creaseAngle; 00056 }; 00057 00058 } 00059 00060 #endif /*VRML1SHAPEHINTS_HH_*/