HDK
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
GU_PointCapture.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: GU_PointCapture.h ( GU Library, C++)
7
*
8
* COMMENTS:
9
* GU_PointCapture creates capture weights for use with linear blend skinning.
10
* The technique implemented here allows smooth transformations
11
* with small capture radii.
12
*/
13
14
#ifndef __GU_PointCapture__
15
#define __GU_PointCapture__
16
17
#include "
GU_API.h
"
18
19
#include <
UT/UT_StringHolder.h
>
20
21
#include <
SYS/SYS_Types.h
>
22
23
enum class
GU_PointCaptureKernelType
24
{
25
EXPONENTIAL_BUMP
,
26
TRUNCATED_GAUSSIAN
,
27
QUADRATIC
,
28
LINEAR
29
};
30
31
enum class
GU_PointCaptureSmoothingMethod
32
{
33
APPROXIMATING
,
34
INTERPOLATING
,
35
NONE
36
};
37
38
enum class
GU_PointCaptureTetMeshTreatment
39
{
40
AS_SURFACE
,
41
AS_SOLID
,
42
NONE
43
};
44
45
struct
GU_PointCaptureConfiguration
46
{
47
using
KernelType
=
GU_PointCaptureKernelType
;
48
49
double
myCaptureRadius
;
50
KernelType
myKernelType
;
51
52
GU_PointCaptureSmoothingMethod
mySmoothingMethod
;
53
exint
mySmoothingLevel
;
54
55
GU_PointCaptureTetMeshTreatment
myTetMeshTreatment
;
56
57
// If enabled, output the correspondence between rest points
58
// and the (subdivided) capture mesh in the form of extra attributes:
59
bool
myOutputCorrespondence
;
60
};
61
62
class
GEO_Detail
;
63
class
GA_PointGroup
;
64
65
enum class
GU_PointCaptureStatus
66
{
67
PC_FAILED
,
68
PC_SUCCEEDED
,
69
PC_INTERRUPTED
70
};
71
72
struct
GU_PointCaptureResult
73
{
74
GU_PointCaptureStatus
myStatus
;
75
76
// Failure message in case myStatus == PC_FAILED
77
// Warning message in case myStatus == PC_SUCCEEDED
78
// empty string otherwise
79
UT_StringHolder
myMessage
;
80
};
81
82
struct
GU_API
GU_PointCapture
83
{
84
using
Configuration
=
GU_PointCaptureConfiguration
;
85
86
// Create capture weights for each point of 'point_group' on 'detail'
87
// based on 'capture_detail'
88
GU_PointCaptureResult
operator()(
89
GEO_Detail
& detail,
90
const
Configuration
& configuration,
91
const
GA_PointGroup
*
const
point_group,
92
const
GEO_Detail
& capture_detail,
93
const
char
*
const
capture_points_attribute_name,
94
const
char
*
const
capture_weights_attribute_name
95
)
const
noexcept;
96
};
97
98
struct
GU_SimplexRefineConfiguration
99
{
100
GU_PointCaptureSmoothingMethod
mySmoothingMethod
;
101
exint
mySmoothingLevel
;
102
};
103
104
105
enum class
GU_SimplexRefineStatus
106
{
107
PC_FAILED
,
108
PC_SUCCEEDED
,
109
PC_INTERRUPTED
110
};
111
112
struct
GU_SimplexRefineResult
113
{
114
GU_SimplexRefineStatus
myStatus
;
115
116
// Failure message in case myStatus == PC_FAILED
117
// Warning message in case myStatus == PC_SUCCEEDED
118
// empty string otherwise
119
UT_StringHolder
myMessage
;
120
};
121
122
struct
GU_API
GU_SimplexRefine
123
{
124
using
Configuration
=
GU_SimplexRefineConfiguration
;
125
126
GU_SimplexRefineResult
operator()(
127
GEO_Detail
& detail,
128
const
Configuration
& configuration,
129
const
GEO_Detail
& capture_detail
130
)
const
noexcept;
131
};
132
133
#endif
GU_PointCapture
Definition:
GU_PointCapture.h:82
GU_PointCaptureStatus::PC_INTERRUPTED
GU_SimplexRefineResult::myStatus
GU_SimplexRefineStatus myStatus
Definition:
GU_PointCapture.h:114
GU_PointCaptureResult::myMessage
UT_StringHolder myMessage
Definition:
GU_PointCapture.h:79
GU_PointCaptureSmoothingMethod::APPROXIMATING
GU_PointCaptureConfiguration::myOutputCorrespondence
bool myOutputCorrespondence
Definition:
GU_PointCapture.h:59
GU_PointCaptureSmoothingMethod
GU_PointCaptureSmoothingMethod
Definition:
GU_PointCapture.h:31
GU_SimplexRefineConfiguration::mySmoothingMethod
GU_PointCaptureSmoothingMethod mySmoothingMethod
Definition:
GU_PointCapture.h:100
GU_PointCaptureStatus
GU_PointCaptureStatus
Definition:
GU_PointCapture.h:65
exint
int64 exint
Definition:
SYS_Types.h:125
GU_PointCaptureStatus::PC_FAILED
GU_PointCaptureConfiguration
Definition:
GU_PointCapture.h:45
GU_PointCaptureKernelType::EXPONENTIAL_BUMP
GU_SimplexRefineConfiguration
Definition:
GU_PointCapture.h:98
GU_SimplexRefineResult::myMessage
UT_StringHolder myMessage
Definition:
GU_PointCapture.h:119
GA_PointGroup
Definition:
GA_ElementGroup.h:33
GU_PointCaptureKernelType::LINEAR
GU_PointCaptureStatus::PC_SUCCEEDED
GU_PointCaptureConfiguration::mySmoothingLevel
exint mySmoothingLevel
Definition:
GU_PointCapture.h:53
UT_StringHolder
Definition:
UT_StringHolder.h:1074
GEO_Detail
Definition:
GEO_Detail.h:248
SYS_Types.h
GU_PointCaptureSmoothingMethod::NONE
GU_SimplexRefineConfiguration::mySmoothingLevel
exint mySmoothingLevel
Definition:
GU_PointCapture.h:101
GU_PointCaptureConfiguration::myKernelType
KernelType myKernelType
Definition:
GU_PointCapture.h:50
GU_PointCaptureKernelType::TRUNCATED_GAUSSIAN
GU_PointCaptureConfiguration::mySmoothingMethod
GU_PointCaptureSmoothingMethod mySmoothingMethod
Definition:
GU_PointCapture.h:52
GU_API
#define GU_API
Definition:
GU_API.h:14
GU_PointCaptureKernelType
GU_PointCaptureKernelType
Definition:
GU_PointCapture.h:23
GU_SimplexRefineStatus
GU_SimplexRefineStatus
Definition:
GU_PointCapture.h:105
GU_PointCaptureKernelType::QUADRATIC
GU_PointCaptureTetMeshTreatment
GU_PointCaptureTetMeshTreatment
Definition:
GU_PointCapture.h:38
GU_PointCaptureConfiguration::myCaptureRadius
double myCaptureRadius
Definition:
GU_PointCapture.h:49
GU_PointCaptureConfiguration::myTetMeshTreatment
GU_PointCaptureTetMeshTreatment myTetMeshTreatment
Definition:
GU_PointCapture.h:55
GU_PointCaptureSmoothingMethod::INTERPOLATING
UT_StringHolder.h
GU_PointCaptureTetMeshTreatment::NONE
GU_PointCaptureResult::myStatus
GU_PointCaptureStatus myStatus
Definition:
GU_PointCapture.h:74
GU_API.h
GU_PointCaptureTetMeshTreatment::AS_SOLID
GU_PointCaptureTetMeshTreatment::AS_SURFACE
GU_SimplexRefine
Definition:
GU_PointCapture.h:122
GU_PointCaptureResult
Definition:
GU_PointCapture.h:72
GU_SimplexRefineResult
Definition:
GU_PointCapture.h:112
GU
GU_PointCapture.h
Generated on Sun Aug 9 2026 02:21:21 for HDK by
1.8.6