Open Inventor Release 2024.1.1
 
Loading...
Searching...
No Matches
PoMeshSkeleton.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_MESHSKELETON_
25#define _PO_MESHSKELETON_
26
27#include <MeshViz/3Ddata/PoMesh3D.h>
28#include <Inventor/SbBasic.h>
29
30class PbIndexedMesh3D;
36
37class SoMFInt32;
38class SoMFVec3f;
39class SoCoordinate3;
40class SoMaterial;
41
85class PoMeshSkeleton : public PoMesh3D {
86
87 SO_KIT_HEADER(PoMeshSkeleton) ;
88
89 /* Define fields for new parts */
90 SO_KIT_CATALOG_ENTRY_HEADER(skeletonXContourSep) ;
91 SO_KIT_CATALOG_ENTRY_HEADER(skeletonXContourApp) ;
92 SO_KIT_CATALOG_ENTRY_HEADER(skeletonXContourGroup) ;
93
94 SO_KIT_CATALOG_ENTRY_HEADER(skeletonYContourSep) ;
95 SO_KIT_CATALOG_ENTRY_HEADER(skeletonYContourApp) ;
96 SO_KIT_CATALOG_ENTRY_HEADER(skeletonYContourGroup) ;
97
98 SO_KIT_CATALOG_ENTRY_HEADER(skeletonZContourSep) ;
99 SO_KIT_CATALOG_ENTRY_HEADER(skeletonZContourApp) ;
100 SO_KIT_CATALOG_ENTRY_HEADER(skeletonZContourGroup) ;
101
102
103 public:
104
109
113 virtual void rebuild() ;
114
115 /* Fields */
116
121
126
131 private:
132 static void initClass() ;
133 static void exitClass() ;
134
135 void indexedMeshSkeleton(PbIndexedMesh3D *mesh, const float *nod_values,
136 float *x_cont, float *y_cont,float *z_cont);
137 void tetrahedronMeshSkeleton(PbTetrahedronMesh3D *mesh, const float *nod_values,
138 float *x_cont, float *y_cont,float *z_cont);
139 void hexahedronMeshSkeleton(PbHexahedronMesh3D *mesh, const float *nod_values,
140 float *x_cont, float *y_cont,float *z_cont);
141 void cartGrid3DSkeleton(PbCartesianGrid3D *mesh, const float *nod_values,
142 float *x_cont, float *y_cont,float *z_cont);
143 void paralCartGrid3DSkeleton(PbParalCartesianGrid3D *mesh, const float *nod_values,
144 float *x_cont, float *y_cont,float *z_cont);
145 void regularGrid3DSkeleton(PbRegularCartesianGrid3D *mesh, const float *nod_values,
146 float *x_cont, float *y_cont,float *z_cont);
147
148 private:
149
150 SO_KIT_CATALOG_ENTRY_HEADER(skeletonMaterialBinding) ;
151 // Define fields for protected parts
152 // Destructor
153 virtual ~PoMeshSkeleton() ;
154 virtual void setDefaultOnNonWritingFields();
155 virtual SbBool setUpConnections(SbBool onOff, SbBool doItAlways = FALSE) ;
156 virtual void addElementsAllCaches() ;
157 virtual void preRebuild();
158
159 void makeSkeletonContours(int num_cont, float *cont_coord,
160 float xn, float yn, float zn,
161 const float *x, const float *y, const float *z,
162 const float *nod_values,
163 const SbString& partName);
164
165 /*----------------------------------------------------------------------------*/
166 private:
167
168 FieldSensorList m_fieldSensorList ;
169 // Sensors
170
171 SoFieldList m_fieldList ;
172 // List of fields defined in this class
173
174} ;
175
176/*----------------------------------------------------------------------------*/
177
178#endif /* _PO_MESHSKELETON _ */
179
180
181
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Defines a cartesian grid...
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Defines a mesh of hexahe...
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Defines a volume mesh of...
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Defines a parallel carte...
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Defines a regular cartes...
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Defines a mesh of tetrah...
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Base class for all volum...
Definition PoMesh3D.h:53
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Representation of the sk...
virtual void rebuild()
Forces node-kit rebuilding.
SoSFInt32 numYContour
Number of cross-contours orthogonal to Y-axis.
SoSFInt32 numXContour
Number of cross-contours orthogonal to X-axis.
SoSFInt32 numZContour
Number of cross-contours orthogonal to Z-axis.
PoMeshSkeleton()
Constructor.
Class for smart character strings.
Definition SbString.h:202
Coordinate point node.
Maintains a list of pointers to fields.
Definition SoFieldList.h:72
Multiple-value field containing any number of int32_t integers.
Definition SoMFInt32.h:88
Multiple-value field containing any number of three-dimensional vectors.
Definition SoMFVec3f.h:181
Surface material definition node.
Definition SoMaterial.h:173
Field containing a int32_t integer.
Definition SoSFInt32.h:80
int SbBool
Boolean type.
Definition SbBase.h:87