GU_Detail Class Reference

#include <GU_Detail.h>

Inheritance diagram for GU_Detail:

GEO_Detail GA_Detail GOP_Guide

List of all members.

Public Types

enum  OnlyConsGroupPropagateType { ONLYCONS_GRP_PROP_LEAST = 0, ONLYCONS_GRP_PROP_UNION, ONLYCONS_GRP_PROP_INTERSECT }
enum  SnapAttributesType { SNAP_ATTRIBUTES_AVERAGE = 0, SNAP_ATTRIBUTES_INDEX }

Public Member Functions

 GU_Detail (bool full_topology=true)
 GU_Detail (GU_Detail *src, GA_PrimitiveGroup *primGroup)
 GU_Detail (const GU_Detail *src)
virtual ~GU_Detail ()
virtual void clearAndDestroy ()
 Clear all the points/primitives out of this detail.
void duplicate (const GU_Detail &gdp, int doselection=0)
virtual GA_DetailcloneEmptyDetail (bool clone_attributes) const
int cached (void) const
void cached (int onoff=1)
int cacheable (void) const
void cacheOn (void)
void cacheOff (void)
void destroyCache (void)
void notifyCache (int type)
void notifyCache (int type, const GEO_Point &ppt)
void notifyCache (int type, const GA_PointGroup &grp)
void setTriMeshCache (GU_TriMeshCache *cache)
GU_TriMeshCachegetTriMeshCache () const
void notifyMetaSurfCache (int type)
void notifyMetaSurfCache (int type, const GEO_Point &ppt)
void notifyMetaSurfCache (int type, const GA_PointGroup &)
int buildMetaSurfCache (GU_MetaSurfCacheParms &parms)
GU_MetaSurfCachegetMetaSurfCache () const
void incrementCacheables ()
void decrementCacheables ()
int getNumCacheables () const
void incrementMetaCacheCount ()
int getMetaCacheCount () const
void incrementSelectionCacheCount ()
int getSelectionCacheCount () const
int metaCacheEnable () const
void metaCacheEnable (int onoff)
void findBoundaryPoints (UT_IntArray &isboundary, bool checkuv)
void findSelectionBoundaryPoints (const UT_IntArray &pointselection, UT_IntArray &isboundary)
void buildRingZeroPoints (UT_RefArray< GA_OffsetArray > &ringzero, UT_IntArray *ringvalence) const
void buildRingZeroPoints (const GA_PointGroup *ptgroup, UT_RefArray< GA_OffsetArray > &ringzero, UT_IntArray *ringvalence) const
void SYS_DEPRECATED buildRingZeroPoints (UT_PtrArray< UT_PtrArray< GEO_Point * > * > &ringzero, UT_IntArray *ringvalence) const
void SYS_DEPRECATED buildRingZeroPoints (const GA_PointGroup *ptgroup, UT_PtrArray< UT_PtrArray< GEO_Point * > * > &ringzero, UT_IntArray *ringvalence) const
void buildRingZeroPrimitives (UT_PtrArray< UT_IntArray * > &ringzero) const
GU_PrimPolycube (float xmin=-1, float xmax=1, float ymin=-1, float ymax=1, float zmin=-1, float zmax=1, int xdiv=0, int ydiv=0, int zdiv=0, int enforcementBars=0, int doConsolidatePoints=0)
GU_PrimNURBSurfnurbCube (int xdiv, int ydiv, int zdiv, int orderx=4, int ordery=4, int orderz=4, float xmin=-0.5F, float xmax=0.5F, float ymin=-0.5F, float ymax=0.5F, float zmin=-0.5F, float zmax=0.5F, GEO_SurfaceType type=GEO_PATCH_QUADS, bool consolidate=false)
GU_PrimRBezSurfbezCube (int xdiv, int ydiv, int zdiv, int orderx=4, int ordery=4, int orderz=4, float xmin=-0.5F, float xmax=0.5F, float ymin=-0.5F, float ymax=0.5F, float zmin=-0.5F, float zmax=0.5F, GEO_SurfaceType type=GEO_PATCH_QUADS, bool consolidate=false)
GU_PrimMeshmeshCube (int xdiv, int ydiv, int zdiv, float xmin=-0.5F, float xmax=0.5F, float ymin=-0.5F, float ymax=0.5F, float zmin=-0.5F, float zmax=0.5F, GEO_SurfaceType type=GEO_PATCH_QUADS, bool consolidate=false)
GU_PrimPolypolymeshCube (int xdiv, int ydiv, int zdiv, float xmin=-0.5F, float xmax=0.5F, float ymin=-0.5F, float ymax=0.5F, float zmin=-0.5F, float zmax=0.5F, GEO_SurfaceType type=GEO_PATCH_QUADS, bool consolidate=false)
GEO_PrimitivebuildGrid (GU_GridParms &parms, GU_GridType type=GU_GRID_MESH)
GU_PrimPolypolyGrid (int rows, int cols, float xsize=1, float ysize=1, float xc=0, float yc=0, float zc=0, GU_OrientationType=GU_PLANE_XY, GEO_SurfaceType type=GEO_PATCH_QUADS)
GU_PrimMeshmeshGrid (int rows, int cols, float xsize=1, float ysize=1, float xc=0, float yc=0, float zc=0, GU_OrientationType=GU_PLANE_XY, GEO_SurfaceType type=GEO_PATCH_QUADS, int wrapu=0, int wrapv=0)
GU_PrimNURBSurfnurbGrid (int rows, int cols, int orderu=4, int orderv=4, int interpEndsU=1, int interpEndsV=1, float xsize=1, float ysize=1, float xc=0, float yc=0, float zc=0, GU_OrientationType=GU_PLANE_XY, GEO_SurfaceType type=GEO_PATCH_QUADS, int wrapu=0, int wrapv=0)
GU_PrimRBezSurfbezGrid (int rows, int cols, int orderu=4, int orderv=4, float xsize=1, float ysize=1, float xc=0, float yc=0, float zc=0, GU_OrientationType=GU_PLANE_XY, GEO_SurfaceType type=GEO_PATCH_QUADS, int wrapu=0, int wrapv=0)
void torus (unsigned type, GU_TorusParms &parms)
GU_PrimPolypolyIsoSurface (float(*ptOutside)(const UT_Vector3 &), const UT_BoundingBox &bbox, int xdiv, int ydiv, int zdiv)
void buildMetaSurface (GU_Detail *src, float lod, GA_PrimitiveGroup *primGroup=0)
void buildMetaSurface (GU_Detail *src, int divx, int divy, int divz, GA_PrimitiveGroup *primGroup=0)
void buildMetaXsection (GU_Detail *src, int nsections, int axis=2, int maxdepth=4, GA_PrimitiveGroup *primGroup=0)
void orient (const GA_PrimitiveGroup *group=0)
 orient all the polygonal faces to have the same winding direction
void extrude (GU_ExtrudeParms &parms)
 inset and extrude a face
void blend (const GU_Detail *source, float weight, bool doPos, bool doClr, bool doNml, bool doTxt, bool doVoxels, const char *ptidattr, const char *primidattr)
 create a weighted sum of two source inputs
int blend (const GU_Detail *gdps[], const float weights[], int size, bool doPos, bool doClr, bool doNml, bool doTxt, bool doVoxels, const char *ptidattr, const char *primidattr, const GA_PointGroup *ptGroup)
void creep (GU_CreepParms &parms)
 Transform points to follow surface of path input.
int consolidatePoints (float distance, const GA_PointGroup *ptGrp=0, int forceConsAll=0, int mark=0)
int fastConsolidatePoints (float distance, const GA_PointGroup *ptGrp=0, int mark=0)
int onlyConsolidatePoints (float distance, const GA_PointGroup *ptgrp=0, int mark=0, bool deleteconsolidated=false, OnlyConsGroupPropagateType grouppropagate=ONLYCONS_GRP_PROP_LEAST)
int consolidateNormals (float distance, const GA_PointGroup *ptGrp=0, int forceConsAll=0)
int fastConsolidateNormals (float distance, const GA_PointGroup *ptGrp=0)
int fastConsolidatePointUVs (float distance, const GA_PointGroup &ptGrp, const GU_MetricType metric, int method, UT_Vector3 &uvw)
int fastConsolidateVertexUVs (float distance, const GA_VertexGroup &vtxGrp, const GU_MetricType metric, int method, UT_Vector3 &uvw)
int snapPoints (int type, float distance, const GA_PointGroup *ptgrp=0, bool snapptpos=true, bool snapptattribs=false, UT_PtrArray< GEO_AttributeHandle * > *ptattribhandles=0)
void snapGrid (int type, float xlines, float ylines, float zlines, float xoff, float yoff, float zoff, float tol, const GA_PointGroup *ptGrp=0)
void snapGridPointUVs (int type, float xlines, float ylines, float zlines, float xoff, float yoff, float zoff, float tol, const GA_PointGroup *ptGrp=0)
void snapGridVertexUVs (int type, float xlines, float ylines, float zlines, float xoff, float yoff, float zoff, float tol, const GA_VertexGroup *vtxGrp=0)
int buildHoles (float dist=0.001F, float angle=0.2F, int snapFace=0, const GA_PrimitiveGroup *primGroup=0)
void unHole (const GA_PrimitiveGroup *primGroup=0)
 Remove bridged holes from other than polygons.
void uniquePoints (const GA_ElementGroup *group=0, int useMark=0)
void uniquePrimitive (GEO_Primitive *prim)
int cleanData (const GA_PrimitiveGroup *primGrp=0, int removeRepPoints=0, float tol=0.001F, bool deletePoints=false)
int getDirtyData (GA_PrimitiveGroup *returnGrp, const GA_PrimitiveGroup *primGrp=0, int checkRepPoints=0, float tol=0.001F)
virtual GA_RWAttributeRef normal (int internal=0, GA_PrimitiveGroup *primgroup=0)
virtual void normal (UT_Vector3Array &output, bool use_internaln=true) const
void applyTexture (GU_TextureType type, GU_AxisType axis, const GA_PrimitiveGroup *primGroup=0, int applyToVertex=-1, int fixPolySeams=0, const GU_CameraParms *userData=0)
void scaleTexture (float umult=1, float uoff=0, float vmult=1, float voff=0, float wmult=1, float woff=0, const GA_PrimitiveGroup *primGroup=0)
void rotateTexture (float angle, const GA_PrimitiveGroup *primGroup=0)
void transformPointTexture (const UT_Matrix4 &mat, const GA_PointGroup *ptGroup, GEO_Delta *geodelta=0)
 Methods for transforming point and vertex texture attributes:.
void computeSoftTransformPointTextureCache (GEO_SoftTransformPointCache &cache, const GA_PointGroup *ptgroup, const GEO_Rolloff &rolloff, const GU_MetricType metric)
void softTransformPointTexture (const UT_XformOrder &order, float tx, float ty, float tz, float rx, float ry, float rz, float sx, float sy, float sz, float s_xy, float s_xz, float s_yz, float px, float py, float pz, const GEO_SoftTransformPointCache &cache, const GEO_Rolloff &rolloff, GEO_Delta *geodelta=0)
void transformVertexTexture (const UT_Matrix4 &mat, const GA_VertexGroup *vertexGroup, GEO_Delta *geodelta=0)
void computeSoftTransformVertexTextureCache (GEO_SoftTransformVertexCache &cache, const GA_VertexGroup *vtxgroup, const GEO_Rolloff &rolloff, const GU_MetricType metric, bool ignore_uv_connectivity)
void softTransformVertexTexture (const UT_XformOrder &order, float tx, float ty, float tz, float rx, float ry, float rz, float sx, float sy, float sz, float s_xy, float s_xz, float s_yz, float px, float py, float pz, const GEO_SoftTransformVertexCache &cache, const GEO_Rolloff &rolloff, GEO_Delta *geodelta=0)
void reversePolys (const GA_PrimitiveGroup *prmGrp=0)
 Reverse polygons.
