54#include <Inventor/SbBox.h>
55#include <Inventor/SbMatrix.h>
56#include <Inventor/actions/SoRayPickAction.h>
57#include <Inventor/nodes/SoNode.h>
58#include <Inventor/fields/SoSFBool.h>
59#include <Inventor/SbPImpl.h>
68class PickedPointListImpl;
73SO_PIMPL_PUBLIC_DECLARATION(
SoShape)
118 SO_PIMPL_PUBLIC_HEADER(
SoShape)
200 void beginShape(
SoAction *action, TriangleShape shapeType,
257 static float getDecimatedComplexity(
SoState *state,
float complexity);
289 computeBBox(action, boxf, centerf);
302 inline virtual SbBool isBoundingBoxIgnoring()
const
303 {
return boundingBoxIgnoring.
getValue(); }
316 static SbBool getMultiTextureInfo(
SoState *state, SbIntList &imageTextUnitList) ;
329 void invokeTriangleCallbacks(
SoAction *action,
334 void invokeLineSegmentCallbacks(
SoAction *action,
338 void invokePointCallbacks(
SoAction *action,
343 static void initClass();
344 static void exitClass();
349 SB_THREAD_TLS_HEADER();
352 SbBool m_forceDisableProjection;
354 void setForceDisableProjection(
SbBool disable ){m_forceDisableProjection = disable;}
356 static bool isVertexArrayAvailable(
SoState* state=NULL);
357 static bool isMultiDrawArrayAvailable(
SoState* state=NULL);
358 static bool isVertexBufferAvailable(
SoState* state=NULL);
361 static int getPrimitiveRestartMode(
SoState* state = NULL);
363 static int getMaxPrimitiveLoop();
365 static int getMinVertexNumForVA();
367 static int getMinVertexNumForVBO();
369 static int getMinVertexNumForVAVBONoCache();
371 static bool isDesindexingAllowed();
373 static bool isTrisStripAllowedForQuadMesh();
375 static SbBool isDetailDebugEnabled();
377 static bool isCreaseAngleFixSet();
381 void endShape(
int wt,
SoMFInt32* indexes );
388 virtual int getNumVert(
SoState *state = NULL ){
return getNumPrim( state ); }
390 virtual int getNumPrim(
SoState *state = NULL );
394 return shouldGLRender(action, FALSE);
403 inline virtual void countPrim(
SoState *state = NULL );
416 virtual void generatePrimitives(
SoAction *action) = 0;
422 SbBool isPointsOrLines = FALSE);
430 SbBool isPointsOrLines = FALSE,
431 SbBool hasTessellationShader = FALSE);
437 SbBool isPointsOrLines = FALSE);
492 virtual void applyFullSceneAntialiasingFilter(
SoState* state);
496 void setNeedToProjectCoord(
bool isProjectCoordNeeded);
500 static int s_keepReset;
501 static int s_forceSend;
510 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.