14 #ifndef _HUTILITYGEOMETRYCREATION_H
15 #define _HUTILITYGEOMETRYCREATION_H
27 #define BOOLEAN_TYPE_NONE 0
28 #define BOOLEAN_TYPE_INTERSECT 1
29 #define BOOLEAN_TYPE_SUBTRACT 2
30 #define BOOLEAN_TYPE_UNION 3
48 VArray<int> in_face_array;
54 typedef std::multimap<int, Vertex_List_Node *>::iterator nodes_iterator;
73 static bool GeneratePointOnCircle(
HPoint * point,
HPoint const & center,
float radius,
int axis,
float angle,
bool convert=
true);
87 static bool GeneratePointsOnCircle (
HPoint points[],
HPoint const & center,
float radius,
int axis,
int numpoints,
bool convert=
true);
104 static bool GeneratePointsOnCircularArc (
HPoint points[],
HPoint const & center,
float radius,
int axis,
int numpoints,
bool convert,
float start_angle,
float end_angle);
123 static HC_KEY CreateSphere(
const char * segment,
HPoint center,
float radius,
int num_faces);
182 static HC_KEY CreateCuttingPlane(
HBaseView *view,
const char *segmentname = 0,
bool createplane =
true);
191 static void SetCuttingPlaneVisibilityForAll(
HC_KEY startkey,
const char *visibility);
199 static void AdjustCuttingPlaneRendering(
HBaseView * view);
212 static void CreateThreeSidedSection(
HBaseView *view);
218 static void CreateTwoSidedSection(
HBaseView *view);
219 static void CreateSlice(
HBaseView *view,
float relative_thickness = 0.1f);
242 static HC_KEY CreateShellWithFaceSpecificVertexAttributes(
244 int face_list_length,
int *face_vertex_indices,
245 float *normals=0,
int *per_face_vertex_normal_indices=0,
246 float *color_values=0,
int *per_face_vertex_color_value_indices=0,
247 float *color_findices=0,
int *per_face_vertex_color_findex_indices=0,
248 float *params=0,
int *per_face_vertex_param_indices=0,
int param_number=0,
249 float crease_angle = 0.f);
273 static HC_KEY CreateShellWithFaceSpecificVertexAttributes(
275 int face_list_length,
int *face_vertex_indices,
276 HPoint normals[]=0,
int *per_face_vertex_normal_indices=0,
277 HPoint color_values[]=0,
int *per_face_vertex_color_value_indices=0,
278 float *color_findices=0,
int *per_face_vertex_color_findex_indices=0,
279 float *params=0,
int *per_face_vertex_param_indices=0,
int param_number=0,
280 float crease_angle = 0.f);
291 static HC_KEY GenerateFEAShell(
HC_KEY definingShell,
bool generateIsolines,
const char *algorithm);
302 static HC_KEY CreateSmoothedShell(
327 static bool ComputeFIndexDemoData(
HShellVertexData *pShellVertexData,
int data_cycles = 30);
363 static HC_KEY CreateShellFromRotationalSweep(
int nPoints,
const HPoint profile[],
const float *radii,
float start_angle,
float end_angle,
int axis,
const bool *hard,
int n_sides);
380 static HC_KEY CreateShellFromPathSweep(
int nProfilePoints,
const HPoint pOuterProfilePoints[],
const HPoint pInnerProfilePoints[],
int nPathPoints,
const HPoint pSweepPathPoints[],
const bool bIsProfileClosed);
This class provides utility functions for creating construction geometry as well as simple primitives...
Definition: HUtilityGeometryCreation.h:57
Definition: HUtilityGeometryCreation.h:32
class HPoint HVector
The HVector class is the data type of a three-dimensional vector.
Definition: HGlobals.h:332
The HShellVertexData class encapsulates colormap index information associated with the vertices of a ...
Definition: HUtility.h:624
The HPoint class is the data type of a three-dimensional point.
Definition: HGlobals.h:126
The HBaseView class defines and manages a view of model information.
Definition: HBaseView.h:337