Main Page Modules Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

# deGeometry Namespace Reference

Some useful geometry methods. More...

## Functions
deBoolean | BoxInBox (const deVec3d &OuterMin, const deVec3d &OuterMax, const deVec3d &InnerMin, const deVec3d &InnerMax)
| tests whether the inner AABB is actually inside the outer AABB
deBoolean | BoxInBox (const deAABB &OuterBox, const deAABB &InnerBox)
| tests whether the inner box is actually inside the outer box
deBoolean | BoxBoxIntersect (const deVec3d &Min1, const deVec3d &Max1, const deVec3d &Min2, const deVec3d &Max2)
| tests whether two AABBs intersect
deBoolean | BoxBoxIntersect (const deAABB &Box1, const deAABB &Box2)
| tests whether two AABBs intersect
deBoolean | PointInBox (const deVec3d &pt, const deVec3d &Min, const deVec3d &Max)
| tests whether a point lies within an AABB
deBoolean | PointInBox (const deVec3d &pt, const deAABB &Box)
| tests whether a point lies within an AABB
deDouble | PlaneDist (const deVec3d &pt, const deVec3d &norm, const deDouble &dist)
| returns the distance from a plane to a point, along the plane normal
deBoolean | PointOnPlaneFront (const deVec3d &pt, const deVec3d &norm, const deDouble &dist)
| tests whether a point lies on the front of a plane (positive half-space)
deBoolean | PointOnPlaneBack (const deVec3d &pt, const deVec3d &norm, const deDouble &dist)
| tests whether a point lies on the back of a plane (negative half-space)
deBoolean | PointInAABB (const deVec3d &Point, const deVec3d &Min, const deVec3d &Max)
| tests whether a point lies within an AABB
void | AABBCenter (const deAABB &bbox, deVec3d &vec)
| calculates the geometric center of an AABB
deDouble | AABBDiagonal (const deAABB &BBox)
| calculates diagonal size of an AABB, from min to max points
deBoolean | PointInAABB (const deVec3d &Point, const deAABB &Box)
| tests whether a point lies within an AABB
void | AABBAddPoint (deAABB &BBox, const deVec3d &pt)
| expand a given AABB by adding a point. Result: BBox is enlarged to hold input BBox space and pt
void | AABBUnion (deAABB &In_Out, const deAABB &Input)
| compute the union of two AABBs, and store the resulting AABB in the first argument (In_Out)
deBoolean | AABBIntersect (const deVec3d &Min1, const deVec3d &Max1, const deVec3d &Min2, const deVec3d &Max2)
| test whether two AABBs intersect, using a half-open interval
deBoolean | AABBIntersect (const deAABB &Box1, const deAABB &Box2)
| test whether two AABBs intersect, using a half-open interval
deBoolean | AABBInAABB (const deVec3d &InMin, const deVec3d &InMax, const deVec3d &OutMin, const deVec3d &OutMax)
| tests whether the inner AABB is actually inside the outer AABB
deBoolean | AABBInAABB (const deAABB &InBox, const deAABB &OutBox)
| tests whether the inner AABB is actually inside the outer AABB
int | AABBPlaneClassify (const deAABB &BBox, const deVec3d &Norm, const deDouble &Dist)
deBoolean | PlaneLineIntersect (const deVec3d &Norm, const deDouble &Dist, const deVec3d &Pt1, const deVec3d &Pt2, deVec3d &Res, deDouble &Percent)
| intersect a plane and a line segment
deBoolean | PlaneRayIntersect (const deVec3d &Norm, const deDouble &Dist, const deVec3d &Start, const deVec3d &Dir, deDouble &Multiple)
| intersect a plane and a ray
deBoolean | SphereRayIntersect (const deVec3d &Center, const deDouble &Radius, const deVec3d &Start, const deVec3d &Dir, deDouble &Multiple)
| intersect a sphere and a ray
deBoolean | SphereLineIntersect (const deVec3d &Center, const deDouble &Radius, const deVec3d &Start, const deVec3d &End, deVec3d &Res, deDouble &Percent)
| intersect a sphere and a line segment
deBoolean | AABBCollision (const deAABB &MovingBox, const deVec3d &MoveStart, const deVec3d &MoveEnd, const deAABB &StaticBox, const deVec3d &StaticPos, deVec3d &MovingColPt, deVec3d &ColNormal, deDouble &Percent)
| perform a linear-sweep AABB collision test
deBoolean | ConstructAABB (const deVec3d *VecArray, long NumVecs, deVec3d &Min, deVec3d &Max)
| create an AABB that contains a set of points
deBoolean | MakeOBBFromAABB (const deAABB &LocalBox, const deTransform &WorldMatrix, deOBB &WorldBox)
| create an OBB using an AABB and a transformation
deBoolean | GetPointsOfAABB (const deAABB &BBox, deVec3d *ArrayOf8)
| get the 8 corners of an AABB
deBoolean | GetPointsOfOBB (const deOBB &WorldBox, deVec3d *ArrayOf8)
| get the 8 corners of an OBB
deBoolean | ConstructAABB (const deVec3d *VecArray, long NumVecs, deAABB &Box)
| create an AABB that contains a set of points
deBoolean | MakeAABBFromOBB (const deOBB &InBox, deAABB &OutBox)
| create an AABB that contains an OBB
void | MakeBoundSphereFromAABB (const deAABB &BBox, deBoundSphere &OutSphere)
| create a BSphere from an AABB
deBoolean | RayOBBIntersect (const deVec3d &RayStart, const deVec3d &RayDir, const deOBB &Box, deVec3d &Result, deVec3d &Normal, deDouble &Percent)
| intersect an OBB and a ray
deBoolean | PlaneLineIntersect (const dePlane &Plane, const deVec3d &Pt1, const deVec3d &Pt2, deVec3d &Res, deDouble &Percent)
| intersect a plane and a line segment
deBoolean | PlaneRayIntersect (const dePlane &Plane, const deVec3d &Start, const deVec3d &Dir, deDouble &Multiple)
| intersect a plane and a ray
void | Vec3d_Interpolate (deVec3d &Output, const deVec3d &In1, const deVec3d &In2, deDouble Percent)
| interpolate a Vec3d over a range [0,1]
void | Vertex_Interpolate (deVertex &Output, const deVertex &In1, const deVertex &In2, deDouble Percent)
| interpolate a Vertex over a range [0,1]
void | TexCoord_Interpolate (deTexCoord2 &Output, const deTexCoord2 &In1, const deTexCoord2 &In2, deDouble Percent)
| interpolate a TexCoord2 over a range [0,1]
void | ARGB_Interpolate (deARGB &Output, deARGB Color1, deARGB Color2, deFloat Percent)
| interpolate an ARGB over a range [0,1]