void convertMetaballs (GU_MetaConvertParms &parms, const GA_PrimitiveGroup *prim_grp=NULL)
void sortPoints (GA_IndexMap &array, GU_AxisType axis=GU_XAXIS)
void sortPoints (GA_OffsetArray &array, GU_AxisType axis=GU_XAXIS)
void sortPrims (GA_IndexMap &array, GU_AxisType axis=GU_XAXIS)
void sortPointList (GU_AxisType axis)
void sortPrimitiveList (GU_AxisType axis)
void sortPoints (GA_IndexMap &array, const UT_Vector3 &o, const UT_Vector3 &d)
void sortPrims (GA_IndexMap &array, const UT_Vector3 &o, const UT_Vector3 &d)
void sortPointList (const UT_Vector3 &o, const UT_Vector3 &d)
void sortPrimitiveList (const UT_Vector3 &o, const UT_Vector3 &d)
void sortPoints (GA_IndexMap &array, int seed)
void sortPrims (GA_IndexMap &array, int seed)
void sortPointList (int seed)
void sortPrimitiveList (int seed)
void sortElements (GA_IndexMap &array, float *order)
void sortPointList (float *order)
void sortPrimitiveList (float *order)
void shift (int uoffset, int voffset, const GA_PrimitiveGroup *group=0)
void shiftPoints (GA_IndexMap &, GA_Size offset)
void shiftPrims (GA_IndexMap &, GA_Size offset)
void shiftPointList (GA_Size aoffset)
void shiftPrimitiveList (GA_Size aoffset)
void reverse (const GA_PrimitiveGroup *group=0)
 Reverse vertices for all primitives in the group.
void reversePoints (GA_IndexMap &map)
void reversePrims (GA_IndexMap &map)
void reversePointList ()
void reversePrimitiveList ()
void proximityPoints (GA_IndexMap &points, const UT_Vector3 &point)
void proximityPrims (GA_IndexMap &primitives, const UT_Vector3 &point)
void proximityToPointList (const UT_Vector3 &point)
void proximityToPrimitiveList (const UT_Vector3 &point)
void vertexOrder (GA_IndexMap &points)
void sortByVertexOrder ()
void superEllipsoid (const GU_SuperQuadParms &parms)
unsigned isPolyConvex (GA_PrimitiveGroup *primGroup=0) const
void convexPoly (GU_PrimPoly *pp, GA_ElementWranglerCache &wranglers, unsigned maxpts=3, const GU_Detail *restgdp=0)
void convex (unsigned maxpts=3, GA_PrimitiveGroup *primGroup=0, const GU_Detail *restgdp=0)
int findNonPlanar (GA_PrimitiveGroup *group, float tol=0.0001F, GA_PrimitiveGroup *primGroup=0)
void clip (UT_Vector3 &normal, float d=0, int normlize=0, const GA_PrimitiveGroup *primGroup=0)
void crease (UT_Vector3 &normal, float d=0, int normlize=0, int outputGroups=0, GA_PrimitiveGroup *above=0, GA_PrimitiveGroup *below=0, const GA_PrimitiveGroup *creaseGroup=0)
void fractalize (int seed=1, float roughness=0.6F, float scaleby=1, int divs=1, int fixedBoundry=1, int useVtxNorms=0, float nx=0, float ny=0, float nz=1, const GA_PrimitiveGroup *fractalGroup=0)
void shrink (fpreal distance, fpreal clip_tolerance=0.0001, fpreal consilidate_tolerance=0.001)
bool tetrahedralizeForShrink (const GA_PointGroup *ptGroup=0, GU_Detail *gdp=0)
int nonLinearDeform (GU_DeformType type, const GU_TwistParms &parms, int &pasted)
GEO_Hulloffset (const GU_OffsetParms &parms)
GEO_Hullgordon (GEO_SurfaceType surftype, int accurate, const GA_PrimitiveGroup &ufaces, const GA_PrimitiveGroup &vfaces, int reparameterize=0)
GEO_Hullgordon (GEO_SurfaceType surftype, int accurate, const UT_PtrArray< GEO_Primitive * > &uprims_in, const UT_PtrArray< GEO_Primitive * > &vprims_in, GU_SkinCache &skin_cache, int reparameterize=0)
GEO_Hullcoons (GEO_SurfaceType surftype, const GEO_Face &uface1, const GEO_Face &vface1, const GEO_Face *uface2=0, const GEO_Face *vface2=0)
GEO_Hullskin (GU_SkinParms &parms, GU_SkinCache &skin_cache)
GEO_Hullskin (const GA_PrimitiveGroup &ucfaces, GEO_SurfaceType surftype=GEO_PATCH_QUADS, unsigned vorder=0, int vwrap=0, int doskin=1, int nprims=-1, const UT_Vector *vParmValues=0)
GEO_Hullskin (const UT_PtrArray< GEO_Primitive * > &prims_in, GU_SkinCache &skin_cache, GEO_SurfaceType surftype=GEO_PATCH_QUADS, unsigned vorder=0, int vwrap=0, int doskin=1, int nprims=-1, const UT_Vector *vParmValues=0)
int ruled (GEO_Hull *&surface, const GU_RuledParms &p, const GU_CapOptions &caps)
int curveNetwork (GEO_Hull *&hull, GU_CurveNetworkParms &p, int &count, GU_SkinCache &skin_cache)
GU_ERROR sweep (GU_SweepParms parms)
void rails (GU_RailParms parms)
GEO_Primitivejoin (GU_JoinParms &p, int &count)
GEO_HullfilletTrims (GU_TrimFilletParms &parms, int &count)
GEO_HullfilletRound (GU_RoundFilletParms &parms)
void filletRoundNetwork (UT_RefMatrix< void * >, GU_RoundFilletParms &parms)
void joint (const GU_JointParms &p)
int fillet (GU_FilletParms &parms, int &count)
int loft (GU_LoftParms &p, const GA_PointGroup &g1, const GA_PointGroup &g2)
int loft (GU_LoftParms &p, const GA_PrimitiveGroup *group=0)
int revolve (const GU_RevolveParms &parms, const GU_CapOptions &caps, int &count)
int warp (GU_WarpParms &parms)
GU_ERROR curveClay (const GU_CurveClayParms &ccparm)
int endCap (GEO_Hull &hull, const GU_CapParms &parms)
int endCap (GEO_Face &face, const GU_CapParms &parms)
int setCaps (GEO_Hull &hull, const GU_CapOptions &parms, int &count)
int setCaps (GEO_Face &face, const GU_CapOptions &parms, int &count)
int lattice (const GU_Detail *source, const GU_Detail *rest, const GU_Detail *deform, int xdiv, int ydiv, int zdiv, const GA_PointGroup *ptgroup=0, UT_BitArray *deform_history=NULL, GU_LatticeType type=GU_LATTICE_BEZIER)
int magnet (const GU_MagnetParms &parms)
float trace (GU_TraceParms *parms)
void applyTraceTexture (float xres, float yres, float resolution)
void fit2DCurve (const GU_Detail *source, float error_squared, GA_PrimitiveGroup *primGroup=0)
GU_CurveinterpCurveBreakpoints (const GEO_Face &face, const GA_PrimitiveTypeId &type=GEO_PRIMNURBCURVE, int order=4, GA_ParameterizationType parmType=GA_PARAMETERIZATION_CHORD)
GU_CurveinterpCurveBreakpoints (const UT_PtrArray< GEO_Point * > &gpData, const GA_PrimitiveTypeId &type=GEO_PRIMNURBCURVE, int order=4, int wrapped=0, GA_ParameterizationType parmType=GA_PARAMETERIZATION_CHORD)
GU_CurveinterpCurveBreakpoints (const UT_Vector4Array &v4Data, const GA_PrimitiveTypeId &type=GEO_PRIMNURBCURVE, int order=4, int wrapped=0, GA_ParameterizationType parmType=GA_PARAMETERIZATION_CHORD)
GU_CurveinterpCurveGlobal (const GEO_Face &face, const GA_PrimitiveTypeId &type=GEO_PRIMNURBCURVE, int order=4, GA_ParameterizationType parmType=GA_PARAMETERIZATION_CHORD, GA_KnotSpaceType knotSpaceType=GA_KNOT_SPACE_AVERAGING)
GU_CurveinterpCurveGlobal (const UT_PtrArray< GEO_Point * > &gpData, const GA_PrimitiveTypeId &type=GEO_PRIMNURBCURVE, int order=4, int wrapped=0, GA_ParameterizationType parmType=GA_PARAMETERIZATION_CHORD, GA_KnotSpaceType knotSpaceType=GA_KNOT_SPACE_AVERAGING)
GU_CurveinterpCurveGlobal (const GA_Range &point_range, const GA_PrimitiveTypeId &type=GEO_PRIMNURBCURVE, int order=4, int wrapped=0, GA_ParameterizationType parmType=GA_PARAMETERIZATION_CHORD, GA_KnotSpaceType knotSpaceType=GA_KNOT_SPACE_AVERAGING)
GU_CurveinterpCurveGlobal (const UT_Vector4Array &v4Data, const GA_PrimitiveTypeId &type=GEO_PRIMNURBCURVE, int order=4, int wrapped=0, GA_ParameterizationType parmType=GA_PARAMETERIZATION_CHORD, GA_KnotSpaceType knotSpaceType=GA_KNOT_SPACE_AVERAGING)
GU_CurveinterpCurveLocal (const GEO_Face &face, const GA_PrimitiveTypeId &type=GEO_PRIMBEZCURVE, int order=4, int corner=0)
GU_CurveinterpCurveLocal (const UT_PtrArray< GEO_Point * > &gpData, const GA_PrimitiveTypeId &type=GEO_PRIMBEZCURVE, int order=4, int wrapped=0, int corner=0)
GU_CurveinterpCurveLocal (const UT_Vector4Array &v4Data, const GA_PrimitiveTypeId &type=GEO_PRIMBEZCURVE, int order=4, int wrapped=0, int corner=0)
GU_TPSurfinterpSurfGlobal (const GEO_Hull &mesh, const GA_PrimitiveTypeId &type=GEO_PRIMNURBSURF, int uOrder=4, int vOrder=4, GEO_SurfaceType sType=GEO_PATCH_QUADS, GA_ParameterizationType uParmType=GA_PARAMETERIZATION_CHORD, GA_ParameterizationType vParmType=GA_PARAMETERIZATION_CHORD, GA_KnotSpaceType uKnotSpaceType=GA_KNOT_SPACE_AVERAGING, GA_KnotSpaceType vKnotSpaceType=GA_KNOT_SPACE_AVERAGING, const UT_Vector *uParmValues=0, const UT_Vector *vParmValues=0)
GU_TPSurfinterpSurfGlobal (const UT_PtrMatrix< GEO_Point * > &gpMesh, const GA_PrimitiveTypeId &type=GEO_PRIMNURBSURF, int uOrder=4, int vOrder=4, int uWrapped=0, int vWrapped=0, GEO_SurfaceType sType=GEO_PATCH_QUADS, GA_ParameterizationType uParmType=GA_PARAMETERIZATION_CHORD, GA_ParameterizationType vParmType=GA_PARAMETERIZATION_CHORD, GA_KnotSpaceType uKnotSpaceType=GA_KNOT_SPACE_AVERAGING, GA_KnotSpaceType vKnotSpaceType=GA_KNOT_SPACE_AVERAGING, const UT_Vector *uParmValues=0, const UT_Vector *vParmValues=0)
GU_TPSurfinterpSurfBreakpoints (const GEO_Hull &mesh, const GA_PrimitiveTypeId &type=GEO_PRIMNURBSURF, int uOrder=4, int vOrder=4, GEO_SurfaceType sType=GEO_PATCH_QUADS, GA_ParameterizationType uParmType=GA_PARAMETERIZATION_CHORD, GA_ParameterizationType vParmType=GA_PARAMETERIZATION_CHORD, GA_KnotSpaceType uKnotSpaceType=GA_KNOT_SPACE_AVERAGING, GA_KnotSpaceType vKnotSpaceType=GA_KNOT_SPACE_AVERAGING, const UT_Vector *uParmValues=0, const UT_Vector *vParmValues=0)
GU_TPSurfinterpSurfBreakpoints (const UT_PtrMatrix< GEO_Point * > &gpMesh, const GA_PrimitiveTypeId &type=GEO_PRIMNURBSURF, int uOrder=4, int vOrder=4, int uWrapped=0, int vWrapped=0, GEO_SurfaceType sType=GEO_PATCH_QUADS, GA_ParameterizationType uParmType=GA_PARAMETERIZATION_CHORD, GA_ParameterizationType vParmType=GA_PARAMETERIZATION_CHORD, GA_KnotSpaceType uKnotSpaceType=GA_KNOT_SPACE_AVERAGING, GA_KnotSpaceType vKnotSpaceType=GA_KNOT_SPACE_AVERAGING, const UT_Vector *uParmValues=0, const UT_Vector *vParmValues=0)
GU_CurveapproxCurveGlobal (const GEO_Face &face, const GA_PrimitiveTypeId &type=GEO_PRIMNURBCURVE, int order=4, float tol=1e-1F, float smooth=0.0F, int noMultipleKnots=1)
GU_CurveapproxCurveGlobal (const UT_Vector4Array &v4Data, const GA_PrimitiveTypeId &type=GEO_PRIMNURBCURVE, int order=4, int wrapped=0, float tol=1e-1F, float smooth=0.0F, int noMultipleKnots=1)
GU_TPSurfapproxSurfGlobal (const GEO_Hull &mesh, const GA_PrimitiveTypeId &type=GEO_PRIMNURBSURF, int uOrder=4, int vOrder=4, GEO_SurfaceType sType=GEO_PATCH_QUADS, float tol=1e-1F, float smooth=0.0F, int uNoMultipleKnots=1, int vNoMultipleKnots=1)
GU_TPSurfapproxSurfGlobal (const UT_PtrMatrix< GEO_Point * > &gpMesh, const GA_PrimitiveTypeId &type=GEO_PRIMNURBSURF, int uOrder=4, int vOrder=4, int uWrapped=0, int vWrapped=0, GEO_SurfaceType sType=GEO_PATCH_QUADS, float tol=1e-1F, float smooth=0.0F, int uNoMultipleKnots=1, int vNoMultipleKnots=1)
void refine (float *uunit, int ulen, float *vunit, int vlen, int countu=1, int countv=1, int arcspacing=0, const GA_PrimitiveGroup *primGroup=0)
void unrefine (float umin, float umax, float vmin, float vmax, int countu=1, int countv=1, float utol=0.001F, float vtol=0.001F, const GA_PrimitiveGroup *primGroup=0)
void subdivide (float *uunit, int ulen, float *vunit, int vlen, int arcspacing=0, const GA_PrimitiveGroup *primGroup=0)
int extract (float *uunit, int ulen, float *vunit, int vlen, const GA_PrimitiveGroup *primGroup=0, GA_PointGroup *newPoints=0, int op=0, int keepOriginal=0, int atbreakpoints=0, int use_arc_length=0)
void extractIsoParms (float *uunit, int ulen, float *vunit, int vlen, GA_PrimitiveGroup *newPrims=0, const GA_PrimitiveGroup *primGroup=0)
void extractPoints (float *uunit, int ulen, float *vunit, int vlen, GA_PointGroup *newPoints=0, const GA_PrimitiveGroup *primGroup=0)
void extractProfiles (float *uunit, int ulen, float *vunit, int vlen, const GA_PrimitiveGroup *primGroup=0)
void extractIsoParmsAtBreak (float *uunit, int ulen, float *vunit, int vlen, GA_PrimitiveGroup *newPrims=0, const GA_PrimitiveGroup *primGroup=0)
void extractPointsAtBreak (float *uunit, int ulen, float *vunit, int vlen, GA_PointGroup *newPoints=0, const GA_PrimitiveGroup *primGroup=0)
void extractProfilesAtBreak (float *uunit, int ulen, float *vunit, int vlen, const GA_PrimitiveGroup *primGroup=0)
int cut (float *uunit, int ulen, float *vunit, int vlen, const GA_PrimitiveGroup *primGroup=0, int keepin=1, int keepout=0, int atbreakpoints=0, int allU=0, int allV=0, int use_arc_length=0)
void polySpline (GU_PolysplineParms &parms, const GA_PrimitiveGroup *primGroup=0, bool deleteAll=true)
int polyPatch (GU_PolypatchParms &parms, const GA_PrimitiveGroup *primGroup=0)
int polyReduce (GU_PolyReduceParms &parms, const GA_PrimitiveGroup *primGroup=0, int *pointIndexTable=0)
int triStrip (GU_TriStripParms &parms)
void lsystem (GU_LSystemParms &lp)
int info (ostream &os, int max_group_lines=15, int64 overridememusage=-1, bool pretty=false) const
void info (UT_WorkBuffer &wbuf, int max_group_lines=15, int64 overridememusage=-1, bool pretty=false) const
virtual void statVolumes (GA_Stat &stat, uint level) const
 Fills in a stat structure with the volume information.
