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
42 VArray<int> in_face_array;
48 typedef std::multimap<int, Vertex_List_Node *>::iterator nodes_iterator;
67 static bool GeneratePointOnCircle(
HPoint * point,
HPoint const & center,
float radius,
int axis,
float angle,
bool convert=
true);
81 static bool GeneratePointsOnCircle (
HPoint points[],
HPoint const & center,
float radius,
int axis,
int numpoints,
bool convert=
true);
98 static bool GeneratePointsOnCircularArc (
HPoint points[],
HPoint const & center,
float radius,
int axis,
int numpoints,
bool convert,
float start_angle,
float end_angle);
117 static HC_KEY CreateSphere(
const char * segment,
HPoint center,
float radius,
int num_faces);
176 static HC_KEY CreateCuttingPlane(
HBaseView *view,
const char *segmentname = 0,
bool createplane =
true);
185 static void SetCuttingPlaneVisibilityForAll(
HC_KEY startkey,
const char *visibility);
193 static void AdjustCuttingPlaneRendering(
HBaseView * view);
206 static void CreateThreeSidedSection(
HBaseView *view);
212 static void CreateTwoSidedSection(
HBaseView *view);
213 static void CreateSlice(
HBaseView *view,
float relative_thickness = 0.1f);
236 static HC_KEY CreateShellWithFaceSpecificVertexAttributes(
238 int face_list_length,
int face_vertex_indices[],
239 float normals[]=0,
int per_face_vertex_normal_indices[]=0,
240 float color_values[]=0,
int per_face_vertex_color_value_indices[]=0,
241 float color_findices[]=0,
int per_face_vertex_color_findex_indices[]=0,
242 float params[]=0,
int per_face_vertex_param_indices[]=0,
int param_number=0,
243 float crease_angle = 0.f);
267 static HC_KEY CreateShellWithFaceSpecificVertexAttributes(
269 int face_list_length,
int face_vertex_indices[],
270 HPoint normals[]=0,
int per_face_vertex_normal_indices[]=0,
271 HPoint color_values[]=0,
int per_face_vertex_color_value_indices[]=0,
272 float color_findices[]=0,
int per_face_vertex_color_findex_indices[]=0,
273 float params[]=0,
int per_face_vertex_param_indices[]=0,
int param_number=0,
274 float crease_angle = 0.f);
285 static HC_KEY GenerateFEAShell(
HC_KEY definingShell,
bool generateIsolines,
const char *algorithm);
296 static HC_KEY CreateSmoothedShell(
300 const int FaceList[],
321 static bool ComputeFIndexDemoData(
HShellVertexData *pShellVertexData,
int data_cycles = 30);
357 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);
374 static HC_KEY CreateShellFromPathSweep(
int nProfilePoints,
const HPoint pOuterProfilePoints[],
const HPoint pInnerProfilePoints[],
int nPathPoints,
const HPoint pSweepPathPoints[],
const bool bIsProfileClosed);
387 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:51
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:622
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