309class SoVertexShape :
public SoShape {
311 SO_NODE_ABSTRACT_HEADER(SoVertexShape);
312 SO_PIMPL_PUBLIC_HEADER(SoVertexShape)
341 virtual void generateDefaultNormals(
SoState *state,
348 void commonGenerateDefaultNormals(
SoState *state, SoNormalBundle *nb);
350 virtual SbBool figureNormals(
SoState *state, SoNormalBundle *nb);
358 virtual void generateDefaultTangents(
SoState* state,
362 SbBool storeRef = FALSE );
365 void commonGenerateDefaultTangents(
SoState* state, SoTangentBundle* tb );
367 virtual SbBool figureTangents(
SoState* state, SoTangentBundle* tb );
370 uint32_t m_vpVertexTimeStamp;
378 static void initClass();
379 static void exitClass();
382 virtual void notify(SoNotList *list);
384 const SiCoordinateGetter* getCoordinateGetter(
const SoState* state,
bool ignoreProjectionElementDepth =
false);
390 virtual ~SoVertexShape();
396 SbBool isPointsOrLines = FALSE);
401 virtual void exitRender(
SoState *state,
int stateFlag,
402 SoTextureCoordinateBundle *tcb,
403 SoTextureCoordinate3Bundle *tc3b);
408 virtual void setupRenderFunctions(
SoState *state,
int &stateFlag);
416 uint32_t &useTexCoordsAnyway,
417 SoTextureCoordinateBundle *&tcb,
418 SoTextureCoordinate3Bundle *&tc3b);
421 virtual SbBool shouldGenerateTexture3DCoordinates(){
return FALSE;}
427 virtual SbBool checkTex3Coords(){
return FALSE;}
430 virtual void doRendering(SoGLRenderAction *action,
const SoShapeStyleElement* shapeStyle);
433 virtual void render(SoGLRenderAction *action,
SbBool isPointsOrLines);
436 virtual void shouldGenerateNormals(SoGLRenderAction *action,
const SoShapeStyleElement *shapeStyle);
439 virtual void shouldGenerateTangents( SoGLRenderAction* action,
const SoShapeStyleElement* shapeStyle );
442 virtual SbBool shouldCheckShapeHints(){
return FALSE;}
444 virtual SbBool shapeHintsTest( SoState *state = NULL );
447 virtual SbBool checkShapeHints(SoGLRenderAction *action);
450 virtual void setupLazyElement(SoGLRenderAction *action,
const SoShapeStyleElement *shapeStyle);
453 virtual void checkShapeStyle(SoState *state,
const SoShapeStyleElement *shapeStyle);
458 static int32_t* allocateSequential(
const int howMany);
459 static int32_t* getConsecutiveIndices();
461 virtual bool hasGeneratePrimitiveCache()
467 void commonConstructor();
469 void setupColorMaterial(SoState* state,
SbBool enableOrDisable);