## Detailed Description

Some useful geometry methods.

## Function Documentation

void AABBAddPoint | ( | deAABB & | BBox,
|  | const deVec3d & | pt
| ) | `[inline, static]`

| expand a given AABB by adding a point. Result: BBox is enlarged to hold input BBox space and pt

void AABBCenter | ( | const deAABB & | bbox,
|  | deVec3d & | vec
| ) | `[inline, static]`

| calculates the geometric center of an AABB

deBoolean deGeometry::AABBCollision | ( | const deAABB & | MovingBox,
|  | const deVec3d & | MoveStart,
|  | const deVec3d & | MoveEnd,
|  | const deAABB & | StaticBox,
|  | const deVec3d & | StaticPos,
|  | deVec3d & | MovingColPt,
|  | deVec3d & | ColNormal,
|  | deDouble & | Percent
| ) |

| perform a linear-sweep AABB collision test

deDouble AABBDiagonal | ( | const deAABB & | BBox | ) | `[inline, static]`

| calculates diagonal size of an AABB, from min to max points

deBoolean AABBInAABB | ( | const deAABB & | InBox,
|  | const deAABB & | OutBox
| ) | `[inline, static]`

| tests whether the inner AABB is actually inside the outer AABB

deBoolean AABBInAABB | ( | const deVec3d & | InMin,
|  | const deVec3d & | InMax,
|  | const deVec3d & | OutMin,
|  | const deVec3d & | OutMax
| ) | `[inline, static]`