GEO_PrimitiveintersectRay (const UT_Vector3 &o, const UT_Vector3 &d, float tmax=1E17F, float tol=1E-12F, float *dist=0, UT_Vector3 *pos=0, UT_Vector3 *nml=0, int accurate=0, float *u=0, float *v=0, int ignoretrim=1) const
int commonFaceConfig (const GA_PrimitiveGroup &faceGroup, GA_PrimCompat::TypeMask &type, int &order, bool &open, bool &ends) const
int commonFaceConfig (const UT_PtrArray< GEO_Primitive * > &faces_in, GA_PrimCompat::TypeMask &type, int &order, bool &open, bool &ends) const
int commonSurfaceConfig (const GA_PrimitiveGroup &surfs, GA_PrimCompat::TypeMask &type, int &orderu, int &orderv, bool &openu, bool &openv, bool &endsu, bool &endsv) const
int makeFacesCompatible (const GA_PrimitiveGroup &infaces, GA_PrimitiveGroup &outfaces, bool mustopen=false, bool mustends=false, bool nonrational=false, GA_PrimCompat::TypeMask *extratype=0, bool equalcvs=true)
int makeFacesCompatible (const UT_PtrArray< GEO_Primitive * > &prims_in, UT_PtrArray< GEO_Primitive * > &prims_out, bool mustopen=false, bool mustends=false, bool nonrational=false, GA_PrimCompat::TypeMask *extratype=0, bool equalcvs=true)
int makeFacesCompatible (const GA_PrimitiveGroup &infacesU, const GA_PrimitiveGroup &infacesV, GA_PrimitiveGroup &outfacesU, GA_PrimitiveGroup &outfacesV, bool mustopen=false, bool mustends=false, bool nonrational=false, GA_PrimCompat::TypeMask *extratype=0, bool equalcvs=true)
int makeFacesCompatible (const UT_PtrArray< GEO_Primitive * > &ufaces_array, const UT_PtrArray< GEO_Primitive * > &vfaces_array, UT_PtrArray< GEO_Primitive * > &ucfaces_array, UT_PtrArray< GEO_Primitive * > &vcfaces_array, bool mustopen=false, bool mustends=false, bool nonrational=false, GA_PrimCompat::TypeMask *extratype=0, bool equalcvs=true)
virtual GA_Detail::IOStatus saveH9File (const char *filename, const UT_Options *options) const
virtual GA_Detail::IOStatus saveH9Stream (ostream &os, bool binary, const UT_Options *options) const
void align (GU_AlignParms &parms)
int stitch (GU_StitchParms &parms)
int arm (GU_ArmParms &parms, GU_ArmAngles &ret_angles)
void limb (GU_LimbParms &parms, GU_LimbAngles &ret_angles)
int makeSurfacesCompatible (const GA_PrimitiveGroup &insurfs, GA_PrimitiveGroup &outsurfs, bool mustopenu=false, bool mustopenv=false, bool mustendsu=false, bool mustendsv=false, bool equalcvsu=true, bool equalcvsv=true, GA_PrimCompat::TypeMask *extratype=0)
GA_PrimitiveGroupgetPastedSurfaces (const char *n="__gu_all_pasted__")
GA_PrimitiveGroupgetPastedSurfaces (GA_PrimitiveGroup *&used, const char *n="__gu_all_pasted__", const char *u="__gu_used_pasted__")
void updatePastedDisplacement (GA_Offset ptoff, const GA_PrimitiveGroup *all, GA_PrimitiveGroup *used)
void updatePastedDisplacement (const GEO_Point &ppt, const GA_PrimitiveGroup *all, GA_PrimitiveGroup *used)
int updatePastedDisplacements (void)
int updatePastedDependents (GA_PrimitiveGroup *all, GA_PrimitiveGroup *used)
GU_ERROR error () const
void addMessage (GU_ErrorCodes code, const char *msg=0) const
void addWarning (GU_ErrorCodes code, const char *msg=0) const
void addError (GU_ErrorCodes code, const char *msg=0) const
void selection (GU_Selection *s)
GU_Selectionselection (void) const
void destroySelection ()
GU_SelectionListgetOrCreateSelectionList (int &instance)
const GU_SelectionListgetSelectionList (int instance) const
int getNumSelectionListInstances () const
void destroySelectionLists ()
void copySelectionLists (const GU_Detail &src_gdp)
void addSelectionToTemp (const GU_Detail &src_gdp, const GU_Selection &src_sel, int &sel_inst, int sel_index, bool dirty_gdp=true)
void dirtySelectionTopologyData ()
void SYS_DEPRECATED preserveGroups (const GEO_Primitive *oldprim, const GEO_Primitive *newprim)
 Deprecated in favour of GEO_Primitive::copyGroupMembership().
void SYS_DEPRECATED preservePrimitiveGroups (const GEO_Primitive *oldprim, const GEO_Primitive *newprim)
 Deprecated in favour of GEO_Primitive::copyGroupMembership().
void removeInlinePoints (float tol, const GA_PrimitiveGroup *prims)
void getRBDParams (GU_OldOBBTree &tree, UT_Matrix3 &ibody, UT_Matrix3 &ibodyinv, int samples, float lod) const
int removeZeroAreaFaces (GA_PrimitiveGroup *grpp, int ignoreOpenFaces=0, float tolerance=0.001F, int onlyPolys=1)
int removeZeroAreaFaces (const UT_IntArray &primlist, int ignoreOpenFaces=0, float tolerance=0.001F, int onlyPolys=1)
void deleteGroupGeometry (const GA_Group &group)
void deleteEdges (GA_EdgeGroup &edgegroup, bool del_inline_points, float inlinetol, bool del_unused_points=true, bool del_bridges=true)
void flipEdges (GA_EdgeGroup &edgegroup, int rotations=1, bool rotattribs=false, GA_EdgeGroup *outedges=0)
void edgeSplit (const GU_SplitLocPtrArray &splitlocs, bool quadcut=false, bool forcecut=true, GA_EdgeGroup *outedges=0, float tolerance=SYS_FTOLERANCE)
void divideEdges (GA_EdgeGroup &edgegroup, int numdivs=1, bool applytoall=true, bool use_shared_points=false, GA_EdgeGroup *outedges=0, UT_PtrArray< GEO_Point * > *new_points=0, GEO_PointRefArray *prefarr=0, bool preserve_edge_dir=false)
void divideEdges (GA_EdgeGroup &edgegroup, int numdivs, bool applytoall, bool use_shared_points, GA_EdgeGroup *outedges, UT_PtrArray< GEO_Point * > *new_points, GEO_PointRefArray *prefarr, bool preserve_edge_dir, float fraction)
void transformBreakpoints (const UT_Matrix4 &mat, const GA_BreakpointGroup *grp=0, int quickxform=0)
void smoothNonPolygons (int iterations, GU_WeightingType type, float lambda, float mu, const GA_PrimitiveGroup *primgrp, bool useptattribs, const GA_RWAttributeRef &attriboffset, int attribsize)
void polyExtrude (const GU_PolyExtrudeParms &parms)
void edgeCollapse (const GA_EdgeGroup &edgegroup, bool removedegen=true, bool updatenmls=true, GA_PointGroup *outpoints=0)
void edgeCrease (const GU_EdgeCreaseParms &parms)
void pointInset (const GA_PointGroup *ptgroup, float insetdist, float nmldist)
void getOBBox (const GA_PrimitiveGroup *grp, UT_Matrix4 &transform, UT_Vector3 &radii) const
void getOBBoxForPoints (const GA_PointGroup *grp, UT_OBBoxD &obb) const
int makePrimsPlanar (const GA_PrimitiveGroup *grp=0)
void setSeamPointAttributes (const GA_PointGroup &group_a, const GA_PointGroup &group_b)
int getNumClothSeams () const
void getClothSeamAttribName (UT_WorkBuffer &attrib_name, int seam_number, int seam_half) const
GA_RWAttributeRef getClothSeamAttribOffset (int seam_number, int seam_half) const
void appendSeamPoints (UT_RefArray< GU_ClothStitchPair > &seam_points, int seam_number) const
void matchClothSeams (const GU_ClothMatchSeamsParms &parms)
int getUniqueValueCount (const GA_ROAttributeRef &ref) const
int getUniqueIntegerValue (const GA_ROAttributeRef &ref, int idx) const
const char * getUniqueStringValue (const GA_ROAttributeRef &ref, int idx) const
GA_Range getRangeByValue (const GA_ROAttributeRef &ref, int v) const
GA_Range getRangeByValue (const GA_ROAttributeRef &ref, const char *v) const
void convert (GU_ConvertParms &parms)
void convertNew (GU_ConvertParms &parms)

