Click or drag to resize
SoVectorizeAction Class

Abstract class for vectorizing a scene graph to a file.

Inheritance Hierarchy

Namespace: OIV.HardCopy
Assembly: OIV.HardCopy (in OIV.HardCopy.dll) Version: 2024.1.0.0 (2024.1.0)
Syntax
public abstract class SoVectorizeAction : SoAction

The SoVectorizeAction type exposes the following members.

Methods
  NameDescription
Public methodApply(SoNode)

Initiates an action on the graph specified by a node.

(Overrides SoActionApply(SoNode).)
Public methodApply(SoPath)

Initiates an action on the graph specified by a path.

(Overrides SoActionApply(SoPath).)
Public methodApply(SoPathList)
Calls Apply(pathList, false).
Public methodApply(SoPathList, Boolean)

Initiates an action on the graph specified by list of paths.

(Overrides SoActionApply(SoPathList, Boolean).)
Public methodBeginPage(SbVec2f, SbVec2f)
Calls BeginPage(startPagePosition, pageSize, OIV.HardCopy.SoVectorizeAction.DimensionUnits( .SoVectorizeAction.MM )).
Public methodBeginPage(SbVec2f, SbVec2f, SoVectorizeActionDimensionUnits)

Begin a new page.

Public methodClearApplyResult