| tests whether the inner AABB is actually inside the outer AABB

deBoolean AABBIntersect | ( | const deAABB & | Box1,
|  | const deAABB & | Box2
| ) | `[inline, static]`

| test whether two AABBs intersect, using a half-open interval

deBoolean AABBIntersect | ( | const deVec3d & | Min1,
|  | const deVec3d & | Max1,
|  | const deVec3d & | Min2,
|  | const deVec3d & | Max2
| ) | `[inline, static]`

| test whether two AABBs intersect, using a half-open interval

int deGeometry::AABBPlaneClassify | ( | const deAABB & | BBox,
|  | const deVec3d & | Norm,
|  | const deDouble & | Dist
| ) |

| classify where an AABB lies relative to a plane. -1 => all negative, 0 => intersects, 1 => all positive

void AABBUnion | ( | deAABB & | In_Out,
|  | const deAABB & | Input
| ) | `[inline, static]`

| compute the union of two AABBs, and store the resulting AABB in the first argument (In_Out)

void ARGB_Interpolate | ( | deARGB & | Output,
|  | deARGB | Color1,
|  | deARGB | Color2,
|  | deFloat | Percent
| ) | `[inline, static]`

| interpolate an ARGB over a range [0,1]

deBoolean deGeometry::BoxBoxIntersect | ( | const deAABB & | Box1,
|  | const deAABB & | Box2
| ) |

| tests whether two AABBs intersect

deBoolean deGeometry::BoxBoxIntersect | ( | const deVec3d & | Min1,
|  | const deVec3d & | Max1,
|  | const deVec3d & | Min2,
|  | const deVec3d & | Max2
| ) |

| tests whether two AABBs intersect

deBoolean deGeometry::BoxInBox | ( | const deAABB & | OuterBox,
|  | const deAABB & | InnerBox
| ) |

| tests whether the inner box is actually inside the outer box

deBoolean deGeometry::BoxInBox | ( | const deVec3d & | OuterMin,
|  | const deVec3d & | OuterMax,
|  | const deVec3d & | InnerMin,
|  | const deVec3d & | InnerMax
| ) |

| tests whether the inner AABB is actually inside the outer AABB

deBoolean ConstructAABB | ( | const deVec3d * | VecArray,
|  | long | NumVecs,
|  | deAABB & | Box
| ) | `[inline, static]`

| create an AABB that contains a set of points

deBoolean deGeometry::ConstructAABB | ( | const deVec3d * | VecArray,
|  | long | NumVecs,
|  | deVec3d & | Min,
|  | deVec3d & | Max
| ) |

| create an AABB that contains a set of points

deBoolean deGeometry::GetPointsOfAABB | ( | const deAABB & | BBox,
|  | deVec3d * | ArrayOf8
| ) |

| get the 8 corners of an AABB

deBoolean deGeometry::GetPointsOfOBB | ( | const deOBB & | WorldBox,
|  | deVec3d * | ArrayOf8
| ) |

| get the 8 corners of an OBB

deBoolean MakeAABBFromOBB | ( | const deOBB & | InBox,
|  | deAABB & | OutBox
| ) | `[inline, static]`

| create an AABB that contains an OBB

void MakeBoundSphereFromAABB | ( | const deAABB & | BBox,
|  | deBoundSphere & | OutSphere
| ) | `[inline, static]`

| create a BSphere from an AABB

deBoolean deGeometry::MakeOBBFromAABB | ( | const deAABB & | LocalBox,
|  | const deTransform & | WorldMatrix,
|  | deOBB & | WorldBox
| ) |

| create an OBB using an AABB and a transformation

deDouble PlaneDist | ( | const deVec3d & | pt,
|  | const deVec3d & | norm,
|  | const deDouble & | dist
| ) | `[inline, static]`

| returns the distance from a plane to a point, along the plane normal

