#include "Box.h"
Go to the source code of this file.
Defines | |
| #define | AaxisTest(dim, letter, first) |
| #define | BaxisTest(dim, letter) |
| #define | CrossAxisTest(dima, dimb, letterb) |
| #define | VertexBFaceA_SetNewMin() |
| #define | VertexAFaceB_SetNewMin() |
| #define | EdgeEdgeTest(ac, ac_letter, ad, ad_letter, bc, bc_letter, bd, bd_letter) |
| #define | EdgeEdge_SetNewMin(ac_letter, ad_letter, bc_letter, bd_letter) |
Enumerations | |
| enum | BoxSepAxisType { A_AXIS, B_AXIS, CROSS_AXIS } |
Functions | |
| static float | sqr (float a) |
| float | VertexBFaceATest (bool &inVoronoi, float &t0, float &t1, const Vector3 &hA, Vector3 &faceOffsetAB, Vector3 &faceOffsetBA, const Matrix3 &matrixAB, const Matrix3 &matrixBA, Vector3 &signsB, Vector3 &scalesB) |
| void | VertexBFaceATests (bool &done, float &minDistSqr, Point3 &localPointA, Point3 &localPointB, FeatureType &featureA, FeatureType &featureB, const Vector3 &hA, Vector3 &faceOffsetAB, Vector3 &faceOffsetBA, const Matrix3 &matrixAB, const Matrix3 &matrixBA, Vector3 &signsB, Vector3 &scalesB, bool first) |
| float | VertexAFaceBTest (bool &inVoronoi, float &t0, float &t1, const Vector3 &hB, Vector3 &faceOffsetAB, Vector3 &faceOffsetBA, const Matrix3 &matrixAB, const Matrix3 &matrixBA, Vector3 &signsA, Vector3 &scalesA) |
| void | VertexAFaceBTests (bool &done, float &minDistSqr, Point3 &localPointA, Point3 &localPointB, FeatureType &featureA, FeatureType &featureB, const Vector3 &hB, Vector3 &faceOffsetAB, Vector3 &faceOffsetBA, const Matrix3 &matrixAB, const Matrix3 &matrixBA, Vector3 &signsA, Vector3 &scalesA, bool first) |
| float | EdgeEdgeTest_0101 (bool &inVoronoi, float &tA, float &tB, const Vector3 &hA, const Vector3 &hB, Vector3 &faceOffsetAB, Vector3 &faceOffsetBA, const Matrix3 &matrixAB, const Matrix3 &matrixBA, Vector3 &signsA, Vector3 &signsB, Vector3 &scalesA, Vector3 &scalesB) |
| float | EdgeEdgeTest_0110 (bool &inVoronoi, float &tA, float &tB, const Vector3 &hA, const Vector3 &hB, Vector3 &faceOffsetAB, Vector3 &faceOffsetBA, const Matrix3 &matrixAB, const Matrix3 &matrixBA, Vector3 &signsA, Vector3 &signsB, Vector3 &scalesA, Vector3 &scalesB) |
| float | EdgeEdgeTest_1001 (bool &inVoronoi, float &tA, float &tB, const Vector3 &hA, const Vector3 &hB, Vector3 &faceOffsetAB, Vector3 &faceOffsetBA, const Matrix3 &matrixAB, const Matrix3 &matrixBA, Vector3 &signsA, Vector3 &signsB, Vector3 &scalesA, Vector3 &scalesB) |
| float | EdgeEdgeTest_1010 (bool &inVoronoi, float &tA, float &tB, const Vector3 &hA, const Vector3 &hB, Vector3 &faceOffsetAB, Vector3 &faceOffsetBA, const Matrix3 &matrixAB, const Matrix3 &matrixBA, Vector3 &signsA, Vector3 &signsB, Vector3 &scalesA, Vector3 &scalesB) |
| void | EdgeEdgeTests (bool &done, float &minDistSqr, Point3 &localPointA, Point3 &localPointB, int &otherFaceDimA, int &otherFaceDimB, FeatureType &featureA, FeatureType &featureB, const Vector3 &hA, const Vector3 &hB, Vector3 &faceOffsetAB, Vector3 &faceOffsetBA, const Matrix3 &matrixAB, const Matrix3 &matrixBA, Vector3 &signsA, Vector3 &signsB, Vector3 &scalesA, Vector3 &scalesB, bool first) |
| float | boxBoxDistance (Vector3 &normal, BoxPoint &boxPointA, BoxPoint &boxPointB, Box &boxA, const Transform3 &transformA, Box &boxB, const Transform3 &transformB, float distanceThreshold) |
Variables | |
| static const float | voronoiTol = -1.0e-5f |
| #define AaxisTest | ( | dim, | |||
| letter, | |||||
| first | ) |
{ \
if ( first ) \
{ \
maxGap = gap = gapsA.get##letter(); \
if ( gap > distanceThreshold ) return gap; \
axisType = A_AXIS; \
faceDimA = dim; \
axisA = identity.getCol##dim(); \
} \
else \
{ \
gap = gapsA.get##letter(); \
if ( gap > distanceThreshold ) return gap; \
else if ( gap > maxGap ) \
{ \
maxGap = gap; \
axisType = A_AXIS; \
faceDimA = dim; \
axisA = identity.getCol##dim(); \
} \
} \
}
Definition at line 41 of file boxBoxDistance.cpp.
| #define BaxisTest | ( | dim, | |||
| letter | ) |
{ \
gap = gapsB.get##letter(); \
if ( gap > distanceThreshold ) return gap; \
else if ( gap > maxGap ) \
{ \
maxGap = gap; \
axisType = B_AXIS; \
faceDimB = dim; \
axisB = identity.getCol##dim(); \
} \
}
Definition at line 66 of file boxBoxDistance.cpp.
| #define CrossAxisTest | ( | dima, | |||
| dimb, | |||||
| letterb | ) |
{ \
const float lsqr_tolerance = 1.0e-30f; \
float lsqr; \
\
lsqr = lsqrs.getCol##dima().get##letterb(); \
\
if ( lsqr > lsqr_tolerance ) \
{ \
float l_recip = 1.0f / sqrtf( lsqr ); \
gap = float(gapsAxB.getCol##dima().get##letterb()) * l_recip; \
\
if ( gap > distanceThreshold ) \
{ \
return gap; \
} \
\
if ( gap > maxGap ) \
{ \
maxGap = gap; \
axisType = CROSS_AXIS; \
edgeDimA = dima; \
edgeDimB = dimb; \
axisA = cross(identity.getCol##dima(),matrixAB.getCol##dimb()) * l_recip; \
} \
} \
}
Definition at line 79 of file boxBoxDistance.cpp.
| #define EdgeEdge_SetNewMin | ( | ac_letter, | |||
| ad_letter, | |||||
| bc_letter, | |||||
| bd_letter | ) |
{ \
minDistSqr = distSqr; \
localPointA.set##ac_letter(scalesA.get##ac_letter()); \
localPointA.set##ad_letter(tA); \
localPointB.set##bc_letter(scalesB.get##bc_letter()); \
localPointB.set##bd_letter(tB); \
otherFaceDimA = testOtherFaceDimA; \
otherFaceDimB = testOtherFaceDimB; \
featureA = E; \
featureB = E; \
}
Definition at line 514 of file boxBoxDistance.cpp.
| #define EdgeEdgeTest | ( | ac, | |||
| ac_letter, | |||||
| ad, | |||||
| ad_letter, | |||||
| bc, | |||||
| bc_letter, | |||||
| bd, | |||||
| bd_letter | ) |
Definition at line 377 of file boxBoxDistance.cpp.
| #define VertexAFaceB_SetNewMin | ( | ) |
{ \
minDistSqr = distSqr; \
localPointB.setX(t0); \
localPointB.setY(t1); \
localPointA.setX( scalesA.getX() ); \
localPointA.setY( scalesA.getY() ); \
featureA = V; \
featureB = F; \
}
Definition at line 283 of file boxBoxDistance.cpp.
| #define VertexBFaceA_SetNewMin | ( | ) |
{ \
minDistSqr = distSqr; \
localPointA.setX(t0); \
localPointA.setY(t1); \
localPointB.setX( scalesB.getX() ); \
localPointB.setY( scalesB.getY() ); \
featureA = F; \
featureB = V; \
}
Definition at line 157 of file boxBoxDistance.cpp.
| enum BoxSepAxisType |
Definition at line 25 of file boxBoxDistance.cpp.
| float boxBoxDistance | ( | Vector3 & | normal, | |
| BoxPoint & | boxPointA, | |||
| BoxPoint & | boxPointB, | |||
| Box & | boxA, | |||
| const Transform3 & | transformA, | |||
| Box & | boxB, | |||
| const Transform3 & | transformB, | |||
| float | distanceThreshold | |||
| ) |
Definition at line 772 of file boxBoxDistance.cpp.
| float EdgeEdgeTest_0101 | ( | bool & | inVoronoi, | |
| float & | tA, | |||
| float & | tB, | |||
| const Vector3 & | hA, | |||
| const Vector3 & | hB, | |||
| Vector3 & | faceOffsetAB, | |||
| Vector3 & | faceOffsetBA, | |||
| const Matrix3 & | matrixAB, | |||
| const Matrix3 & | matrixBA, | |||
| Vector3 & | signsA, | |||
| Vector3 & | signsB, | |||
| Vector3 & | scalesA, | |||
| Vector3 & | scalesB | |||
| ) |
Definition at line 439 of file boxBoxDistance.cpp.
| float EdgeEdgeTest_0110 | ( | bool & | inVoronoi, | |
| float & | tA, | |||
| float & | tB, | |||
| const Vector3 & | hA, | |||
| const Vector3 & | hB, | |||
| Vector3 & | faceOffsetAB, | |||
| Vector3 & | faceOffsetBA, | |||
| const Matrix3 & | matrixAB, | |||
| const Matrix3 & | matrixBA, | |||
| Vector3 & | signsA, | |||
| Vector3 & | signsB, | |||
| Vector3 & | scalesA, | |||
| Vector3 & | scalesB | |||
| ) |
Definition at line 458 of file boxBoxDistance.cpp.
| float EdgeEdgeTest_1001 | ( | bool & | inVoronoi, | |
| float & | tA, | |||
| float & | tB, | |||
| const Vector3 & | hA, | |||
| const Vector3 & | hB, | |||
| Vector3 & | faceOffsetAB, | |||
| Vector3 & | faceOffsetBA, | |||
| const Matrix3 & | matrixAB, | |||
| const Matrix3 & | matrixBA, | |||
| Vector3 & | signsA, | |||
| Vector3 & | signsB, | |||
| Vector3 & | scalesA, | |||
| Vector3 & | scalesB | |||
| ) |
Definition at line 477 of file boxBoxDistance.cpp.
| float EdgeEdgeTest_1010 | ( | bool & | inVoronoi, | |
| float & | tA, | |||
| float & | tB, | |||
| const Vector3 & | hA, | |||
| const Vector3 & | hB, | |||
| Vector3 & | faceOffsetAB, | |||
| Vector3 & | faceOffsetBA, | |||
| const Matrix3 & | matrixAB, | |||
| const Matrix3 & | matrixBA, | |||
| Vector3 & | signsA, | |||
| Vector3 & | signsB, | |||
| Vector3 & | scalesA, | |||
| Vector3 & | scalesB | |||
| ) |
Definition at line 496 of file boxBoxDistance.cpp.
| void EdgeEdgeTests | ( | bool & | done, | |
| float & | minDistSqr, | |||
| Point3 & | localPointA, | |||
| Point3 & | localPointB, | |||
| int & | otherFaceDimA, | |||
| int & | otherFaceDimB, | |||
| FeatureType & | featureA, | |||
| FeatureType & | featureB, | |||
| const Vector3 & | hA, | |||
| const Vector3 & | hB, | |||
| Vector3 & | faceOffsetAB, | |||
| Vector3 & | faceOffsetBA, | |||
| const Matrix3 & | matrixAB, | |||
| const Matrix3 & | matrixBA, | |||
| Vector3 & | signsA, | |||
| Vector3 & | signsB, | |||
| Vector3 & | scalesA, | |||
| Vector3 & | scalesB, | |||
| bool | first | |||
| ) |
Definition at line 528 of file boxBoxDistance.cpp.
| static float sqr | ( | float | a | ) | [inline, static] |
Definition at line 20 of file boxBoxDistance.cpp.
| float VertexAFaceBTest | ( | bool & | inVoronoi, | |
| float & | t0, | |||
| float & | t1, | |||
| const Vector3 & | hB, | |||
| Vector3 & | faceOffsetAB, | |||
| Vector3 & | faceOffsetBA, | |||
| const Matrix3 & | matrixAB, | |||
| const Matrix3 & | matrixBA, | |||
| Vector3 & | signsA, | |||
| Vector3 & | scalesA | |||
| ) | [inline] |
Definition at line 246 of file boxBoxDistance.cpp.
| void VertexAFaceBTests | ( | bool & | done, | |
| float & | minDistSqr, | |||
| Point3 & | localPointA, | |||
| Point3 & | localPointB, | |||
| FeatureType & | featureA, | |||
| FeatureType & | featureB, | |||
| const Vector3 & | hB, | |||
| Vector3 & | faceOffsetAB, | |||
| Vector3 & | faceOffsetBA, | |||
| const Matrix3 & | matrixAB, | |||
| const Matrix3 & | matrixBA, | |||
| Vector3 & | signsA, | |||
| Vector3 & | scalesA, | |||
| bool | first | |||
| ) |
Definition at line 295 of file boxBoxDistance.cpp.
| float VertexBFaceATest | ( | bool & | inVoronoi, | |
| float & | t0, | |||
| float & | t1, | |||
| const Vector3 & | hA, | |||
| Vector3 & | faceOffsetAB, | |||
| Vector3 & | faceOffsetBA, | |||
| const Matrix3 & | matrixAB, | |||
| const Matrix3 & | matrixBA, | |||
| Vector3 & | signsB, | |||
| Vector3 & | scalesB | |||
| ) | [inline] |
Definition at line 113 of file boxBoxDistance.cpp.
| void VertexBFaceATests | ( | bool & | done, | |
| float & | minDistSqr, | |||
| Point3 & | localPointA, | |||
| Point3 & | localPointB, | |||
| FeatureType & | featureA, | |||
| FeatureType & | featureB, | |||
| const Vector3 & | hA, | |||
| Vector3 & | faceOffsetAB, | |||
| Vector3 & | faceOffsetBA, | |||
| const Matrix3 & | matrixAB, | |||
| const Matrix3 & | matrixBA, | |||
| Vector3 & | signsB, | |||
| Vector3 & | scalesB, | |||
| bool | first | |||
| ) |
Definition at line 169 of file boxBoxDistance.cpp.
const float voronoiTol = -1.0e-5f [static] |
Definition at line 34 of file boxBoxDistance.cpp.
1.6.1