17 template<
typename Real>
51 N = ((BoundaryA < BoundaryB) ^ (
isless(Depth, 0.f))) ?
N : -
N;
70 template<
typename Real>
TSeparationData< Real > SeparationData
static DYN_FUNC void request(Manifold &m, const Triangle3D &tri, const Capsule3D cap)
SquareMatrix< Real, 3 > Matrix3D
static DYN_FUNC void MSDF(SeparationData &sat, const Sphere3D &sphereA, const Sphere3D &sphereB, const Real radiusA, const Real radiusB)
TSegment3D< Real > Segment3D
Vector< Real, 3 > Coord3D
TCapsule3D< Real > Capsule3D
TSphere3D< Real > Sphere3D
Transform< Real, 3 > Transform3D
TOrientedBox3D< Real > OBox3D
TTriangle3D< Real > Triangle3D
static DYN_FUNC void request(Manifold &m, const Sphere3D &sphereA, const Sphere3D &sphereB, const Real radiusA, const Real radiusB)
TManifold< Real > Manifold
static DYN_FUNC void request(Manifold &m, const OBox3D &box, const Triangle3D &tri)
SeparationType separation_type
DYN_FUNC Rectangle3D rect()
DYN_FUNC Vector< Real, 3 > pointA()
Vector< Real, 3 > separation_point[4]
DYN_FUNC Vector< Real, 3 > pointB()
DYN_FUNC SeparationType face()
Vector< Real, 3 > separation_normal
TTriangle3D< Real > Triangle3D
DYN_FUNC Triangle3D tri()
TSegment3D< Real > Segment3D
TSphere3D< Real > Sphere3D
TCapsule3D< Real > Capsule3D
DYN_FUNC SeparationType type()
DYN_FUNC void update(SeparationType type, Real BoundaryA, Real BoundaryB, Real Depth, Vec3f N, Vec3f a0, Vec3f a1, Vec3f a2=Vec3f(0.), Vec3f a3=Vec3f(0.))
DYN_FUNC Vector< Real, 3 > normal()
TOrientedBox3D< Real > OBox3D
DYN_FUNC Vector< Real, 3 > point(int i)
TRectangle3D< Real > Rectangle3D
3D geometric primitives in three-dimensional space
vertices are ordered so that the normal vectors for the triangular faces point outwards 3 / | \ 0 - 2...
This is an implementation of AdditiveCCD based on peridyno.
DYN_FUNC int isless(T const &a, T const &b, T const EPS=EPSILON)
DYN_FUNC int isgreat(T const &a, T const &b, T const EPS=EPSILON)