PoBase Class Reference
[Misc]

MeshViz Abstract base class for all Graph Master & 3D Data Master classes. More...

#include <MeshViz/graph/PoBase.h>

Inheritance diagram for PoBase:
SoBaseKit SoNode SoGetView SoFieldContainer SoBase SoRefCounter SoTypedObject Po3DdataMaster PoGraphMaster PoMesh PoArrow PoArrow3 PoBaseAxis PoBiErrorPointField PoChart PoCircle PoCircle3 PoCircleArc PoCircleArc3 PoCoordinateSystemAxis PoCurve PoCurve3 PoErrorCurve PoErrorPointField PoHighLowClose PoHistogram PoLabelField PoLegend PoParallelogram PoParallelogram3 PoPieChart PoPointsFieldBars PoRectangle PoValuedMarkerField

List of all members.

Classes

struct  FieldSensorList

Public Types

enum  UpdateMethodType {
  UPDATE_METHOD_IMMEDIATE,
  UPDATE_METHOD_ON_ACTION
}
enum  NodeWriteFormat {
  FOLD_NODE_WRITE_FORMAT,
  UNFOLD_NODE_WRITE_FORMAT
}
enum  TextType {
  SO_TEXT3,
  SO_ANNO_TEXT3
}
typedef void PoRebuildCB (void *userData, PoBase *base)

Public Member Functions

virtual SoType getTypeId () const
virtual const SoNodekitCataloggetNodekitCatalog () const
void setUpdateMethod (UpdateMethodType type)
UpdateMethodType getUpdateMethod () const
void setDomain (PbDomain *dom)
const PbDomaingetDomain () const
void touchKit ()
SbBool isModified () const
SbBool isBuilt () const
virtual void rebuild ()
void addPreRebuildCallback (PoRebuildCB *cb, void *data)
void addPostRebuildCallback (PoRebuildCB *cb, void *data)
void removePreRebuildCallback (PoRebuildCB *cb, void *data=NULL)
void removePostRebuildCallback (PoRebuildCB *cb, void *data)
virtual SoNodecopy (SbBool copyConnections=FALSE) const
virtual SbBool affectsState () const

Static Public Member Functions

static SoType getClassTypeId ()
static const SoNodekitCataloggetClassNodekitCatalog ()
static void setNodeWriteFormat (NodeWriteFormat format)
static NodeWriteFormat getNodeWriteFormat ()
static void setTextType (TextType type)
static TextType getTextType ()
static void setVRML2Mode (SbBool flag)
static SbBool isVRML2Mode ()

Detailed Description

MeshViz Abstract base class for all Graph Master & 3D Data Master classes.

All representations depend on the current domain which defines the data limits of the graphic to be generated. If the method setDomain(domain) is called, the current domain is "domain". Otherwise the current domain is specified in the current inherited state (cf property node PoDomain).

Be careful, do not use the method rebuild() if you use MeshViz property nodes (PoDomain, PoMeshProperty,...), because a representation (axis, legend, 2D and 3D mesh representation,..) depends on the current inherited state. If you need to do an extra work after a representation has been built, do it in a post-rebuild callback (cf PoBase::addPostRebuildCallback).


Member Typedef Documentation

typedef void PoBase::PoRebuildCB(void *userData, PoBase *base)

Member Enumeration Documentation

Type of write format.

Enumerator:
FOLD_NODE_WRITE_FORMAT 

All MeshViz nodekits are written in a fold format.

UNFOLD_NODE_WRITE_FORMAT 

All MeshViz nodekits are written in an unfold format.

Type of Text.

Enumerator:
SO_TEXT3 
SO_ANNO_TEXT3 

Type of update method.

Enumerator:
UPDATE_METHOD_IMMEDIATE 

The kit is rebuilt immediately after each modification.

UPDATE_METHOD_ON_ACTION 

The kit is rebuilt during a traversal (that is an action).


Member Function Documentation

void PoBase::addPostRebuildCallback ( PoRebuildCB cb,
void *  data 
)

Add a callback function to call when the node kit is rebuilt.

This callback is called just after the kit is rebuilt.

void PoBase::addPreRebuildCallback ( PoRebuildCB cb,
void *  data 
)

Add a callback function to call when the node kit is rebuilt.

This callback is called just before the kit is rebuilt.

virtual SbBool PoBase::affectsState (  )  const [virtual]

See SoNode::affectsState() for explanations.

Reimplemented from SoNode.

virtual SoNode* PoBase::copy ( SbBool  copyConnections = FALSE  )  const [virtual]

