Click or drag to resize
SoVectorizeGDIAction Class

Vectorize a scene graph to MS-Windows GDI formats.

Inheritance Hierarchy
SystemObject
  OIV.InventorSoNetBase
    OIV.Inventor.ActionsSoAction
      OIV.HardCopySoVectorizeAction
        OIV.HardCopySoVectorizeGDIAction

Namespace: OIV.HardCopy
Assembly: OIV.HardCopy (in OIV.HardCopy.dll) Version: 2023.1.3.0 (2023.1.3)
Syntax
public class SoVectorizeGDIAction : SoVectorizeAction

The SoVectorizeGDIAction type exposes the following members.

Constructors
  NameDescription
Public methodSoVectorizeGDIAction

Constructor.

Top
Methods
  NameDescription
Public methodApply(SoNode)

Initiates an action on the graph specified by a node.

(Inherited from SoVectorizeAction.)
Public methodApply(SoPath)

Initiates an action on the graph specified by a path.

(Inherited from SoVectorizeAction.)
Public methodApply(SoPathList)
Calls Apply(pathList, false).
(Inherited from SoVectorizeAction.)
Public methodApply(SoPathList, Boolean)

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

(Inherited from SoVectorizeAction.)
Public methodBeginPage(SbVec2f, SbVec2f)
Calls BeginPage(startPagePosition, pageSize, OIV.HardCopy.SoVectorizeAction.DimensionUnits( .SoVectorizeAction.MM )).
(Inherited from SoVectorizeAction.)
Public methodBeginPage(SbVec2f, SbVec2f, SoVectorizeActionDimensionUnits)

Begin a new page.

(Inherited from SoVectorizeAction.)
Public methodClearApplyResult

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

(Inherited from SoAction.)
Public methodStatic memberEnableElement
Public methodEnableElements

(Overrides SoVectorizeActionEnableElements.)
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.

(Inherited from SoVectorizeAction.)
Public methodEndPage

Ends a page.

(Inherited from SoVectorizeAction.)
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.

(Inherited from SoVectorizeAction.)
Public methodGetBorder

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

(Inherited from SoVectorizeAction.)
Public methodGetColorPriority

Returns the color priority.

(Inherited from SoVectorizeAction.)
Public methodGetColorTranslationMethod

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

(Inherited from SoVectorizeAction.)
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 )).
(Inherited from SoVectorizeAction.)
Public methodGetDrawingDimensions(SoVectorizeActionDimensionUnits)

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

(Inherited from SoVectorizeAction.)
Public methodGetGDIVectorOutput

Returns the OIV.HardCopy.SoGDIVectorOutput instance in action.

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

Returns the Hidden Line and Hidden Surface Removal mode.

(Inherited from SoVectorizeAction.)
Public methodGetHLHSRRasterCaching

Returns the raster caching flag.

(Inherited from SoVectorizeAction.)
Public methodGetHLHSRRasterQuality

Returns the raster image quality value.

(Inherited from SoVectorizeAction.)
Public methodGetLineEndStyle

Returns the style for line ends.

(Inherited from SoVectorizeAction.)
Public methodGetLineJoinsStyle

Returns the style for line joins.

(Inherited from SoVectorizeAction.)
Public methodGetLineOffset

Returns line offset.

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

Returns the line pattern scale factor.

(Inherited from SoVectorizeAction.)
Public methodGetMarkerOffset

Returns marker offset.

(Inherited from SoVectorizeAction.)
Public methodGetMiterLimit

Returns the miter limit.

(Inherited from SoVectorizeAction.)
Public methodGetNodeAppliedTo

Returns the node the action is being applied to.

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

Returns the nominal width.

(Inherited from SoVectorizeAction.)
Public methodGetOrientation

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

(Inherited from SoVectorizeAction.)
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 )).
(Inherited from SoVectorizeAction.)
Public methodGetPenDescription(SbColor, Single, SoVectorizeActionDimensionUnits)

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

(Inherited from SoVectorizeAction.)
Public methodGetPenNum

Returns the number of pens.

(Inherited from SoVectorizeAction.)
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 )).
(Inherited from SoVectorizeAction.)
Public methodGetPixelImageSize(SoVectorizeActionDimensionUnits)

Returns the size of a pixel.

(Inherited from SoVectorizeAction.)
Public methodGetPolygonOffset

Returns polygon offset.

(Inherited from SoVectorizeAction.)
Public methodGetSceneManager

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

(Inherited from SoAction.)
Public methodGetShadeModel

Returns the shade model.

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

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

(Inherited from SoVectorizeAction.)
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.

(Inherited from SoVectorizeAction.)
Public methodGetWhatAppliedTo

Returns code indicating what action is being applied to.

(Inherited from SoAction.)
Public methodHasPrinter

Returns true if the printer is set.

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.

(Inherited from SoVectorizeAction.)
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.

(Inherited from SoVectorizeAction.)
Public methodSetBackgroundColor(Boolean, SbColor)

Sets the color of the background.

(Inherited from SoVectorizeAction.)
Public methodSetBorder(Single)

Sets the width of the border of the clipping limits.

(Inherited from SoVectorizeAction.)
Public methodSetBorder(Single, SbColor)

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

(Inherited from SoVectorizeAction.)
Public methodSetColorPriority

Sets the color priority flag.

(Inherited from SoVectorizeAction.)
Public methodSetColorTranslationMethod

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

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

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

(Inherited from SoVectorizeAction.)
Public methodSetDrawingDimensions(Single, Single, SoVectorizeActionDimensionUnits)

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

