10 #ifndef _HUTILITYGEOMETRYCREATION_H
11 #define _HUTILITYGEOMETRYCREATION_H
23 #define BOOLEAN_TYPE_NONE 0
24 #define BOOLEAN_TYPE_INTERSECT 1
25 #define BOOLEAN_TYPE_SUBTRACT 2
26 #define BOOLEAN_TYPE_UNION 3
44 VArray<int> in_face_array;
50 typedef std::multimap<int, Vertex_List_Node *>::iterator nodes_iterator;
69 static bool GeneratePointOnCircle(
HPoint * point,
HPoint const & center,
float radius,
int axis,
float angle,
bool convert=
true);
83 static bool GeneratePointsOnCircle (
HPoint points[],
HPoint const & center,
float radius,
int axis,
int numpoints,
bool convert=
true);
100 static bool GeneratePointsOnCircularArc (
HPoint points[],
HPoint const & center,
float radius,
int axis,
int numpoints,
bool convert,
float start_angle,
float end_angle);
119 static HC_KEY CreateSphere(
const char * segment,
HPoint center,
float radius,
int num_faces);
178 static HC_KEY CreateCuttingPlane(
HBaseView *view,
const char *segmentname = 0,
bool createplane =
true);
187 static void SetCuttingPlaneVisibilityForAll(
HC_KEY startkey,
const char *visibility);
195 static void AdjustCuttingPlaneRendering(
HBaseView * view);
208 static void CreateThreeSidedSection(
HBaseView *view);
214 static void CreateTwoSidedSection(
HBaseView *view);
215 static void CreateSlice(
HBaseView *view,
float relative_thickness = 0.1f);
238 static HC_KEY CreateShellWithFaceSpecificVertexAttributes(
240 int face_list_length,
int *face_vertex_indices,
241 float *normals=0,
int *per_face_vertex_normal_indices=0,
242 float *color_values=0,
int *per_face_vertex_color_value_indices=0,
243 float *color_findices=0,
int *per_face_vertex_color_findex_indices=0,
244 float *params=0,
int *per_face_vertex_param_indices=0,
int param_number=0,
245 float crease_angle = 0.f);
269 static HC_KEY CreateShellWithFaceSpecificVertexAttributes(
271 int face_list_length,
int *face_vertex_indices,
272 HPoint normals[]=0,
int *per_face_vertex_normal_indices=0,
273 HPoint color_values[]=0,
int *per_face_vertex_color_value_indices=0,
274 float *color_findices=0,
int *per_face_vertex_color_findex_indices=0,
275 float *params=0,
int *per_face_vertex_param_indices=0,
int param_number=0,
276 float crease_angle = 0.f);
287 static HC_KEY GenerateFEAShell(
HC_KEY definingShell,
bool generateIsolines,
const char *algorithm);
298 static HC_KEY CreateSmoothedShell(
323 static bool ComputeFIndexDemoData(
HShellVertexData *pShellVertexData,
int data_cycles = 30);
359 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);
376 static HC_KEY CreateShellFromPathSweep(
int nProfilePoints,
const HPoint pOuterProfilePoints[],
const HPoint pInnerProfilePoints[],
int nPathPoints,
const HPoint pSweepPathPoints[],
const bool bIsProfileClosed);
389 static void GenerateCuboidPoints(
HPoint const * max,
HPoint const * in,
HPoint points[]);
This class provides utility functions for creating construction geometry as well as simple primitives...
Definition: HUtilityGeometryCreation.h:53
Definition: HUtilityGeometryCreation.h:28
class HPoint HVector
The HVector class is the data type of a three-dimensional vector.
Definition: HGlobals.h:326
The HShellVertexData class encapsulates colormap index information associated with the vertices of a ...
Definition: HUtility.h:618
The HPoint class is the data type of a three-dimensional point.
Definition: HGlobals.h:121
The HBaseView class defines and manages a view of model information.
Definition: HBaseView.h:332