When applied, an action may reference nodes or create objects (e.g.

(Inherited from SoAction.)
Public methodStatic memberEnableElement
Public methodEnableElements Obsolete.
Returns the list of enabled elements for a given action subclass.
(Inherited from SoAction.)
Public methodEnableLighting

Allows the user to enable/disable the taking into account of lights in the scene graph during the computation of the vectorized file.

Public methodEndPage

Ends a page.

Public methodEquals
Determines whether the specified Object is equal to the current Object.
(Inherited from Object.)
Public methodForwardTraversal(SoNode)

Traverse a node that is not part of the current scenegraph.

(Inherited from SoAction.)
Public methodForwardTraversal(SoPath)

Traverse a path that is not part of the current scenegraph.

(Inherited from SoAction.)
Public methodGetBackgroundColor

Returns the color of the background.

Public methodGetBorder

Returns the color and the width of the border of the clipping limits.

Public methodGetColorPriority

Returns the color priority.

Public methodGetColorTranslationMethod

Returns the method for choosing the color of the drawing on the sheet of paper.

Public methodGetContinueActionInBranchFlag

This function indicates if the action must stop in the current branch.

(Inherited from SoAction.)
Public methodGetCurPath

Returns the path accumulated during traversal, i.e., the chain of nodes from the root of the traversed graph to the current node being traversed.

(Inherited from SoAction.)
Public methodGetDistribMode

Returns the distribution mode of this action across a cluster (ScaleViz-Cluster only).

(Inherited from SoAction.)
Public methodGetDrawingDimensions
Calls GetDrawingDimensions(OIV.HardCopy.SoVectorizeAction.DimensionUnits( .SoVectorizeAction.MM )).
Public methodGetDrawingDimensions(SoVectorizeActionDimensionUnits)

Returns the dimensions of the drawing on the sheet of paper.

Public methodGetHashCode
Overrides GetHashCode().
(Inherited from SoNetBase.)
Public methodGetHLHSRMode

Returns the Hidden Line and Hidden Surface Removal mode.

Public methodGetHLHSRRasterCaching

Returns the raster caching flag.

Public methodGetHLHSRRasterQuality

Returns the raster image quality value.

Public methodGetLineEndStyle

Returns the style for line ends.

Public methodGetLineJoinsStyle

Returns the style for line joins.

Public methodGetLineOffset

Returns line offset.

Public methodGetLinePatternSize
Calls GetLinePatternSize(OIV.HardCopy.SoVectorizeAction.DimensionUnits( .SoVectorizeAction.MM )).
Public methodGetLinePatternSize(SoVectorizeActionDimensionUnits)

Returns the line pattern scale factor.

Public methodGetMarkerOffset

Returns marker offset.

Public methodGetMiterLimit

Returns the miter limit.

Public methodGetNodeAppliedTo

Returns the node the action is being applied to.

(Inherited from SoAction.)
Public methodGetNominalWidth
Calls GetNominalWidth(OIV.HardCopy.SoVectorizeAction.DimensionUnits( .SoVectorizeAction.MM )).
Public methodGetNominalWidth(SoVectorizeActionDimensionUnits)

Returns the nominal width.

Public methodGetOrientation

Returns the orientation of the drawing on the sheet of paper.

Public methodGetOriginalPathListAppliedTo

Returns the original path list the action is being applied to.

(Inherited from SoAction.)
Public methodGetPathAppliedTo

Returns the path the action is being applied to.

(Inherited from SoAction.)
Public methodGetPathCode

Returns path code based on where current node (the node at the end of the current path) lies with respect to the path(s) the action is being applied to.

(Inherited from SoAction.)
Public methodGetPathListAppliedTo

Returns the path list the action is being applied to.

(Inherited from SoAction.)
Public methodGetPenDescription(SbColor, Single)
Calls GetPenDescription(colors, widths, OIV.HardCopy.SoVectorizeAction.DimensionUnits( .SoVectorizeAction.MM )).
Public methodGetPenDescription(SbColor, Single, SoVectorizeActionDimensionUnits)

Returns the description of the color and the width of each pen.

Public methodGetPenNum

Returns the number of pens.

Public methodGetPipeId

Gets pipe identifier in the range [1..N] associated to this render action while running a ScaleViz Multipipe configuration.

(Inherited from SoAction.)
Public methodGetPixelImageSize
Calls GetPixelImageSize(OIV.HardCopy.SoVectorizeAction.DimensionUnits( .SoVectorizeAction.MM )).
Public methodGetPixelImageSize(SoVectorizeActionDimensionUnits)

Returns the size of a pixel.

Public methodGetPolygonOffset

Returns polygon offset.

Public methodGetSceneManager

Return the OIV.Inventor.SoSceneManager associated with this action.

(Inherited from SoAction.)
Public methodGetShadeModel

Returns the shade model.

Public methodGetStartPosition
Calls GetStartPosition(OIV.HardCopy.SoVectorizeAction.DimensionUnits( .SoVectorizeAction.MM )).
Public methodGetStartPosition(SoVectorizeActionDimensionUnits)

Returns the start position of the drawing on the sheet of paper.

Public methodGetState

Gets the state from the action.

(Inherited from SoAction.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodGetVectorOutput

Output access method.

Public methodGetWhatAppliedTo

Returns code indicating what action is being applied to.

(Inherited from SoAction.)
Public methodHasTerminated

Returns true if the traversal has reached a termination condition.

(Inherited from SoAction.)
Public methodInvalidateState

Invalidates the current traversal state in the action, forcing it to be recreated when the action is next applied.

(Inherited from SoAction.)
Public methodIsBeingApplied

Returns true if this action is currently being applied.

(Inherited from SoAction.)
Public methodIsLastPathListAppliedTo

Returns true if the current list is the last one from the original.

(Inherited from SoAction.)
Public methodIsLightingEnabled

Returns true if lighting is enabled.

Public methodIsUsingAlternateRep

Returns true if current action is using alternate representations.

(Inherited from SoAction.)
Public methodPostDelayedTraversal

Method called by SoMultiPassManager after delayed pass traversals.

(Inherited from SoAction.)
Public methodPreDelayedTraversal

Method called by SoMultiPassManager before delayed pass traversals.

(Inherited from SoAction.)
Public methodResetContinueActionInBranchFlag

This function resets the continue action flag.

(Inherited from SoAction.)
Public methodSetBackgroundColor(Boolean)

Enables or disables the background and sets its color to white.

Public methodSetBackgroundColor(Boolean, SbColor)

Sets the color of the background.

Public methodSetBorder(Single)

Sets the width of the border of the clipping limits.

Public methodSetBorder(Single, SbColor)

Sets the color and the width of the border of the clipping limits.

Public methodSetColorPriority

Sets the color priority flag.

Public methodSetColorTranslationMethod

Sets the method for choosing the color of the drawing on the sheet of paper.

Public methodSetDrawingDimensions(SbVec2f)
Calls SetDrawingDimensions(d, OIV.HardCopy.SoVectorizeAction.DimensionUnits( .SoVectorizeAction.MM )).
Public methodSetDrawingDimensions(Single, Single)
Calls SetDrawingDimensions(w, h, OIV.HardCopy.SoVectorizeAction.DimensionUnits( .SoVectorizeAction.MM )).
Public methodSetDrawingDimensions(SbVec2f, SoVectorizeActionDimensionUnits)

Sets the dimensions of the drawing on the sheet of paper.

Public methodSetDrawingDimensions(Single, Single, SoVectorizeActionDimensionUnits)

Sets the dimensions of the drawing on the sheet of paper.

Public methodSetHLHSRMode

Sets the Hidden Line and Hidden Surface Removal mode.

Public methodSetHLHSRRasterCaching

Enables/disables the use of OpenGL display lists to generate the raster image with the OIV.HardCopy.SoVectorizeAction.HLHSRModes.HLHSR_RASTER algorithm.

Public methodSetHLHSRRasterQuality

Sets the quality of the raster image generated to vectorize visible primitives with the OIV.HardCopy.SoVectorizeAction.HLHSRModes.HLHSR_RASTER algorithm.

Public methodSetLineEndStyle

Sets the style for line ends.

Public methodSetLineJoinsStyle

Sets the style for line joins.

Public methodSetLineOffset

Sets line offset.

Public methodSetLinePatternSize(Single)
Calls SetLinePatternSize(w, OIV.HardCopy.SoVectorizeAction.DimensionUnits( .SoVectorizeAction.MM )).
Public methodSetLinePatternSize(Single, SoVectorizeActionDimensionUnits)

Sets the line pattern size, i.e., the association between printer pattern (16 printer "points") and the size of the line pattern on the hard copy output.

Public methodSetMarkerOffset

Sets marker offset.

Public methodSetMiterLimit

Sets the miter limit.

Public methodSetNominalWidth(Single)
Calls SetNominalWidth(w, OIV.HardCopy.SoVectorizeAction.DimensionUnits( .SoVectorizeAction.MM )).
Public methodSetNominalWidth(Single, SoVectorizeActionDimensionUnits)

Sets the nominal width.

Public methodSetOrientation

Sets the orientation of the drawing on the sheet of paper.

Public methodSetPenDescription
Calls SetPenDescription((cli.array<OIV.Inventor.SbColor>^)nullptr, (cli.array<System.Single>^)nullptr, OIV.HardCopy.SoVectorizeAction.DimensionUnits( .SoVectorizeAction.MM )).
Public methodSetPenDescription(SbColor)
Calls SetPenDescription(colors, (cli.array<System.Single>^)nullptr, OIV.HardCopy.SoVectorizeAction.DimensionUnits( .SoVectorizeAction.MM )).
Public methodSetPenDescription(SbColor, Single)
Calls SetPenDescription(colors, widths, OIV.HardCopy.SoVectorizeAction.DimensionUnits( .SoVectorizeAction.MM )).
Public methodSetPenDescription(SbColor, Single, SoVectorizeActionDimensionUnits)

Sets the description of the color and the width of each pen.

Public methodSetPipeId

Sets pipe identifier in the range [1..N] associated to this render action while running a ScaleViz Multipipe configuration.

(Inherited from SoAction.)
Public methodSetPixelImageSize(Single)
Calls SetPixelImageSize(w, OIV.HardCopy.SoVectorizeAction.DimensionUnits( .SoVectorizeAction.MM )).
Public methodSetPixelImageSize(Single, SoVectorizeActionDimensionUnits)

Sets the size of a pixel for image primitives.

Public methodSetPolygonOffset

Method to set the Z offset to be applied to polygons in normalized device coordinates (-1 to 1 space).

Public methodSetSceneManager

Set the scene manager associated with this action (if any ).

(Inherited from SoAction.)
Public methodSetShadeModel
Public methodSetStartPosition(SbVec2f)
Calls SetStartPosition(p, OIV.HardCopy.SoVectorizeAction.DimensionUnits( .SoVectorizeAction.MM )).
Public methodSetStartPosition(Single, Single)
Calls SetStartPosition(x, y, OIV.HardCopy.SoVectorizeAction.DimensionUnits( .SoVectorizeAction.MM )).
Public methodSetStartPosition(SbVec2f, SoVectorizeActionDimensionUnits)

Sets the start position of the drawing on the sheet of paper.

Public methodSetStartPosition(Single, Single, SoVectorizeActionDimensionUnits)

Sets the start position of the drawing on the sheet of paper.

Public methodSetUpState

Creates state if it is NULL or it is no longer valid because new elements have been enabled since it was created.

(Inherited from SoAction.)
Public methodStopActionInBranch

This function stops the action in the current Scene Graph branch.

(Inherited from SoAction.)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Public methodTraverse

Does traversal of a graph rooted by a node.

(Inherited from SoAction.)
Public methodUseAlternateRep

Tell the action to use alternate representations during traversal when available.

(Inherited from SoAction.)
Top
Remarks

This class is an abstract class for all vectorize actions. The supported subclasses are OIV.HardCopy.SoVectorizeCGMAction, OIV.HardCopy.SoVectorizeGDIAction (Win32 only), OIV.HardCopy.SoVectorizeHPGLAction, and OIV.HardCopy.SoVectorizePSAction. As with OIV.Inventor.Actions.SoWriteAction, these subclasses contain an OIV.HardCopy.SoVectorOutput instance (or derived) which writes by default to standard output. Methods on OIV.HardCopy.SoVectorOutput can be called to specify what file to write to.

Default values:

Line end styles description:

Force black and white rendering: It is possible to force black and white rendering by setting the environment variable OIV_HC_BLACK_AND_WHITE (see OIV.Inventor.SoPreferences). In this mode all non-white colors are set to full black. This is useful because selecting "black & white" in the printer setup dialog normally produces gray scale rendering and some colors may be difficult to see. This option is applied after color translation (e.g. REVERSE_ONLY_BLACK_AND_WHITE). The variable must be set before creating an instance of the class.

Performance: The HLHSR modes OIV.HardCopy.SoVectorizeAction.HLHSRModes.NO_HLHSR and OIV.HardCopy.SoVectorizeAction.HLHSRModes.HLHSR_SIMPLE_PAINTER are generally quite fast and should be used whenever possible (when the resulting image quality is acceptable or when a quick preview is desired). The other HLHSR modes involve computations that are very CPU intensive. In other words, the time required to produce an image depends almost entirely on the machine's processor speed. OIV.HardCopy.SoVectorizeAction.HLHSRModes.HLHSR_PAINTER_SURFACE_REMOVAL has a very small dependency on the graphics board (because it does one offscreen render) whereas OIV.HardCopy.SoVectorizeAction.HLHSRModes.HLHSR_RASTER performance is completely linked to the graphics board performance. The other modes are not affected by the graphics board performance. One implication of the CPU dependency is that the release libraries will generally be much faster than the debug libraries (because of compiler optimizations). Benchmarking should always be done using the release libraries.

Performance is directly related to the number of primitives (individual faces and line segments, not the number of nodes in the scene graph) and the number of intersecting or difficult-to-sort primitives. Performance decreases rapidly (worse than linear) for large numbers of primitives. Therefore algorithms that can reduce the number of primitives may be needed for large scenes (see, for example, OIV.Inventor.Actions.SoSimplifyAction).

In some cases setting a small polygon offset can improve performance by reducing interference between faces and lines (used only with the Painter's algorithm HLHSR modes).

OIV.HardCopy.SoVectorizeAction.HLHSRModes.HIDDEN_LINES_REMOVAL mode is very slow and should not be used unless very precise output is required.

Generally OIV.HardCopy.SoVectorizeAction.HLHSRModes.HLHSR_RASTER mode gives the best combination of performance and image quality.

Limitations

See Also