Provided by: libcoin60-doc_3.1.3-2_all bug

NAME

       SoVectorizeAction -

       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.

SYNOPSIS

       #include <HardCopy/SoVectorizeAction.h>

       Inherits SoCallbackAction.

       Inherited by SoVectorizePSAction.

   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 Member Functions
       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

   Static Public Member Functions
       static void initClass (void)

   Protected Member Functions
       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

Detailed Description

       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:

       · Triangles (polygons will be tessellated)
       · Line segments
       · Points (can be drawn as circles or squares)
       · 2D text
       · 3D text (will be converted to triangles)
       · Images (from the SoImage node)
       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.
       Since:
           Coin 2.1
           TGS provides HardCopy support as a separate extension for TGS Inventor.

Member Enumeration Documentation

   enum SoVectorizeAction::DimensionUnit The unit used by the scene graph.
   enum SoVectorizeAction::Orientation The drawing orientation.
   enum SoVectorizeAction::PageSize The size of the destination page.
       Enumerator:
       A0     841 x 1189 mm.
       A1     594 x 841 mm.
       A2     420 x 594 mm.
       A3     297 x 420 mm.
       A4     210 x 297 mm.
       A5     148 x 210 mm.
       A6     105 x 148 mm.
       A7     74 x 105 mm.
       A8     52 x 74 mm.
       A9     37 x 52 mm.
       A10    26 x 37 mm.
   enum SoVectorizeAction::PointStyle Enumerates point rendering styles.
       Enumerator:
       CIRCLE Render points as circles.
       SQUARE Render points as squares.

Constructor & Destructor Documentation

   SoVectorizeAction::SoVectorizeAction (void) Default constructor.
   SoVectorizeAction::~SoVectorizeAction () [virtual] Destructor.

