11 #ifndef __GU_PolyFrame__
12 #define __GU_PolyFrame__
59 ::memset(names, 0,
sizeof(
const char *) * 3);
137 handle = myAttribs->normal();
142 handle = myAttribs->tangent();
147 handle = myAttribs->bitangent();
170 enum class NormalMethod
179 class FrameAttribHandles
182 FrameAttribHandles() =
default;
187 return myHandles[
index];
190 void findOrAddAttrib(
197 bool createDetachedOutputAttrib(
206 void createTempAttrib(
211 bool createdOnGdp(
int index)
const {
return myCreatedOnDetail[
index]; }
213 const GA_RWHandleV3 &tangent()
const {
return myHandles[0]; }
215 const GA_RWHandleV3 &bitangent()
const {
return myHandles[1]; }
222 bool myCreatedOnDetail[3];
232 FrameAttribHandles &attribs,
233 NormalMethod normalmethod,
236 static void computeFrames(
247 const FrameAttribHandles &attribs);
250 static bool createOutputAttribsOnDetail(
253 FrameAttribHandles &attribs);
255 static bool createDetachedOutputAttribs(
258 FrameAttribHandles &attribs,
265 static bool createTempAttribs(
268 FrameAttribHandles &attribs);
274 static void setFrame(
278 const FrameAttribHandles &attribs,
286 static Frame computeFirstEdgeFrame(
293 static Frame computeTwoEdgesFrame(
300 static Frame computeCentroidFrame(
308 static Frame computeTexCoordsFrame(
316 static void computeTexFramePrim(
321 const FrameAttribHandles &attribs);
322 static void computeTexFrameSoup(
328 const FrameAttribHandles &attribs);
329 static Frame computeTexFrame(
333 const FrameAttribHandles &attribs);
334 static GU_PolyFrame::Frame computeDefaultFrame(
336 static GU_PolyFrame::Frame computeDefaultFrame(
340 static void computeMeshCentroid(
345 static void createPointNormals(
350 const NormalMethod normalmethod);
351 static const char *getLayeredAttribName(
355 static void makeOrthogonal(Frame &frame,
bool left_handed);
357 static int theMinVertices[];
Definition of a geometry attribute.
void getAttribNormals(GA_RWHandleV3 &handle)
GA_API const UT_StringHolder uv
void getAttribTangents(GA_RWHandleV3 &handle)
exint GA_Size
Defines the bit width for index and offset types in GA.
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
void getAttribBitangents(GA_RWHandleV3 &handle)
GLuint const GLchar * name
void setSaveAttribFlag(bool val)
GA_Size GA_Index
Define the strictness of GA_Offset/GA_Index.
GU_Detail * getDetail() const
UT_UniquePtr< GA_Attribute > GA_AttributeUPtr
void setDetail(GU_Detail *gdp)