1 #ifndef COIN_SOVECTORIZEACTION_H
2 #define COIN_SOVECTORIZEACTION_H
27 #include <Inventor/actions/SoCallbackAction.h>
28 #include <Inventor/actions/SoSubAction.h>
29 #include <Inventor/SbVec2f.h>
30 #include <Inventor/SbColor.h>
34 class SoVectorizeItem;
35 class SoVectorizeActionP;
51 static void initClass(
void);
72 virtual void apply(
const SoPathList & pathlist, SbBool obeysrules = FALSE);
74 void beginStandardPage(
const PageSize & pagesize,
const float border = 10.0f);
76 virtual void beginPage(
const SbVec2f & startpagepos,
78 DimensionUnit u = MM);
79 virtual void endPage(
void);
83 virtual void beginViewport(
const SbVec2f & startpos =
SbVec2f(-1.0f, 1.0f),
85 DimensionUnit u = MM);
86 virtual void endViewport(
void);
88 virtual void setOrientation(Orientation o);
89 virtual Orientation getOrientation(
void)
const;
91 virtual void setBackgroundColor(SbBool bg,
const SbColor & col =
SbColor(0.0f, 0.0f, 0.0f));
92 virtual SbBool getBackgroundColor(
SbColor & col)
const;
94 virtual void setNominalWidth(
float w, DimensionUnit u = MM);
95 virtual float getNominalWidth(DimensionUnit u = MM)
const;
97 virtual void setPixelImageSize(
float w, DimensionUnit u = MM);
98 virtual float getPixelImageSize(DimensionUnit u = MM)
const;
105 virtual void setPointStyle(
const PointStyle & style);
106 virtual PointStyle getPointStyle(
void)
const;
108 const SbVec2f & getPageStartpos(
void)
const;
109 const SbVec2f & getPageSize(
void)
const;
113 enum ColorTranslationMethod { REVERSE_ONLY_BLACK_AND_WHITE, AS_IS, REVERSE };
115 enum JoinLineStyle { NO_JOIN, MITERED_JOIN, MITERED_BEVELED_JOIN,
116 BEVELED_JOIN, TRIANGULAR_JOIN, ROUNDED_JOIN } ;
117 enum EndLineStyle { BUTT_END, SQUARE_END, TRIANGULAR_END, ROUND_END };
118 enum HLHSRMode { NO_HLHSR, HLHSR_SIMPLE_PAINTER, HLHSR_PAINTER,
119 HLHSR_PAINTER_SURFACE_REMOVAL, HIDDEN_LINES_REMOVAL };
121 virtual void setDrawingDimensions(
const SbVec2f & d, DimensionUnit u = MM);
122 virtual void setDrawingDimensions(
float w,
float h, DimensionUnit u = MM) { this->setDrawingDimensions(
SbVec2f(w, h), u); }
123 virtual SbVec2f getDrawingDimensions(DimensionUnit u = MM)
const;
125 virtual void setStartPosition(
const SbVec2f & p, DimensionUnit u = MM);
126 virtual void setStartPosition(
float x,
float y, DimensionUnit u = MM) { this->setStartPosition(
SbVec2f(x, y), u); }
127 virtual SbVec2f getStartPosition(DimensionUnit u = MM)
const;
129 virtual void setColorTranslationMethod(ColorTranslationMethod method);
130 virtual ColorTranslationMethod getColorTranslationMethod(
void)
const;
132 virtual void setLineEndStyle(EndLineStyle style);
133 virtual EndLineStyle getLineEndStyle(
void)
const;
135 virtual void setLineJoinsStyle(JoinLineStyle style);
136 virtual JoinLineStyle getLineJoinsStyle(
void)
const;
138 virtual void setHLHSRMode(HLHSRMode mode);
139 HLHSRMode getHLHSRMode(
void)
const;
141 virtual void setBorder(
float width);
142 virtual void setBorder (
float width,
SbColor color);
144 virtual void setMiterLimit(
float limit);
145 virtual float getMiterLimit(
void)
const;
147 virtual void setPenDescription(
int num_pens,
149 const float * widths = 0,
150 DimensionUnit u = MM);
151 virtual void getPenDescription(
SbColor * colors,
153 DimensionUnit u = MM)
const;
154 virtual int getPenNum(
void)
const;
156 virtual void setColorPriority(SbBool priority);
157 virtual SbBool getColorPriority(
void)
const;
159 virtual void enableLighting(SbBool flag);
160 SbBool isLightingEnabled(
void)
const;
165 virtual float pixelsToUnits(
const int pixels);
167 virtual void printFooter(
void)
const;
168 virtual void printBackground(
void)
const;
169 virtual void printItem(
const SoVectorizeItem * item)
const = 0;
170 virtual void printViewport(
void)
const;
172 SbVec2f getRotatedViewportStartpos(
void)
const;
173 SbVec2f getRotatedViewportSize(
void)
const;
175 const SbBSPTree & getBSPTree(
void)
const;
178 SoVectorizeActionP * pimpl;
179 friend class SoVectorizeActionP;
184 #ifndef COIN_INTERNAL
186 #include <Inventor/nodes/SoImage.h>
The SbBSPTree class provides a binary space partitioning container.
Definition: SbBSPTree.h:45
The SbColor class contains the red, green and blue components which make up a color value.
Definition: SbColor.h:30
The SbVec2f class is a 2 dimensional vector with floating point coordinates.
Definition: SbVec2f.h:39
The SbViewportRegion class is a viewport within a full window.
Definition: SbViewportRegion.h:31
The SoAction class is the base class for all traversal actions.
Definition: SoAction.h:68
virtual void apply(SoNode *root)
Definition: SoAction.cpp:459
The SoCallbackAction class invokes callbacks at specific nodes.
Definition: SoCallbackAction.h:71
The SoNode class is the base class for nodes used in scene graphs.
Definition: SoNode.h:47
The SoPathList class is a container for pointers to SoPath objects.
Definition: SoPathList.h:31
The SoPath class is a container class for traversal path descriptions.
Definition: SoPath.h:43
The SoVectorOutput class is used for setting vector output file.
Definition: SoVectorOutput.h:34
The SoVectorizeAction class is the base class for vectorizing Coin scene graphs.
Definition: SoVectorizeAction.h:40
PointStyle
Definition: SoVectorizeAction.h:100
@ CIRCLE
Definition: SoVectorizeAction.h:101
PageSize
Definition: SoVectorizeAction.h:56
@ A8
Definition: SoVectorizeAction.h:65
@ A4
Definition: SoVectorizeAction.h:61
@ A9
Definition: SoVectorizeAction.h:66
@ A7
Definition: SoVectorizeAction.h:64
@ A5
Definition: SoVectorizeAction.h:62
@ A2
Definition: SoVectorizeAction.h:59
@ A6
Definition: SoVectorizeAction.h:63
@ A1
Definition: SoVectorizeAction.h:58
@ A3
Definition: SoVectorizeAction.h:60
virtual void printHeader(void) const =0
DimensionUnit
Definition: SoVectorizeAction.h:53
Orientation
Definition: SoVectorizeAction.h:54