Static Public Member Functions

static int loftHulls (GEO_Hull *left, GEO_Hull *right, float lwidth1, float lwidth2, float rwidth1, float rwidth2, int sharp, int &lstart, int &rstart, int &lmax, int &rmax, int loftU, GA_NUBBasis *nubbasis)
static int getSubdividedCV (GEO_Hull *hull, int udir, float unit)
static int getSubdividedCV (GEO_Face *face, float unit)
static void registerIOTranslator (GEO_IOTranslator *trans)
static void unregisterIOTranslator (GEO_IOTranslator *trans)
static GA_Detail::IOStatus statH9File (const char *filename, GA_Stat &sbuf, uint level)
static bool isFormatSupported (const char *filename)
 Returns true if filename is a recognized extension.
static GEO_IOTranslatorgetSupportedFormat (const char *filename)
static void loadIODSOs ()

Protected Member Functions

GEO_PrimitivenewPrimitive (const GA_PrimitiveTypeId &type)
virtual GA_PrimitiveunstashPrimitiveImpl (const GA_PrimitiveDefinition *type, GA_Offset offset)
 Override base class method to implement primitive stashing.

Static Protected Member Functions

static
GA_IntrinsicManager::Registrar 
registerIntrinsics (GA_PrimitiveFactory &factory)
 Register intrinsic attributes.

Friends

class GU_PrimitiveFactory


Detailed Description

Examples:

euclid/GR_Euclid.C, euclid/SOP_Euclid.C, field3d/f3d_io.C, field3d/ROP_Field3D.C, GEO/GEO_VoxelTranslator.C, GR/GR_BaryCenter.C, GR/GR_BoundingBox.C, GR/GR_SimpleNoise.C, POP/POP_CircleForce.C, POP/POP_CircleForce.h, ROP/ROP_DopField.C, SIM/SIM_ForceOrbit.C, SIM/SIM_SolverHair.C, SIM/SNOW_Solver.C, SIM/SNOW_Solver.h, SOP/MSS_CustomBrushState.h, SOP/SOP_BrushHairLen.C, SOP/SOP_BrushHairLen.h, SOP/SOP_CustomBrush.C, SOP/SOP_Flatten.C, SOP/SOP_HDKObject.C, SOP/SOP_PrimVOP.C, SOP/SOP_SParticle.C, SOP/SOP_SParticle.h, SOP/SOP_Surface.C, SOP/SOP_TimeCompare.C, standalone/gengeovolume.C, standalone/geo2voxel.C, standalone/geoisosurface.C, tetprim/GT_PrimTetra.C, tetprim/GU_PrimTetra.C, tetprim/GU_PrimTetra.h, VRAY/VRAY_DemoBox.C, VRAY/VRAY_DemoFile.C, VRAY/VRAY_DemoMountain.C, VRAY/VRAY_DemoSprite.C, VRAY/VRAY_DemoSprite.h, and VRAY/VRAY_DemoStamp.C.

Definition at line 174 of file GU_Detail.h.


Member Enumeration Documentation

Enumerator:
ONLYCONS_GRP_PROP_LEAST 
ONLYCONS_GRP_PROP_UNION 
ONLYCONS_GRP_PROP_INTERSECT 

Definition at line 458 of file GU_Detail.h.

Enumerator:
SNAP_ATTRIBUTES_AVERAGE 
SNAP_ATTRIBUTES_INDEX 

Definition at line 528 of file GU_Detail.h.


Constructor & Destructor Documentation

GU_Detail::GU_Detail ( bool  full_topology = true  )  [inline, explicit]

Definition at line 177 of file GU_Detail.h.

GU_Detail::GU_Detail ( GU_Detail src,
GA_PrimitiveGroup primGroup 
) [inline, explicit]

Definition at line 189 of file GU_Detail.h.

GU_Detail::GU_Detail ( const GU_Detail src  )  [inline, explicit]

Definition at line 202 of file GU_Detail.h.

virtual GU_Detail::~GU_Detail (  )  [virtual]


Member Function Documentation

void GU_Detail::addError ( GU_ErrorCodes  code,
const char *  msg = 0 
) const [inline]

Definition at line 1415 of file GU_Detail.h.

void GU_Detail::addMessage ( GU_ErrorCodes  code,
const char *  msg = 0 
) const [inline]

Definition at line 1405 of file GU_Detail.h.

void GU_Detail::addSelectionToTemp ( const GU_Detail src_gdp,
const GU_Selection src_sel,
int &  sel_inst,
int  sel_index,
bool  dirty_gdp = true 
)

void GU_Detail::addWarning ( GU_ErrorCodes  code,
const char *  msg = 0 
) const [inline]

Definition at line 1410 of file GU_Detail.h.

void GU_Detail::align ( GU_AlignParms parms  ) 

void GU_Detail::appendSeamPoints ( UT_RefArray< GU_ClothStitchPair > &  seam_points,
int  seam_number 
) const

void GU_Detail::applyTexture ( GU_TextureType  type,
GU_AxisType  axis,
const GA_PrimitiveGroup primGroup = 0,
int  applyToVertex = -1,
int  fixPolySeams = 0,
const GU_CameraParms userData = 0 
)

If the applyToVertex is less than 0, the "natural" place will be use, otherwise 0 = point attrib, 1 = vertex attrib

void GU_Detail::applyTraceTexture ( float  xres,
float  yres,
float  resolution 
)

GU_Curve* GU_Detail::approxCurveGlobal ( const UT_Vector4Array v4Data,
const GA_PrimitiveTypeId type = GEO_PRIMNURBCURVE,
int  order = 4,
int  wrapped = 0,
float  tol = 1e-1F,
float  smooth = 0.0F,
int  noMultipleKnots = 1 
)

GU_Curve* GU_Detail::approxCurveGlobal ( const GEO_Face face,
const GA_PrimitiveTypeId type = GEO_PRIMNURBCURVE,
int  order = 4,
float  tol = 1e-1F,
float  smooth = 0.0F,
int  noMultipleKnots = 1 
)

GU_TPSurf* GU_Detail::approxSurfGlobal ( const UT_PtrMatrix< GEO_Point * > &  gpMesh,
const GA_PrimitiveTypeId type = GEO_PRIMNURBSURF,
int  uOrder = 4,
int  vOrder = 4,
int  uWrapped = 0,
int  vWrapped = 0,
GEO_SurfaceType  sType = GEO_PATCH_QUADS,
float  tol = 1e-1F,
float  smooth = 0.0F,
int  uNoMultipleKnots = 1,
int  vNoMultipleKnots = 1 
)

GU_TPSurf* GU_Detail::approxSurfGlobal ( const GEO_Hull mesh,
const GA_PrimitiveTypeId type = GEO_PRIMNURBSURF,
int  uOrder = 4,
int  vOrder = 4,
GEO_SurfaceType  sType = GEO_PATCH_QUADS,
float  tol = 1e-1F,
float  smooth = 0.0F,
int  uNoMultipleKnots = 1,
int  vNoMultipleKnots = 1 
)

int GU_Detail::arm ( GU_ArmParms parms,
GU_ArmAngles ret_angles 
)

GU_PrimRBezSurf* GU_Detail::bezCube ( int  xdiv,
int  ydiv,
int  zdiv,
int  orderx = 4,
int  ordery = 4,
int  orderz = 4,
float  xmin = -0.5F,
float  xmax = 0.5F,
float  ymin = -0.5F,
float  ymax = 0.5F,
float  zmin = -0.5F,
float  zmax = 0.5F,
GEO_SurfaceType  type = GEO_PATCH_QUADS,
bool  consolidate = false 
)

GU_PrimRBezSurf* GU_Detail::bezGrid ( int  rows,
int  cols,
int  orderu = 4,
int  orderv = 4,
float  xsize = 1,
float  ysize = 1,
float  xc = 0,
float  yc = 0,
float  zc = 0,
GU_OrientationType  = GU_PLANE_XY,
GEO_SurfaceType  type = GEO_PATCH_QUADS,
int  wrapu = 0,
int  wrapv = 0 
)

int GU_Detail::blend ( const GU_Detail gdps[],
const float  weights[],
int  size,
bool  doPos,
bool  doClr,
bool  doNml,
bool  doTxt,
bool  doVoxels,
const char *  ptidattr,
const char *  primidattr,
const GA_PointGroup ptGroup 
)

create a weighted sum of size source inputs Return 1 if at least one pasted surface was involved in the blend, else 0.

void GU_Detail::blend ( const GU_Detail source,
float  weight,
bool  doPos,
bool  doClr,
bool  doNml,
bool  doTxt,
bool  doVoxels,
const char *  ptidattr,
const char *  primidattr 
)

create a weighted sum of two source inputs

GEO_Primitive* GU_Detail::buildGrid ( GU_GridParms parms,
GU_GridType  type = GU_GRID_MESH 
)

int GU_Detail::buildHoles ( float  dist = 0.001F,
float  angle = 0.2F,
int  snapFace = 0,
const GA_PrimitiveGroup primGroup = 0 
)

Build holes in the geometry by bridging the holes to their outlines The angle should be specified as the angle (in degrees) between the normals.

void GU_Detail::buildMetaSurface ( GU_Detail src,
int  divx,
int  divy,
int  divz,
GA_PrimitiveGroup primGroup = 0 
)

void GU_Detail::buildMetaSurface ( GU_Detail src,
float  lod,
GA_PrimitiveGroup primGroup = 0 
)

When building a meta-surface, the new surface is built in this gdp. If desired, src can be "this" as well...

int GU_Detail::buildMetaSurfCache ( GU_MetaSurfCacheParms parms  ) 

void GU_Detail::buildMetaXsection ( GU_Detail src,
int  nsections,
int  axis = 2,
int  maxdepth = 4,
GA_PrimitiveGroup primGroup = 0 
)

A faster way of conversion is to build cross sections. However, this doesn't build real surfaces

void SYS_DEPRECATED GU_Detail::buildRingZeroPoints ( const GA_PointGroup ptgroup,
UT_PtrArray< UT_PtrArray< GEO_Point * > * > &  ringzero,
UT_IntArray ringvalence 
) const

void SYS_DEPRECATED GU_Detail::buildRingZeroPoints ( UT_PtrArray< UT_PtrArray< GEO_Point * > * > &  ringzero,
UT_IntArray ringvalence 
) const

void GU_Detail::buildRingZeroPoints ( const GA_PointGroup ptgroup,
UT_RefArray< GA_OffsetArray > &  ringzero,
UT_IntArray ringvalence 
) const

void GU_Detail::buildRingZeroPoints ( UT_RefArray< GA_OffsetArray > &  ringzero,
UT_IntArray ringvalence 
) const

void GU_Detail::buildRingZeroPrimitives ( UT_PtrArray< UT_IntArray * > &  ringzero  )  const

int GU_Detail::cacheable ( void   )  const [inline]

Examples:
tetprim/GU_PrimTetra.C.

Definition at line 232 of file GU_Detail.h.

void GU_Detail::cached ( int  onoff = 1  )  [inline]

Definition at line 231 of file GU_Detail.h.

int GU_Detail::cached ( void   )  const [inline]

Definition at line 230 of file GU_Detail.h.

void GU_Detail::cacheOff ( void   )  [inline]

Definition at line 234 of file GU_Detail.h.

