Tesseract
Motion Planning Environment
Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Enumerations | Functions | Variables
FloatMath.h File Reference
#include <float.h>
#include <stdint.h>
Include dependency graph for FloatMath.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  tesseract_collision::FLOAT_MATH::fm_VertexIndex
 
class  tesseract_collision::FLOAT_MATH::fm_Triangulate
 
class  tesseract_collision::FLOAT_MATH::fm_Tesselate
 

Namespaces

namespace  tesseract_collision
 
namespace  tesseract_collision::FLOAT_MATH
 

Macros

#define FM_DEFAULT_GRANULARITY   0.001f
 

Enumerations

enum  tesseract_collision::FLOAT_MATH::FM_ClipState {
  tesseract_collision::FLOAT_MATH::FMCS_XMIN = (1 << 0) , tesseract_collision::FLOAT_MATH::FMCS_XMAX = (1 << 1) , tesseract_collision::FLOAT_MATH::FMCS_YMIN = (1 << 2) , tesseract_collision::FLOAT_MATH::FMCS_YMAX = (1 << 3) ,
  tesseract_collision::FLOAT_MATH::FMCS_ZMIN = (1 << 4) , tesseract_collision::FLOAT_MATH::FMCS_ZMAX = (1 << 5)
}
 
enum  tesseract_collision::FLOAT_MATH::FM_Axis { tesseract_collision::FLOAT_MATH::FM_XAXIS = (1 << 0) , tesseract_collision::FLOAT_MATH::FM_YAXIS = (1 << 1) , tesseract_collision::FLOAT_MATH::FM_ZAXIS = (1 << 2) }
 
enum  tesseract_collision::FLOAT_MATH::LineSegmentType { tesseract_collision::FLOAT_MATH::LS_START , tesseract_collision::FLOAT_MATH::LS_MIDDLE , tesseract_collision::FLOAT_MATH::LS_END }
 
enum  tesseract_collision::FLOAT_MATH::IntersectResult { tesseract_collision::FLOAT_MATH::IR_DONT_INTERSECT , tesseract_collision::FLOAT_MATH::IR_DO_INTERSECT , tesseract_collision::FLOAT_MATH::IR_COINCIDENT , tesseract_collision::FLOAT_MATH::IR_PARALLEL }
 
enum  tesseract_collision::FLOAT_MATH::PlaneTriResult { tesseract_collision::FLOAT_MATH::PTR_ON_PLANE , tesseract_collision::FLOAT_MATH::PTR_FRONT , tesseract_collision::FLOAT_MATH::PTR_BACK , tesseract_collision::FLOAT_MATH::PTR_SPLIT }
 

Functions

FM_Axis tesseract_collision::FLOAT_MATH::fm_getDominantAxis (const float normal[3])
 
FM_Axis tesseract_collision::FLOAT_MATH::fm_getDominantAxis (const double normal[3])
 
void tesseract_collision::FLOAT_MATH::fm_decomposeTransform (const float local_transform[16], float trans[3], float rot[4], float scale[3])
 
void tesseract_collision::FLOAT_MATH::fm_decomposeTransform (const double local_transform[16], double trans[3], double rot[4], double scale[3])
 
void tesseract_collision::FLOAT_MATH::fm_multiplyTransform (const float *pA, const float *pB, float *pM)
 
void tesseract_collision::FLOAT_MATH::fm_multiplyTransform (const double *pA, const double *pB, double *pM)
 
void tesseract_collision::FLOAT_MATH::fm_inverseTransform (const float matrix[16], float inverse_matrix[16])
 
void tesseract_collision::FLOAT_MATH::fm_inverseTransform (const double matrix[16], double inverse_matrix[16])
 
void tesseract_collision::FLOAT_MATH::fm_identity (float matrix[16])
 
void tesseract_collision::FLOAT_MATH::fm_identity (double matrix[16])
 
void tesseract_collision::FLOAT_MATH::fm_inverseRT (const float matrix[16], const float pos[3], float t[3])
 
void tesseract_collision::FLOAT_MATH::fm_inverseRT (const double matrix[16], const double pos[3], double t[3])
 
void tesseract_collision::FLOAT_MATH::fm_transform (const float matrix[16], const float pos[3], float t[3])
 
void tesseract_collision::FLOAT_MATH::fm_transform (const double matrix[16], const double pos[3], double t[3])
 
float tesseract_collision::FLOAT_MATH::fm_getDeterminant (const float matrix[16])
 
