Coin3D is Free Software, published under the BSD 3-clause license. |
https://bitbucket.org/Coin3D/ http://www.kongsberg.com/kogt/ |
The SoVectorizeAction class is the base class for vectorizing Coin scene graphs. More...
#include <Inventor/annex/HardCopy/SoVectorizeAction.h>
Public Types | |
enum | DimensionUnit { INCH, MM, METER } |
enum | Orientation { PORTRAIT, LANDSCAPE } |
enum | PageSize { A0 = 0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10 } |
enum | PointStyle { CIRCLE, SQUARE } |
enum | ColorTranslationMethod { REVERSE_ONLY_BLACK_AND_WHITE, AS_IS, REVERSE } |
enum | JoinLineStyle { NO_JOIN, MITERED_JOIN, MITERED_BEVELED_JOIN, BEVELED_JOIN, TRIANGULAR_JOIN, ROUNDED_JOIN } |
enum | EndLineStyle { BUTT_END, SQUARE_END, TRIANGULAR_END, ROUND_END } |
enum | HLHSRMode { NO_HLHSR, HLHSR_SIMPLE_PAINTER, HLHSR_PAINTER, HLHSR_PAINTER_SURFACE_REMOVAL, HIDDEN_LINES_REMOVAL } |
Public Types inherited from SoCallbackAction | |
enum | Response { CONTINUE, ABORT, PRUNE } |
typedef Response | SoCallbackActionCB(void *userdata, SoCallbackAction *action, const SoNode *node) |
Public Types inherited from SoAction | |
enum | AppliedCode { NODE = 0, PATH = 1, PATH_LIST = 2 } |
enum | PathCode { NO_PATH = 0, IN_PATH = 1, BELOW_PATH = 2, OFF_PATH = 3 } |
Public Member Functions | |
virtual SoType | getTypeId (void) const |
SoVectorizeAction (void) | |
virtual | ~SoVectorizeAction () |
SoVectorOutput * | getOutput (void) const |
virtual void | apply (SoNode *node) |
virtual void | apply (SoPath *path) |
virtual void | apply (const SoPathList &pathlist, SbBool obeysrules=FALSE) |
void | beginStandardPage (const PageSize &pagesize, const float border=10.0f) |
virtual void | beginPage (const SbVec2f &startpagepos, const SbVec2f &pagesize, DimensionUnit u=MM) |
virtual void | endPage (void) |
virtual void | calibrate (const SbViewportRegion &vp) |
virtual void | beginViewport (const SbVec2f &startpos=SbVec2f(-1.0f, 1.0f), const SbVec2f &size=SbVec2f(-1.0f, -1.0f), DimensionUnit u=MM) |
virtual void | endViewport (void) |
virtual void | setOrientation (Orientation o) |
virtual Orientation | getOrientation (void) const |
virtual void | setBackgroundColor (SbBool bg, const SbColor &col=SbColor(0.0f, 0.0f, 0.0f)) |
virtual SbBool | getBackgroundColor (SbColor &col) const |
virtual void | setNominalWidth (float w, DimensionUnit u=MM) |
virtual float | getNominalWidth (DimensionUnit u=MM) const |
virtual void | setPixelImageSize (float w, DimensionUnit u=MM) |
virtual float | getPixelImageSize (DimensionUnit u=MM) const |
virtual void | setPointStyle (const PointStyle &style) |
virtual PointStyle | getPointStyle (void) const |
const SbVec2f & | getPageStartpos (void) const |
const SbVec2f & | getPageSize (void) const |
virtual void | setDrawingDimensions (const SbVec2f &d, DimensionUnit u=MM) |
virtual void | setDrawingDimensions (float w, float h, DimensionUnit u=MM) |
virtual SbVec2f | getDrawingDimensions (DimensionUnit u=MM) const |
virtual void | setStartPosition (const SbVec2f &p, DimensionUnit u=MM) |
virtual void | setStartPosition (float x, float y, DimensionUnit u=MM) |
virtual SbVec2f | getStartPosition (DimensionUnit u=MM) const |
virtual void | setColorTranslationMethod (ColorTranslationMethod method) |
virtual ColorTranslationMethod | getColorTranslationMethod (void) const |
virtual void | setLineEndStyle (EndLineStyle style) |
virtual EndLineStyle | getLineEndStyle (void) const |
virtual void | setLineJoinsStyle (JoinLineStyle style) |
virtual JoinLineStyle | getLineJoinsStyle (void) const |
virtual void | setHLHSRMode (HLHSRMode mode) |
HLHSRMode | getHLHSRMode (void) const |
virtual void | setBorder (float width) |
virtual void | setBorder (float width, SbColor color) |
virtual void | setMiterLimit (float limit) |
virtual float | getMiterLimit (void) const |
virtual void | setPenDescription (int num_pens, const SbColor *colors=0, const float *widths=0, DimensionUnit u=MM) |
virtual void | getPenDescription (SbColor *colors, float *widths, DimensionUnit u=MM) const |
virtual int | getPenNum (void) const |
virtual void | setColorPriority (SbBool priority) |
virtual SbBool | getColorPriority (void) const |
virtual void | enableLighting (SbBool flag) |
SbBool | isLightingEnabled (void) const |
Public Member Functions inherited from SoCallbackAction | |
SoCallbackAction (void) | |
SoCallbackAction (const SbViewportRegion &vp) | |
virtual | ~SoCallbackAction (void) |
void | setViewportRegion (const SbViewportRegion &vp) |
void | addPreCallback (const SoType type, SoCallbackActionCB *cb, void *userdata) |
void | addPostCallback (const SoType type, SoCallbackActionCB *cb, void *userdata) |
void | addPreTailCallback (SoCallbackActionCB *cb, void *userdata) |
void | addPostTailCallback (SoCallbackActionCB *cb, void *userdata) |
void | addTriangleCallback (const SoType type, SoTriangleCB *cb, void *userdata) |
void | addLineSegmentCallback (const SoType type, SoLineSegmentCB *cb, void *userdata) |
void | addPointCallback (const SoType type, SoPointCB *cb, void *userdata) |
SoDecimationTypeElement::Type | getDecimationType (void) const |
float | getDecimationPercentage (void) const |
float | getComplexity (void) const |
SoComplexity::Type | getComplexityType (void) const |
int32_t | getNumCoordinates (void) const |
const SbVec3f & | getCoordinate3 (const int index) const |
const SbVec4f & | getCoordinate4 (const int index) const |
SoDrawStyle::Style | getDrawStyle (void) const |
unsigned short | getLinePattern (void) const |
float | getLineWidth (void) const |
float | getPointSize (void) const |
const SbName & | getFontName (void) const |
float | getFontSize (void) const |
SoLightModel::Model | getLightModel (void) const |
const SbVec3f & | getLightAttenuation (void) const |
void | getMaterial (SbColor &ambient, SbColor &diffuse, SbColor &specular, SbColor &emission, float &shininess, float &transparency, const int index=0) const |
SoMaterialBinding::Binding | getMaterialBinding (void) const |
uint32_t | getNumNormals (void) const |
const SbVec3f & | getNormal (const int index) const |
SoNormalBinding::Binding | getNormalBinding (void) const |
int32_t | getNumProfileCoordinates (void) const |
const SbVec2f & | getProfileCoordinate2 (const int index) const |
const SbVec3f & | getProfileCoordinate3 (const int index) const |
const SoNodeList & | getProfile (void) const |
SoShapeHints::VertexOrdering | getVertexOrdering (void) const |
SoShapeHints::ShapeType | getShapeType (void) const |
SoShapeHints::FaceType | getFaceType (void) const |
float | getCreaseAngle (void) const |
int32_t | getNumTextureCoordinates (void) const |
const SbVec2f & | getTextureCoordinate2 (const int index) const |
const SbVec3f & | getTextureCoordinate3 (const int index) const |
const SbVec4f & | getTextureCoordinate4 (const int index) const |
SoTextureCoordinateBinding::Binding | getTextureCoordinateBinding (void) const |
const SbColor & | getTextureBlendColor (void) const |
const unsigned char * | getTextureImage (SbVec2s &size, int &numcomps) const |
const unsigned char * | getTextureImage (SbVec3s &size, int &numcomps) const |
const SbMatrix & | getTextureMatrix (void) const |
SoTexture2::Model | getTextureModel (void) const |
SoTexture2::Wrap | getTextureWrapS (void) const |
SoTexture2::Wrap | getTextureWrapT (void) const |
SoTexture2::Wrap | getTextureWrapR (void) const |
const SbMatrix & | getModelMatrix (void) const |
SoUnits::Units | getUnits (void) const |
float | getFocalDistance (void) const |
const SbMatrix & | getProjectionMatrix (void) const |
const SbMatrix & | getViewingMatrix (void) const |
const SbViewVolume & | getViewVolume (void) const |
const SbViewportRegion & | getViewportRegion (void) const |
SoPickStyle::Style | getPickStyle (void) const |
int32_t | getSwitch (void) const |
Response | getCurrentResponse (void) const |
void | invokePreCallbacks (const SoNode *const node) |
void | invokePostCallbacks (const SoNode *const node) |
void | invokeTriangleCallbacks (const SoShape *const shape, const SoPrimitiveVertex *const v1, const SoPrimitiveVertex *const v2, const SoPrimitiveVertex *const v3) |
void | invokeLineSegmentCallbacks (const SoShape *const shape, const SoPrimitiveVertex *const v1, const SoPrimitiveVertex *const v2) |
void | invokePointCallbacks (const SoShape *const shape, const SoPrimitiveVertex *const v) |
SbBool | shouldGeneratePrimitives (const SoShape *shape) const |
virtual SoNode * | getCurPathTail (void) |
void | setCurrentNode (SoNode *const node) |
void | setCallbackAll (SbBool callbackall) |
SbBool | isCallbackAll (void) const |
Public Member Functions inherited from SoAction | |
virtual | ~SoAction (void) |
virtual SbBool | isOfType (SoType type) const |
void | apply (SoAction *beingApplied) |
virtual void | invalidateState (void) |
AppliedCode | getWhatAppliedTo (void) const |
SoNode * | getNodeAppliedTo (void) const |
SoPath * | getPathAppliedTo (void) const |
const SoPathList * | getPathListAppliedTo (void) const |
const SoPathList * | getOriginalPathListAppliedTo (void) const |
SbBool | isLastPathListAppliedTo (void) const |
PathCode | getPathCode (int &numindices, const int *&indices) |
void | traverse (SoNode *const node) |
SbBool | hasTerminated (void) const |
const SoPath * | getCurPath (void) |
SoState * | getState (void) const |
PathCode | getCurPathCode (void) const |
void | usePathCode (int &numindices, const int *&indices) |
void | pushCurPath (const int childindex, SoNode *node=NULL) |
void | popCurPath (const PathCode prevpathcode) |
void | pushCurPath (void) |
void | popPushCurPath (const int childindex, SoNode *node=NULL) |
void | popCurPath (void) |
void | switchToPathTraversal (SoPath *path) |
void | switchToNodeTraversal (SoNode *node) |
Static Public Member Functions | |
static SoType | getClassTypeId (void) |
static void | addMethod (const SoType type, SoActionMethod method) |
static void | enableElement (const SoType type, const int stackindex) |
static void | initClass (void) |
Static Public Member Functions inherited from SoCallbackAction | |
static SoType | getClassTypeId (void) |
static void | addMethod (const SoType type, SoActionMethod method) |
static void | enableElement (const SoType type, const int stackindex) |
static void | initClass (void) |
Static Public Member Functions inherited from SoAction | |
static void | initClass (void) |
static void | initClasses (void) |
static SoType | getClassTypeId (void) |
static void | nullAction (SoAction *action, SoNode *node) |
Protected Member Functions | |
virtual const SoEnabledElementsList & | getEnabledElements (void) const |
void | setOutput (SoVectorOutput *output) |
virtual float | pixelsToUnits (const int pixels) |
virtual void | printHeader (void) const =0 |
virtual void | printFooter (void) const |
virtual void | printBackground (void) const |
virtual void | printItem (const SoVectorizeItem *item) const =0 |
virtual void | printViewport (void) const |
SbVec2f | getRotatedViewportStartpos (void) const |
SbVec2f | getRotatedViewportSize (void) const |
const SbBSPTree & | getBSPTree (void) const |
Protected Member Functions inherited from SoCallbackAction | |
virtual void | beginTraversal (SoNode *node) |
Protected Member Functions inherited from SoAction | |
SoAction (void) | |
virtual void | endTraversal (SoNode *node) |
void | setTerminated (const SbBool flag) |
virtual SbBool | shouldCompactPathList (void) const |
Static Protected Member Functions | |
static SoEnabledElementsList * | getClassEnabledElements (void) |
static SoActionMethodList * | getClassActionMethods (void) |
Static Protected Member Functions inherited from SoCallbackAction | |
static SoEnabledElementsList * | getClassEnabledElements (void) |
static SoActionMethodList * | getClassActionMethods (void) |
Static Protected Member Functions inherited from SoAction | |
static SoEnabledElementsList * | getClassEnabledElements (void) |
static SoActionMethodList * | getClassActionMethods (void) |
Additional Inherited Members | |
Protected Attributes inherited from SoAction | |
SoState * | state |
SoActionMethodList * | traversalMethods |
The SoVectorizeAction class is the base class for vectorizing Coin scene graphs.
SoVectorizeAction will traverse the scene graph and convert all supported geometry into vectorized data. Subclasses can then use this data to produce vector files of different formats.
Currently supported geometry:
The geometry will be shaded based on the OpenGL shading model, so lights and material will affect the geometry in the same way as in a standard Coin viewer. Please note that neither transparency nor texture mapping is supported yet.
The unit used by the scene graph.
The drawing orientation.
SoVectorizeAction::SoVectorizeAction | ( | void | ) |
Default constructor.
|
virtual |
Destructor.
|
virtual |
Returns the type identification of an action derived from a class inheriting SoAction. This is used for run-time type checking and "downward" casting.
Usage example:
For application programmers wanting to extend the library with new actions: this method needs to be overridden in all subclasses. This is typically done as part of setting up the full type system for extension classes, which is usually accomplished by using the pre-defined macros available through Inventor/nodes/SoSubAction.h: SO_ACTION_SOURCE, SO_ACTION_INIT_CLASS and SO_ACTION_CONSTRUCTOR.
For more information on writing Coin extensions, see the SoAction class documentation.
Returns the actual type id of an object derived from a class inheriting SoAction. Needs to be overridden in all subclasses.
Reimplemented from SoCallbackAction.
Reimplemented in SoVectorizePSAction.
|
static |
This API member is considered internal to the library, as it is not likely to be of interest to the application programmer.
This API member is considered internal to the library, as it is not likely to be of interest to the application programmer.
|
protectedvirtual |
Returns a list of the elements used by action instances of this class upon traversal operations.
Reimplemented from SoCallbackAction.
Reimplemented in SoVectorizePSAction.
SoVectorOutput * SoVectorizeAction::getOutput | ( | void | ) | const |
Returns the SoVectorOutput class used by this action. The output is written to stdout by default, but you can change this by using SoVectorOutput::openFile().
|
virtual |
Applies the action to the scene graph rooted at root.
Note that you should not apply an action to a node with a zero reference count. The behavior in that case is undefined.
Reimplemented from SoAction.
|
virtual |
Applies the action to the parts of the graph defined by path.
Note that an SoPath will also contain all nodes that may influence e.g. geometry nodes in the path. So for instance applying an SoGLRenderAction on an SoPath will render that path as expected in the view, where geometry will get its materials, textures, and other appearance settings correctly.
If the path ends in an SoGroup node, the action will also traverse the tail node's children.
Reimplemented from SoAction.
|
virtual |
Applies action to the graphs defined by pathlist. If obeysrules is set to TRUE
, pathlist must obey the following four conditions (which is the case for path lists returned from search actions for non-group nodes and path lists returned from picking actions):
All paths must start at the same head node. All paths must be sorted in traversal order. The paths must be unique. No path can continue through the end point of another path.
Reimplemented from SoAction.
|
virtual |
Begin writing a page. This will write file header information and print background (if enabled) and border.
|
virtual |
End page. This will write all remaining geometry, and write the file footer.
|
virtual |
Will calibrate pixel based attributes (font size, line width, points size, etc) so that it will match OpenGL rendering done in vp.
|
virtual |
Begin writing a viewport inside the current page.
|
virtual |
End writing a viewport. This will flush all vector items.
|
virtual |
Sets the orientation to o.
|
virtual |
Returns the current orientation.
|
virtual |
Sets the background color. If bg is FALSE, the background will not be cleared before rendering. If bg is TRUE, the background will be cleared to col before in beginPage().
|
virtual |
Returns if the background will be cleared or not. When this function returns TRUE, col will be set to the background color.
|
virtual |
Sets how to convert pixel based attributes (line width and point size) to vector sizes. By default 1 pixel equals 0.35 mm.
|
virtual |
Sets how the images and 2D fonts are converted. By default 1 pixel equals 0.35 mm.
|
virtual |
Returns the pixel image size.
|
virtual |
Sets the points rendering style. Default style is CIRCLE.
|
virtual |
Returns the points rendering style.
const SbVec2f & SoVectorizeAction::getPageStartpos | ( | void | ) | const |
Returns the current page startpos.
const SbVec2f & SoVectorizeAction::getPageSize | ( | void | ) | const |
Returns the current page size.
|
virtual |
Sets the drawing dimensions. You can use this and setStartPosition() instead of using beginViewport(). Provided for TGS OIV compatibility.
|
virtual |
Returns the current drawing dimensions.
|
virtual |
Sets the drawing staring position. You can use this and setDrawingDimensions() instead of using beginViewport(). Provided for TGS OIV compatibility.
|
virtual |
Returns the current drawing starting position.
|
virtual |
Not implemented yet. Provided for TGS OIV compatibility.
|
virtual |
Not implemented yet. Provided for TGS OIV compatibility.
|
virtual |
Not implemented yet. Provided for TGS OIV compatibility.
|
virtual |
Not implemented yet. Provided for TGS OIV compatibility.
|
virtual |
Not implemented yet. Provided for TGS OIV compatibility.
|
virtual |
Not implemented yet. Provided for TGS OIV compatibility.
|
virtual |
Not implemented yet. Provided for TGS OIV compatibility.
SoVectorizeAction::HLHSRMode SoVectorizeAction::getHLHSRMode | ( | void | ) | const |
Not implemented yet. Provided for TGS OIV compatibility.
|
virtual |
Not implemented yet. Provided for TGS OIV compatibility.
|
virtual |
Not implemented yet. Provided for TGS OIV compatibility.
|
virtual |
Not implemented yet. Provided for TGS OIV compatibility.
|
virtual |
Not implemented yet. Provided for TGS OIV compatibility.
|
virtual |
Not implemented yet. Provided for TGS OIV compatibility.
|
virtual |
Not implemented yet. Provided for TGS OIV compatibility.
|
virtual |
Not implemented yet. Provided for TGS OIV compatibility.
|
virtual |
Not implemented yet. Provided for TGS OIV compatibility.
|
virtual |
Not implemented yet. Provided for TGS OIV compatibility.
SbBool SoVectorizeAction::isLightingEnabled | ( | void | ) | const |
Not implemented yet. Provided for TGS OIV compatibility.
|
protected |
Should be used by subclasses to set the SoVectorOutput instance that should be used.
|
protectedvirtual |
Converts pixels to normalized units.
|
protectedpure virtual |
This API member is considered internal to the library, as it is not likely to be of interest to the application programmer.
Implemented in SoVectorizePSAction.
|
protectedvirtual |
This API member is considered internal to the library, as it is not likely to be of interest to the application programmer.
Should be overridden by subclasses to print file footer data.
Reimplemented in SoVectorizePSAction.
|
protectedvirtual |
This API member is considered internal to the library, as it is not likely to be of interest to the application programmer.
Should be overridden by subclasses to print background data.
Reimplemented in SoVectorizePSAction.
|
protectedpure virtual |
This API member is considered internal to the library, as it is not likely to be of interest to the application programmer.
Should be overridden by subclasses to print an item.
Implemented in SoVectorizePSAction.
|
protectedvirtual |
This API member is considered internal to the library, as it is not likely to be of interest to the application programmer.
Should be overridden by subclasses to set up the current page viewport.
Reimplemented in SoVectorizePSAction.
|
protected |
Convenience method for subclasses. Will return the viewport startpos, taking the orientation into account
|
protected |
Convenience method for subclasses. Will return the viewport size, taking the orientation into account
|
protected |
Returns the bps tree used to store triangle and line vertices.