Rasterfarm-SDK
Loading...
Searching...
No Matches
intersect.h File Reference
#include "primitive3d.h"
#include "3d/aaboundingbox.h"
#include "3d/triangle.h"
#include "3d/ray.h"
#include "3d/sphere.h"
#include "3d/disk.h"
#include "3d/capsule.h"
#include "3d/segment.h"
#include "3d/polygon.h"
#include "trianglemesh.h"
#include "aacubetree.h"
#include "raster.h"

Typedefs

typedef Pair< Handle, Handle > LeafIndexPair
 
typedef HeapArray< LeafIndexPairLeafIndexPairArray
 
typedef Pair< Handle, Handle > CapsuleIndexPair
 
typedef HeapArray< CapsuleIndexPairCapsuleIndexPairArray
 
typedef Pair< Mesh::FaceIndex, Mesh::FaceIndexFaceIndexPair
 
typedef HeapArray< FaceIndexPairFaceIndexPairArray
 
typedef Pair< Mesh::TriangleIndex, Mesh::TriangleIndexTriangleIndexPair
 
typedef HeapArray< TriangleIndexPairTriangleIndexPairArray
 

Functions

RASTER_NAMESPACE_END PRIMITIVE3D_NAMESPACE_BEGIN bool overlapping (const Segment &a, const Segment &b, float precision=0.0f)
 
bool collinear (const Vertex3f &v, const Segment &segment, float precision=0.0f)
 
bool tangent (const AABoundingBox &boxA, const AABoundingBox &boxB)
 
bool tangent (const Vertex3f &point, const AABoundingBox &box)
 
bool intersect (const Segment &segmentA, const Segment &segmentB, float precision=0.0f)
 
bool intersect (const Vertex3f &point, const Vertex4f &plane, float precision=0.0f)
 
bool intersect (const Sphere &sphere, const Vertex4f &plane, float precision=0.0f)
 
bool intersect (const Sphere &sphere, const Polygon &polygon, float precision=0.0f)
 
bool intersect (const Ray &ray, const Vertex4f &plane, float precision=0.0f)
 
bool intersect (const Vertex3f &point, const Segment &segment, float precision=0.0f)
 
bool intersect (const Segment &segment, const Vertex4f &plane, float precision=0.0f)
 
bool intersect (const Capsule &capsule, const Vertex4f &plane, float precision=0.0f)
 
bool intersect (const Segment &segment, const Disk &disk, float precision=0.0f)
 
bool intersect (const Capsule &capsule, const Disk &disk, float precision=0.0f)
 
bool intersect (const Capsule &capsule, const Segment &segment, float precision=0.0f)
 
bool intersect (const Capsule &capsuleA, const Capsule &capsuleB, float precision=0.0f)
 
bool intersect (const Sphere &sphere, const Segment &segment, float precision=0.0f)
 
bool intersect (const Sphere &sphere, const Capsule &capsule, float precision=0.0f)
 
bool intersect (const Sphere &a, const Sphere &b, float precision=0.0f)
 
bool intersect (const Sphere &sphere, const Disk &disk, float precision=0.0f)
 
bool intersect (const Vertex3f &point, const Disk &disk, float precision=0.0f)
 
bool intersect (const Vertex3f &point, const Triangle &triangle, float precision=0.0f)
 
bool intersect (const Vertex3f &point, const Vertex3fArray &contour, float precision=0.0f)
 
bool intersect (const Sphere &sphere, const Vertex3fArray &contour, float precision=0.0f)
 
bool intersect (const Segment &segment, const Vertex3fArray &contour, float precision=0.0f)
 
bool intersect (const Capsule &capsule, const Vertex3fArray &contour, float precision=0.0f)
 
Segment intersectingSegment (const Vertex3f &point, const Vertex3fArray &contour)
 
bool intersect (const Vertex3f &point, const Polygon &polygon, float precision=0.0f)
 