void GU_Detail::cacheOn ( void   )  [inline]

Definition at line 233 of file GU_Detail.h.

int GU_Detail::cleanData ( const GA_PrimitiveGroup primGrp = 0,
int  removeRepPoints = 0,
float  tol = 0.001F,
bool  deletePoints = false 
)

Remove repeated references of vertices in the faces, then remove all degenerate primitives regardless of their type. Set removeRepPoints flag to remove the repeat points as well and the deletePoints flag to delete the points that were part of the degenerate primitive.

virtual void GU_Detail::clearAndDestroy (  )  [virtual]

Clear all the points/primitives out of this detail.

Reimplemented from GEO_Detail.

Examples:
euclid/SOP_Euclid.C, SOP/SOP_CopRaster.C, SOP/SOP_NURBS.C, SOP/SOP_SParticle.C, and SOP/SOP_Star.C.

void GU_Detail::clip ( UT_Vector3 normal,
float  d = 0,
int  normlize = 0,
const GA_PrimitiveGroup primGroup = 0 
)

virtual GA_Detail* GU_Detail::cloneEmptyDetail ( bool  clone_attributes  )  const [virtual]

Create a new detail that has all the same attributes, groups, etc. but has no elements. Subclasses should look at: cloneCopyGroupsAndAttributes()

Implements GA_Detail.

int GU_Detail::commonFaceConfig ( const UT_PtrArray< GEO_Primitive * > &  faces_in,
GA_PrimCompat::TypeMask type,
int &  order,
bool &  open,
bool &  ends 
) const

int GU_Detail::commonFaceConfig ( const GA_PrimitiveGroup faceGroup,
GA_PrimCompat::TypeMask type,
int &  order,
bool &  open,
bool &  ends 
) const

int GU_Detail::commonSurfaceConfig ( const GA_PrimitiveGroup surfs,
GA_PrimCompat::TypeMask type,
int &  orderu,
int &  orderv,
bool &  openu,
bool &  openv,
bool &  endsu,
bool &  endsv 
) const

void GU_Detail::computeSoftTransformPointTextureCache ( GEO_SoftTransformPointCache cache,
const GA_PointGroup ptgroup,
const GEO_Rolloff rolloff,
const GU_MetricType  metric 
)

Precompute a list of points to soft transform, along with the distance (squared) to the closest "hard" point. The metric specifies how distance is measured in space.

void GU_Detail::computeSoftTransformVertexTextureCache ( GEO_SoftTransformVertexCache cache,
const GA_VertexGroup vtxgroup,
const GEO_Rolloff rolloff,
const GU_MetricType  metric,
bool  ignore_uv_connectivity 
)

int GU_Detail::consolidateNormals ( float  distance,
const GA_PointGroup ptGrp = 0,
int  forceConsAll = 0 
)

int GU_Detail::consolidatePoints ( float  distance,
const GA_PointGroup ptGrp = 0,
int  forceConsAll = 0,
int  mark = 0 
)

Consolidate points within a specified distance (returns num done) If a point group is specified, then, only points in that group are consolidated. If the forceConsAll flag is set then all points will be consolidated in a greedy fashion using a branch and bound algorithm.

void GU_Detail::convert ( GU_ConvertParms parms  ) 

Conversion Routines - to convert from one primitive to another

void GU_Detail::convertMetaballs ( GU_MetaConvertParms parms,
const GA_PrimitiveGroup prim_grp = NULL 
)

This routine only converts metaballs using a more comprehensive set of parameters.

void GU_Detail::convertNew ( GU_ConvertParms parms  ) 

Conversion Routines - to convert from one primitive to another

void GU_Detail::convex ( unsigned  maxpts = 3,
GA_PrimitiveGroup primGroup = 0,
const GU_Detail restgdp = 0 
)

void GU_Detail::convexPoly ( GU_PrimPoly pp,
GA_ElementWranglerCache wranglers,
unsigned  maxpts = 3,
const GU_Detail restgdp = 0 
)

GEO_Hull* GU_Detail::coons ( GEO_SurfaceType  surftype,
const GEO_Face uface1,
const GEO_Face vface1,
const GEO_Face uface2 = 0,
const GEO_Face vface2 = 0 
)

void GU_Detail::copySelectionLists ( const GU_Detail src_gdp  ) 

void GU_Detail::crease ( UT_Vector3 normal,
float  d = 0,
int  normlize = 0,
int  outputGroups = 0,
GA_PrimitiveGroup above = 0,
GA_PrimitiveGroup below = 0,
const GA_PrimitiveGroup creaseGroup = 0 
)

void GU_Detail::creep ( GU_CreepParms parms  ) 

Transform points to follow surface of path input.

GU_PrimPoly* GU_Detail::cube ( float  xmin = -1,
float  xmax = 1,
float  ymin = -1,
float  ymax = 1,
float  zmin = -1,
float  zmax = 1,
int  xdiv = 0,
int  ydiv = 0,
int  zdiv = 0,
int  enforcementBars = 0,
int  doConsolidatePoints = 0 
)

GU_ERROR GU_Detail::curveClay ( const GU_CurveClayParms ccparm  ) 

int GU_Detail::curveNetwork ( GEO_Hull *&  hull,
GU_CurveNetworkParms p,
int &  count,
GU_SkinCache skin_cache 
)

int GU_Detail::cut ( float *  uunit,
int  ulen,
float *  vunit,
int  vlen,
const GA_PrimitiveGroup primGroup = 0,
int  keepin = 1,
int  keepout = 0,
int  atbreakpoints = 0,
int  allU = 0,
int  allV = 0,
int  use_arc_length = 0 
)

void GU_Detail::decrementCacheables (  )  [inline]

Definition at line 254 of file GU_Detail.h.

void GU_Detail::deleteEdges ( GA_EdgeGroup edgegroup,
bool  del_inline_points,
float  inlinetol,
bool  del_unused_points = true,
bool  del_bridges = true 
)

void GU_Detail::deleteGroupGeometry ( const GA_Group group  ) 

void GU_Detail::destroyCache ( void   ) 

void GU_Detail::destroySelection (  ) 

void GU_Detail::destroySelectionLists (  ) 

void GU_Detail::dirtySelectionTopologyData (  ) 

void GU_Detail::divideEdges ( GA_EdgeGroup edgegroup,
int  numdivs,
bool  applytoall,
bool  use_shared_points,
GA_EdgeGroup outedges,
UT_PtrArray< GEO_Point * > *  new_points,
GEO_PointRefArray prefarr,
bool  preserve_edge_dir,
float  fraction 
)

void GU_Detail::divideEdges ( GA_EdgeGroup edgegroup,
int  numdivs = 1,
bool  applytoall = true,
bool  use_shared_points = false,
GA_EdgeGroup outedges = 0,
UT_PtrArray< GEO_Point * > *  new_points = 0,
GEO_PointRefArray prefarr = 0,
bool  preserve_edge_dir = false 
)

void GU_Detail::duplicate ( const GU_Detail gdp,
int  doselection = 0 
)

void GU_Detail::edgeCollapse ( const GA_EdgeGroup edgegroup,
bool  removedegen = true,
bool  updatenmls = true,
GA_PointGroup outpoints = 0 
)

void GU_Detail::edgeCrease ( const GU_EdgeCreaseParms parms  ) 

void GU_Detail::edgeSplit ( const GU_SplitLocPtrArray splitlocs,
bool  quadcut = false,
bool  forcecut = true,
GA_EdgeGroup outedges = 0,
float  tolerance = SYS_FTOLERANCE 
)

int GU_Detail::endCap ( GEO_Face face,
const GU_CapParms parms 
)

int GU_Detail::endCap ( GEO_Hull hull,
const GU_CapParms parms 
)

GU_ERROR GU_Detail::error (  )  const [inline]

Definition at line 1400 of file GU_Detail.h.

int GU_Detail::extract ( float *  uunit,
int  ulen,
float *  vunit,
int  vlen,
const GA_PrimitiveGroup primGroup = 0,
GA_PointGroup newPoints = 0,
int  op = 0,
int  keepOriginal = 0,
int  atbreakpoints = 0,
int  use_arc_length = 0 
)

void GU_Detail::extractIsoParms ( float *  uunit,
int  ulen,
float *  vunit,
int  vlen,
GA_PrimitiveGroup newPrims = 0,
const GA_PrimitiveGroup primGroup = 0 
)

void GU_Detail::extractIsoParmsAtBreak ( float *  uunit,
int  ulen,
float *  vunit,
int  vlen,
GA_PrimitiveGroup newPrims = 0,
const GA_PrimitiveGroup primGroup = 0 
)

void GU_Detail::extractPoints ( float *  uunit,
int  ulen,
float *  vunit,
int  vlen,
GA_PointGroup newPoints = 0,
const GA_PrimitiveGroup primGroup = 0 
)

void GU_Detail::extractPointsAtBreak ( float *  uunit,
int  ulen,
float *  vunit,
int  vlen,
GA_PointGroup newPoints = 0,
const GA_PrimitiveGroup primGroup = 0 
)

void GU_Detail::extractProfiles ( float *  uunit,
int  ulen,
float *  vunit,
int  vlen,
const GA_PrimitiveGroup primGroup = 0 
)

void GU_Detail::extractProfilesAtBreak ( float *  uunit,
int  ulen,
float *  vunit,
int  vlen,
const GA_PrimitiveGroup primGroup = 0 
)

void GU_Detail::extrude ( GU_ExtrudeParms parms  ) 

inset and extrude a face

int GU_Detail::fastConsolidateNormals ( float  distance,
const GA_PointGroup ptGrp = 0 
)

int GU_Detail::fastConsolidatePoints ( float  distance,
const GA_PointGroup ptGrp = 0,
int  mark = 0 
)

Performs fast consolidation by calling onlyConsolidatePoints. By default, calls removeUnused when done to remove any unused points When deleteConsOnly is set, then only consolidated points are removed.

int GU_Detail::fastConsolidatePointUVs ( float  distance,
const GA_PointGroup ptGrp,
const GU_MetricType  metric,
int  method,
UT_Vector3 uvw 
)

Consolidate UV attributes within a specified distance. This distance can be in UV space or XYZ space. There are various methods of placing the consolidated UVs.

metric: 0 => UV space 1 => XYZ space

method: 0 => Average 1 => First in Group 2 => Specify uvw coordinate

int GU_Detail::fastConsolidateVertexUVs ( float  distance,
const GA_VertexGroup vtxGrp,
const GU_MetricType  metric,
int  method,
UT_Vector3 uvw 
)

int GU_Detail::fillet ( GU_FilletParms parms,
int &  count 
)

GEO_Hull* GU_Detail::filletRound ( GU_RoundFilletParms parms  ) 

void GU_Detail::filletRoundNetwork ( UT_RefMatrix< void * >  ,
GU_RoundFilletParms parms 
)

GEO_Hull* GU_Detail::filletTrims ( GU_TrimFilletParms parms,
int &  count 
)

void GU_Detail::findBoundaryPoints ( UT_IntArray isboundary,
bool  checkuv 
)

int GU_Detail::findNonPlanar ( GA_PrimitiveGroup group,
float  tol = 0.0001F,
GA_PrimitiveGroup primGroup = 0 
)

void GU_Detail::findSelectionBoundaryPoints ( const UT_IntArray pointselection,
UT_IntArray isboundary 
)

void GU_Detail::fit2DCurve ( const GU_Detail source,
float  error_squared,
GA_PrimitiveGroup primGroup = 0 
)

void GU_Detail::flipEdges ( GA_EdgeGroup edgegroup,
int  rotations = 1,
bool  rotattribs = false,
GA_EdgeGroup outedges = 0 
)

void GU_Detail::fractalize ( int  seed = 1,
float  roughness = 0.6F,
float  scaleby = 1,
int  divs = 1,
int  fixedBoundry = 1,
int  useVtxNorms = 0,
float  nx = 0,
float  ny = 0,
float  nz = 1,
const GA_PrimitiveGroup fractalGroup = 0 
)

void GU_Detail::getClothSeamAttribName ( UT_WorkBuffer attrib_name,
int  seam_number,
int  seam_half 
) const

GA_RWAttributeRef GU_Detail::getClothSeamAttribOffset ( int  seam_number,
int  seam_half 
) const