Copy method.

Reimplemented from SoNode.

static const SoNodekitCatalog* PoBase::getClassNodekitCatalog (  )  [static]

Returns the SoNodekitCatalog for this class.

Reimplemented from SoBaseKit.

Reimplemented in Po3DdataMaster, PoBaseStreamLine, PoCellEdges, PoCellFacets, PoCellIndices, PoCellShape, PoMesh, PoMesh2D, PoMesh2DVec, PoMesh3D, PoMesh3DVec, PoMesh3DVecCrossSection, PoMesh3DVecGridCrossSection, PoMeshContouring, PoMeshCrossContour, PoMeshCrossSection, PoMeshFilled, PoMeshLevelSurf, PoMeshLimit, PoMeshLines, PoMeshProbePoint, PoMeshSides, PoMeshSkeleton, PoMeshSkin, PoStreamLine, PoStreamLineMotion, PoStreamParticleMotion, PoStreamPointMotion, PoStreamSphereMotion, PoStreamSurface, PoStreamTadpoleMotion, PoAngularAxis, PoArrow, PoArrow3, PoAutoCubeAxis, PoAutoValueLegend, PoAxis, PoBar, PoBaseAxis, PoBiErrorPointField, PoCartesianAxis, PoChart, PoCircle, PoCircle3, PoCircle3CenterRadius, PoCircle3ThreePoints, PoCircleArc, PoCircleArc3, PoCircleArc3CtrPtAngle, PoCircleArc3CtrTwoPts, PoCircleArc3ThreePts, PoCircleArcCtrPtAngle, PoCircleArcCtrRadTwoAngle, PoCircleArcCtrTwoPts, PoCircleArcThreePts, PoCircleCenterRadius, PoCircleThreePoints, PoConicBar, PoCoordinateSystemAxis, PoCurve, PoCurve3, PoCurveFilling, PoCurveLine, PoCylindricalBar, PoErrorCurve, PoErrorPointField, PoGenAxis, PoGeneralizedBar, PoGeneralizedScatter, PoGraphMaster, PoGroup2Axis, PoGroup3Axis3, PoGroup4Axis, PoGroup6Axis3, PoHighLowClose, PoHistogram, PoItemLegend, PoLabel, PoLabelField, PoLegend, PoLinearAxis, PoLinearBar, PoLinearValueLegend, PoLogAxis, PoMultipleHistogram, PoNonLinearValueLegend1, PoNonLinearValueLegend2, PoNonLinearValueLegend3, PoParallelogram, PoParallelogram3, PoPieChart, PoPieChart2D, PoPieChart3D, PoPieChartRep, PoPointsFieldBars, PoPolarAxis, PoPolarLinAxis, PoPolarLogAxis, PoProfileBar, PoRectangle, PoRibbon, PoScatter, PoSingleHistogram, PoTimeAxis, PoTube, PoValuedMarkerField, and PoValueLegend.

static SoType PoBase::getClassTypeId (  )  [static]

Returns the type identifier for this class.

Reimplemented from SoBaseKit.

Reimplemented in Po3DdataMaster, PoBaseStreamLine, PoCellEdges, PoCellFacets, PoCellIndices, PoCellShape, PoMesh, PoMesh2D, PoMesh2DVec, PoMesh3D, PoMesh3DVec, PoMesh3DVecCrossSection, PoMesh3DVecGridCrossSection, PoMeshContouring, PoMeshCrossContour, PoMeshCrossSection, PoMeshFilled, PoMeshLevelSurf, PoMeshLimit, PoMeshLines, PoMeshProbePoint, PoMeshSides, PoMeshSkeleton, PoMeshSkin, PoStreamLine, PoStreamLineMotion, PoStreamParticleMotion, PoStreamPointMotion, PoStreamSphereMotion, PoStreamSurface, PoStreamTadpoleMotion, PoAngularAxis, PoArrow, PoArrow3, PoAutoCubeAxis, PoAutoValueLegend, PoAxis, PoBar, PoBaseAxis, PoBiErrorPointField, PoCartesianAxis, PoChart, PoCircle, PoCircle3, PoCircle3CenterRadius, PoCircle3ThreePoints, PoCircleArc, PoCircleArc3, PoCircleArc3CtrPtAngle, PoCircleArc3CtrTwoPts, PoCircleArc3ThreePts, PoCircleArcCtrPtAngle, PoCircleArcCtrRadTwoAngle, PoCircleArcCtrTwoPts, PoCircleArcThreePts, PoCircleCenterRadius, PoCircleThreePoints, PoConicBar, PoCoordinateSystemAxis, PoCurve, PoCurve3, PoCurveFilling, PoCurveLine, PoCylindricalBar, PoErrorCurve, PoErrorPointField, PoGenAxis, PoGeneralizedBar, PoGeneralizedScatter, PoGraphMaster, PoGroup2Axis, PoGroup3Axis3, PoGroup4Axis, PoGroup6Axis3, PoHighLowClose, PoHistogram, PoItemLegend, PoLabel, PoLabelField, PoLegend, PoLinearAxis, PoLinearBar, PoLinearValueLegend, PoLogAxis, PoMultipleHistogram, PoNonLinearValueLegend1, PoNonLinearValueLegend2, PoNonLinearValueLegend3, PoParallelogram, PoParallelogram3, PoPieChart, PoPieChart2D, PoPieChart3D, PoPieChartRep, PoPointsFieldBars, PoPolarAxis, PoPolarLinAxis, PoPolarLogAxis, PoProfileBar, PoRectangle, PoRibbon, PoScatter, PoSingleHistogram, PoTimeAxis, PoTube, PoValuedMarkerField, and PoValueLegend.

