HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GU_RayPrimitive.h File Reference
#include "GU_API.h"
#include "GU_NURBPyramid.h"
#include "GU_RayRBezCurve.h"
#include "GU_RayRBezSurf.h"
#include <GEO/GEO_Detail.h>
#include <GEO/GEO_PrimitiveP.h>
#include <GEO/GEO_PrimNURBCurve.h>
#include <GEO/GEO_PrimNURBSurf.h>
#include <GEO/GEO_PrimRBezCurve.h>
#include <GEO/GEO_PrimRBezSurf.h>
#include <GEO/GEO_PrimVolume.h>
#include <GA/GA_KnotVector.h>
#include <GA/GA_NUBBasis.h>
#include <GA/GA_Types.h>
#include <TS/TS_Expression.h>
#include <UT/UT_BoundingBox.h>
#include <UT/UT_Matrix3.h>
#include <UT/UT_Matrix4.h>
#include <UT/UT_ThreadSpecificValue.h>
#include <UT/UT_UniquePtr.h>
#include <UT/UT_VDBUtils.h>
#include <UT/UT_Vector3.h>
#include <UT/UT_Vector4Array.h>
#include <UT/UT_VoxelArray.h>
#include <SYS/SYS_Inline.h>
#include <openvdb/openvdb.h>
+ Include dependency graph for GU_RayPrimitive.h:

Go to the source code of this file.

Classes

class  GU_Ray
 
class  GU_RayPrimInfo
 
class  GU_RayQuadricInfo
 
class  GU_RayTriangleInfo< ISTET >
 
class  GU_RayHTriangleInfo< ISTET >
 
class  GU_RayTetInfo
 
class  GU_RayHTetInfo
 
class  GU_RayHexInfo
 
class  GU_RayHHexInfo
 
class  GU_RayQuadInfo< ISHEX >
 
class  GU_RayHQuadInfo< ISHEX >
 
class  GU_RayPolyInfo
 
class  GU_RayHPolyInfo
 
class  GU_RayMetaInfo
 
class  GU_RayVDBInfo
 
class  GU_RayHeightFieldInfo
 
class  GU_RayPackedInfo
 
class  GU_RayPolyLineInfo
 
class  GU_RayCurveInfo
 
class  GU_RayRBezCurveInfo
 
class  GU_RayNURBCurveInfo
 
class  GU_RayRBezSurfInfo
 
class  GU_RayNURBSurfInfo
 
class  GU_RayMovingTriangleInfo
 

Functions

int GU_getBilinearQuadIntersection (const UT_Vector3 &org, const UT_Vector3 &dir, const UT_Vector3 &A, const UT_Vector3 &B, const UT_Vector3 &C, const UT_Vector3 &D, const UT_Vector3 &norm, float &t, float &u, float &v, float &d2)
 
GU_API bool GUisPointInsideTet (const UT_Vector3 &query, const UT_Vector3 *ps, UT_Vector3 n[4], bool &negated, float dots[4], float A[4]) noexcept
 
GU_API UT_Vector3 GUfindPointInsideTet (float dots[4], const float A[4]) noexcept
 

Function Documentation

int GU_getBilinearQuadIntersection ( const UT_Vector3 org,
const UT_Vector3 dir,
const UT_Vector3 A,
const UT_Vector3 B,
const UT_Vector3 C,
const UT_Vector3 D,
const UT_Vector3 norm,
float t,
float u,
float v,
float d2 
)
GU_API UT_Vector3 GUfindPointInsideTet ( float  dots[4],
const float  A[4] 
)
noexcept

Computes the uvw coordinates of a query point inside a tet, based on the values computed by GUisPointInsideTet.

GU_API bool GUisPointInsideTet ( const UT_Vector3 query,
const UT_Vector3 ps,
UT_Vector3  n[4],
bool &  negated,
float  dots[4],
float  A[4] 
)
noexcept

Checks if query is inside the tet specified by ps. If the tet is inverted and it's inside, negated will be set to true. It computes normals, areas, and sub tet volumes already, so that they can be used afterward.