double tesseract_collision::FLOAT_MATH::fm_getDeterminant (const double matrix[16])
 
void tesseract_collision::FLOAT_MATH::fm_getSubMatrix (int32_t ki, int32_t kj, float pDst[16], const float matrix[16])
 
void tesseract_collision::FLOAT_MATH::fm_getSubMatrix (int32_t ki, int32_t kj, double pDst[16], const float matrix[16])
 
void tesseract_collision::FLOAT_MATH::fm_rotate (const float matrix[16], const float pos[3], float t[3])
 
void tesseract_collision::FLOAT_MATH::fm_rotate (const double matri[16], const double pos[3], double t[3])
 
void tesseract_collision::FLOAT_MATH::fm_eulerToMatrix (float ax, float ay, float az, float matrix[16])
 
void tesseract_collision::FLOAT_MATH::fm_eulerToMatrix (double ax, double ay, double az, double matrix[16])
 
void tesseract_collision::FLOAT_MATH::fm_getAABB (uint32_t vcount, const float *points, uint32_t pstride, float bmin[3], float bmax[3])
 
void tesseract_collision::FLOAT_MATH::fm_getAABB (uint32_t vcount, const double *points, uint32_t pstride, double bmin[3], double bmax[3])
 
void tesseract_collision::FLOAT_MATH::fm_getAABBCenter (const float bmin[3], const float bmax[3], float center[3])
 
void tesseract_collision::FLOAT_MATH::fm_getAABBCenter (const double bmin[3], const double bmax[3], double center[3])
 
void tesseract_collision::FLOAT_MATH::fm_transformAABB (const float bmin[3], const float bmax[3], const float matrix[16], float tbmin[3], float tbmax[3])
 
void tesseract_collision::FLOAT_MATH::fm_transformAABB (const double bmin[3], const double bmax[3], const double matrix[16], double tbmin[3], double tbmax[3])
 
void tesseract_collision::FLOAT_MATH::fm_eulerToQuat (float x, float y, float z, float quat[4])
 
void tesseract_collision::FLOAT_MATH::fm_eulerToQuat (double x, double y, double z, double quat[4])
 
void tesseract_collision::FLOAT_MATH::fm_quatToEuler (const float quat[4], float &ax, float &ay, float &az)
 
void tesseract_collision::FLOAT_MATH::fm_quatToEuler (const double quat[4], double &ax, double &ay, double &az)
 
void tesseract_collision::FLOAT_MATH::fm_eulerToQuat (const float euler[3], float quat[4])
 
void tesseract_collision::FLOAT_MATH::fm_eulerToQuat (const double euler[3], double quat[4])
 
void tesseract_collision::FLOAT_MATH::fm_scale (float x, float y, float z, float matrix[16])
 
void tesseract_collision::FLOAT_MATH::fm_scale (double x, double y, double z, double matrix[16])
 
void tesseract_collision::FLOAT_MATH::fm_eulerToQuatDX (float x, float y, float z, float quat[4])
 
void tesseract_collision::FLOAT_MATH::fm_eulerToQuatDX (double x, double y, double z, double quat[4])
 
void tesseract_collision::FLOAT_MATH::fm_eulerToMatrixDX (float x, float y, float z, float matrix[16])
 
void tesseract_collision::FLOAT_MATH::fm_eulerToMatrixDX (double x, double y, double z, double matrix[16])
 
void tesseract_collision::FLOAT_MATH::fm_quatToMatrix (const float quat[4], float matrix[16])
 
void tesseract_collision::FLOAT_MATH::fm_quatToMatrix (const double quat[4], double matrix[16])
 
void tesseract_collision::FLOAT_MATH::fm_quatRotate (const float quat[4], const float v[3], float r[3])
 
void tesseract_collision::FLOAT_MATH::fm_quatRotate (const double quat[4], const double v[3], double r[3])
 
void tesseract_collision::FLOAT_MATH::fm_getTranslation (const float matrix[16], float t[3])
 
void tesseract_collision::FLOAT_MATH::fm_getTranslation (const double matrix[16], double t[3])
 
void tesseract_collision::FLOAT_MATH::fm_setTranslation (const float *translation, float matrix[16])
 
void tesseract_collision::FLOAT_MATH::fm_setTranslation (const double *translation, double matrix[16])
 
void tesseract_collision::FLOAT_MATH::fm_multiplyQuat (const float *qa, const float *qb, float *quat)
 