const PbDomain* PoBase::getDomain (  )  const

Gets a reference to a PbDomain object used to define the data limits of the graphics to be generated.

virtual const SoNodekitCatalog* PoBase::getNodekitCatalog (  )  const [virtual]

Returns the SoNodekitCatalog for this instance.

Reimplemented from SoBaseKit.

Reimplemented in Po3DdataMaster, PoBaseStreamLine, PoCellEdges, PoCellFacets, PoCellIndices, PoCellShape, PoMesh, PoMesh2D, PoMesh2DVec, PoMesh3D, PoMesh3DVec, PoMesh3DVecCrossSection, PoMesh3DVecGridCrossSection, PoMeshContouring, PoMeshCrossContour, PoMeshCrossSection, PoMeshFilled, PoMeshLevelSurf, PoMeshLimit, PoMeshLines, PoMeshProbePoint, PoMeshSides, PoMeshSkeleton, PoMeshSkin, PoStreamLine, PoStreamLineMotion, PoStreamParticleMotion, PoStreamPointMotion, PoStreamSphereMotion, PoStreamSurface, PoStreamTadpoleMotion, PoAngularAxis, PoArrow, PoArrow3, PoAutoCubeAxis, PoAutoValueLegend, PoAxis, PoBar, PoBaseAxis, PoBiErrorPointField, PoCartesianAxis, PoChart, PoCircle, PoCircle3, PoCircle3CenterRadius, PoCircle3ThreePoints, PoCircleArc, PoCircleArc3, PoCircleArc3CtrPtAngle, PoCircleArc3CtrTwoPts, PoCircleArc3ThreePts, PoCircleArcCtrPtAngle, PoCircleArcCtrRadTwoAngle, PoCircleArcCtrTwoPts, PoCircleArcThreePts, PoCircleCenterRadius, PoCircleThreePoints, PoConicBar, PoCoordinateSystemAxis, PoCurve, PoCurve3, PoCurveFilling, PoCurveLine, PoCylindricalBar, PoErrorCurve, PoErrorPointField, PoGenAxis, PoGeneralizedBar, PoGeneralizedScatter, PoGraphMaster, PoGroup2Axis, PoGroup3Axis3, PoGroup4Axis, PoGroup6Axis3, PoHighLowClose, PoHistogram, PoItemLegend, PoLabel, PoLabelField, PoLegend, PoLinearAxis, PoLinearBar, PoLinearValueLegend, PoLogAxis, PoMultipleHistogram, PoNonLinearValueLegend1, PoNonLinearValueLegend2, PoNonLinearValueLegend3, PoParallelogram, PoParallelogram3, PoPieChart, PoPieChart2D, PoPieChart3D, PoPieChartRep, PoPointsFieldBars, PoPolarAxis, PoPolarLinAxis, PoPolarLogAxis, PoProfileBar, PoRectangle, PoRibbon, PoScatter, PoSingleHistogram, PoTimeAxis, PoTube, PoValuedMarkerField, and PoValueLegend.

static NodeWriteFormat PoBase::getNodeWriteFormat (  )  [static]

Gets the node write format.

See setNodeWriteFormat for more details.

static TextType PoBase::getTextType (  )  [static]

Gets the type of text used.

virtual SoType PoBase::getTypeId (  )  const [virtual]

Returns the type identifier for this specific instance.

Reimplemented from SoBaseKit.