bool intersect (const Sphere &sphere, const Triangle &triangle, float precision=0.0f)
 
bool intersect (const Polygon &polygonA, const Polygon &polygonB, float precision=0.0f)
 
bool intersect (const Triangle &triangleA, const Triangle &triangleB, float precision=0.0f)
 
bool intersect (const Ray &ray, const Triangle &triangle, float precision=0.0f)
 
bool intersect (const Ray &ray, const Polygon &polygon, float precision=0.0f)
 
bool intersect (const Ray &ray, const Disk &disk, float precision=0.0f)
 
bool intersect (const AABoundingBox &boxA, const AABoundingBox &boxB, float precision=0.0f)
 
bool intersect (const Triangle &triangle, const AABoundingBox &box, float precision=0.0f)
 
bool intersect (const Segment &segment, const AABoundingBox &box, float precision=0.0f)
 
bool intersect (const Segment &segment, const Polygon &polygon, float precision=0.0f)
 
bool intersect (const Capsule &capsule, const Polygon &polygon, float precision=0.0f)
 
bool intersect (const Sphere &sphere, const AABoundingBox &box, float precision=0.0f)
 
bool intersect (const Capsule &capsule, const AABoundingBox &box, float precision=0.0f)
 
bool inside (const AABoundingBox &outerBox, const AABoundingBox &innerBox, float precision=0.0f)
 
bool inside (const Vertex3f &point, const AABoundingBox &box, float precision=0.0f)
 
AABoundingBox intersection (const AABoundingBox &boxA, const AABoundingBox &boxB)
 
Vertex3f intersection (const Ray &ray, const Vector4f &plane)
 
Vertex3f intersection (const Ray &ray, const Sphere &sphere)
 
Vertex3f intersection (const Segment &segment, const Vertex4f &plane)
 
template<class PRIMITIVE >
Mesh::FaceIndexArray intersectingLeaves (const PRIMITIVE &primitive, const Mesh::TriangleMesh &mesh, const Matrix4f &meshTransform, float precision=0.0f)
 
LeafIndexPairArray intersectingLeaves (const Tree::AACubeTree &treeA, const Tree::AACubeTree &treeB)
 
CapsuleIndexPairArray intersectingCapsules (Raster::Skeletal *pObjectA, Raster::Skeletal *pObjectB, float precision=0.0f)
 
FaceIndexPairArray intersectingFaces (Raster::GeometricBase *pObjectA, Raster::GeometricBase *pObjectB, float precision=0.0f)
 
FaceIndexPairArray intersectingFaces (Raster::Skeletal *pObjectA, Raster::Skeletal *pObjectB, const CapsuleIndexPair &pair, float precision=0.0f)
 
TriangleIndexPairArray intersectingTriangles (Raster::Skeletal *pObjectA, Raster::Skeletal *pObjectB, const CapsuleIndexPair &pair, float precision=0.0f)
 

Typedef Documentation

◆ CapsuleIndexPair

typedef Pair< Handle, Handle > CapsuleIndexPair

◆ CapsuleIndexPairArray

◆ FaceIndexPair

◆ FaceIndexPairArray

typedef HeapArray< FaceIndexPair > FaceIndexPairArray

◆ LeafIndexPair

typedef Pair< Handle, Handle > LeafIndexPair

◆ LeafIndexPairArray

typedef HeapArray< LeafIndexPair > LeafIndexPairArray

◆ TriangleIndexPair

◆ TriangleIndexPairArray

Function Documentation

◆ collinear()

bool collinear ( const Vertex3f & v,
const Segment & segment,
float precision = 0.0f )

◆ inside() [1/2]

bool inside ( const AABoundingBox & outerBox,
const AABoundingBox & innerBox,
float precision = 0.0f )

◆ inside() [2/2]

bool inside ( const Vertex3f & point,
const AABoundingBox & box,
float precision = 0.0f )

◆ intersect() [1/36]

bool intersect ( const AABoundingBox & boxA,
const AABoundingBox & boxB,
float precision = 0.0f )