Member Function Documentation

   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().
       Reimplemented in SoVectorizePSAction.
   void SoVectorizeAction::initClass (void) [static] Initializes the run-time type system for
       this class, and sets up the enabled elements and action method list.
       Reimplemented from SoCallbackAction.
       Reimplemented in SoVectorizePSAction.
   void SoVectorizeAction::apply (SoNode *root) [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.
   void SoVectorizeAction::apply (SoPath *path) [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.
   void SoVectorizeAction::apply (const SoPathList &pathlist, SbBoolobeysrules = FALSE) [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.
       See also:
           SoAction::apply(SoPath * path)
       Reimplemented from SoAction.
   void SoVectorizeAction::beginPage (const SbVec2f &startpagepos, const SbVec2f &pagesize,
       DimensionUnitu = MM) [virtual] Begin writing a page. This will write file header
       information and print background (if enabled) and border.
   void SoVectorizeAction::endPage (void) [virtual] End page. This will write all remaining
       geometry, and write the file footer.
   void SoVectorizeAction::calibrate (const SbViewportRegion &vp) [virtual] Will calibrate pixel
       based attributes (font size, line width, points size, etc) so that it will match OpenGL
       rendering done in vp.
       See also:
           setPixelSize()
           setNominalWidth()
   void SoVectorizeAction::beginViewport (const SbVec2f &start = SbVec2f(-1.0f, 1.0f), const
       SbVec2f &size = SbVec2f(-1.0f, -1.0f), DimensionUnitu = MM) [virtual] Begin writing a
       viewport inside the current page.
       See also:
           beginPage(), endViewport()
   void SoVectorizeAction::endViewport (void) [virtual] End writing a viewport. This will flush
       all vector items.
   void SoVectorizeAction::setOrientation (Orientationo) [virtual] Sets the orientation to o.
   SoVectorizeAction::Orientation SoVectorizeAction::getOrientation (void) const [virtual]
       Returns the current orientation.
       See also:
           setOrientation()
   void SoVectorizeAction::setBackgroundColor (SbBoolbg, const SbColor &col = SbColor(0.0f, 0.0f,
       0.0f)) [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().
   SbBool SoVectorizeAction::getBackgroundColor (SbColor &col) const [virtual] Returns if the
       background will be cleared or not. When this function returns TRUE, col will be set to the
       background color.
   void SoVectorizeAction::setNominalWidth (floatw, DimensionUnitu = MM) [virtual] Sets how to
       convert pixel based attributes (line width and point size) to vector sizes. By default 1
       pixel equals 0.35 mm.
       See also:
           calibrate()
   void SoVectorizeAction::setPixelImageSize (floatw, DimensionUnitu = MM) [virtual] Sets how the
       images and 2D fonts are converted. By default 1 pixel equals 0.35 mm.
       See also:
           calibrate()
   float SoVectorizeAction::getPixelImageSize (DimensionUnitu = MM) const [virtual] Returns the
       pixel image size.
       See also:
           setPixelImageSize()
   void SoVectorizeAction::setPointStyle (const PointStyle &style) [virtual] Sets the points
       rendering style. Default style is CIRCLE.
   SoVectorizeAction::PointStyle SoVectorizeAction::getPointStyle (void) const [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.
   void SoVectorizeAction::setDrawingDimensions (const SbVec2f &d, DimensionUnitu = MM) [virtual]
       Sets the drawing dimensions. You can use this and setStartPosition() instead of using
       beginViewport(). Provided for TGS OIV compatibility.
       See also:
           beginViewport()
   SbVec2f SoVectorizeAction::getDrawingDimensions (DimensionUnitu = MM) const [virtual] Returns
       the current drawing dimensions.
   void SoVectorizeAction::setStartPosition (const SbVec2f &p, DimensionUnitu = MM) [virtual]
       Sets the drawing staring position. You can use this and setDrawingDimensions() instead of
       using beginViewport(). Provided for TGS OIV compatibility.
   SbVec2f SoVectorizeAction::getStartPosition (DimensionUnitu = MM) const [virtual] Returns the
       current drawing starting position.
   void SoVectorizeAction::setColorTranslationMethod (ColorTranslationMethodmethod) [virtual] Not
       implemented yet. Provided for TGS OIV compatibility.
   SoVectorizeAction::ColorTranslationMethod SoVectorizeAction::getColorTranslationMethod (void)
       const [virtual] Not implemented yet. Provided for TGS OIV compatibility.
   void SoVectorizeAction::setLineEndStyle (EndLineStylestyle) [virtual] Not implemented yet.
       Provided for TGS OIV compatibility.
   SoVectorizeAction::EndLineStyle SoVectorizeAction::getLineEndStyle (void) const [virtual] Not
       implemented yet. Provided for TGS OIV compatibility.
   void SoVectorizeAction::setLineJoinsStyle (JoinLineStylestyle) [virtual] Not implemented yet.
       Provided for TGS OIV compatibility.
   SoVectorizeAction::JoinLineStyle SoVectorizeAction::getLineJoinsStyle (void) const [virtual]
       Not implemented yet. Provided for TGS OIV compatibility.
   void SoVectorizeAction::setHLHSRMode (HLHSRModemode) [virtual] Not implemented yet. Provided
       for TGS OIV compatibility.
   SoVectorizeAction::HLHSRMode SoVectorizeAction::getHLHSRMode (void) const Not implemented yet.
       Provided for TGS OIV compatibility.
   void SoVectorizeAction::setBorder (floatwidth) [virtual] Not implemented yet. Provided for TGS
       OIV compatibility.
   void SoVectorizeAction::setBorder (floatwidth, SbColorcolor) [virtual] Not implemented yet.
       Provided for TGS OIV compatibility.
   void SoVectorizeAction::setMiterLimit (floatlimit) [virtual] Not implemented yet. Provided for
       TGS OIV compatibility.
   void SoVectorizeAction::setPenDescription (intnum_pens, const SbColor *colors = 0, const float
       *widths = 0, DimensionUnitu = MM) [virtual] Not implemented yet. Provided for TGS OIV
       compatibility.
   void SoVectorizeAction::getPenDescription (SbColor *colors, float *widths, DimensionUnitu =
       MM) const [virtual] Not implemented yet. Provided for TGS OIV compatibility.
   int SoVectorizeAction::getPenNum (void) const [virtual] Not implemented yet. Provided for TGS
       OIV compatibility.
   void SoVectorizeAction::setColorPriority (SbBoolpriority) [virtual] Not implemented yet.
       Provided for TGS OIV compatibility.
   SbBool SoVectorizeAction::getColorPriority (void) const [virtual] Not implemented yet.
       Provided for TGS OIV compatibility.
   void SoVectorizeAction::enableLighting (SbBoolflag) [virtual] Not implemented yet. Provided
       for TGS OIV compatibility.
   SbBool SoVectorizeAction::isLightingEnabled (void) const Not implemented yet. Provided for TGS
       OIV compatibility.
   void SoVectorizeAction::setOutput (SoVectorOutput *output) [protected] Should be used by
       subclasses to set the SoVectorOutput instance that should be used.
   float SoVectorizeAction::pixelsToUnits (const intpixels) [protected, virtual] Converts pixels
       to normalized units.
   void SoVectorizeAction::printHeader (void) const [protected, pure 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.
   void SoVectorizeAction::printFooter (void) const [protected, 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 file footer data.
       Reimplemented in SoVectorizePSAction.
   void SoVectorizeAction::printBackground (void) const [protected, 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 background data.
       Reimplemented in SoVectorizePSAction.
   void SoVectorizeAction::printItem (const SoVectorizeItem *item) const [protected, pure
       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.
   void SoVectorizeAction::printViewport (void) const [protected, 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 set up the current page viewport.
       Reimplemented in SoVectorizePSAction.
   SbVec2f SoVectorizeAction::getRotatedViewportStartpos (void) const [protected] Convenience
       method for subclasses. Will return the viewport startpos, taking the orientation into
       account
   SbVec2f SoVectorizeAction::getRotatedViewportSize (void) const [protected] Convenience method
       for subclasses. Will return the viewport size, taking the orientation into account
   const SbBSPTree & SoVectorizeAction::getBSPTree (void) const [protected] Returns the bps tree
       used to store triangle and line vertices.

Author

       Generated automatically by Doxygen for Coin from the source code.