Reimplemented in Po3DdataMaster, PoBaseStreamLine, PoCellEdges, PoCellFacets, PoCellIndices, PoCellShape, PoMesh, PoMesh2D, PoMesh2DVec, PoMesh3D, PoMesh3DVec, PoMesh3DVecCrossSection, PoMesh3DVecGridCrossSection, PoMeshContouring, PoMeshCrossContour, PoMeshCrossSection, PoMeshFilled, PoMeshLevelSurf, PoMeshLimit, PoMeshLines, PoMeshProbePoint, PoMeshSides, PoMeshSkeleton, PoMeshSkin, PoStreamLine, PoStreamLineMotion, PoStreamParticleMotion, PoStreamPointMotion, PoStreamSphereMotion, PoStreamSurface, PoStreamTadpoleMotion, PoAngularAxis, PoArrow, PoArrow3, PoAutoCubeAxis, PoAutoValueLegend, PoAxis, PoBar, PoBaseAxis, PoBiErrorPointField, PoCartesianAxis, PoChart, PoCircle, PoCircle3, PoCircle3CenterRadius, PoCircle3ThreePoints, PoCircleArc, PoCircleArc3, PoCircleArc3CtrPtAngle, PoCircleArc3CtrTwoPts, PoCircleArc3ThreePts, PoCircleArcCtrPtAngle, PoCircleArcCtrRadTwoAngle, PoCircleArcCtrTwoPts, PoCircleArcThreePts, PoCircleCenterRadius, PoCircleThreePoints, PoConicBar, PoCoordinateSystemAxis, PoCurve, PoCurve3, PoCurveFilling, PoCurveLine, PoCylindricalBar, PoErrorCurve, PoErrorPointField, PoGenAxis, PoGeneralizedBar, PoGeneralizedScatter, PoGraphMaster, PoGroup2Axis, PoGroup3Axis3, PoGroup4Axis, PoGroup6Axis3, PoHighLowClose, PoHistogram, PoItemLegend, PoLabel, PoLabelField, PoLegend, PoLinearAxis, PoLinearBar, PoLinearValueLegend, PoLogAxis, PoMultipleHistogram, PoNonLinearValueLegend1, PoNonLinearValueLegend2, PoNonLinearValueLegend3, PoParallelogram, PoParallelogram3, PoPieChart, PoPieChart2D, PoPieChart3D, PoPieChartRep, PoPointsFieldBars, PoPolarAxis, PoPolarLinAxis, PoPolarLogAxis, PoProfileBar, PoRectangle, PoRibbon, PoScatter, PoSingleHistogram, PoTimeAxis, PoTube, PoValuedMarkerField, and PoValueLegend.

UpdateMethodType PoBase::getUpdateMethod (  )  const [inline]

Gets update method.

See setUpdateMethod for more details.

SbBool PoBase::isBuilt (  )  const [inline]

Indicates if the node kit has been built at least once.

SbBool PoBase::isModified (  )  const [inline]

Return TRUE, if the kit has been modified, else otherwise.

static SbBool PoBase::isVRML2Mode (  )  [static]

Gets the VRML2 mode (TRUE = VRML2 mode, FALSE Inventor mode).

virtual void PoBase::rebuild (  )  [inline, virtual]

Forces the node kit to be rebuilt immediately.

The rebuild consists in updating all catalog parts (which contains shapes forming the visualization) of the node kit according to field values and other property values (domain, data mapping,...). Be careful, do not use the method rebuild() if you use MeshViz property nodes (PoDomain, PoMeshProperty,...), because a representation (axis, legend, 2D and 3D mesh representation,..) depends on the current inherited state. If you need to do an extra work after a representation has been built, do it in a post-rebuild callback (cf PoBase::addPostRebuildCallback).