void tesseract_collision::FLOAT_MATH::fm_multiplyQuat (const double *qa, const double *qb, double *quat)
 
void tesseract_collision::FLOAT_MATH::fm_matrixToQuat (const float matrix[16], float quat[4])
 
void tesseract_collision::FLOAT_MATH::fm_matrixToQuat (const double matrix[16], double quat[4])
 
float tesseract_collision::FLOAT_MATH::fm_sphereVolume (float radius)
 
double tesseract_collision::FLOAT_MATH::fm_sphereVolume (double radius)
 
float tesseract_collision::FLOAT_MATH::fm_cylinderVolume (float radius, float h)
 
double tesseract_collision::FLOAT_MATH::fm_cylinderVolume (double radius, double h)
 
float tesseract_collision::FLOAT_MATH::fm_capsuleVolume (float radius, float h)
 
double tesseract_collision::FLOAT_MATH::fm_capsuleVolume (double radius, double h)
 
float tesseract_collision::FLOAT_MATH::fm_distance (const float p1[3], const float p2[3])
 
double tesseract_collision::FLOAT_MATH::fm_distance (const double p1[3], const double p2[3])
 
float tesseract_collision::FLOAT_MATH::fm_distanceSquared (const float p1[3], const float p2[3])
 
double tesseract_collision::FLOAT_MATH::fm_distanceSquared (const double p1[3], const double p2[3])
 
float tesseract_collision::FLOAT_MATH::fm_distanceSquaredXZ (const float p1[3], const float p2[3])
 
double tesseract_collision::FLOAT_MATH::fm_distanceSquaredXZ (const double p1[3], const double p2[3])
 
float tesseract_collision::FLOAT_MATH::fm_computePlane (const float p1[3], const float p2[3], const float p3[3], float *n)
 
double tesseract_collision::FLOAT_MATH::fm_computePlane (const double p1[3], const double p2[3], const double p3[3], double *n)
 
float tesseract_collision::FLOAT_MATH::fm_distToPlane (const float plane[4], const float pos[3])
 
double tesseract_collision::FLOAT_MATH::fm_distToPlane (const double plane[4], const double pos[3])
 
float tesseract_collision::FLOAT_MATH::fm_dot (const float p1[3], const float p2[3])
 
double tesseract_collision::FLOAT_MATH::fm_dot (const double p1[3], const double p2[3])
 
void tesseract_collision::FLOAT_MATH::fm_cross (float cross[3], const float a[3], const float b[3])
 
void tesseract_collision::FLOAT_MATH::fm_cross (double cross[3], const double a[3], const double b[3])
 
float tesseract_collision::FLOAT_MATH::fm_computeNormalVector (float n[3], const float p1[3], const float p2[3])
 
double tesseract_collision::FLOAT_MATH::fm_computeNormalVector (double n[3], const double p1[3], const double p2[3])
 
bool tesseract_collision::FLOAT_MATH::fm_computeWindingOrder (const float p1[3], const float p2[3], const float p3[3])
 
bool tesseract_collision::FLOAT_MATH::fm_computeWindingOrder (const double p1[3], const double p2[3], const double p3[3])
 
float tesseract_collision::FLOAT_MATH::fm_normalize (float n[3])
 
double tesseract_collision::FLOAT_MATH::fm_normalize (double n[3])
 
float tesseract_collision::FLOAT_MATH::fm_normalizeQuat (float n[4])
 
double tesseract_collision::FLOAT_MATH::fm_normalizeQuat (double n[4])
 
void tesseract_collision::FLOAT_MATH::fm_matrixMultiply (const float A[16], const float B[16], float dest[16])
 
void tesseract_collision::FLOAT_MATH::fm_matrixMultiply (const double A[16], const double B[16], double dest[16])
 
void tesseract_collision::FLOAT_MATH::fm_composeTransform (const float position[3], const float quat[4], const float scale[3], float matrix[16])
 
void tesseract_collision::FLOAT_MATH::fm_composeTransform (const double position[3], const double quat[4], const double scale[3], double matrix[16])
 
float tesseract_collision::FLOAT_MATH::fm_computeArea (const float p1[3], const float p2[3], const float p3[3])
 
double tesseract_collision::FLOAT_MATH::fm_computeArea (const double p1[3], const double p2[3], const double p3[3])
 