int GU_Detail::getDirtyData ( GA_PrimitiveGroup returnGrp,
const GA_PrimitiveGroup primGrp = 0,
int  checkRepPoints = 0,
float  tol = 0.001F 
)

Identify dirty data, which is the degenerate primitives that would be deleted by cleanData. Return them in the returnGrp, and return the number of dirty primitives. If returnGrp is NULL then only return the count.

int GU_Detail::getMetaCacheCount (  )  const [inline]

Definition at line 258 of file GU_Detail.h.

GU_MetaSurfCache* GU_Detail::getMetaSurfCache (  )  const [inline]

Definition at line 251 of file GU_Detail.h.

int GU_Detail::getNumCacheables (  )  const [inline]

Definition at line 255 of file GU_Detail.h.

int GU_Detail::getNumClothSeams (  )  const

int GU_Detail::getNumSelectionListInstances (  )  const

void GU_Detail::getOBBox ( const GA_PrimitiveGroup grp,
UT_Matrix4 transform,
UT_Vector3 radii 
) const

void GU_Detail::getOBBoxForPoints ( const GA_PointGroup grp,
UT_OBBoxD obb 
) const

GU_SelectionList& GU_Detail::getOrCreateSelectionList ( int &  instance  ) 

GA_PrimitiveGroup* GU_Detail::getPastedSurfaces ( GA_PrimitiveGroup *&  used,
const char *  n = "__gu_all_pasted__",
const char *  u = "__gu_used_pasted__" 
)

GA_PrimitiveGroup* GU_Detail::getPastedSurfaces ( const char *  n = "__gu_all_pasted__"  ) 

GA_Range GU_Detail::getRangeByValue ( const GA_ROAttributeRef ref,
const char *  v 
) const

GA_Range GU_Detail::getRangeByValue ( const GA_ROAttributeRef ref,
int  v 
) const

void GU_Detail::getRBDParams ( GU_OldOBBTree tree,
UT_Matrix3 ibody,
UT_Matrix3 ibodyinv,
int  samples,
float  lod 
) const

int GU_Detail::getSelectionCacheCount (  )  const [inline]

Definition at line 261 of file GU_Detail.h.

const GU_SelectionList& GU_Detail::getSelectionList ( int  instance  )  const

static int GU_Detail::getSubdividedCV ( GEO_Face face,
float  unit 
) [static]

static int GU_Detail::getSubdividedCV ( GEO_Hull hull,
int  udir,
float  unit 
) [static]

static GEO_IOTranslator* GU_Detail::getSupportedFormat ( const char *  filename  )  [static]

Allocate an IO handler for a filename, or return NULL if the handler is the classic format. The returned translator must be deleted. The easiest way to do this is with a UT_ScopedPtr:

   UT_ScopedPtr<GEO_IOTranslator> xlate(getSupportedFormat(filename));
   if (xlate)
       xlate->fileSave(gdp, ...);

GU_TriMeshCache* GU_Detail::getTriMeshCache (  )  const [inline]

Definition at line 243 of file GU_Detail.h.

int GU_Detail::getUniqueIntegerValue ( const GA_ROAttributeRef ref,
int  idx 
) const

const char* GU_Detail::getUniqueStringValue ( const GA_ROAttributeRef ref,
int  idx 
) const

int GU_Detail::getUniqueValueCount ( const GA_ROAttributeRef ref  )  const

GEO_Hull* GU_Detail::gordon ( GEO_SurfaceType  surftype,
int  accurate,
const UT_PtrArray< GEO_Primitive * > &  uprims_in,
const UT_PtrArray< GEO_Primitive * > &  vprims_in,
GU_SkinCache skin_cache,
int  reparameterize = 0 
)

GEO_Hull* GU_Detail::gordon ( GEO_SurfaceType  surftype,
int  accurate,
const GA_PrimitiveGroup ufaces,
const GA_PrimitiveGroup vfaces,
int  reparameterize = 0 
)

void GU_Detail::incrementCacheables (  )  [inline]

Definition at line 253 of file GU_Detail.h.

void GU_Detail::incrementMetaCacheCount (  )  [inline]

Definition at line 257 of file GU_Detail.h.

void GU_Detail::incrementSelectionCacheCount (  )  [inline]

Definition at line 260 of file GU_Detail.h.

void GU_Detail::info ( UT_WorkBuffer wbuf,
int  max_group_lines = 15,
int64  overridememusage = -1,
bool  pretty = false 
) const

Get information text for the geometry. This will append to the work buffer.

int GU_Detail::info ( ostream &  os,
int  max_group_lines = 15,
int64  overridememusage = -1,
bool  pretty = false 
) const

GU_Curve* GU_Detail::interpCurveBreakpoints ( const UT_Vector4Array v4Data,
const GA_PrimitiveTypeId type = GEO_PRIMNURBCURVE,
int  order = 4,
int  wrapped = 0,
GA_ParameterizationType  parmType = GA_PARAMETERIZATION_CHORD 
)

GU_Curve* GU_Detail::interpCurveBreakpoints ( const UT_PtrArray< GEO_Point * > &  gpData,
const GA_PrimitiveTypeId type = GEO_PRIMNURBCURVE,
int  order = 4,
int  wrapped = 0,
GA_ParameterizationType  parmType = GA_PARAMETERIZATION_CHORD 
)

GU_Curve* GU_Detail::interpCurveBreakpoints ( const GEO_Face face,
const GA_PrimitiveTypeId type = GEO_PRIMNURBCURVE,
int  order = 4,
GA_ParameterizationType  parmType = GA_PARAMETERIZATION_CHORD 
)

GU_Curve* GU_Detail::interpCurveGlobal ( const UT_Vector4Array v4Data,
const GA_PrimitiveTypeId type = GEO_PRIMNURBCURVE,
int  order = 4,
int  wrapped = 0,
GA_ParameterizationType  parmType = GA_PARAMETERIZATION_CHORD,
GA_KnotSpaceType  knotSpaceType = GA_KNOT_SPACE_AVERAGING 
)

GU_Curve* GU_Detail::interpCurveGlobal ( const GA_Range point_range,
const GA_PrimitiveTypeId type = GEO_PRIMNURBCURVE,
int  order = 4,
int  wrapped = 0,
GA_ParameterizationType  parmType = GA_PARAMETERIZATION_CHORD,
GA_KnotSpaceType  knotSpaceType = GA_KNOT_SPACE_AVERAGING 
)

GU_Curve* GU_Detail::interpCurveGlobal ( const UT_PtrArray< GEO_Point * > &  gpData,
const GA_PrimitiveTypeId type = GEO_PRIMNURBCURVE,
int  order = 4,
int  wrapped = 0,
GA_ParameterizationType  parmType = GA_PARAMETERIZATION_CHORD,
GA_KnotSpaceType  knotSpaceType = GA_KNOT_SPACE_AVERAGING 
)

GU_Curve* GU_Detail::interpCurveGlobal ( const GEO_Face face,
const GA_PrimitiveTypeId type = GEO_PRIMNURBCURVE,
int  order = 4,
GA_ParameterizationType  parmType = GA_PARAMETERIZATION_CHORD,
GA_KnotSpaceType  knotSpaceType = GA_KNOT_SPACE_AVERAGING 
)

GU_Curve* GU_Detail::interpCurveLocal ( const UT_Vector4Array v4Data,
const GA_PrimitiveTypeId type = GEO_PRIMBEZCURVE,
int  order = 4,
int  wrapped = 0,
int  corner = 0 
)

GU_Curve* GU_Detail::interpCurveLocal ( const UT_PtrArray< GEO_Point * > &  gpData,
const GA_PrimitiveTypeId type = GEO_PRIMBEZCURVE,
int  order = 4,
int  wrapped = 0,
int  corner = 0 
)

GU_Curve* GU_Detail::interpCurveLocal ( const GEO_Face face,
const GA_PrimitiveTypeId type = GEO_PRIMBEZCURVE,
int  order = 4,
int  corner = 0 
)

GU_TPSurf* GU_Detail::interpSurfBreakpoints ( const UT_PtrMatrix< GEO_Point * > &  gpMesh,
const GA_PrimitiveTypeId type = GEO_PRIMNURBSURF,
int  uOrder = 4,
int  vOrder = 4,
int  uWrapped = 0,
int  vWrapped = 0,
GEO_SurfaceType  sType = GEO_PATCH_QUADS,
GA_ParameterizationType  uParmType = GA_PARAMETERIZATION_CHORD,
GA_ParameterizationType  vParmType = GA_PARAMETERIZATION_CHORD,
GA_KnotSpaceType  uKnotSpaceType = GA_KNOT_SPACE_AVERAGING,
GA_KnotSpaceType  vKnotSpaceType = GA_KNOT_SPACE_AVERAGING,
const UT_Vector uParmValues = 0,
const UT_Vector vParmValues = 0 
)

GU_TPSurf* GU_Detail::interpSurfBreakpoints ( const GEO_Hull mesh,
const GA_PrimitiveTypeId type = GEO_PRIMNURBSURF,
int  uOrder = 4,
int  vOrder = 4,
GEO_SurfaceType  sType = GEO_PATCH_QUADS,
GA_ParameterizationType  uParmType = GA_PARAMETERIZATION_CHORD,
GA_ParameterizationType  vParmType = GA_PARAMETERIZATION_CHORD,
GA_KnotSpaceType  uKnotSpaceType = GA_KNOT_SPACE_AVERAGING,
GA_KnotSpaceType  vKnotSpaceType = GA_KNOT_SPACE_AVERAGING,
const UT_Vector uParmValues = 0,
const UT_Vector vParmValues = 0 
)

GU_TPSurf* GU_Detail::interpSurfGlobal ( const UT_PtrMatrix< GEO_Point * > &  gpMesh,
const GA_PrimitiveTypeId type = GEO_PRIMNURBSURF,
int  uOrder = 4,
int  vOrder = 4,
int  uWrapped = 0,
int  vWrapped = 0,
GEO_SurfaceType  sType = GEO_PATCH_QUADS,
GA_ParameterizationType  uParmType = GA_PARAMETERIZATION_CHORD,
GA_ParameterizationType  vParmType = GA_PARAMETERIZATION_CHORD,
GA_KnotSpaceType  uKnotSpaceType = GA_KNOT_SPACE_AVERAGING,
GA_KnotSpaceType  vKnotSpaceType = GA_KNOT_SPACE_AVERAGING,
const UT_Vector uParmValues = 0,
const UT_Vector vParmValues = 0 
)

GU_TPSurf* GU_Detail::interpSurfGlobal ( const GEO_Hull mesh,
const GA_PrimitiveTypeId type = GEO_PRIMNURBSURF,
int  uOrder = 4,
int  vOrder = 4,
GEO_SurfaceType  sType = GEO_PATCH_QUADS,
GA_ParameterizationType  uParmType = GA_PARAMETERIZATION_CHORD,
GA_ParameterizationType  vParmType = GA_PARAMETERIZATION_CHORD,
GA_KnotSpaceType  uKnotSpaceType = GA_KNOT_SPACE_AVERAGING,
GA_KnotSpaceType  vKnotSpaceType = GA_KNOT_SPACE_AVERAGING,
const UT_Vector uParmValues = 0,
const UT_Vector vParmValues = 0 
)

GEO_Primitive* GU_Detail::intersectRay ( const UT_Vector3 o,
const UT_Vector3 d,
float  tmax = 1E17F,
float  tol = 1E-12F,
float *  dist = 0,
UT_Vector3 pos = 0,
UT_Vector3 nml = 0,
int  accurate = 0,
float *  u = 0,
float *  v = 0,
int  ignoretrim = 1 
) const

intersectRay will find the closest intersection with a primitive in the detail. If the dist pointer is nil, then the first intersection found will be returned (instead of the closest). The nml will contain the normal for the primitive at the point of intersection. Accuracy of 0 is inaccurate, 1 is normal, 2 engages Algebraic pruning where available.