Reimplemented in PoCellEdges, PoCellFacets, PoCellIndices, PoMesh2DVec, PoMesh3DVec, PoMesh3DVecCrossSection, PoMesh3DVecGridCrossSection, PoMeshContouring, PoMeshCrossContour, PoMeshCrossSection, PoMeshFilled, PoMeshLevelSurf, PoMeshLimit, PoMeshLines, PoMeshProbePoint, PoMeshSides, PoMeshSkeleton, PoMeshSkin, PoStreamLine, PoStreamLineMotion, PoStreamPointMotion, PoStreamSphereMotion, PoStreamSurface, PoStreamTadpoleMotion, PoAngularAxis, PoArrow, PoArrow3, PoAutoCubeAxis, PoBiErrorPointField, PoCircle3CenterRadius, PoCircle3ThreePoints, PoCircleArc3CtrPtAngle, PoCircleArc3CtrTwoPts, PoCircleArc3ThreePts, PoCircleArcCtrPtAngle, PoCircleArcCtrRadTwoAngle, PoCircleArcCtrTwoPts, PoCircleArcThreePts, PoCircleCenterRadius, PoCircleThreePoints, PoCoordinateSystemAxis, PoCurve, PoCurve3, PoErrorCurve, PoErrorPointField, PoGenAxis, PoGroup2Axis, PoGroup3Axis3, PoGroup4Axis, PoGroup6Axis3, PoHighLowClose, PoItemLegend, PoLabelField, PoLinearAxis, PoLinearValueLegend, PoLogAxis, PoMultipleHistogram, PoNonLinearValueLegend1, PoNonLinearValueLegend2, PoNonLinearValueLegend3, PoParallelogram, PoParallelogram3, PoPieChart2D, PoPieChart3D, PoPointsFieldBars, PoPolarLinAxis, PoPolarLogAxis, PoRectangle, PoSingleHistogram, PoTimeAxis, and PoValuedMarkerField.

void PoBase::removePostRebuildCallback ( PoRebuildCB cb,
void *  data 
)

Remove a callback function to call when the node kit is rebuilt.

This callback is called just after the kit is rebuilt.

void PoBase::removePreRebuildCallback ( PoRebuildCB cb,
void *  data = NULL 
)

Remove a callback function to call when the node kit is rebuilt.

This callback is called just before the kit is rebuilt.

void PoBase::setDomain ( PbDomain dom  ) 

Sets a reference to a PbDomain object used to define the data limits of the graphics to be generated.

If this method is not called (or called passing NULL as argument), this is the domain defined in the current inherited state (defined with the node PoDomain) which is used.

static void PoBase::setNodeWriteFormat ( NodeWriteFormat  format  )  [static]

Sets the node write format.

FOLD_NODE_WRITE_FORMAT indicates that all nodes will not be unfolded when they are written with a SoWriteAction. UNFOLD_NODE_WRITE_FORMAT indicates on the contrary, that all nodes will be unfolded when they are written with a SoWriteAction. Be careful, when using the format FOLD_NODE_WRITE_FORMAT, the basic objects (Pb objects) are not written in .iv file. In this case (and if you need to save this information), use the corresponding property node (for instance, replace the PbDomain object with the PoDomain property node).

(FOLD_NODE_WRITE_FORMAT by default).

static void PoBase::setTextType ( TextType  type  )  [static]

Sets the type of text used.

Possible values :

type = SO_ANNO_TEXT3 by default.

void PoBase::setUpdateMethod ( UpdateMethodType  type  )  [inline]

Sets scene graph update method.

UPDATE_METHOD_IMMEDIATE indicates that each time a Graph Master or 3D Data Master object is modified, the scene graph must be updated. UPDATE_METHOD_ON_ACTION indicates that the scene graph does not have to be modified when a Graph Master or 3D Data Master object changes; the scene graph being modified when it is necessary (before a rendering action for instance). The faster method is UPDATE_METHOD_ON_ACTION and is particularly useful for representations where more than one field has to be set to obtain the definitive representation, because with the other method, each time a field is changed, the representation is rebuilt. (UPDATE_METHOD_ON_ACTION by default).

static void PoBase::setVRML2Mode ( SbBool  flag  )  [static]

Set the VRML2 mode.

This mode allows the user to configure MeshViz to prepare the conversion in VRML2 format with the best possible result. In this way, MeshViz realizes some particular actions :

  • Whatever text type specified by the method setTextType(), all texts used are SoAsciiText in order to minimize VRML2 file size (other text types are tessellated during a VRML2 conversion which increases VRML2 file size).
  • For all materials generated by MeshViz where the light model is SoLightModel::BASE_COLOR (There is no equivalence in VRML2), the emissive component is set at the same value as the diffuse components (By this way, we simulate SoLightModel::BASE_COLOR light model).
  • A Z Offset is added for all coplanar faces generated by MeshViz representation (All these representations are planar as for instance legends so the SoAnnotation node solves their problems, but there is no equivalence in VRML2).

This mode is inactive by default.

void PoBase::touchKit (  ) 

Indicates the node kit is modified.

(Simulates a change).


The documentation for this class was generated from the following file:

Open Inventor Toolkit reference manual, generated on 4 Sep 2023
Copyright © Thermo Fisher Scientific All rights reserved.
https://www.openinventor.com/