Open Inventor Release 2024.2.1
 
Loading...
Searching...
No Matches
PoArrow.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-2014 BY FEI S.A.S, ***
17 *** BORDEAUX, FRANCE ***
18 *** ALL RIGHTS RESERVED ***
19**=======================================================================*/
20/*=======================================================================
21** Author : VSG (MMM YYYY)
22**=======================================================================*/
23
24#ifndef _PO_ARROW_
25#define _PO_ARROW_
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/SoMFVec2f.h>
33
34
59class PoArrow : public PoGraphMaster {
60
61 SO_KIT_HEADER(PoArrow) ;
62
63 /* Define fields for new parts */
64 SO_KIT_CATALOG_ENTRY_HEADER(bodySep) ;
65 SO_KIT_CATALOG_ENTRY_HEADER(bodyApp) ;
66 SO_KIT_CATALOG_ENTRY_HEADER(body) ;
67
68 SO_KIT_CATALOG_ENTRY_HEADER(startSep) ;
69 SO_KIT_CATALOG_ENTRY_HEADER(startApp) ;
70 SO_KIT_CATALOG_ENTRY_HEADER(start) ;
71
72 SO_KIT_CATALOG_ENTRY_HEADER(endSep) ;
73 SO_KIT_CATALOG_ENTRY_HEADER(endApp) ;
74 SO_KIT_CATALOG_ENTRY_HEADER(end) ;
75
76
77 public:
78
100
101 /* Fields */
102
107
112
117
124
131
132
133
134 /* Methods */
135
140 { init(TRUE) ; }
141
146 PoArrow(int numPoints, const SbVec2f *_point, PatternType startType = NO_PATTERN,
147 PatternType endType = NO_PATTERN, float _patternWidth = 0.05f,
148 float _patternHeight = 0.03f)
149 { init(FALSE, numPoints, _point, startType, endType, _patternWidth, _patternHeight) ; }
150
154 virtual void rebuild() ;
155
156 /*----------------------------------------------------------------------------*/
157 private:
158 static void initClass() ;
159 static void exitClass() ;
160
161 private:
162 // Methods
163 // Destructor
164 virtual ~PoArrow() ;
165 virtual void setDefaultOnNonWritingFields() ;
166 virtual SbBool setUpConnections(SbBool onOff, SbBool doItAlways = FALSE) ;
167
168 private:
169 // Enumeration
170 enum RefererenType {
171 RELATIVE_WC,
172 RELATIVE_01
173 } ;
174
175 // Init method
176 void init(SbBool isDefault, int numPoints = 0, const SbVec2f *_point = NULL,
177 PatternType startType = NO_PATTERN, PatternType endType = NO_PATTERN,
178 float _patternWidth = 0.05f, float _patternHeight = 0.03f) ;
179
180 // Build pattern shape for the arrow
181 void arrowShape(RefererenType refType, PatternType patType, const SbVec2f &start,
182 const SbVec2f &end, SoGroup *group) ;
183
184 // Sensors
185 FieldSensorList fieldSensorList ;
186
187 // List of fields defined in this class
188 SoFieldList fieldList ;
189
190} ;
191
192/*----------------------------------------------------------------------------*/
193
194#endif /* _PO_ARROW_ */
195
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Class to build a 2D arro...
Definition PoArrow.h:59
PoArrow()
Default constructor.
Definition PoArrow.h:139
SoMFVec2f point
Point list of the arrow.
Definition PoArrow.h:106
virtual void rebuild()
Forces node-kit rebuilding.
SoSFFloat patternWidth
Define the width of the start and end arrow pattern.
Definition PoArrow.h:123
PoArrow(int numPoints, const SbVec2f *_point, PatternType startType=NO_PATTERN, PatternType endType=NO_PATTERN, float _patternWidth=0.05f, float _patternHeight=0.03f)
Constructor.
Definition PoArrow.h:146
PatternType
Type of pattern at the arrow extremities.
Definition PoArrow.h:82
@ DIRECT_TRIANGLE
Direct triangle at the arrow extremity.
Definition PoArrow.h:90
@ NO_PATTERN
No pattern at the arrow extremity.
Definition PoArrow.h:86
@ INDIRECT_TRIANGLE
Indirect triangle at the arrow extremity.
Definition PoArrow.h:94
@ RECTANGLE
Rectangle at the arrow extremity.
Definition PoArrow.h:98
SoSFEnum endPatternType
Defines the end arrow pattern type.
Definition PoArrow.h:116
SoSFFloat patternHeight
Define the height of the start and end arrow pattern.
Definition PoArrow.h:130
SoSFEnum startPatternType
Defines the start arrow pattern type.
Definition PoArrow.h:111
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Abstract base class for ...
2D vector class.
Definition SbVec.h:76
Maintains a list of pointers to fields.
Definition SoFieldList.h:72
Base class for all group nodes.
Definition SoGroup.h:122
Multiple-value field containing any number of two-dimensional vectors.
Definition SoMFVec2f.h:89
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