Parameters:
o The ray origin
d The ray directin
tmax This can be used to limit the ray to intersections within the given radius.
tol Intersection tolerance
dist Return the distance from the origin to the hit
pos Return the hit position (i.e. o + dist*d)
nml Return the normal of the primitive at the hit position
accurate Determine primitive intersection algorithms for NURBS
u The u parametric coordinate of the hit surface
v The v parametric coordinate of the hit surface
ignoretrim Ignore trim inside/out tests for trimmed surfaces.
Warning:
If the dist parameter is 0 the first hit found will be returned. This may not be the closest hit. This can be used to perform a quick check to see if any primitives intersect the ray (i.e. for shadow casting).

This function iterates over all primitives without any acceleration structure. If you need to send multiple rays, please see GU_RayIntersect.

static bool GU_Detail::isFormatSupported ( const char *  filename  )  [static]

Returns true if filename is a recognized extension.

unsigned GU_Detail::isPolyConvex ( GA_PrimitiveGroup primGroup = 0  )  const

GEO_Primitive* GU_Detail::join ( GU_JoinParms p,
int &  count 
)

void GU_Detail::joint ( const GU_JointParms p  ) 

int GU_Detail::lattice ( const GU_Detail source,
const GU_Detail rest,
const GU_Detail deform,
int  xdiv,
int  ydiv,
int  zdiv,
const GA_PointGroup ptgroup = 0,
UT_BitArray deform_history = NULL,
GU_LatticeType  type = GU_LATTICE_BEZIER 
)

void GU_Detail::limb ( GU_LimbParms parms,
GU_LimbAngles ret_angles 
)

static void GU_Detail::loadIODSOs (  )  [static]

int GU_Detail::loft ( GU_LoftParms p,
const GA_PrimitiveGroup group = 0 
)

int GU_Detail::loft ( GU_LoftParms p,
const GA_PointGroup g1,
const GA_PointGroup g2 
)

static int GU_Detail::loftHulls ( GEO_Hull left,
GEO_Hull right,
float  lwidth1,
float  lwidth2,
float  rwidth1,
float  rwidth2,
int  sharp,
int &  lstart,
int &  rstart,
int &  lmax,
int &  rmax,
int  loftU,
GA_NUBBasis nubbasis 
) [static]

void GU_Detail::lsystem ( GU_LSystemParms lp  ) 

int GU_Detail::magnet ( const GU_MagnetParms parms  ) 

int GU_Detail::makeFacesCompatible ( const UT_PtrArray< GEO_Primitive * > &  ufaces_array,
const UT_PtrArray< GEO_Primitive * > &  vfaces_array,
UT_PtrArray< GEO_Primitive * > &  ucfaces_array,
UT_PtrArray< GEO_Primitive * > &  vcfaces_array,
bool  mustopen = false,
bool  mustends = false,
bool  nonrational = false,
GA_PrimCompat::TypeMask extratype = 0,
bool  equalcvs = true 
)

int GU_Detail::makeFacesCompatible ( const GA_PrimitiveGroup infacesU,
const GA_PrimitiveGroup infacesV,
GA_PrimitiveGroup outfacesU,
GA_PrimitiveGroup outfacesV,
bool  mustopen = false,
bool  mustends = false,
bool  nonrational = false,
GA_PrimCompat::TypeMask extratype = 0,
bool  equalcvs = true 
)

int GU_Detail::makeFacesCompatible ( const UT_PtrArray< GEO_Primitive * > &  prims_in,
UT_PtrArray< GEO_Primitive * > &  prims_out,
bool  mustopen = false,
bool  mustends = false,
bool  nonrational = false,
GA_PrimCompat::TypeMask extratype = 0,
bool  equalcvs = true 
)

int GU_Detail::makeFacesCompatible ( const GA_PrimitiveGroup infaces,
GA_PrimitiveGroup outfaces,
bool  mustopen = false,
bool  mustends = false,
bool  nonrational = false,
GA_PrimCompat::TypeMask extratype = 0,
bool  equalcvs = true 
)

int GU_Detail::makePrimsPlanar ( const GA_PrimitiveGroup grp = 0  ) 

int GU_Detail::makeSurfacesCompatible ( const GA_PrimitiveGroup insurfs,
GA_PrimitiveGroup outsurfs,
bool  mustopenu = false,
bool  mustopenv = false,
bool  mustendsu = false,
bool  mustendsv = false,
bool  equalcvsu = true,
bool  equalcvsv = true,
GA_PrimCompat::TypeMask extratype = 0 
)

void GU_Detail::matchClothSeams ( const GU_ClothMatchSeamsParms parms  ) 

GU_PrimMesh* GU_Detail::meshCube ( int  xdiv,
int  ydiv,
int  zdiv,
float  xmin = -0.5F,
float  xmax = 0.5F,
float  ymin = -0.5F,
float  ymax = 0.5F,
float  zmin = -0.5F,
float  zmax = 0.5F,
GEO_SurfaceType  type = GEO_PATCH_QUADS,
bool  consolidate = false 
)

GU_PrimMesh* GU_Detail::meshGrid ( int  rows,
int  cols,
float  xsize = 1,
float  ysize = 1,
float  xc = 0,
float  yc = 0,
float  zc = 0,
GU_OrientationType  = GU_PLANE_XY,
GEO_SurfaceType  type = GEO_PATCH_QUADS,
int  wrapu = 0,
int  wrapv = 0 
)

void GU_Detail::metaCacheEnable ( int  onoff  )  [inline]

Definition at line 265 of file GU_Detail.h.

int GU_Detail::metaCacheEnable (  )  const [inline]

Definition at line 264 of file GU_Detail.h.

GEO_Primitive* GU_Detail::newPrimitive ( const GA_PrimitiveTypeId type  )  [protected]

int GU_Detail::nonLinearDeform ( GU_DeformType  type,
const GU_TwistParms parms,
int &  pasted 
)

virtual void GU_Detail::normal ( UT_Vector3Array output,
bool  use_internaln = true 
) const [virtual]

Implements GEO_Detail.

virtual GA_RWAttributeRef GU_Detail::normal ( int  internal = 0,
GA_PrimitiveGroup primgroup = 0 
) [virtual]

Add and compute normal attributes. Returns the normal offset. If given a primgroup, only points within the selection are used in the calculation, all others are zeroed.

Implements GEO_Detail.

void GU_Detail::notifyCache ( int  type,
const GA_PointGroup grp 
)

void GU_Detail::notifyCache ( int  type,
const GEO_Point ppt 
)

void GU_Detail::notifyCache ( int  type  ) 

void GU_Detail::notifyMetaSurfCache ( int  type,
const GA_PointGroup  
)

void GU_Detail::notifyMetaSurfCache ( int  type,
const GEO_Point ppt 
)

void GU_Detail::notifyMetaSurfCache ( int  type  ) 

GU_PrimNURBSurf* GU_Detail::nurbCube ( int  xdiv,
int  ydiv,
int  zdiv,
int  orderx = 4,
int  ordery = 4,
int  orderz = 4,
float  xmin = -0.5F,
float  xmax = 0.5F,
float  ymin = -0.5F,
float  ymax = 0.5F,
float  zmin = -0.5F,
float  zmax = 0.5F,
GEO_SurfaceType  type = GEO_PATCH_QUADS,
bool  consolidate = false 
)

GU_PrimNURBSurf* GU_Detail::nurbGrid ( int  rows,
int  cols,
int  orderu = 4,
int  orderv = 4,
int  interpEndsU = 1,
int  interpEndsV = 1,
float  xsize = 1,
float  ysize = 1,
float  xc = 0,
float  yc = 0,
float  zc = 0,
GU_OrientationType  = GU_PLANE_XY,
GEO_SurfaceType  type = GEO_PATCH_QUADS,
int  wrapu = 0,
int  wrapv = 0 
)

GEO_Hull* GU_Detail::offset ( const GU_OffsetParms parms  ) 

int GU_Detail::onlyConsolidatePoints ( float  distance,
const GA_PointGroup ptgrp = 0,
int  mark = 0,
bool  deleteconsolidated = false,
OnlyConsGroupPropagateType  grouppropagate = ONLYCONS_GRP_PROP_LEAST 
)

This does fast consolidation but does *not* call removeUnused when done. This means that degenerate primitives will be left along with orphaned points. If deleteconsolidated is set, the consolidated points only will be deleted. grouppropagate controls which groups the new points will belong to.

void GU_Detail::orient ( const GA_PrimitiveGroup group = 0  ) 

orient all the polygonal faces to have the same winding direction

void GU_Detail::pointInset ( const GA_PointGroup ptgroup,
float  insetdist,
float  nmldist 
)

void GU_Detail::polyExtrude ( const GU_PolyExtrudeParms parms  ) 

GU_PrimPoly* GU_Detail::polyGrid ( int  rows,
int  cols,
float  xsize = 1,
float  ysize = 1,
float  xc = 0,
float  yc = 0,
float  zc = 0,
GU_OrientationType  = GU_PLANE_XY,
GEO_SurfaceType  type = GEO_PATCH_QUADS 
)

GU_PrimPoly* GU_Detail::polyIsoSurface ( float(*)(const UT_Vector3 &)  ptOutside,
const UT_BoundingBox bbox,
int  xdiv,
int  ydiv,
int  zdiv 
)

GU_PrimPoly* GU_Detail::polymeshCube ( int  xdiv,
int  ydiv,
int  zdiv,
float  xmin = -0.5F,
float  xmax = 0.5F,
float  ymin = -0.5F,
float  ymax = 0.5F,
float  zmin = -0.5F,
float  zmax = 0.5F,
GEO_SurfaceType  type = GEO_PATCH_QUADS,
bool  consolidate = false 
)

int GU_Detail::polyPatch ( GU_PolypatchParms parms,
const GA_PrimitiveGroup primGroup = 0 
)

int GU_Detail::polyReduce ( GU_PolyReduceParms parms,
const GA_PrimitiveGroup primGroup = 0,
int *  pointIndexTable = 0 
)

void GU_Detail::polySpline ( GU_PolysplineParms parms,
const GA_PrimitiveGroup primGroup = 0,
bool  deleteAll = true 
)

void SYS_DEPRECATED GU_Detail::preserveGroups ( const GEO_Primitive oldprim,
const GEO_Primitive newprim 
)

Deprecated in favour of GEO_Primitive::copyGroupMembership().

void SYS_DEPRECATED GU_Detail::preservePrimitiveGroups ( const GEO_Primitive oldprim,
const GEO_Primitive newprim 
)

Deprecated in favour of GEO_Primitive::copyGroupMembership().

void GU_Detail::proximityPoints ( GA_IndexMap points,
const UT_Vector3 point 
)

void GU_Detail::proximityPrims ( GA_IndexMap primitives,
const UT_Vector3 point 
)

void GU_Detail::proximityToPointList ( const UT_Vector3 point  )  [inline]

Definition at line 750 of file GU_Detail.h.

void GU_Detail::proximityToPrimitiveList ( const UT_Vector3 point  )  [inline]

Definition at line 752 of file GU_Detail.h.

void GU_Detail::rails ( GU_RailParms  parms  ) 

void GU_Detail::refine ( float *  uunit,
int  ulen,
float *  vunit,
int  vlen,
int  countu = 1,
int  countv = 1,
int  arcspacing = 0,
const GA_PrimitiveGroup primGroup = 0 
)

static GA_IntrinsicManager::Registrar GU_Detail::registerIntrinsics ( GA_PrimitiveFactory factory  )  [static, protected]

Register intrinsic attributes.

Reimplemented from GEO_Detail.

static void GU_Detail::registerIOTranslator ( GEO_IOTranslator trans  )  [static]

void GU_Detail::removeInlinePoints ( float  tol,
const GA_PrimitiveGroup prims 
)

int GU_Detail::removeZeroAreaFaces ( const UT_IntArray primlist,
int  ignoreOpenFaces = 0,
float  tolerance = 0.001F,
int  onlyPolys = 1 
)

int GU_Detail::removeZeroAreaFaces ( GA_PrimitiveGroup grpp,
int  ignoreOpenFaces = 0,
float  tolerance = 0.001F,
int  onlyPolys = 1 
)

void GU_Detail::reverse ( const GA_PrimitiveGroup group = 0  ) 

Reverse vertices for all primitives in the group.

void GU_Detail::reversePointList (  )  [inline]

Definition at line 740 of file GU_Detail.h.

void GU_Detail::reversePoints ( GA_IndexMap map  ) 

