HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SIM_GeoVisitor.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  */
7 
8 #ifndef __SIM_GeoVisitor_h__
9 #define __SIM_GeoVisitor_h__
10 
11 #include "SIMZ_API.h"
12 
13 #include <UT/UT_VectorTypes.h>
14 
15 class GA_PointGroup;
16 class GEO_Quadric;
17 class GU_Detail;
18 
20 {
21 public:
22  virtual ~SIM_GeoVisitor();
23 
24  /// Called for each sphere or tube primitive in the geometry.
25  virtual void onPrimQuadric(const GEO_Quadric *quadric) = 0;
26 
27  /// Called for each convex hull shape in the geometry.
28  virtual void onConvexHull(const GU_Detail &gdp,
29  const GA_PointGroup *points) = 0;
30 
31  /// Called for each box shape that is found in the geometry.
32  virtual void onBox(const UT_Vector3 &center, const UT_Vector3 &size,
33  const UT_Matrix3 &rot,
34  const GU_Detail &gdp,
35  const GA_PointGroup *points) = 0;
36 
37  /// Get the refiner user to refine to polygons to computer the
38  /// the convex hulls.
39  virtual void refine(const GU_Detail *src, GU_Detail &dest,
40  const UT_Matrix4D &xform) = 0;
41 };
42 
43 /// If group_by_connectivity is false, a single shape will be created for the
44 /// entire geometry. Otherwise, a separate shape will be created for each
45 /// connected component in the geometry.
46 void SIMZ_API SIMvisitGeometry(const GU_Detail &gdp, SIM_GeoVisitor &visitor,
47  bool group_by_connectivity);
48 
49 #endif
void SIMZ_API SIMvisitGeometry(const GU_Detail &gdp, SIM_GeoVisitor &visitor, bool group_by_connectivity)
#define SIMZ_API
Definition: SIMZ_API.h:10
GLdouble GLdouble GLint GLint const GLdouble * points
Definition: glad.h:2676
GA_API const UT_StringHolder rot
GLsizeiptr size
Definition: glcorearb.h:664
GLenum src
Definition: glcorearb.h:1793