deBoolean PlaneLineIntersect | ( | const dePlane & | Plane,
|  | const deVec3d & | Pt1,
|  | const deVec3d & | Pt2,
|  | deVec3d & | Res,
|  | deDouble & | Percent
| ) | `[inline, static]`

| intersect a plane and a line segment

deBoolean deGeometry::PlaneLineIntersect | ( | const deVec3d & | Norm,
|  | const deDouble & | Dist,
|  | const deVec3d & | Pt1,
|  | const deVec3d & | Pt2,
|  | deVec3d & | Res,
|  | deDouble & | Percent
| ) |

| intersect a plane and a line segment

deBoolean PlaneRayIntersect | ( | const dePlane & | Plane,
|  | const deVec3d & | Start,
|  | const deVec3d & | Dir,
|  | deDouble & | Multiple
| ) | `[inline, static]`

| intersect a plane and a ray

deBoolean deGeometry::PlaneRayIntersect | ( | const deVec3d & | Norm,
|  | const deDouble & | Dist,
|  | const deVec3d & | Start,
|  | const deVec3d & | Dir,
|  | deDouble & | Multiple
| ) |

| intersect a plane and a ray

deBoolean PointInAABB | ( | const deVec3d & | Point,
|  | const deAABB & | Box
| ) | `[inline, static]`

| tests whether a point lies within an AABB

deBoolean PointInAABB | ( | const deVec3d & | Point,
|  | const deVec3d & | Min,
|  | const deVec3d & | Max
| ) | `[inline, static]`

| tests whether a point lies within an AABB

deBoolean deGeometry::PointInBox | ( | const deVec3d & | pt,
|  | const deAABB & | Box
| ) |

| tests whether a point lies within an AABB

deBoolean deGeometry::PointInBox | ( | const deVec3d & | pt,
|  | const deVec3d & | Min,
|  | const deVec3d & | Max
| ) |

| tests whether a point lies within an AABB

deBoolean PointOnPlaneBack | ( | const deVec3d & | pt,
|  | const deVec3d & | norm,
|  | const deDouble & | dist
| ) | `[inline, static]`

| tests whether a point lies on the back of a plane (negative half-space)

deBoolean PointOnPlaneFront | ( | const deVec3d & | pt,
|  | const deVec3d & | norm,
|  | const deDouble & | dist
| ) | `[inline, static]`

| tests whether a point lies on the front of a plane (positive half-space)

deBoolean deGeometry::RayOBBIntersect | ( | const deVec3d & | RayStart,
|  | const deVec3d & | RayDir,
|  | const deOBB & | Box,
|  | deVec3d & | Result,
|  | deVec3d & | Normal,
|  | deDouble & | Percent
| ) |

| intersect an OBB and a ray

deBoolean deGeometry::SphereLineIntersect | ( | const deVec3d & | Center,
|  | const deDouble & | Radius,
|  | const deVec3d & | Start,
|  | const deVec3d & | End,
|  | deVec3d & | Res,
|  | deDouble & | Percent
| ) |

| intersect a sphere and a line segment

deBoolean deGeometry::SphereRayIntersect | ( | const deVec3d & | Center,
|  | const deDouble & | Radius,
|  | const deVec3d & | Start,
|  | const deVec3d & | Dir,
|  | deDouble & | Multiple
| ) |

| intersect a sphere and a ray

void TexCoord_Interpolate | ( | deTexCoord2 & | Output,
|  | const deTexCoord2 & | In1,
|  | const deTexCoord2 & | In2,
|  | deDouble | Percent
| ) | `[inline, static]`

| interpolate a TexCoord2 over a range [0,1]

void Vec3d_Interpolate | ( | deVec3d & | Output,
|  | const deVec3d & | In1,
|  | const deVec3d & | In2,
|  | deDouble | Percent
| ) | `[inline, static]`

| interpolate a Vec3d over a range [0,1]

void Vertex_Interpolate | ( | deVertex & | Output,
|  | const deVertex & | In1,
|  | const deVertex & | In2,
|  | deDouble | Percent
| ) | `[inline, static]`

| interpolate a Vertex over a range [0,1]