void tesseract_collision::FLOAT_MATH::fm_lerp (const float p1[3], const float p2[3], float dest[3], float lerpValue)
 
void tesseract_collision::FLOAT_MATH::fm_lerp (const double p1[3], const double p2[3], double dest[3], double lerpValue)
 
bool tesseract_collision::FLOAT_MATH::fm_insideTriangleXZ (const float test[3], const float p1[3], const float p2[3], const float p3[3])
 
bool tesseract_collision::FLOAT_MATH::fm_insideTriangleXZ (const double test[3], const double p1[3], const double p2[3], const double p3[3])
 
bool tesseract_collision::FLOAT_MATH::fm_insideAABB (const float pos[3], const float bmin[3], const float bmax[3])
 
bool tesseract_collision::FLOAT_MATH::fm_insideAABB (const double pos[3], const double bmin[3], const double bmax[3])
 
bool tesseract_collision::FLOAT_MATH::fm_insideAABB (const float obmin[3], const float obmax[3], const float tbmin[3], const float tbmax[3])
 
bool tesseract_collision::FLOAT_MATH::fm_insideAABB (const double obmin[3], const double obmax[3], const double tbmin[3], const double tbmax[3])
 
uint32_t tesseract_collision::FLOAT_MATH::fm_clipTestPoint (const float bmin[3], const float bmax[3], const float pos[3])
 
uint32_t tesseract_collision::FLOAT_MATH::fm_clipTestPoint (const double bmin[3], const double bmax[3], const double pos[3])
 
uint32_t tesseract_collision::FLOAT_MATH::fm_clipTestPointXZ (const float bmin[3], const float bmax[3], const float pos[3])
 
uint32_t tesseract_collision::FLOAT_MATH::fm_clipTestPointXZ (const double bmin[3], const double bmax[3], const double pos[3])
 
uint32_t tesseract_collision::FLOAT_MATH::fm_clipTestAABB (const float bmin[3], const float bmax[3], const float p1[3], const float p2[3], const float p3[3], uint32_t &andCode)
 
uint32_t tesseract_collision::FLOAT_MATH::fm_clipTestAABB (const double bmin[3], const double bmax[3], const double p1[3], const double p2[3], const double p3[3], uint32_t &andCode)
 
bool tesseract_collision::FLOAT_MATH::fm_lineTestAABBXZ (const float p1[3], const float p2[3], const float bmin[3], const float bmax[3], float &time)
 
bool tesseract_collision::FLOAT_MATH::fm_lineTestAABBXZ (const double p1[3], const double p2[3], const double bmin[3], const double bmax[3], double &time)
 
bool tesseract_collision::FLOAT_MATH::fm_lineTestAABB (const float p1[3], const float p2[3], const float bmin[3], const float bmax[3], float &time)
 
bool tesseract_collision::FLOAT_MATH::fm_lineTestAABB (const double p1[3], const double p2[3], const double bmin[3], const double bmax[3], double &time)
 
void tesseract_collision::FLOAT_MATH::fm_initMinMax (const float p[3], float bmin[3], float bmax[3])
 
void tesseract_collision::FLOAT_MATH::fm_initMinMax (const double p[3], double bmin[3], double bmax[3])
 
void tesseract_collision::FLOAT_MATH::fm_initMinMax (float bmin[3], float bmax[3])
 
void tesseract_collision::FLOAT_MATH::fm_initMinMax (double bmin[3], double bmax[3])
 
void tesseract_collision::FLOAT_MATH::fm_minmax (const float p[3], float bmin[3], float bmax[3])
 
void tesseract_collision::FLOAT_MATH::fm_minmax (const double p[3], double bmin[3], double bmax[3])
 
void tesseract_collision::FLOAT_MATH::fm_inflateMinMax (float bmin[3], float bmax[3], float ratio)
 
void tesseract_collision::FLOAT_MATH::fm_inflateMinMax (double bmin[3], double bmax[3], double ratio)
 
float tesseract_collision::FLOAT_MATH::fm_solveX (const float plane[4], float y, float z)
 
double tesseract_collision::FLOAT_MATH::fm_solveX (const double plane[4], double y, double z)
 
float tesseract_collision::FLOAT_MATH::fm_solveY (const float plane[4], float x, float z)
 
double tesseract_collision::FLOAT_MATH::fm_solveY (const double plane[4], double x, double z)
 
float tesseract_collision::FLOAT_MATH::fm_solveZ (const float plane[4], float x, float y)
 