◆ intersect() [2/36]

bool intersect ( const Capsule & capsule,
const AABoundingBox & box,
float precision = 0.0f )

◆ intersect() [3/36]

bool intersect ( const Capsule & capsule,
const Disk & disk,
float precision = 0.0f )

◆ intersect() [4/36]

bool intersect ( const Capsule & capsule,
const Polygon & polygon,
float precision = 0.0f )

◆ intersect() [5/36]

bool intersect ( const Capsule & capsule,
const Segment & segment,
float precision = 0.0f )

◆ intersect() [6/36]

bool intersect ( const Capsule & capsule,
const Vertex3fArray & contour,
float precision = 0.0f )

◆ intersect() [7/36]

bool intersect ( const Capsule & capsule,
const Vertex4f & plane,
float precision = 0.0f )

◆ intersect() [8/36]

bool intersect ( const Capsule & capsuleA,
const Capsule & capsuleB,
float precision = 0.0f )

◆ intersect() [9/36]

bool intersect ( const Polygon & polygonA,
const Polygon & polygonB,
float precision = 0.0f )

◆ intersect() [10/36]

bool intersect ( const Ray & ray,
const Disk & disk,
float precision = 0.0f )

◆ intersect() [11/36]

bool intersect ( const Ray & ray,
const Polygon & polygon,
float precision = 0.0f )

◆ intersect() [12/36]

bool intersect ( const Ray & ray,
const Triangle & triangle,
float precision = 0.0f )

◆ intersect() [13/36]

bool intersect ( const Ray & ray,
const Vertex4f & plane,
float precision = 0.0f )

◆ intersect() [14/36]

bool intersect ( const Segment & segment,
const AABoundingBox & box,
float precision = 0.0f )

◆ intersect() [15/36]

bool intersect ( const Segment & segment,
const Disk & disk,
float precision = 0.0f )

◆ intersect() [16/36]

bool intersect ( const Segment & segment,
const Polygon & polygon,
float precision = 0.0f )

◆ intersect() [17/36]

bool intersect ( const Segment & segment,
const Vertex3fArray & contour,
float precision = 0.0f )

◆ intersect() [18/36]

bool intersect ( const Segment & segment,
const Vertex4f & plane,
float precision = 0.0f )

◆ intersect() [19/36]

bool intersect ( const Segment & segmentA,
const Segment & segmentB,
float precision = 0.0f )

◆ intersect() [20/36]

bool intersect ( const Sphere & a,
const Sphere & b,
float precision = 0.0f )

◆ intersect() [21/36]

bool intersect ( const Sphere & sphere,
const AABoundingBox & box,
float precision = 0.0f )

◆ intersect() [22/36]

bool intersect ( const Sphere & sphere,
const Capsule & capsule,
float precision = 0.0f )

◆ intersect() [23/36]

bool intersect ( const Sphere & sphere,
const Disk & disk,
float precision = 0.0f )

◆ intersect() [24/36]

bool intersect ( const Sphere & sphere,
const Polygon & polygon,
float precision = 0.0f )

◆ intersect() [25/36]

bool intersect ( const Sphere & sphere,
const Segment & segment,
float precision = 0.0f )

◆ intersect() [26/36]

bool intersect ( const Sphere & sphere,
const Triangle & triangle,
float precision = 0.0f )

◆ intersect() [27/36]

bool intersect ( const Sphere & sphere,
const Vertex3fArray & contour,
float precision = 0.0f )

◆ intersect() [28/36]

bool intersect ( const Sphere & sphere,
const Vertex4f & plane,
float precision = 0.0f )

◆ intersect() [29/36]

bool intersect ( const Triangle & triangle,
const AABoundingBox & box,
float precision = 0.0f )

◆ intersect() [30/36]

bool intersect ( const Triangle & triangleA,
const Triangle & triangleB,
float precision = 0.0f )

◆ intersect() [31/36]

