Main Page | Modules | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

SoVectorizeAction Class Reference
[Support for vectorized printing]

#include <HardCopy/SoVectorizeAction.h>

Inheritance diagram for SoVectorizeAction:

SoCallbackAction SoAction SoVectorizePSAction List of all members.

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:

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.


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 ()
SoVectorOutputgetOutput (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 SbVec2fgetPageStartpos (void) const
const SbVec2fgetPageSize (void) const
virtual void setDrawingDimensions (const SbVec2f &d, DimensionUnit u=MM)
virtual SbVec2f getDrawingDimensions (DimensionUnit u=MM) const
virtual void setStartPosition (const SbVec2f &p, 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

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 SbBSPTreegetBSPTree (void) const

Friends

class SoVectorizeActionP


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.

Enumeration values:
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.

Enumeration values:
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 node  )  [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.

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,
SbBool  obeysrules = 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.

Reimplemented from SoAction.

void SoVectorizeAction::beginPage const SbVec2f startpagepos,
const SbVec2f pagesize,
DimensionUnit  u = 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),
DimensionUnit  u = 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 Orientation  o  )  [virtual]
 

Sets the orientation to o.

SoVectorizeAction::Orientation SoVectorizeAction::getOrientation void   )  const [virtual]
 

Returns the current orientation.

See also:
setOrientation()

void SoVectorizeAction::setBackgroundColor SbBool  bg,
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 float  w,
DimensionUnit  u = 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 float  w,
DimensionUnit  u = 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 DimensionUnit  u = 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,
DimensionUnit  u = 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 DimensionUnit  u = MM  )  const [virtual]
 

Returns the current drawing dimensions.

void SoVectorizeAction::setStartPosition const SbVec2f p,
DimensionUnit  u = 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 DimensionUnit  u = MM  )  const [virtual]
 

Returns the current drawing starting position.

void SoVectorizeAction::setColorTranslationMethod ColorTranslationMethod  method  )  [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 EndLineStyle  style  )  [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 JoinLineStyle  style  )  [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 HLHSRMode  mode  )  [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 float  width  )  [virtual]
 

Not implemented yet. Provided for TGS OIV compatibility.

void SoVectorizeAction::setBorder float  width,
SbColor  color
[virtual]
 

Not implemented yet. Provided for TGS OIV compatibility.

void SoVectorizeAction::setMiterLimit float  limit  )  [virtual]
 

Not implemented yet. Provided for TGS OIV compatibility.

void SoVectorizeAction::setPenDescription int  num_pens,
const SbColor colors = 0,
const float *  widths = 0,
DimensionUnit  u = MM
[virtual]
 

Not implemented yet. Provided for TGS OIV compatibility.

void SoVectorizeAction::getPenDescription SbColor colors,
float *  widths,
DimensionUnit  u = 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 SbBool  priority  )  [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 SbBool  flag  )  [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 int  pixels  )  [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.


The documentation for this class was generated from the following files:
Generated on Fri Oct 15 05:50:58 2004 for Coin by doxygen 1.3.6