50#ifndef _SO_SHAPE_HINTS_ELEMENT
51#define _SO_SHAPE_HINTS_ELEMENT
53#include <Inventor/elements/SoReplacedElement.h>
175 {
set(state, vertexOrdering, shapeType, faceType); }
181 {
set(state,windingType); }
187 {
set(state,useVBO); }
211 return s_vertexOrderingDefault;
218 return s_shapeTypeDefault;
225 return s_faceTypeDefault;
232 return s_windingTypeDefault;
256 virtual void init(
SoState *state);
266 virtual SoElement* copyMatchInfo()
const;
270 static void initClass();
271 static void exitClass();
273 static bool isTwoSidedLighting(
SoState *state);
274 static void setForceTwoSidedLighting(
SoState* state,
bool forceTwoSidedLighting );
277 static bool isCulling(
SoState *state);
280 bool isCulling()
const;
286 static bool isCounterClockwise(
SoState *state);
289 bool isCounterClockwise()
const;
293 virtual void commonInit();
313 bool isTwoSidedLighting()
const;
315 bool m_forceTwoSidedLighting;
317 static void initVertexOrdering();
318 static void initShapeType();
319 static void initFaceType();
320 static void initWindingType();
Abstract base class for all state elements.
Abstract base class for all database nodes.
Stores the current shape hints.
static void set(SoState *state, SoNode *, SbBool useVBO)
Indicates if VBO is used from the state.
static void get(SoState *state, WindingType &windingType)
Return current shape winding type from the state.
static VertexOrdering getDefaultVertexOrdering()
Returns default hint.
ShapeType
Hints about entire shape.
@ SOLID
Shape is known to be solid.
@ UNKNOWN_SHAPE_TYPE
Nothing is known about shape.
@ SHAPE_TYPE_AS_IS
Indicates to set() to leave as is.
static void get(SoState *state, VertexOrdering &vertexOrdering, ShapeType &shapeType, FaceType &faceType)
Returns current shape hints from the state.
FaceType
Hints about faces of shape.
@ CONVEX
Faces are all convex.
@ FACE_TYPE_AS_IS
Indicates to set() to leave as is.
@ UNKNOWN_FACE_TYPE
Nothing is known about faces.
virtual void push(SoState *state)
Push copies the values from the previous element, so set doesn't have to set them if they are set AS_...
WindingType
Hints about winding type.
@ NO_WINDING_TYPE
No hole.
VertexOrdering
Hints about ordering of face vertices.
@ ORDERING_AS_IS
Indicates to set() to leave as is.
@ UNKNOWN_ORDERING
No ordering info is known.
@ COUNTERCLOCKWISE
Vertices are ordered CCW around faces.
@ CLOCKWISE
Vertices are ordered CW around faces.
static void set(SoState *state, WindingType windingType)
Sets the current shape hints in the state.
virtual void print(FILE *fp) const
Prints element (for debugging).
static WindingType getDefaultWindingType()
Returns default hint.
static SbBool getDefaultVBOUsage()
Returns default hint.
static SbBool isVBOUsed(SoState *state)
Indicates if VBO is used from the state.
static void set(SoState *state, SbBool useVBO)
Sets the current shape hints in the state.
static void set(SoState *state, SoNode *, VertexOrdering vertexOrdering, ShapeType shapeType, FaceType faceType)
Sets the current shape hints in the state.
static void set(SoState *state, VertexOrdering vertexOrdering, ShapeType shapeType, FaceType faceType, WindingType windingType, SbBool useVBO)
Set shape hints by defining all options.
static void set(SoState *state, VertexOrdering vertexOrdering, ShapeType shapeType, FaceType faceType)
Sets the current shape hints in the state.
static ShapeType getDefaultShapeType()
Returns default hint.
static void set(SoState *state, SoNode *, WindingType windingType)
static FaceType getDefaultFaceType()
Returns default hint.