34 bool second_order =
false);
47 bool second_order =
false);
59 bool second_order =
false);
95 : myIterations(iterations)
96 , myStepSize(step_size)
97 , myWeightMethod(method)
98 , myRingZero(ring_zero)
99 , myEdgeWeights(edge_weights)
162 int filterQuality = 2,
165 const GA_Group *constrainGroup = NULL,
168 : myStrength(strength)
169 , myFilterQuality(filterQuality)
171 , myBoundaryMask(boundaryMask)
172 , myConstrainGroup(constrainGroup)
GU_ImplicitSmoothParms(fpreal64 strength=1.0, int filterQuality=2, GU_ImplicitSmoothMethod method=GU_IMPLICIT_SMOOTH_METHOD_UNIFORM, GU_SmoothBoundaryMask boundaryMask=GU_SMOOTH_BOUNDARY_ALL, const GA_Group *constrainGroup=NULL, const UT_Map< GA_Offset, fpreal > *weights=NULL)
Definition of a geometry attribute.
GU_API bool GUsmoothComputeEdgeWeights(UT_Array< UT_Array< fpreal >> &edge_weights, const GU_SmoothWeightMethod method, const GA_Attribute &pt_attrib, const GA_Range &pt_range, const UT_Array< GA_OffsetArray > &pt_ringzero)
GU_SmoothWeightMethod myWeightMethod
GU_API bool GUsmoothLaplace(GA_Attribute &pt_attrib, const GU_SmoothParms &parms, const GA_PointGroup *pt_group=nullptr, GA_Attribute *work_attrib=nullptr)
const UT_Array< GA_OffsetArray > * myRingZero
const GA_Group * myConstrainGroup
GU_SmoothParms(int iterations=1, fpreal step_size=1.0, GU_SmoothWeightMethod method=GU_SMOOTH_WEIGHT_UNIFORM, const UT_Array< GA_OffsetArray > *ring_zero=nullptr, const UT_Array< UT_Array< fpreal >> *edge_weights=nullptr)
GU_SmoothBoundaryMask myBoundaryMask
GU_API void GUimplicitSmooth(UT_Array< GA_Attribute * > &attribs, const GU_ImplicitSmoothParms &parms, const GA_Group *group)
A range of elements in an index-map.
unsigned int GU_SmoothBoundaryMask
GU_API bool GUsmooth(GA_Attribute *attrib, float frequency, int iterations, const GA_PrimitiveGroup *primgroup=NULL, bool second_order=false)
GU_ImplicitSmoothMethod myMethod
Container class for all geometry.
const UT_Map< GA_Offset, fpreal > * myWeights
const UT_Array< UT_Array< fpreal > > * myEdgeWeights