Namespaces | Defines | Functions

D:/SoftwareEntwicklung/C++/HLC/Tools/SoftPixelEngine/repository/sources/Base/spMathCollisionLibrary.cpp File Reference

#include "Base/spMathCollisionLibrary.hpp"
#include "Base/spViewFrustum.hpp"
#include "Base/spInputOutputLog.hpp"

Namespaces

namespace  sp
 

!!


namespace  sp::math
 

This namespace contains all mathematical basic functions such as sine, cosine, distance calculations etc.


namespace  sp::math::CollisionLibrary
 

Here you will find each function for collision detection, distance computation and intersection tests.


Defines

#define mcrAddPoint
#define mcrFinalCheck
#define mcrIntersect(t, a, b)
#define mcrIntersectA(a, b)   mcrIntersect(TriangleA, TriangleB.a, TriangleB.b)
#define mcrIntersectB(a, b)   mcrIntersect(TriangleB, TriangleA.a, TriangleA.b)

Functions

SP_EXPORT dim::vector3df sp::math::CollisionLibrary::getClosestPoint (const dim::triangle3df &Triangle, const dim::vector3df &Point)
SP_EXPORT bool sp::math::CollisionLibrary::getClosestPointStraight (const dim::triangle3df &Triangle, const dim::vector3df &Point, dim::vector3df &PointOnTriangle)
SP_EXPORT dim::vector3df sp::math::CollisionLibrary::getClosestPoint (const dim::aabbox3df &Box, const dim::vector3df &Point)
SP_EXPORT dim::vector3df sp::math::CollisionLibrary::getClosestPoint (const dim::aabbox3df &Box, const dim::vector3df &Point, dim::vector3df &Normal)
SP_EXPORT dim::vector3df sp::math::CollisionLibrary::getClosestPoint (const dim::obbox3df &Box, const dim::vector3df &Point)
SP_EXPORT dim::line3df sp::math::CollisionLibrary::getClosestLine (const dim::triangle3df &Triangle, const dim::line3df &Line)
SP_EXPORT bool sp::math::CollisionLibrary::getClosestLineStraight (const dim::triangle3df &Triangle, const dim::line3df &Line, dim::line3df &LineToTriangle)
SP_EXPORT dim::line3df sp::math::CollisionLibrary::getClosestLine (const dim::quadrangle3df &Quadrangle, const dim::line3df &Line)
SP_EXPORT dim::line3df sp::math::CollisionLibrary::getClosestLine (const dim::aabbox3df &Box, const dim::line3df &Line)
SP_EXPORT f32 sp::math::CollisionLibrary::getPointBoxDistanceSq (const dim::obbox3df &Box, const dim::vector3df &Point)
 Computes the squared distance between the given box and point.
SP_EXPORT f32 sp::math::CollisionLibrary::getLineBoxDistanceSq (const dim::aabbox3df &Box, const dim::line3df &Line)
SP_EXPORT f32 sp::math::CollisionLibrary::getLineLineDistanceSq (const dim::line3df &LineA, const dim::line3df &LineB, dim::vector3df &PointP, dim::vector3df &PointQ)
SP_EXPORT bool sp::math::CollisionLibrary::getLineLineIntersection (const dim::line3df &LineA, const dim::line3df &LineB, dim::vector3df &Intersection)
SP_EXPORT dim::point2df sp::math::CollisionLibrary::get2DLineLineIntersectionStraight (const dim::point2df &A, const dim::point2df &B, const dim::point2df &C, const dim::point2df &D)
SP_EXPORT bool sp::math::CollisionLibrary::checkLineTriangleIntersection (const dim::triangle3df &Triangle, const dim::line3df &Line, dim::vector3df &Intersection)
SP_EXPORT bool sp::math::CollisionLibrary::checkLineSphereIntersection (const dim::line3df &Line, const dim::vector3df &SpherePosition, const f32 SphereRadius, dim::vector3df &Intersection, bool MakeRayTest)
SP_EXPORT bool sp::math::CollisionLibrary::checkLineBoxIntersection (const dim::line3df &Line, const dim::aabbox3df &Box, dim::vector3df &Intersection, bool MakeRayTest)
SP_EXPORT bool sp::math::CollisionLibrary::checkTriangleTriangleIntersection (const dim::triangle3df &TriangleA, const dim::triangle3df &TriangleB, dim::line3df &Intersection)
SP_EXPORT bool sp::math::CollisionLibrary::checkLineBoxOverlap (const dim::line3df &Line, const dim::aabbox3df &Box)
 Returns true if an intersection between "Line" and "Box" has been detected.
SP_EXPORT bool sp::math::CollisionLibrary::checkPlaneBoxOverlap (const dim::plane3df &Plane, const dim::aabbox3df &Box)
 Returns true if an intersection between "Plane" and "Box" has been detected.
SP_EXPORT bool sp::math::CollisionLibrary::checkTriangleBoxOverlap (const dim::triangle3df &Triangle, const dim::aabbox3df &Box)
 Returns true if an intersection between "Triangle" and "Box" has been detected.
SP_EXPORT bool sp::math::CollisionLibrary::checkOBBoxOBBoxOverlap (const dim::obbox3df &BoxA, const dim::obbox3df &BoxB)
bool sp::math::CollisionLibrary::checkPyramidPyramidOverlap (const dim::vector3df &OriginA, const scene::ViewFrustum &FrustumA, const dim::vector3df &OriginB, const scene::ViewFrustum &FrustumB)

Define Documentation

#define mcrAddPoint
Value:
if (TestIndex < 2 && !Point[0].equal(TempPoint))    \
        {                                                   \
            Point[TestIndex] = TempPoint;                   \
            ++TestIndex;                                    \
        }
#define mcrFinalCheck
Value:
if (TestIndex > 1)                      \
        {                                       \
            Intersection.Start  = Point[0];     \
            Intersection.End    = Point[1];     \
            return true;                        \
        }
#define mcrIntersect (   t,
  a,
  b 
)
Value:
Line = dim::line3df(a, b);                                  \
        if (checkLineTriangleIntersection(t, Line, TempPoint))      \
        {                                                           \
            mcrAddPoint                                             \
        }                                                           \
        else                                                        \
        {                                                           \
            Line = dim::line3df(b, a);                              \
            if (checkLineTriangleIntersection(t, Line, TempPoint))  \
                mcrAddPoint                                         \
        }
#define mcrIntersectA (   a,
  b 
)    mcrIntersect(TriangleA, TriangleB.a, TriangleB.b)
#define mcrIntersectB (   a,
  b 
)    mcrIntersect(TriangleB, TriangleA.a, TriangleA.b)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines