HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GEO_SplitPoints.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  * NAME: GEO_SplitPoints.h (GEO Library, C++)
7  *
8  * COMMENTS: Functions for splitting points based on vertices or primitives
9  */
10 
11 #pragma once
12 
13 #ifndef __GEO_SplitPoints__
14 #define __GEO_SplitPoints__
15 
16 #include "GEO_API.h"
17 #include <GA/GA_Types.h>
18 #include <SYS/SYS_Types.h>
19 
20 class GEO_Detail;
21 class GA_Range;
22 class GA_Attribute;
23 class GA_ElementGroup;
24 
25 /// group can be a point, vertex, or primitive group to split out
26 /// new points for all vertices associated with elements in the group,
27 /// if the points are shared.
28 /// This splits all points if group is nullptr.
29 /// Returns the number of points added.
30 /// This bumps data IDs as necessary if any points are split.
32  GEO_Detail *detail,
33  const GA_ElementGroup *group=nullptr);
34 
35 /// group can be a point, vertex, or primitive group to split out
36 /// new points for all clusters of vertices in the group where their values are
37 /// unequal to at least one vertex (whether in the group or not) on the shared point.
38 /// This splits all points by the attribute if group is nullptr.
39 /// Returns the number of points added.
40 /// This bumps data IDs as necessary if any points are split.
42  GEO_Detail *detail,
43  const GA_ElementGroup *group,
44  const GA_Attribute *attrib,
45  fpreal tolerance = 0);
46 
47 /// Returns the number of points added.
48 /// NOTE: You can use GU_Promote to promote primitive attributes to point attributes.
49 /// This bumps data IDs as necessary if any points are split.
51  GEO_Detail *detail,
52  const GA_Range &points,
53  const GA_Attribute *attrib,
54  fpreal tolerance = 0);
55 
56 #endif
Definition of a geometry attribute.
Definition: GA_Attribute.h:198
GLdouble GLdouble GLint GLint const GLdouble * points
Definition: glad.h:2676
GA_Size GEO_API GEOsplitPointsByAttrib(GEO_Detail *detail, const GA_ElementGroup *group, const GA_Attribute *attrib, fpreal tolerance=0)
exint GA_Size
Defines the bit width for index and offset types in GA.
Definition: GA_Types.h:235
A range of elements in an index-map.
Definition: GA_Range.h:42
#define GEO_API
Definition: GEO_API.h:14
fpreal64 fpreal
Definition: SYS_Types.h:277
GA_Size GEO_API GEOsplitPoints(GEO_Detail *detail, const GA_ElementGroup *group=nullptr)