double tesseract_collision::FLOAT_MATH::fm_solveZ (const double plane[4], double x, double y)
 
bool tesseract_collision::FLOAT_MATH::fm_computeBestFitPlane (uint32_t vcount, const float *points, uint32_t vstride, const float *weights, uint32_t wstride, float plane[4], float center[3])
 
bool tesseract_collision::FLOAT_MATH::fm_computeBestFitPlane (uint32_t vcount, const double *points, uint32_t vstride, const double *weights, uint32_t wstride, double plane[4], double center[3])
 
bool tesseract_collision::FLOAT_MATH::fm_computeCentroid (uint32_t vcount, const float *points, float *center)
 
bool tesseract_collision::FLOAT_MATH::fm_computeCentroid (uint32_t vcount, const double *points, double *center)
 
bool tesseract_collision::FLOAT_MATH::fm_computeCentroid (uint32_t vcount, const float *points, uint32_t triangleCount, const uint32_t *indices, float *center)
 
bool tesseract_collision::FLOAT_MATH::fm_computeCentroid (uint32_t vcount, const double *points, uint32_t triangleCount, const uint32_t *indices, double *center)
 
float tesseract_collision::FLOAT_MATH::fm_computeBestFitAABB (uint32_t vcount, const float *points, uint32_t pstride, float bmin[3], float bmax[3])
 
double tesseract_collision::FLOAT_MATH::fm_computeBestFitAABB (uint32_t vcount, const double *points, uint32_t pstride, double bmin[3], double bmax[3])
 
float tesseract_collision::FLOAT_MATH::fm_computeBestFitSphere (uint32_t vcount, const float *points, uint32_t pstride, float center[3])
 
double tesseract_collision::FLOAT_MATH::fm_computeBestFitSphere (uint32_t vcount, const double *points, uint32_t pstride, double center[3])
 
bool tesseract_collision::FLOAT_MATH::fm_lineSphereIntersect (const float center[3], float radius, const float p1[3], const float p2[3], float intersect[3])
 
bool tesseract_collision::FLOAT_MATH::fm_lineSphereIntersect (const double center[3], double radius, const double p1[3], const double p2[3], double intersect[3])
 
bool tesseract_collision::FLOAT_MATH::fm_intersectRayAABB (const float bmin[3], const float bmax[3], const float pos[3], const float dir[3], float intersect[3])
 
bool tesseract_collision::FLOAT_MATH::fm_intersectLineSegmentAABB (const float bmin[3], const float bmax[3], const float p1[3], const float p2[3], float intersect[3])
 
bool tesseract_collision::FLOAT_MATH::fm_lineIntersectsTriangle (const float rayStart[3], const float rayEnd[3], const float p1[3], const float p2[3], const float p3[3], float sect[3])
 
bool tesseract_collision::FLOAT_MATH::fm_lineIntersectsTriangle (const double rayStart[3], const double rayEnd[3], const double p1[3], const double p2[3], const double p3[3], double sect[3])
 
bool tesseract_collision::FLOAT_MATH::fm_rayIntersectsTriangle (const float origin[3], const float dir[3], const float v0[3], const float v1[3], const float v2[3], float &t)
 
bool tesseract_collision::FLOAT_MATH::fm_rayIntersectsTriangle (const double origin[3], const double dir[3], const double v0[3], const double v1[3], const double v2[3], double &t)
 
bool tesseract_collision::FLOAT_MATH::fm_raySphereIntersect (const float center[3], float radius, const float pos[3], const float dir[3], float distance, float intersect[3])
 
bool tesseract_collision::FLOAT_MATH::fm_raySphereIntersect (const double center[3], double radius, const double pos[3], const double dir[3], double distance, double intersect[3])
 
void tesseract_collision::FLOAT_MATH::fm_catmullRom (float out_vector[3], const float p1[3], const float p2[3], const float p3[3], const float *p4, const float s)
 
void tesseract_collision::FLOAT_MATH::fm_catmullRom (double out_vector[3], const double p1[3], const double p2[3], const double p3[3], const double *p4, const double s)
 
bool tesseract_collision::FLOAT_MATH::fm_intersectAABB (const float bmin1[3], const float bmax1[3], const float bmin2[3], const float bmax2[3])
 
bool tesseract_collision::FLOAT_MATH::fm_intersectAABB (const double bmin1[3], const double bmax1[3], const double bmin2[3], const double bmax2[3])
 