(Inherited from SoVectorizeAction.)
Public methodSetHLHSRMode

Sets the Hidden Line and Hidden Surface Removal mode.

(Inherited from SoVectorizeAction.)
Public methodSetHLHSRRasterCaching

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

(Inherited from SoVectorizeAction.)
Public methodSetHLHSRRasterQuality

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

(Inherited from SoVectorizeAction.)
Public methodSetLineEndStyle

Sets the style for line ends.

(Inherited from SoVectorizeAction.)
Public methodSetLineJoinsStyle

Sets the style for line joins.

(Inherited from SoVectorizeAction.)
Public methodSetLineOffset

Sets line offset.

(Inherited from SoVectorizeAction.)
Public methodSetLinePatternSize(Single)
Calls SetLinePatternSize(w, OIV.HardCopy.SoVectorizeAction.DimensionUnits( .SoVectorizeAction.MM )).
(Inherited from SoVectorizeAction.)
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.

(Inherited from SoVectorizeAction.)
Public methodSetMarkerOffset

Sets marker offset.

(Inherited from SoVectorizeAction.)
Public methodSetMiterLimit

Sets the miter limit.

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

Sets the nominal width.

(Inherited from SoVectorizeAction.)
Public methodSetOrientation

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

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

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

(Inherited from SoVectorizeAction.)
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 )).
(Inherited from SoVectorizeAction.)
Public methodSetPixelImageSize(Single, SoVectorizeActionDimensionUnits)

Sets the size of a pixel for image primitives.

(Inherited from SoVectorizeAction.)
Public methodSetPolygonOffset

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

(Inherited from SoVectorizeAction.)
Public methodSetSceneManager

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

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

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

(Inherited from SoVectorizeAction.)
Public methodSetStartPosition(Single, Single, SoVectorizeActionDimensionUnits)

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

(Inherited from SoVectorizeAction.)
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

<font color="#0000FF">[Windows only] This class is not implemented on UNIX systems.</font>

This class is used for vectorizing scene graphs to GDI format outputs. It contains an OIV.HardCopy.SoGDIVectorOutput instance which writes by default to the standard output (printer). Methods on the OIV.HardCopy.SoGDIVectorOutput can be called to specify the output type and its attributes (such as the EMF file name).

NOTE: If margin values are not valid for the targeted printer driver, it will be automatically reset to a correct one by the driver without prompting the user that the resulting output may not be exactly what he expected.

Printer Control: By default this class controls the printer (making the StartDoc, StartPage, etc Windows system calls) and defines the logical to device coordinate system mapping. In some cases the application, or application framework (e.g. MFC) may wish to control the printer directly. This is possible by setting the preference variable OIV_HCGDI_APPCONTROL to a non-zero value, using either a config file or the OIV.Inventor.SoPreferences class. When this variable is non-zero, the application is responsible for calling StartDoc, StartPage, EndPage and EndDoc to manage the printer. There are two modes, depending on the value of OIV_HCGDI_APPCONTROL:

  • 1 : This is the most flexible mode. The application is responsible for setting the map mode, logical to device mapping, etc. (in addition to managing the printer). This mode is normally used in MFC applications.

  • 2 : This is the most convenient mode if you only need to manage the printer. OIV.HardCopy.SoVectorizeGDIAction will set up the mapping as usual. This mode is only available in Open Inventor 7.2 and higher.

NOTE: When OIV_HCGDI_APPCONTROL is set, the methods that take parameters in physical units (e.g. millimeters) actually expect the values in current device units. For example, in this mode most applications call the GDI method SetMapMode() with HI_METRIC, meaning that device units are now .01 millimeter (provides better resolution for detailed drawings). As a result methods like OIV.HardCopy.SoVectorizeAction.SetDrawingDimensions(System.Single, System.Single, OIV.HardCopy.SoVectorizeAction.DimensionUnits) and setNominalWidth must now be called with HI_METRIC units. For 1 mm, pass the value 100.

Polygon edge width: GDI uses a "brush" to draw the interior of a polygon and a "pen" to draw the edges of the polygon. By default the action uses a minimum width line for the polygon edges, but it is possible to specify the edge width by setting the environment variable OIV_HCGDI_EDGE_WIDTH (see OIV.Inventor.SoPreferences). Zero means minimum width. Values > 0 are a scale factor applied to the "nominalWidth" (see OIV.HardCopy.SoVectorizeAction.SetNominalWidth(System.Single, OIV.HardCopy.SoVectorizeAction.DimensionUnits)) similar to the line width set with OIV.Inventor.Nodes.SoDrawStyle.lineWidth. This value is fetched in the constructor so it must be set before creating an OIV.HardCopy.SoVectorizeGDIAction.

Limitations:

  • End line style TRIANGULAR is not supported end line style ROUND is assumed instead.

  • Join line style NONE, MITERED_BEVELED, and TRIANGULAR are not supported; join line styles BEVELED, MITERED, and ROUNDED are assumed instead.

  • End and Join line styles are only supported for solid lines.

  • User's DC must be of HDC type.

  • Vertical text orientation may not be kept when editing .emf files in third parties applications, for instance MS Word.

  • A big value for the line width (defined with an OIV.Inventor.Nodes.SoDrawStyle) may result in previewing or printing solid lines though they remain patterned. It depends on how big gaps are in the pattern.

  • See additional limitations in OIV.HardCopy.SoVectorizeAction.

See Also