HDK
|
#include "GU_API.h"
#include <GA/GA_Edge.h>
#include <GA/GA_EdgeSet.h>
#include <GA/GA_ElementWrangler.h>
#include <SYS/SYS_Deprecated.h>
#include <UT/UT_Map.h>
#include <UT/UT_Set.h>
#include <UT/UT_Vector3.h>
#include <UT/UT_Vector4.h>
#include <stddef.h>
Go to the source code of this file.
Classes | |
class | GU_EdgeDiv |
class | GU_LoopFinder |
class | GU_PolySplitHelper |
class | GU_PerEdgeDiv |
Macros | |
#define | __GU_EdgeUtils_h__ |
Enumerations | |
enum | GU_EvenlySpaceMethod { GU_EVENLY_SPACE_AVERAGE, GU_EVENLY_SPACE_LONGEST, GU_EVENLY_SPACE_SHORTEST } |
#define __GU_EdgeUtils_h__ |
Definition at line 15 of file GU_EdgeUtils.h.
enum GU_EvenlySpaceMethod |
Enumerator | |
---|---|
GU_EVENLY_SPACE_AVERAGE | |
GU_EVENLY_SPACE_LONGEST | |
GU_EVENLY_SPACE_SHORTEST |
Definition at line 194 of file GU_EdgeUtils.h.
GU_API void GUcircleEdges | ( | UT_Map< GA_Offset, UT_Vector3 > & | edits, |
const GU_Detail & | gdp, | ||
const UT_Set< GA_Edge > & | gaedges, | ||
const fpreal * | radius = nullptr , |
||
bool | proj_nml = false , |
||
fpreal | scale = 1.0 |
||
) |
GU_API UT_Vector3 GUcomputeInsetPos | ( | const GEO_Face & | face, |
int | vtx, | ||
float | inset | ||
) |
GU_API void GUdivideEdges | ( | GU_Detail & | detail, |
const UT_Array< GU_PerEdgeDiv > & | div_locs, | ||
GA_PointGroup & | new_points_group | ||
) |
Inserts points on edges, with a different fraction and number of divisions per edge.
GU_API void GUedgeLoopSplit | ( | GU_Detail & | gdp, |
GA_Offset | pt0, | ||
GA_Offset | pt1, | ||
fpreal | u, | ||
exint | splits = 0 , |
||
bool | parallel = false , |
||
GA_EdgeGroup * | edgeGroup = NULL , |
||
UT_Fpreal32Array * | warningCoords = NULL |
||
) |
GU_API void GUevenlySpaceEdges | ( | UT_Map< GA_Offset, UT_Vector3 > & | edits, |
const GU_Detail & | gdp, | ||
const UT_Set< GA_Edge > & | gaedges, | ||
GU_EvenlySpaceMethod | method = GU_EVENLY_SPACE_AVERAGE |
||
) |
GU_API void GUfindUnsharedEdges | ( | const GEO_Detail & | detail, |
GA_EdgeGroup & | edges, | ||
const GA_PrimitiveGroup * | primgroup = NULL , |
||
bool | prims_on_edges = false |
||
) |
Iterates through the primitives of the detail, calling edgeApply on each primitive to count the number of times each (unordered) edge is present, and adds any edges that appear only once. If prims_on_edges is true, each edge in the edge group will reference the primitive it's associated with. WARNING: A lot of things can go bonkers if you use prims_on_edges! For example, toggling the edge group will result in a group that contains all of the original edges plus every edge, so more edges than the total number.
GU_API void GUfindUnsharedEdges | ( | const GEO_Detail & | detail, |
GA_DirectedEdgeSet & | edges, | ||
const GA_PrimitiveGroup * | primgroup = NULL |
||
) |
Iterates through the primitives of the detail, calling edgeApply on each primitive to count the number of times each (unordered) edge is present, and adds any edges that appear only once, in the direction they appear. WARNING: GA_DirectedEdgeSet is an unordered set, so iteration order can't be relied upon if you use that version.
GU_API void GUfindUnsharedEdges | ( | const GEO_Detail & | detail, |
UT_Array< GA_DirectedEdge > & | edges, | ||
const GA_PrimitiveGroup * | primgroup = NULL |
||
) |
Iterates through the primitives of the detail, calling edgeApply on each primitive to count the number of times each (unordered) edge is present, and adds any edges that appear only once, in the direction they appear. WARNING: GA_DirectedEdgeSet is an unordered set, so iteration order can't be relied upon if you use that version.
GU_API bool GUgetBridgePaths | ( | GA_OffsetArray & | path0, |
GA_OffsetArray & | path1, | ||
const GU_Detail & | gdp, | ||
const UT_Set< GA_Edge > & | gaedges | ||
) |
GU_API void GUgetEdges | ( | UT_Set< GA_Edge > & | edges, |
const GA_PrimitiveGroup & | grp | ||
) |
GU_API void GUgetEdges | ( | UT_Set< GA_Edge > & | edges, |
const GA_PointGroup & | grp | ||
) |
GU_API void GUgetUnsharedPath | ( | GA_OffsetArray & | path, |
const GU_Detail & | gdp, | ||
GA_Offset | start, | ||
GA_Offset | end | ||
) |
GU_API bool GUisPointInline | ( | const UT_Vector3 & | start, |
const UT_Vector3 & | mid, | ||
const UT_Vector3 & | end, | ||
float | tol | ||
) |
GU_API void GUmergeEdgesAsLines | ( | GU_Detail & | dest, |
const GU_Detail & | src, | ||
const GA_EdgeGroup * | group = nullptr |
||
) |
Merge edges from the source detail into the destination detail, creating a separate two-point line segment (i.e open polygon) for edge group entry. This method does not transfer vertex or primitive attributes. This is useful for building guide geometry from an edge group.
GU_API void GUstraightenEdges | ( | UT_Map< GA_Offset, UT_Vector3 > & | edits, |
const GU_Detail & | gdp, | ||
const UT_Set< GA_Edge > & | gaedges, | ||
const UT_Vector3 * | constrain_nml | ||
) |