void tesseract_collision::FLOAT_MATH::fm_rotationArc (const float v0[3], const float v1[3], float quat[4])
 
void tesseract_collision::FLOAT_MATH::fm_rotationArc (const double v0[3], const double v1[3], double quat[4])
 
float tesseract_collision::FLOAT_MATH::fm_distancePointLineSegment (const float Point[3], const float LineStart[3], const float LineEnd[3], float intersection[3], LineSegmentType &type, float epsilon)
 
double tesseract_collision::FLOAT_MATH::fm_distancePointLineSegment (const double Point[3], const double LineStart[3], const double LineEnd[3], double intersection[3], LineSegmentType &type, double epsilon)
 
bool tesseract_collision::FLOAT_MATH::fm_colinear (const double p1[3], const double p2[3], const double p3[3], double epsilon=0.999)
 
bool tesseract_collision::FLOAT_MATH::fm_colinear (const float p1[3], const float p2[3], const float p3[3], float epsilon=0.999f)
 
bool tesseract_collision::FLOAT_MATH::fm_colinear (const float a1[3], const float a2[3], const float b1[3], const float b2[3], float epsilon=0.999f)
 
bool tesseract_collision::FLOAT_MATH::fm_colinear (const double a1[3], const double a2[3], const double b1[3], const double b2[3], double epsilon=0.999)
 
IntersectResult tesseract_collision::FLOAT_MATH::fm_intersectLineSegments2d (const float a1[3], const float a2[3], const float b1[3], const float b2[3], float intersectionPoint[3])
 
IntersectResult tesseract_collision::FLOAT_MATH::fm_intersectLineSegments2d (const double a1[3], const double a2[3], const double b1[3], const double b2[3], double intersectionPoint[3])
 
IntersectResult tesseract_collision::FLOAT_MATH::fm_intersectLineSegments2dTime (const float a1[3], const float a2[3], const float b1[3], const float b2[3], float &t1, float &t2)
 
IntersectResult tesseract_collision::FLOAT_MATH::fm_intersectLineSegments2dTime (const double a1[3], const double a2[3], const double b1[3], const double b2[3], double &t1, double &t2)
 
PlaneTriResult tesseract_collision::FLOAT_MATH::fm_planeTriIntersection (const float plane[4], const float *triangle, uint32_t tstride, float epsilon, float *front, uint32_t &fcount, float *back, uint32_t &bcount)
 
PlaneTriResult tesseract_collision::FLOAT_MATH::fm_planeTriIntersection (const double plane[4], const double *triangle, uint32_t tstride, double epsilon, double *front, uint32_t &fcount, double *back, uint32_t &bcount)
 
bool tesseract_collision::FLOAT_MATH::fm_intersectPointPlane (const float p1[3], const float p2[3], float *split, const float plane[4])
 
bool tesseract_collision::FLOAT_MATH::fm_intersectPointPlane (const double p1[3], const double p2[3], double *split, const double plane[4])
 
PlaneTriResult tesseract_collision::FLOAT_MATH::fm_getSidePlane (const float p[3], const float plane[4], float epsilon)
 
PlaneTriResult tesseract_collision::FLOAT_MATH::fm_getSidePlane (const double p[3], const double plane[4], double epsilon)
 
void tesseract_collision::FLOAT_MATH::fm_computeBestFitOBB (uint32_t vcount, const float *points, uint32_t pstride, float *sides, float matrix[16], bool bruteForce=true)
 
void tesseract_collision::FLOAT_MATH::fm_computeBestFitOBB (uint32_t vcount, const double *points, uint32_t pstride, double *sides, double matrix[16], bool bruteForce=true)
 
void tesseract_collision::FLOAT_MATH::fm_computeBestFitOBB (uint32_t vcount, const float *points, uint32_t pstride, float *sides, float pos[3], float quat[4], bool bruteForce=true)
 
void tesseract_collision::FLOAT_MATH::fm_computeBestFitOBB (uint32_t vcount, const double *points, uint32_t pstride, double *sides, double pos[3], double quat[4], bool bruteForce=true)
 
void tesseract_collision::FLOAT_MATH::fm_computeBestFitABB (uint32_t vcount, const float *points, uint32_t pstride, float *sides, float pos[3])
 
void tesseract_collision::FLOAT_MATH::fm_computeBestFitABB (uint32_t vcount, const double *points, uint32_t pstride, double *sides, double pos[3])
 
