Types:
geExtBox;
typedef struct geExtBox {Functions:
geVec3d Min;
geVec3d Max;
} geExtBox;geExtBox represents and axially aligned extents box.
geBoolean GENESISCC geExtBox_ContainsPoint(const geExtBox *B, const geVec3d *Point);
This function tests whether the point Point is contained by the extents box B.Returns: GE_TRUE if Point is contained by B, GE_FALSE otherwise.
void GENESISCC geExtBox_ExtendToEnclose(
geExtBox *B, const geVec3d *Point );
This function extends the extents box B so as to enclose the point Point.Returns: nothing.
Notes:
from EXTBOX.H: Extend a box to encompass the passed point.
void GENESISCC geExtBox_GetScaling(const
geExtBox *B, geVec3d *pScale);
This function returns the width, height and depth of the extent box B in the vector pScale.Returns: nothing.
void GENESISCC geExtBox_GetTranslation(const
geExtBox *B, geVec3d *pCenter);
This function returns the coordinates of the center of extent box B in the vector pCenter (I think).Returns: nothing.
geBoolean GENESISCC geExtBox_Intersection
(const geExtBox *B1, const geExtBox *B2, geExtBox *Result);
This function returns the extent box Result which results from the intersection of the extent boxes B1 and B2. If there is no intersection then the function returns GE_FALSE and does not alter Result.Returns: GE_TRUE if B1 and B2 have an intersection, GE_FALSE otherwise.
Notes:
from EXTBOX.H: Return result of box intersection. If no intersection, returns GE_FALSE and bResult is not modified. If intersection, returns GE_TRUE and fills bResult (if not NULL) with the intersected box, bResult may be one of b1 or b2.
geBoolean GENESISCC geExtBox_IsValid(const
geExtBox *B);
This function checks that B is a valid extents box.Returns: GE_TRUE if B is valid, GE_FALSE otherwise.
Notes:
from EXTBOX.H: Test a box for validity ( non NULL and max >= min )
void GENESISCC geExtBox_LinearSweep(const
geExtBox *BoxToSweep, const geVec3d *StartPoint, const geVec3d *EndPoint,
geExtBox *EnclosingBox);
This function creates an extents box that encompasses BoxToSweep along the linear path from StartPoint to EndPoint and returns it in EnclosingBox.Returns: nothing.
Notes:
from EXTBOX.H: Creates a box that encloses the entire area of a box that moves along linear path
geBoolean GENESISCC geExtBox_RayCollision(const
geExtBox *B, const geVec3d *Start, const geVec3d *End, geFloat *T, geVec3d
*Normal);
This function computes the intersection of the ray defined by Start and End with the extents box B, returning the collision point T and the normal of the extents box at T Normal.Returns: GE_TRUE if an interesection exists, GE_FALSE otherwise.
Notes:
from EXTBOX.H: Collides a ray with box B. The ray is directed, from Start to End. Only returns a ray hitting the outside of the box. On success, GE_TRUE is returned, and if T is non-NULL, T is returned as 0..1 where 0 is a collision at Start, and 1 is a collision at End. If Normal is non-NULL, Normal is the surface normal of the box where the collision occured.
void GENESISCC geExtBox_Scale(geExtBox
*B, geFloat DX, geFloat DY, geFloat DZ);
This function scales the extents box B about its center by (DX, DY, DZ).Returns: nothing.
void GENESISCC geExtBox_Set(geExtBox *B,
geFloat X1, geFloat Y1, geFloat Z1, geFloat X2, geFloat Y2, geFloat Z2);
This function sets the elements of the extents box B.Returns: nothing.
Notes:
from EXTBOX.H: Set the values in a box.
void GENESISCC geExtBox_SetToPoint(geExtBox
*B, const geVec3d *Point);
This function sets both the Min and Max of the extents box B to Point.Returns: nothing.
Notes:
from EXTBOX.H: Set box Min and Max to the passed point.
void GENESISCC geExtBox_SetScaling(geExtBox
*B, const geVec3d *pScale);
This function sets the scaling of the set box B to the vector pScale. This differs from geExtBox_Scale in that geExtBox_Scale is relative to its original scale whereas geExtBox_SetScaling simply utilizes the center point and sets Min and Max up so that the scaling equals pScale.Returns: nothing.
void GENESISCC geExtBox_SetTranslation(geExtBox
*B, const geVec3d *pCenter );
This function moves the extents box B so that it is centered at pCenter.Returns: nothing.
void GENESISCC geExtBox_Translate(geExtBox
*B, geFloat DX, geFloat DY, geFloat DZ );
This function moves the extent box B by (DX,DY,DZ). This is relative movement in comparison to SetTranslation's absolute.Returns: nothing.
void GENESISCC geExtBox_Union(const geExtBox
*B1, const geExtBox *B2, geExtBox *Result);
This function computes the union of extent boxes B1 and B2 returning the result in Result. The union of 2 extent boxes is the extent box that minimally contains both.Returns: nothing.
Notes:
from EXTBOX.H: computes union of b1 and b2 and returns in bResult.