54#include <Inventor/SbBox.h>
55#include <Inventor/SbMatrix.h>
56#include <Inventor/nodes/SoNode.h>
57#include <Inventor/fields/SoSFBool.h>
58#include <Inventor/SbPImpl.h>
67class PickedPointListImpl;
72SO_PIMPL_PUBLIC_DECLARATION(
SoShape)
117 SO_PIMPL_PUBLIC_HEADER(
SoShape)
199 void beginShape(
SoAction *action, TriangleShape shapeType,
256 static float getDecimatedComplexity(
SoState *state,
float complexity);
288 computeBBox(action, boxf, centerf);
301 inline virtual SbBool isBoundingBoxIgnoring()
const
302 {
return boundingBoxIgnoring.
getValue(); }
315 static SbBool getMultiTextureInfo(
SoState *state, SbIntList &imageTextUnitList) ;
328 void invokeTriangleCallbacks(
SoAction *action,
333 void invokeLineSegmentCallbacks(
SoAction *action,
337 void invokePointCallbacks(
SoAction *action,
342 static void initClass();
343 static void exitClass();
348 SB_THREAD_TLS_HEADER();
351 SbBool m_forceDisableProjection;
353 void setForceDisableProjection(
SbBool disable ){m_forceDisableProjection = disable;}
355 static bool isVertexArrayAvailable(
SoState* state=NULL);
356 static bool isMultiDrawArrayAvailable(
SoState* state=NULL);
357 static bool isVertexBufferAvailable(
SoState* state=NULL);
360 static int getPrimitiveRestartMode(
SoState* state = NULL);
362 static int getMaxPrimitiveLoop();
364 static int getMinVertexNumForVA();
366 static int getMinVertexNumForVBO();
368 static int getMinVertexNumForVAVBONoCache();
370 static bool isDesindexingAllowed();
372 static bool isTrisStripAllowedForQuadMesh();
374 static SbBool isDetailDebugEnabled();
376 static bool isCreaseAngleFixSet();
380 void endShape(
int wt,
SoMFInt32* indexes );
387 virtual int getNumVert(
SoState *state = NULL ){
return getNumPrim( state ); }
389 virtual int getNumPrim(
SoState *state = NULL );
393 return shouldGLRender(action, FALSE);
402 inline virtual void countPrim(
SoState *state = NULL );
415 virtual void generatePrimitives(
SoAction *action) = 0;
421 SbBool isPointsOrLines = FALSE);
429 SbBool isPointsOrLines = FALSE,
430 SbBool hasTessellationShader = FALSE);
436 SbBool isPointsOrLines = FALSE);
491 virtual void applyFullSceneAntialiasingFilter(
SoState* state);
495 void setNeedToProjectCoord(
bool isProjectCoordNeeded);
499 static int s_keepReset;
500 static int s_forceSend;
509 void commonConstructor();
const SbVec3f & getMin() const
Returns the minimum point of the box.
const SbVec3f & getMax() const
Returns the maximum point of the box.
static SbMatrixd identity()
Returns an identity matrix.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> 3D vector class ...
SbVec3d & setValue(const double v[3])
Sets the vector components.
const float * getValue() const
Returns vector components.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> 3D box with an a...
void makeEmpty()
Sets the box to contain nothing.
void setBounds(double xmin, double ymin, double zmin, double xmax, double ymax, double zmax)
Sets the bounds of the box.
void setTransform(const SbMatrixd &m)
Sets the transformation on the box.
Abstract base class for all actions.
Performs a generic traversal of a scene graph or path.
Base class for describing detail information about a shape node.
Stores detail information about vertex-based shapes made of faces.
Renders a scene graph using Open Inventor's Render Engine.
Computes bounding box of a scene.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Counts number of...
Multiple-value field containing any number of int32_t integers.
Abstract base class for all database nodes.
Represents point on surface of picked object.
Represents a vertex of a generated primitive.
Intersects objects with a ray cast into scene.
Field containing a single Boolean value.
SbBool getValue() const
Returns this field's value.
Abstract base class for all shape nodes.
virtual SbBool affectsState() const
Overrides default method on SoNode.
static SbBool isPrimitiveRestartAvailable(SoState *state=NULL)
Returns TRUE if the primitive restart feature is available.
ShapeType
Basic type for antialiased rendering for this shape (Do not consider the SoDrawStyle property current...
@ LINES
The shape is render based on lines (Ex: SoLineSet).
@ POINTS
The shape is render based on points (Ex: SoPointSet).
@ POLYGONS
The shape is render based on polygons (Ex: SoFaceSet).
SoSFBool boundingBoxIgnoring
Whether to ignore this node during bounding box traversal.
ShapeType getShapeType()
Gets the current shape Full Scene Antialiasing type.