void tesseract_collision::FLOAT_MATH::fm_computeBestFitCapsule (uint32_t vcount, const float *points, uint32_t pstride, float &radius, float &height, float matrix[16], bool bruteForce=true)
 
void tesseract_collision::FLOAT_MATH::fm_computeBestFitCapsule (uint32_t vcount, const double *points, uint32_t pstride, float &radius, float &height, double matrix[16], bool bruteForce=true)
 
void tesseract_collision::FLOAT_MATH::fm_planeToMatrix (const float plane[4], float matrix[16])
 
void tesseract_collision::FLOAT_MATH::fm_planeToQuat (const float plane[4], float quat[4], float pos[3])
 
void tesseract_collision::FLOAT_MATH::fm_planeToMatrix (const double plane[4], double matrix[16])
 
void tesseract_collision::FLOAT_MATH::fm_planeToQuat (const double plane[4], double quat[4], double pos[3])
 
void tesseract_collision::FLOAT_MATH::fm_doubleToFloat3 (const double p[3], float t[3])
 
void tesseract_collision::FLOAT_MATH::fm_floatToDouble3 (const float p[3], double t[3])
 
void tesseract_collision::FLOAT_MATH::fm_eulerMatrix (float ax, float ay, float az, float matrix[16])
 
void tesseract_collision::FLOAT_MATH::fm_eulerMatrix (double ax, double ay, double az, double matrix[16])
 
float tesseract_collision::FLOAT_MATH::fm_computeMeshVolume (const float *vertices, uint32_t tcount, const uint32_t *indices)
 
double tesseract_collision::FLOAT_MATH::fm_computeMeshVolume (const double *vertices, uint32_t tcount, const uint32_t *indices)
 
fm_VertexIndex * tesseract_collision::FLOAT_MATH::fm_createVertexIndex (double granularity, bool snapToGrid)
 
fm_VertexIndex * tesseract_collision::FLOAT_MATH::fm_createVertexIndex (float granularity, bool snapToGrid)
 
void tesseract_collision::FLOAT_MATH::fm_releaseVertexIndex (fm_VertexIndex *vindex)
 
fm_Triangulate * tesseract_collision::FLOAT_MATH::fm_createTriangulate (void)
 
void tesseract_collision::FLOAT_MATH::fm_releaseTriangulate (fm_Triangulate *t)
 
const float * tesseract_collision::FLOAT_MATH::fm_getPoint (const float *points, uint32_t pstride, uint32_t index)
 
const double * tesseract_collision::FLOAT_MATH::fm_getPoint (const double *points, uint32_t pstride, uint32_t index)
 
bool tesseract_collision::FLOAT_MATH::fm_insideTriangle (float Ax, float Ay, float Bx, float By, float Cx, float Cy, float Px, float Py)
 
bool tesseract_collision::FLOAT_MATH::fm_insideTriangle (double Ax, double Ay, double Bx, double By, double Cx, double Cy, double Px, double Py)
 
float tesseract_collision::FLOAT_MATH::fm_areaPolygon2d (uint32_t pcount, const float *points, uint32_t pstride)
 
double tesseract_collision::FLOAT_MATH::fm_areaPolygon2d (uint32_t pcount, const double *points, uint32_t pstride)
 
bool tesseract_collision::FLOAT_MATH::fm_pointInsidePolygon2d (uint32_t pcount, const float *points, uint32_t pstride, const float *point, uint32_t xindex=0, uint32_t yindex=1)
 
bool tesseract_collision::FLOAT_MATH::fm_pointInsidePolygon2d (uint32_t pcount, const double *points, uint32_t pstride, const double *point, uint32_t xindex=0, uint32_t yindex=1)
 
uint32_t tesseract_collision::FLOAT_MATH::fm_consolidatePolygon (uint32_t pcount, const float *points, uint32_t pstride, float *dest, float epsilon=0.999999f)
 
uint32_t tesseract_collision::FLOAT_MATH::fm_consolidatePolygon (uint32_t pcount, const double *points, uint32_t pstride, double *dest, double epsilon=0.999999)
 
bool tesseract_collision::FLOAT_MATH::fm_computeSplitPlane (uint32_t vcount, const double *vertices, uint32_t tcount, const uint32_t *indices, double *plane)
 
bool tesseract_collision::FLOAT_MATH::fm_computeSplitPlane (uint32_t vcount, const float *vertices, uint32_t tcount, const uint32_t *indices, float *plane)
 