bool intersect ( const Vertex3f & point,
const Disk & disk,
float precision = 0.0f )

◆ intersect() [32/36]

bool intersect ( const Vertex3f & point,
const Polygon & polygon,
float precision = 0.0f )

◆ intersect() [33/36]

bool intersect ( const Vertex3f & point,
const Segment & segment,
float precision = 0.0f )

◆ intersect() [34/36]

bool intersect ( const Vertex3f & point,
const Triangle & triangle,
float precision = 0.0f )

◆ intersect() [35/36]

bool intersect ( const Vertex3f & point,
const Vertex3fArray & contour,
float precision = 0.0f )

◆ intersect() [36/36]

bool intersect ( const Vertex3f & point,
const Vertex4f & plane,
float precision = 0.0f )

◆ intersectingCapsules()

CapsuleIndexPairArray intersectingCapsules ( Raster::Skeletal * pObjectA,
Raster::Skeletal * pObjectB,
float precision = 0.0f )
Returns
An array containing the intersecting indices from 2 TriangleMesh faces respectively.

◆ intersectingFaces() [1/2]

FaceIndexPairArray intersectingFaces ( Raster::GeometricBase * pObjectA,
Raster::GeometricBase * pObjectB,
float precision = 0.0f )
Returns
An array containing the intersecting indices from 2 TriangleMesh faces respectively.

◆ intersectingFaces() [2/2]

FaceIndexPairArray intersectingFaces ( Raster::Skeletal * pObjectA,
Raster::Skeletal * pObjectB,
const CapsuleIndexPair & pair,
float precision = 0.0f )
Returns
An array containing the intersecting incident-indices from 2 TriangleMesh faces respectively.

◆ intersectingLeaves() [1/2]

template<class PRIMITIVE >
Mesh::FaceIndexArray intersectingLeaves ( const PRIMITIVE & primitive,
const Mesh::TriangleMesh & mesh,
const Matrix4f & meshTransform,
float precision = 0.0f )
Returns
The closest-face that intersects the primitive. Adjacent-faces may also intersect.

◆ intersectingLeaves() [2/2]

LeafIndexPairArray intersectingLeaves ( const Tree::AACubeTree & treeA,
const Tree::AACubeTree & treeB )
Returns
An array containing the intersecting indices from 2 AACubeTree leaves respectively.

◆ intersectingSegment()

Segment intersectingSegment ( const Vertex3f & point,
const Vertex3fArray & contour )

◆ intersectingTriangles()

TriangleIndexPairArray intersectingTriangles ( Raster::Skeletal * pObjectA,
Raster::Skeletal * pObjectB,
const CapsuleIndexPair & pair,
float precision = 0.0f )
Returns
An array containing the intersecting incident-indices from 2 TriangleMesh triangles respectively.

◆ intersection() [1/4]

AABoundingBox intersection ( const AABoundingBox & boxA,
const AABoundingBox & boxB )

◆ intersection() [2/4]

Vertex3f intersection ( const Ray & ray,
const Sphere & sphere )

A Ray with a sphere.

Parameters
ARay object
ASphere object.

◆ intersection() [3/4]

Vertex3f intersection ( const Ray & ray,
const Vector4f & plane )

A Ray with a plane.

Parameters
ARay object
AVector4f with scalars for the plane equation.

◆ intersection() [4/4]

Vertex3f intersection ( const Segment & segment,
const Vertex4f & plane )

A Segment with a plane.

Parameters
ASegment object
AVector4f with scalars for the plane equation.

◆ overlapping()

RASTER_NAMESPACE_END PRIMITIVE3D_NAMESPACE_BEGIN bool overlapping ( const Segment & a,
const Segment & b,
float precision = 0.0f )

◆ tangent() [1/2]

bool tangent ( const AABoundingBox & boxA,
const AABoundingBox & boxB )

◆ tangent() [2/2]

bool tangent ( const Vertex3f & point,
const AABoundingBox & box )