Open Inventor Release 2023.2.3
 
Loading...
Searching...
No Matches
SoVectorizeAction.h
Go to the documentation of this file.
1/*=======================================================================
2 *** THE CONTENT OF THIS WORK IS PROPRIETARY TO FEI S.A.S, (FEI S.A.S.), ***
3 *** AND IS DISTRIBUTED UNDER A LICENSE AGREEMENT. ***
4 *** ***
5 *** REPRODUCTION, DISCLOSURE, OR USE, IN WHOLE OR IN PART, OTHER THAN AS ***
6 *** SPECIFIED IN THE LICENSE ARE NOT TO BE UNDERTAKEN EXCEPT WITH PRIOR ***
7 *** WRITTEN AUTHORIZATION OF FEI S.A.S. ***
8 *** ***
9 *** RESTRICTED RIGHTS LEGEND ***
10 *** USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT OF THE CONTENT OF THIS ***
11 *** WORK OR RELATED DOCUMENTATION IS SUBJECT TO RESTRICTIONS AS SET FORTH IN ***
12 *** SUBPARAGRAPH (C)(1) OF THE COMMERCIAL COMPUTER SOFTWARE RESTRICTED RIGHT ***
13 *** CLAUSE AT FAR 52.227-19 OR SUBPARAGRAPH (C)(1)(II) OF THE RIGHTS IN ***
14 *** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 52.227-7013. ***
15 *** ***
16 *** COPYRIGHT (C) 1996-2023 BY FEI S.A.S, ***
17 *** BORDEAUX, FRANCE ***
18 *** ALL RIGHTS RESERVED ***
19**=======================================================================*/
20/*=======================================================================
21** Author : VSG (MMM YYYY)
22**=======================================================================*/
23
24#ifndef __SO_VECTORIZE_ACTION_
25#define __SO_VECTORIZE_ACTION_
26
27
28#include <SbTypes.h>
29#include <stdio.h>
30#include <Inventor/SbBasic.h>
31#include <Inventor/SbColor.h>
37#ifndef NO_TGS_OIV
39#endif
40#include <HardCopy/SoHardCopy.h>
41
42
43#define POINT_TO_MM 0.3527777778F
44
45#ifndef NO_TGS_OIV
46class SoMarkerSet;
47#endif
48
49class SoNode;
50class SoPath;
51class SoPathList;
54class SoHLHSRVectorize;
55
56class SoVectorOutput;
57
159
161
162 public:
163 /*
164 * Destructor
165 */
167
185
196
203 SMOOTH
204 };
205
219
237
267
277
278
313 /*----------------------------------------------------------------------------*/
314
323
324 // Apply methods
325
329 virtual void apply(SoNode *node);
330
334 virtual void apply(SoPath *path);
335
348 virtual void apply(const SoPathList &pathList, SbBool obeysRules = FALSE);
349
430 virtual void beginPage(const SbVec2f &startPagePosition,
431 const SbVec2f &pageSize,
432 DimensionUnit u = MM);
433
438 virtual void endPage();
439
440 // Drawing parameters initialisation methods
441
445 virtual void setDrawingDimensions(float w, float h, DimensionUnit u = MM);
446
450 virtual void setDrawingDimensions(const SbVec2f &d, DimensionUnit u = MM);
451
456
460 virtual void setStartPosition(float x, float y, DimensionUnit u = MM);
461
465 virtual void setStartPosition(const SbVec2f &p, DimensionUnit u = MM);
466
471
476
481
487 virtual void setBorder(float width) {
488 SbColor color = SbVec3f(1.,1.,1.);
489 setBorder(width, color);
490 }
491
496 virtual void setBorder(float width, SbColor color);
497
503 virtual void getBorder(float *w, SbColor *color) const;
504
509 virtual void setBackgroundColor(SbBool bg) {
510 SbColor color = SbVec3f(0.,0.,0.);
511 setBackgroundColor(bg, color);
512 }
513
518 virtual void setBackgroundColor(SbBool bg, SbColor color);
519
524 virtual SbBool getBackgroundColor(SbColor *color) const;
525
536 virtual void setNominalWidth(float w, DimensionUnit u = MM);
537
541 virtual float getNominalWidth(DimensionUnit u = MM) const;
542
553 virtual void setLinePatternSize(float w, DimensionUnit u = MM);
554
558 virtual float getLinePatternSize(DimensionUnit u = MM) const;
559
569 virtual void setPixelImageSize(float w, DimensionUnit u = MM);
570
574 virtual float getPixelImageSize(DimensionUnit u = MM) const;
575
583
589
593 virtual void setLineEndStyle(EndLineStyle style);
594
599
603 virtual void setLineJoinsStyle(JoinLineStyle style);
604
609
613 virtual void setMiterLimit(float limit);
614
618 virtual float getMiterLimit() const;
619
629 virtual void setPenDescription(int num_pens,
630 const SbColor *colors = 0,
631 const float *widths = 0,
632 DimensionUnit u = MM);
633
638 virtual void getPenDescription(SbColor *colors,
639 float *widths,
640 DimensionUnit u = MM) const;
641
645 virtual int getPenNum() const;
646
652 virtual void setColorPriority(SbBool priority);
653
657 virtual SbBool getColorPriority(void) const;
658
697 virtual void setHLHSRMode(HLHSRMode mode)
698 { m_HLHSRMode = mode; }
699
704 { return m_HLHSRMode; }
705
706
708
713 void setHLHSRRasterQuality(float quality)
714 { m_HLHSRRasterQuality = quality ; }
715
721 { return m_HLHSRRasterQuality ; }
723
725
731 { m_HLHSRRasterCaching = enable ; }
732
738 { return m_HLHSRRasterCaching ; }
740
751 virtual void enableLighting(SbBool flag)
752 { m_isLightingEnabled = flag; }
753
758 { return m_isLightingEnabled; }
759
764 { m_shadeModel = model ; }
765
770 { return m_shadeModel ; }
771
789 void setPolygonOffset( float offset )
790 { m_polyOffset = offset; }
794 void setLineOffset( float offset )
795 { m_lineOffset = offset; }
799 void setMarkerOffset( float offset )
800 { m_markOffset = offset; }
804 float getPolygonOffset() const
805 { return m_polyOffset; }
809 float getLineOffset() const
810 { return m_lineOffset; }
814 float getMarkerOffset() const
815 { return m_markOffset; }
816
817 private:
818
820
828 void setHLHSRRasterTileSize(unsigned short tileSize)
829 { m_HLHSRRasterTileSize = tileSize ; }
830
836 unsigned short getHLHSRRasterTileSize() const
837 { return m_HLHSRRasterTileSize ; }
839
843 static void initClass();
844 static void exitClass();
845
846 /*----------------------------------------------------------------------------*/
847 private:
849
850 // Output data
851 SoVectorOutput *m_output;
852
853 // Begin and end of traversal
854 virtual void beginTraversal();
855 virtual void beginTraversal(SoNode *)
856 { beginTraversal(); }
857 virtual void endTraversal();
858 virtual void endTraversal(SoNode *)
859 { endTraversal(); }
860
861 virtual void writeHeader() = 0;
862 virtual void writeFooter() = 0;
863
864 virtual void setHardwareClip() = 0;
865
866 // Compute clipping limits
867 virtual SbBox2f getClippingLimits() const;
868
869 // Printing methods
870 virtual void printPolyMark(const SbVec4f *points,
871 int num_points,
872 const SbColor *colors,
873 SbBool color_flag,
874 float size);
875#ifndef NO_TGS_OIV
876 virtual void printPolyMark(const SbVec4f *points,
877 int num_points,
878 const SbColor *colors,
879 SbBool color_flag,
880 SoMarkerSet *markerSet);
881 virtual void printImage(const SbVec4f &origin,
882 const unsigned char *imagePixels,
883 SbVec2s &sourceSize,
884 SbVec2s &requestedSize,
885 int numComponents,
886 SoImage::HorAlignment horAlign,
887 SoImage::VertAlignment vertAlign);
888#endif
889
890 virtual void printPolyLine(const SbVec4f *points,
891 int num_points,
892 const SbColor *colors,
893 SbBool color_flag,
894 float thickness,
895 u_short linePattern,
896 int linePatternScaleFactor = 1);
897 virtual void printPolygon(const SbVec4f *points,
898 int num_points,
899 const SbColor *colors,
900 SbBool color_flag,
901 const SbString &category,
902 const SbString &name,
903 const unsigned char *pattern);
904 virtual void printText2(const SbVec4f point,
905 const SbColor colors,
906 const SbString& font_name,
907 float font_size,
908 const SbString& string,
909 int justif,
910 float angle);
911
912 // Print the border and the background
913 virtual void printBorder() = 0;
914 virtual void printBackground() = 0;
915
916 // To choice the good pen and the good associated width.
917 virtual void penAssignment(SbColor color, float width,
918 int *ret_ind, float *ret_width);
919 // Viewport methods
920 float getViewportWidth() const;
921 float getViewportHeight() const;
922 const SbViewportRegion &getViewportRegion() const;
923
924 // Translate color method(depends on setColorTranslationMethod())
925 SbColor translateColor(SbColor color);
926
927 // Access methods in mm
928 float getShiftX() const;
929 float getShiftY() const;
930 float getWidth() const;
931 float getHeight() const;
932
933 // Get offset - Indicate the offset(x,y) to draw a primitive.
934 float getOffsetX() const;
935 float getOffsetY() const;
936
937 // Miscellaneous methods.
938 virtual void prepareAction(SoCallbackAction &action,
939 SbBool activateSoAnnotationCB = TRUE);
940
941 // Data
942 // Border and background attributes
943 float m_border_width;
944 SbColor m_border_color;
945 SbBool m_background_flag;
946 SbColor m_background_color;
947
948 // Nominal width(in millimeters)
949 float m_nominal_width;
950 // Line pattern scale factor(in millimeters)
951 float m_linePatternSize;
952 // Pixel image size(in millimeters)
953 float m_pixelImageSize;
954
955 // Pen description
956 int m_num_pens;
957 // Array for color in LUT.
958 SbColor *m_color_tab;
959
960 // End line style
961 EndLineStyle m_line_ends_style;
962 JoinLineStyle m_line_joins_style;
963 float m_miter_limit;
964
965 // Existance of a viewport
966 SbBool m_isViewportRegionExist;
967
968 // Page size(in millimeters)
969 SbVec2f m_pageSize;
970
971 // Start page position(in millimeters)
972 SbVec2f m_startPagePosition;
973
974 // Multiplot per page data
975 SbBool m_isMultiPlotPerPage;
976 SbBool m_isFirstPlotPage;
977
978 /*----------------------------------------------------------------------------*/
979
980 private:
981 // Drawing methods
982 void drawTriangle(SoCallbackAction *action,
986 void drawLineSegment(SoCallbackAction *action,
990 void drawPoint(SoCallbackAction *action,
993 const SoNode *node,
994 SbBool isAnnoText3 = FALSE);
996 const SoNode *node,
997 SbBool isAnnoText3 = FALSE);
998 SoCallbackAction::Response drawMarkerSet(SoCallbackAction *action,
999 const SoNode *node);
1001 const SoNode *node);
1002
1003 // Clipping methods
1004 void clipImage(SoCallbackAction *action,
1005 SbVec4f *points,
1006 const SoNode *node);
1007 void clipText(SoCallbackAction *action,
1008 SbVec4f *points,
1009 SbColor color,
1010 SoNode *node,
1011 SbBool isAnnoText3 = FALSE);
1012 void clipPolygon(SoCallbackAction *action,
1013 SbVec4f *points,
1014 int num_points,
1015 SbColor *colors);
1016 void clipPolyLine(SoCallbackAction *action,
1017 SbVec4f *points,
1018 int num_points,
1019 SbColor *colors);
1020 void clipPolyLineFar(SoCallbackAction *action,
1021 SbVec4f *points,
1022 int num_points,
1023 SbColor *colors,
1024 int color_flag);
1025 void clipPolyLineXMin(SoCallbackAction *action,
1026 SbVec4f *points,
1027 int num_points,
1028 SbColor *colors,
1029 int color_flag);
1030 void clipPolyLineXMax(SoCallbackAction *action,
1031 SbVec4f *points,
1032 int num_points,
1033 SbColor *colors,
1034 int color_flag);
1035 void clipPolyLineYMin(SoCallbackAction *action,
1036 SbVec4f *points,
1037 int num_points,
1038 SbColor *colors,
1039 int color_flag);
1040 void clipPolyLineYMax(SoCallbackAction *action,
1041 SbVec4f *points,
1042 int num_points,
1043 SbColor *colors,
1044 int color_flag);
1045 void clipPolyMark(SoCallbackAction *action,
1046 SbVec4f *points,
1047 int num_points,
1048 SbColor *colors
1049#ifndef NO_TGS_OIV
1050 , SoMarkerSet *markerSet = NULL
1051#endif
1052 );
1053
1054 // HLHSR vectorize methods and members
1055 SoHLHSRVectorize *getHLHSRVectorize() const
1056 { return m_HLHSRVectorize; }
1057 SoHLHSRVectorize *m_HLHSRVectorize;
1058
1059 // Projects points on the sheet space.
1060 void projectPoints(SbVec4f *points, int n);
1061
1062 // Defines the projection source used by projectPoints which defines the 2D space
1063 // source used to project points on the sheet space.
1064 void setProjectionSource(const SbBox2f &projSrc) ;
1065 void setDefaultProjectionSource() ;
1066
1067 void transformPoints(SoCallbackAction *action, SbVec4f *points, int n);
1068 void transformVecMCToVRC(SoCallbackAction *action, SbVec3f &point);
1069 void transformPointsMCToVRC(SoCallbackAction *action,
1070 SbVec4f *points, int n);
1071 void transformPointsVRCToNPC(SoCallbackAction *action,
1072 SbVec4f *points, int n);
1074 int index,
1075 SbBool &isFullyTransparent);
1076 SbColor getLightingColor(SoCallbackAction *action,
1077 const SoPrimitiveVertex *vertex,
1078 const SbVec4f &point,
1079 SbBool &isFullyTransparent);
1080 void computeLightList(SoState *state);
1081 void deleteLightsList();
1082 float getAttenuationFactor(const SoCallbackAction *action,
1083 const SbVec3f &lightLocation,
1084 const SbVec3f &vertexPoint);
1085
1086 float getNormalizedWidth();
1087 float getNormalizedHeight();
1088 float computeFontSizeAngleViewing(SoCallbackAction *action,
1089 float fontSize, float &angle);
1090
1091 // Viewport methods
1092 void setViewportRegion(SoCallbackAction *action);
1093 void setViewportRegion(const SbViewportRegion &vp)
1094 { m_viewportRegion = vp ; }
1095
1096 // Conversion methods
1097 static float unitsToMillimeters(float w, DimensionUnit u);
1098 static float millimetersToUnits(float w, DimensionUnit u);
1099
1100 // Callbacks
1101 static void drawTriangleCB(void *object,
1102 SoCallbackAction *action,
1104 SoPrimitiveVertex *v2,
1105 SoPrimitiveVertex *v3);
1106 static void drawLineSegmentCB(void *object,
1107 SoCallbackAction *action,
1108 SoPrimitiveVertex *v1,
1109 SoPrimitiveVertex *v2);
1110 static void drawPointCB(void *object,
1111 SoCallbackAction *action,
1113 static SoCallbackAction::Response drawText2CB(void *object,
1114 SoCallbackAction *action,
1115 const SoNode *node);
1116 static SoCallbackAction::Response drawText3CB(void *object,
1117 SoCallbackAction *action,
1118 const SoNode *node);
1119 static SoCallbackAction::Response drawImageCB(void *object,
1120 SoCallbackAction *action,
1121 const SoNode *node);
1122 static SoCallbackAction::Response sendPointsCB(void *object,
1123 SoCallbackAction *action,
1124 const SoNode *node);
1125 static SoCallbackAction::Response drawAnnoText3CB(void *object,
1126 SoCallbackAction *action,
1127 const SoNode *node);
1128 static SoCallbackAction::Response endDrawAnnoText3CB(void *,
1130 const SoNode *);
1131 static SoCallbackAction::Response cameraCB(void *object,
1132 SoCallbackAction *action,
1133 const SoNode *node);
1134 static SoCallbackAction::Response storeAnnotationCB(void *object,
1135 SoCallbackAction *action,
1136 const SoNode *node);
1137
1138 // Method needed to implement rendering of delayed paths
1139 void addDelayedPath(SoPath *path);
1140 void renderDelayedPaths();
1141
1142 // Data
1143 // Start position(in millimeters)
1144 float m_shiftX, m_shiftY;
1145 Orientation m_orientation;
1146 // Drawing dimensions(in millimeters)
1147 float m_width, m_height;
1148
1149 // Viewport region
1150 SbViewportRegion m_viewportRegion;
1151
1152 ColorTranslationMethod m_colorTranslationMethod;
1153 // Array for line width.
1154 float *m_pensWidth;
1155 SbBool m_priority;
1156
1157 int m_numAlloc;
1158 int m_numVertices;
1159 SbVec4f *m_pointList;
1160 SbColor *m_colorList;
1161 HLHSRMode m_HLHSRMode;
1162 float m_HLHSRRasterQuality ;
1163 SbBool m_HLHSRRasterCaching ;
1164 unsigned short m_HLHSRRasterTileSize ;
1165 SbBool m_isAnnoText3Drawn;
1166
1167 // Lighting data
1168 SoNodeList m_lightNodesList;
1169 SbPList m_lightsList;
1170 SbBool m_isLightingEnabled;
1171
1172 // Shading model
1173 ShadeModel m_shadeModel ;
1174
1175 // Offset Z value (allows separating coplanar lines and polys)
1176 float m_polyOffset;
1177 float m_lineOffset;
1178 float m_markOffset;
1179
1180 // Defines the projection source used by projectPoints which defines the 2D space
1181 // source used to project points on the sheet space.
1182 SbBox2f m_projSrc ;
1183
1184 // Stuff needed to implement rendering of delayed paths
1185 SoPathList m_delayedPaths; // List of paths to render
1186
1187 // Friend classes
1188 friend class SoHLHSRVectorize;
1190};
1191
1202{
1203
1204 public:
1205
1210
1215
1216 public:
1217
1221 virtual void setFilePointer(FILE *newFP);
1222
1227 virtual FILE *getFilePointer();
1228
1235 SoNONUNICODE virtual SbBool openFile(const char *file_name);
1236
1241 virtual SbBool openFile( const SbString& file_name );
1242
1246 virtual void closeFile();
1247
1248 private:
1249
1250 FILE *m_out_file;
1251};
1252
1253#endif //__SO_VECTORIZE_ACTION_
1254
#define TRUE
Possible value of SbBool.
Definition SbBase.h:77
#define FALSE
Possible value of SbBool.
Definition SbBase.h:75
const SbColor & getColor()
virtual void enable(QWidget *w, XtEventHandler f, XtPointer data, void *unused=NULL)
#define SO_ACTION_HEADER_WITH_DEF(className)
Definition SoSubAction.h:95
2D box class.
Definition SbBox.h:1798
Color vector class.
Definition SbColor.h:82
List of generic (void *) pointers.
Definition SbPList.h:77
Class for smart character strings.
Definition SbString.h:202
2D vector class.
Definition SbVec.h:76
2D vector class.
Definition SbVec.h:700
3D vector class.
Definition SbVec.h:932
4D vector class.
Definition SbVec.h:2214
Class for representing a viewport.
Abstract base class for all actions.
Definition SoAction.h:132
Performs a generic traversal of a scene graph or path.
Response
Possible responses from a pre or post callback.
VertAlignment
Vertical alignment.
Definition SoImage.h:146
HorAlignment
Horizontal alignment.
Definition SoImage.h:130
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Extension of Poi...
Abstract base class for all database nodes.
Definition SoNode.h:145
Maintains a list of pointers to nodes.
Definition SoNodeList.h:74
Path that points to a list of hierarchical nodes.
Definition SoPath.h:187
Maintains a list of pointers to paths.
Definition SoPathList.h:81
Represents a vertex of a generated primitive.
Traversal state.
Definition SoState.h:74
<a href="IconLegend.html"><img src="extHC.gif" alt="HardCopy" border="0"></a> Abstract class used to...
virtual FILE * getFilePointer()
Returns the file pointer in use.
virtual void setFilePointer(FILE *newFP)
Sets file pointer to write to.
virtual ~SoVectorOutput()
Destructor.
virtual SbBool openFile(const SbString &file_name)
Opens named file (sets file pointer to result) .
SoVectorOutput()
Constructor.
virtual SoNONUNICODE SbBool openFile(const char *file_name)
Opens named file (sets file pointer to result) .
virtual void closeFile()
Closes the current file opened with openFile().
<a href="IconLegend.html"><img src="extHC.gif" alt="HardCopy" border="0"></a> Abstract class for vec...
float getMarkerOffset() const
Returns marker offset.
virtual void setBorder(float width)
Sets the width of the border of the clipping limits.
virtual JoinLineStyle getLineJoinsStyle() const
Returns the style for line joins.
virtual void setColorTranslationMethod(ColorTranslationMethod method)
Sets the method for choosing the color of the drawing on the sheet of paper.
float getPolygonOffset() const
Returns polygon offset.
virtual void getPenDescription(SbColor *colors, float *widths, DimensionUnit u=MM) const
Returns the description of the color and the width of each pen.
void setHLHSRRasterCaching(SbBool enable)
Enables/disables the use of OpenGL display lists to generate the raster image with the HLHSR_RASTER a...
virtual void setStartPosition(float x, float y, DimensionUnit u=MM)
Sets the start position of the drawing on the sheet of paper.
virtual float getMiterLimit() const
Returns the miter limit.
virtual void setNominalWidth(float w, DimensionUnit u=MM)
Sets the nominal width.
void setLineOffset(float offset)
Sets line offset.
virtual void endPage()
Ends a page.
virtual void setLineEndStyle(EndLineStyle style)
Sets the style for line ends.
virtual void setBackgroundColor(SbBool bg, SbColor color)
Sets the color of the background.
virtual void apply(SoNode *node)
Initiates an action on the graph specified by a node.
ShadeModel getShadeModel()
Returns the shade model.
friend class SoHLHSRImageVectorizer
virtual float getNominalWidth(DimensionUnit u=MM) const
Returns the nominal width.
virtual void setHLHSRMode(HLHSRMode mode)
Sets the Hidden Line and Hidden Surface Removal mode.
virtual void setDrawingDimensions(float w, float h, DimensionUnit u=MM)
Sets the dimensions of the drawing on the sheet of paper.
virtual ColorTranslationMethod getColorTranslationMethod() const
Returns the method for choosing the color of the drawing on the sheet of paper.
virtual void setDrawingDimensions(const SbVec2f &d, DimensionUnit u=MM)
Sets the dimensions of the drawing on the sheet of paper.
ShadeModel
Shading models.
@ SMOOTH
Smooth shading model.
@ FLAT
Flat shading model.
virtual void getBorder(float *w, SbColor *color) const
Returns the color and the width of the border of the clipping limits.
HLHSRMode getHLHSRMode() const
Returns the Hidden Line and Hidden Surface Removal mode.
virtual void apply(const SoPathList &pathList, SbBool obeysRules=FALSE)
Initiates an action on the graph specified by list of paths.
HLHSRMode
HLHSR (Hidden Line and Hidden Surface Removal) mode.
@ HLHSR_PAINTER_SURFACE_REMOVAL
Surfaces that are completely hidden are removed prior to application of the painter's algorithm.
@ HIDDEN_LINES_REMOVAL
The output is rendered with lines (regardless of the on-screen render style) and hidden lines are rem...
@ NO_HLHSR
No HLHSR is done.
@ HLHSR_PAINTER
Painter's algorithm is used.
@ HLHSR_RASTER
A raster-based algorithm is used.
@ HLHSR_SIMPLE_PAINTER
Simple painter's algorithm is used.
float getHLHSRRasterQuality() const
Returns the raster image quality value.
virtual float getLinePatternSize(DimensionUnit u=MM) const
Returns the line pattern scale factor.
virtual void beginPage(const SbVec2f &startPagePosition, const SbVec2f &pageSize, DimensionUnit u=MM)
Begin a new page.
virtual void enableLighting(SbBool flag)
Allows the user to enable/disable the taking into account of lights in the scene graph during the com...
virtual SbBool getColorPriority(void) const
Returns the color priority.
SbBool getHLHSRRasterCaching() const
Returns the raster caching flag.
friend class SoHLHSRVectorize
virtual Orientation getOrientation() const
Returns the orientation of the drawing on the sheet of paper.
virtual void setMiterLimit(float limit)
Sets the miter limit.
virtual void setColorPriority(SbBool priority)
Sets the color priority flag.
virtual void setLinePatternSize(float w, DimensionUnit u=MM)
Sets the line pattern size, i.e., the association between printer pattern (16 printer "points") and t...
EndLineStyle
End line style.
virtual int getPenNum() const
Returns the number of pens.
virtual ~SoVectorizeAction()
SbBool isLightingEnabled() const
Returns TRUE if lighting is enabled.
virtual void setPixelImageSize(float w, DimensionUnit u=MM)
Sets the size of a pixel for image primitives.
virtual void setLineJoinsStyle(JoinLineStyle style)
Sets the style for line joins.
JoinLineStyle
Join line style.
@ TRIANGULAR_JOIN
The line join style is triangular.
@ NO_JOIN
There is no line join style.
@ ROUNDED_JOIN
The line join style is rounded.
@ MITERED_BEVELED_JOIN
The line join style is mitered and beveled.
@ MITERED_JOIN
The line join style is mitered.
@ BEVELED_JOIN
The line join style is beveled.
virtual SoVectorOutput * getVectorOutput() const
Output access method.
virtual void setBorder(float width, SbColor color)
Sets the color and the width of the border of the clipping limits.
virtual SbBool getBackgroundColor(SbColor *color) const
Returns the color of the background.
DimensionUnit
Dimension unit.
virtual void setBackgroundColor(SbBool bg)
Enables or disables the background and sets its color to white.
virtual SbVec2f getDrawingDimensions(DimensionUnit u=MM) const
Returns the dimensions of the drawing on the sheet of paper.
void setMarkerOffset(float offset)
Sets marker offset.
virtual EndLineStyle getLineEndStyle() const
Returns the style for line ends.
ColorTranslationMethod
Color translation methods.
@ REVERSE_ONLY_BLACK_AND_WHITE
Only black and white are reversed (default).
@ REVERSE
All colors are reversed.
@ AS_IS
Colors stay as is.
virtual void setPenDescription(int num_pens, const SbColor *colors=0, const float *widths=0, DimensionUnit u=MM)
Sets the description of the color and the width of each pen.
virtual void setStartPosition(const SbVec2f &p, DimensionUnit u=MM)
Sets the start position of the drawing on the sheet of paper.
virtual float getPixelImageSize(DimensionUnit u=MM) const
Returns the size of a pixel.
virtual SbVec2f getStartPosition(DimensionUnit u=MM) const
Returns the start position of the drawing on the sheet of paper.
float getLineOffset() const
Returns line offset.
void setShadeModel(ShadeModel model)
Selects FLAT or SMOOTH shading.
void setHLHSRRasterQuality(float quality)
Sets the quality of the raster image generated to vectorize visible primitives with the HLHSR_RASTER ...
virtual void apply(SoPath *path)
Initiates an action on the graph specified by a path.
void setPolygonOffset(float offset)
Method to set the Z offset to be applied to polygons in normalized device coordinates (-1 to 1 space)...
Orientation
Orientation type.
@ PORTRAIT
The orientation is PORTRAIT.
@ LANDSCAPE
The orientation is LANDSCAPE.
virtual void setOrientation(Orientation o)
Sets the orientation of the drawing on the sheet of paper.
int SbBool
Boolean type.
Definition SbBase.h:87
size_t size() const