void tesseract_collision::FLOAT_MATH::fm_nearestPointInTriangle (const float *pos, const float *p1, const float *p2, const float *p3, float *nearest)
 
void tesseract_collision::FLOAT_MATH::fm_nearestPointInTriangle (const double *pos, const double *p1, const double *p2, const double *p3, double *nearest)
 
float tesseract_collision::FLOAT_MATH::fm_areaTriangle (const float *p1, const float *p2, const float *p3)
 
double tesseract_collision::FLOAT_MATH::fm_areaTriangle (const double *p1, const double *p2, const double *p3)
 
void tesseract_collision::FLOAT_MATH::fm_subtract (const float *A, const float *B, float *diff)
 
void tesseract_collision::FLOAT_MATH::fm_subtract (const double *A, const double *B, double *diff)
 
void tesseract_collision::FLOAT_MATH::fm_multiply (float *A, float scaler)
 
void tesseract_collision::FLOAT_MATH::fm_multiply (double *A, double scaler)
 
void tesseract_collision::FLOAT_MATH::fm_add (const float *A, const float *B, float *sum)
 
void tesseract_collision::FLOAT_MATH::fm_add (const double *A, const double *B, double *sum)
 
void tesseract_collision::FLOAT_MATH::fm_copy3 (const float *source, float *dest)
 
void tesseract_collision::FLOAT_MATH::fm_copy3 (const double *source, double *dest)
 
uint32_t tesseract_collision::FLOAT_MATH::fm_copyUniqueVertices (uint32_t vcount, const float *input_vertices, float *output_vertices, uint32_t tcount, const uint32_t *input_indices, uint32_t *output_indices)
 
uint32_t tesseract_collision::FLOAT_MATH::fm_copyUniqueVertices (uint32_t vcount, const double *input_vertices, double *output_vertices, uint32_t tcount, const uint32_t *input_indices, uint32_t *output_indices)
 
bool tesseract_collision::FLOAT_MATH::fm_isMeshCoplanar (uint32_t tcount, const uint32_t *indices, const float *vertices, bool doubleSided)
 
bool tesseract_collision::FLOAT_MATH::fm_isMeshCoplanar (uint32_t tcount, const uint32_t *indices, const double *vertices, bool doubleSided)
 
bool tesseract_collision::FLOAT_MATH::fm_samePlane (const float p1[4], const float p2[4], float normalEpsilon=0.01f, float dEpsilon=0.001f, bool doubleSided=false)
 
bool tesseract_collision::FLOAT_MATH::fm_samePlane (const double p1[4], const double p2[4], double normalEpsilon=0.01, double dEpsilon=0.001, bool doubleSided=false)
 
void tesseract_collision::FLOAT_MATH::fm_OBBtoAABB (const float obmin[3], const float obmax[3], const float matrix[16], float abmin[3], float abmax[3])
 
fm_Tesselate * tesseract_collision::FLOAT_MATH::fm_createTesselate (void)
 
void tesseract_collision::FLOAT_MATH::fm_releaseTesselate (fm_Tesselate *t)
 
void tesseract_collision::FLOAT_MATH::fm_computeMeanNormals (uint32_t vcount, const float *vertices, uint32_t vstride, float *normals, uint32_t nstride, uint32_t tcount, const uint32_t *indices)
 
void tesseract_collision::FLOAT_MATH::fm_computeMeanNormals (uint32_t vcount, const double *vertices, uint32_t vstride, double *normals, uint32_t nstride, uint32_t tcount, const uint32_t *indices)
 
bool tesseract_collision::FLOAT_MATH::fm_isValidTriangle (const float *p1, const float *p2, const float *p3, float epsilon=0.00001f)
 
bool tesseract_collision::FLOAT_MATH::fm_isValidTriangle (const double *p1, const double *p2, const double *p3, double epsilon=0.00001)
 

Variables

const float tesseract_collision::FLOAT_MATH::FM_PI = 3.1415926535897932384626433832795028841971693993751f
 
const float tesseract_collision::FLOAT_MATH::FM_DEG_TO_RAD = ((2.0f * FM_PI) / 360.0f)
 
const float tesseract_collision::FLOAT_MATH::FM_RAD_TO_DEG = (360.0f / (2.0f * FM_PI))
 

Macro Definition Documentation

◆ FM_DEFAULT_GRANULARITY

#define FM_DEFAULT_GRANULARITY   0.001f