void GU_Detail::reversePolys ( const GA_PrimitiveGroup prmGrp = 0  ) 

Reverse polygons.

void GU_Detail::reversePrimitiveList (  )  [inline]

Definition at line 742 of file GU_Detail.h.

void GU_Detail::reversePrims ( GA_IndexMap map  ) 

int GU_Detail::revolve ( const GU_RevolveParms parms,
const GU_CapOptions caps,
int &  count 
)

void GU_Detail::rotateTexture ( float  angle,
const GA_PrimitiveGroup primGroup = 0 
)

int GU_Detail::ruled ( GEO_Hull *&  surface,
const GU_RuledParms p,
const GU_CapOptions caps 
)

virtual GA_Detail::IOStatus GU_Detail::saveH9File ( const char *  filename,
const UT_Options options 
) const [virtual]

virtual GA_Detail::IOStatus GU_Detail::saveH9Stream ( ostream &  os,
bool  binary,
const UT_Options options 
) const [virtual]

Pure virtual methods defined on GA_Detail

Reimplemented from GEO_Detail.

void GU_Detail::scaleTexture ( float  umult = 1,
float  uoff = 0,
float  vmult = 1,
float  voff = 0,
float  wmult = 1,
float  woff = 0,
const GA_PrimitiveGroup primGroup = 0 
)

The scaleTexture() and rotateTexture() methods are depreciated. Please use the GU_MODIFY_TEX projection and simply create the approprate post-transform.

GU_Selection* GU_Detail::selection ( void   )  const [inline]

Definition at line 1424 of file GU_Detail.h.

void GU_Detail::selection ( GU_Selection s  )  [inline]

Definition at line 1423 of file GU_Detail.h.

int GU_Detail::setCaps ( GEO_Face face,
const GU_CapOptions parms,
int &  count 
)

int GU_Detail::setCaps ( GEO_Hull hull,
const GU_CapOptions parms,
int &  count 
)

void GU_Detail::setSeamPointAttributes ( const GA_PointGroup group_a,
const GA_PointGroup group_b 
)

void GU_Detail::setTriMeshCache ( GU_TriMeshCache cache  )  [inline]

Definition at line 241 of file GU_Detail.h.

void GU_Detail::shift ( int  uoffset,
int  voffset,
const GA_PrimitiveGroup group = 0 
)

void GU_Detail::shiftPointList ( GA_Size  aoffset  )  [inline]

Definition at line 730 of file GU_Detail.h.

void GU_Detail::shiftPoints ( GA_IndexMap ,
GA_Size  offset 
)

void GU_Detail::shiftPrimitiveList ( GA_Size  aoffset  )  [inline]

Definition at line 732 of file GU_Detail.h.

void GU_Detail::shiftPrims ( GA_IndexMap ,
GA_Size  offset 
)

void GU_Detail::shrink ( fpreal  distance,
fpreal  clip_tolerance = 0.0001,
fpreal  consilidate_tolerance = 0.001 
)

GEO_Hull* GU_Detail::skin ( const UT_PtrArray< GEO_Primitive * > &  prims_in,
GU_SkinCache skin_cache,
GEO_SurfaceType  surftype = GEO_PATCH_QUADS,
unsigned  vorder = 0,
int  vwrap = 0,
int  doskin = 1,
int  nprims = -1,
const UT_Vector vParmValues = 0 
)

GEO_Hull* GU_Detail::skin ( const GA_PrimitiveGroup ucfaces,
GEO_SurfaceType  surftype = GEO_PATCH_QUADS,
unsigned  vorder = 0,
int  vwrap = 0,
int  doskin = 1,
int  nprims = -1,
const UT_Vector vParmValues = 0 
)

GEO_Hull* GU_Detail::skin ( GU_SkinParms parms,
GU_SkinCache skin_cache 
)

void GU_Detail::smoothNonPolygons ( int  iterations,
GU_WeightingType  type,
float  lambda,
float  mu,
const GA_PrimitiveGroup primgrp,
bool  useptattribs,
const GA_RWAttributeRef attriboffset,
int  attribsize 
)

void GU_Detail::snapGrid ( int  type,
float  xlines,
float  ylines,
float  zlines,
float  xoff,
float  yoff,
float  zoff,
float  tol,
const GA_PointGroup ptGrp = 0 
)

This version of snapping snaps onto grid coordinates. You specify the number of lines per HUnit, so "2" for example will snap to 0.5 boundaries. type is 0 for round nearest, 1 for round down, 2 for round up. 0.5 rounds up in nearest.

void GU_Detail::snapGridPointUVs ( int  type,
float  xlines,
float  ylines,
float  zlines,
float  xoff,
float  yoff,
float  zoff,
float  tol,
const GA_PointGroup ptGrp = 0 
)

void GU_Detail::snapGridVertexUVs ( int  type,
float  xlines,
float  ylines,
float  zlines,
float  xoff,
float  yoff,
float  zoff,
float  tol,
const GA_VertexGroup vtxGrp = 0 
)

int GU_Detail::snapPoints ( int  type,
float  distance,
const GA_PointGroup ptgrp = 0,
bool  snapptpos = true,
bool  snapptattribs = false,
UT_PtrArray< GEO_AttributeHandle * > *  ptattribhandles = 0 
)

Snap points within a specified distance (returns num done) If a point group is specified, then, only points in that group are consolidated. Snapping doesn't fuse the points together, just makes their positions match. The type is 0 for average, 1 for round to lowest point number and 2 for highest point number. snappointpos controls whether the point positions will be snapped. snapptattribs can be set to indicate that point attributes are to be snapped. ptattribhandles is a list of attribute handles for the attributes that will be snapped.

void GU_Detail::softTransformPointTexture ( const UT_XformOrder order,
float  tx,
float  ty,
float  tz,
float  rx,
float  ry,
float  rz,
float  sx,
float  sy,
float  sz,
float  s_xy,
float  s_xz,
float  s_yz,
float  px,
float  py,
float  pz,
const GEO_SoftTransformPointCache cache,
const GEO_Rolloff rolloff,
GEO_Delta geodelta = 0 
)

void GU_Detail::softTransformVertexTexture ( const UT_XformOrder order,
float  tx,
float  ty,
float  tz,
float  rx,
float  ry,
float  rz,
float  sx,
float  sy,
float  sz,
float  s_xy,
float  s_xz,
float  s_yz,
float  px,
float  py,
float  pz,
const GEO_SoftTransformVertexCache cache,
const GEO_Rolloff rolloff,
GEO_Delta geodelta = 0 
)

void GU_Detail::sortByVertexOrder (  )  [inline]

Definition at line 756 of file GU_Detail.h.

void GU_Detail::sortElements ( GA_IndexMap array,
float *  order 
)

void GU_Detail::sortPointList ( float *  order  )  [inline]

Definition at line 720 of file GU_Detail.h.

void GU_Detail::sortPointList ( int  seed  )  [inline]

Definition at line 713 of file GU_Detail.h.

void GU_Detail::sortPointList ( const UT_Vector3 o,
const UT_Vector3 d 
) [inline]

Definition at line 704 of file GU_Detail.h.

void GU_Detail::sortPointList ( GU_AxisType  axis  )  [inline]

Definition at line 694 of file GU_Detail.h.

void GU_Detail::sortPoints ( GA_IndexMap array,
int  seed 
)

void GU_Detail::sortPoints ( GA_IndexMap array,
const UT_Vector3 o,
const UT_Vector3 d 
)

void GU_Detail::sortPoints ( GA_OffsetArray array,
GU_AxisType  axis = GU_XAXIS 
)

void GU_Detail::sortPoints ( GA_IndexMap array,
GU_AxisType  axis = GU_XAXIS 
)

void GU_Detail::sortPrimitiveList ( float *  order  )  [inline]

Definition at line 722 of file GU_Detail.h.

void GU_Detail::sortPrimitiveList ( int  seed  )  [inline]

Definition at line 715 of file GU_Detail.h.

void GU_Detail::sortPrimitiveList ( const UT_Vector3 o,
const UT_Vector3 d 
) [inline]

Definition at line 706 of file GU_Detail.h.

void GU_Detail::sortPrimitiveList ( GU_AxisType  axis  )  [inline]

Definition at line 696 of file GU_Detail.h.

void GU_Detail::sortPrims ( GA_IndexMap array,
int  seed 
)

void GU_Detail::sortPrims ( GA_IndexMap array,
const UT_Vector3 o,
const UT_Vector3 d 
)

void GU_Detail::sortPrims ( GA_IndexMap array,
GU_AxisType  axis = GU_XAXIS 
)

static GA_Detail::IOStatus GU_Detail::statH9File ( const char *  filename,
GA_Stat sbuf,
uint  level 
) [static]

virtual void GU_Detail::statVolumes ( GA_Stat stat,
uint  level 
) const [virtual]

Fills in a stat structure with the volume information.

Reimplemented from GA_Detail.

int GU_Detail::stitch ( GU_StitchParms parms  ) 

void GU_Detail::subdivide ( float *  uunit,
int  ulen,
float *  vunit,
int  vlen,
int  arcspacing = 0,
const GA_PrimitiveGroup primGroup = 0 
)

void GU_Detail::superEllipsoid ( const GU_SuperQuadParms parms  ) 

GU_ERROR GU_Detail::sweep ( GU_SweepParms  parms  ) 

bool GU_Detail::tetrahedralizeForShrink ( const GA_PointGroup ptGroup = 0,
GU_Detail gdp = 0 
)

void GU_Detail::torus ( unsigned  type,
GU_TorusParms parms 
)

float GU_Detail::trace ( GU_TraceParms parms  ) 

void GU_Detail::transformBreakpoints ( const UT_Matrix4 mat,
const GA_BreakpointGroup grp = 0,
int  quickxform = 0 
)

void GU_Detail::transformPointTexture ( const UT_Matrix4 mat,
const GA_PointGroup ptGroup,
GEO_Delta geodelta = 0 
)

Methods for transforming point and vertex texture attributes:.

void GU_Detail::transformVertexTexture ( const UT_Matrix4 mat,
const GA_VertexGroup vertexGroup,
GEO_Delta geodelta = 0 
)

int GU_Detail::triStrip ( GU_TriStripParms parms  ) 

void GU_Detail::unHole ( const GA_PrimitiveGroup primGroup = 0  ) 

Remove bridged holes from other than polygons.

void GU_Detail::uniquePoints ( const GA_ElementGroup group = 0,
int  useMark = 0 
)

Unique all points in the detail. If a point group is specified, then only points in that group are uniqued If a primitive group is specified, only those primitives will have their points uniqued.

void GU_Detail::uniquePrimitive ( GEO_Primitive prim  ) 

Unique all the points that are in this primitive, even if referenced by other primitives.

void GU_Detail::unrefine ( float  umin,
float  umax,
float  vmin,
float  vmax,
int  countu = 1,
int  countv = 1,
float  utol = 0.001F,
float  vtol = 0.001F,
const GA_PrimitiveGroup primGroup = 0 
)

static void GU_Detail::unregisterIOTranslator ( GEO_IOTranslator trans  )  [static]

virtual GA_Primitive* GU_Detail::unstashPrimitiveImpl ( const GA_PrimitiveDefinition type,
GA_Offset  offset 
) [protected, virtual]

Override base class method to implement primitive stashing.

Reimplemented from GEO_Detail.

int GU_Detail::updatePastedDependents ( GA_PrimitiveGroup all,
GA_PrimitiveGroup used 
)

void GU_Detail::updatePastedDisplacement ( const GEO_Point ppt,
const GA_PrimitiveGroup all,
GA_PrimitiveGroup used 
)

void GU_Detail::updatePastedDisplacement ( GA_Offset  ptoff,
const GA_PrimitiveGroup all,
GA_PrimitiveGroup used 
)

int GU_Detail::updatePastedDisplacements ( void   ) 

void GU_Detail::vertexOrder ( GA_IndexMap points  ) 

int GU_Detail::warp ( GU_WarpParms parms  ) 


Friends And Related Function Documentation

friend class GU_PrimitiveFactory [friend]

Definition at line 1731 of file GU_Detail.h.


The documentation for this class was generated from the following file:

Generated on Thu Jan 31 00:31:21 2013 for HDK by  doxygen 1.5.9