Open Inventor Release 2024.1.3
 
Loading...
Searching...
No Matches
PoArrow3.h
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-2017 BY FEI S.A.S, ***
17 *** BORDEAUX, FRANCE ***
18 *** ALL RIGHTS RESERVED ***
19**=======================================================================*/
20/*=======================================================================
21** Author : VSG (MMM YYYY)
22**=======================================================================*/
23
24#ifndef _PO_ARROW3_
25#define _PO_ARROW3_
26
27#include <MeshViz/graph/PoGraphMaster.h>
28
29
30#include <Inventor/fields/SoSFEnum.h>
31#include <Inventor/fields/SoSFFloat.h>
32#include <Inventor/fields/SoMFVec3f.h>
33
34
64class PoArrow3 : public PoGraphMaster {
65
66 SO_KIT_HEADER(PoArrow3) ;
67
68 /* Define fields for new parts */
69 SO_KIT_CATALOG_ENTRY_HEADER(bodySep) ;
70 SO_KIT_CATALOG_ENTRY_HEADER(bodyApp) ;
71 SO_KIT_CATALOG_ENTRY_HEADER(body) ;
72
73 SO_KIT_CATALOG_ENTRY_HEADER(startSep) ;
74 SO_KIT_CATALOG_ENTRY_HEADER(startApp) ;
75 SO_KIT_CATALOG_ENTRY_HEADER(start) ;
76
77 SO_KIT_CATALOG_ENTRY_HEADER(endSep) ;
78 SO_KIT_CATALOG_ENTRY_HEADER(endApp) ;
79 SO_KIT_CATALOG_ENTRY_HEADER(end) ;
80
81
82 public:
83
105
106 /* Fields */
107
112
117
122
129
136
137
138
139 /* Methods */
140
145 { init(TRUE) ; }
146
151 PoArrow3(int numPoints, const SbVec3f *_point, PatternType startType = NO_PATTERN,
152 PatternType endType = NO_PATTERN, float _patternWidth = 0.05f,
153 float _patternHeight = 0.03f)
154 { init(FALSE, numPoints, _point, startType, endType, _patternWidth, _patternHeight) ; }
155
159 virtual void rebuild() ;
160
161 /*----------------------------------------------------------------------------*/
162
163
164 private:
165 static void initClass() ;
166 static void exitClass() ;
167
168 private:
169 // Methods
170 // Destructor
171 virtual ~PoArrow3() ;
172 virtual void setDefaultOnNonWritingFields() ;
173 virtual SbBool setUpConnections(SbBool onOff, SbBool doItAlways = FALSE) ;
174
175 private:
176 // Init method
177 void init(SbBool isDefault, int numPoints = 0, const SbVec3f *_point = NULL,
178 PatternType startType = NO_PATTERN, PatternType endType = NO_PATTERN,
179 float _patternWidth = 0.05f, float _patternHeight = 0.03f) ;
180
181 // Sensors
182 FieldSensorList fieldSensorList ;
183
184 // List of fields defined in this class
185 SoFieldList fieldList ;
186
187} ;
188
189/*----------------------------------------------------------------------------*/
190
191#endif /* _PO_ARROW3_ */
192
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Class to build a 3D arro...
Definition PoArrow3.h:64
PatternType
Type of pattern at the arrow extremities.
Definition PoArrow3.h:87
@ NO_PATTERN
No pattern at the arrow extremity.
Definition PoArrow3.h:91
@ RECTANGLE
Rectangle at the arrow extremity.
Definition PoArrow3.h:103
@ DIRECT_TRIANGLE
Direct triangle (pointing away from the polyline) at the arrow extremity.
Definition PoArrow3.h:95
@ INDIRECT_TRIANGLE
Indirect triangle (pointing toward the polyline) at the arrow extremity.
Definition PoArrow3.h:99
PoArrow3(int numPoints, const SbVec3f *_point, PatternType startType=NO_PATTERN, PatternType endType=NO_PATTERN, float _patternWidth=0.05f, float _patternHeight=0.03f)
Constructor.
Definition PoArrow3.h:151
PoArrow3()
Default constructor.
Definition PoArrow3.h:144
virtual void rebuild()
Forces node-kit rebuilding.
SoSFEnum startPatternType
Defines the start arrow pattern type.
Definition PoArrow3.h:116
SoSFFloat patternWidth
Define the width of the start and end arrow pattern.
Definition PoArrow3.h:128
SoSFFloat patternHeight
Define the height of the start and end arrow pattern.
Definition PoArrow3.h:135
SoSFEnum endPatternType
Defines the end arrow pattern type.
Definition PoArrow3.h:121
SoMFVec3f point
Point list of the arrow.
Definition PoArrow3.h:111
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Abstract base class for ...
3D vector class.
Definition SbVec.h:932
Maintains a list of pointers to fields.
Definition SoFieldList.h:72
Multiple-value field containing any number of three-dimensional vectors.
Definition SoMFVec3f.h:181
Field containing an enumerated value.
Definition SoSFEnum.h:89
Field containing a floating-point value.
Definition SoSFFloat.h:78
int SbBool
Boolean type.
Definition SbBase.h:87