Main Page   Modules   Alphabetical List   Data Structures   Data Fields  

RpCollision
[Collision Detection]


Data Structures

struct   RpCollisionBuildParam
struct   RpCollisionTriangle
union   RpIntersectData
struct   RpIntersection

Typedefs

typedef RpCollisionTriangle *(*  RpIntersectionCallBackWorldTriangle )(RpIntersection *intersection, RpWorldSector *sector, RpCollisionTriangle *collTriangle, RwReal distance, void *data)
typedef RpAtomic *(*  RpIntersectionCallBackAtomic )(RpIntersection *intersection, RpWorldSector *sector, RpAtomic *atomic, RwReal distance, void *data)
typedef RpWorldSector *(*  RpIntersectionCallBackWorldSector )(RpIntersection *intersection, RpWorldSector *worldSector, void *data)
typedef RpCollisionTriangle *(*  RpIntersectionCallBackGeometryTriangle )(RpIntersection *intersection, RpCollisionTriangle *collTriangle, RwReal distance, void *data)

Enumerations

enum   RpIntersectType {
  rpINTERSECTNONE = 0, rpINTERSECTLINE, rpINTERSECTPOINT, rpINTERSECTSPHERE,
  rpINTERSECTBOX, rpINTERSECTATOMIC, rpINTERSECTTYPEFORCEENUMSIZEINT = RWFORCEENUMSIZEINT
}

Functions

RpGeometry RpCollisionGeometryBuildData (RpGeometry *geometry, RpCollisionBuildParam *param)
RpGeometry RpCollisionGeometryDestroyData (RpGeometry *geometry)
RwBool  RpCollisionGeometryQueryData (RpGeometry *geometry)
RpGeometry RpCollisionGeometryForAllIntersections (RpGeometry *geometry, RpIntersection *intersection, RpIntersectionCallBackGeometryTriangle callBack, void *data)
RpAtomic RpAtomicForAllIntersections (RpAtomic *atomic, RpIntersection *intersection, RpIntersectionCallBackGeometryTriangle callBack, void *data)
RpWorld RpWorldForAllWorldSectorIntersections (RpWorld *world, RpIntersection *intersection, RpIntersectionCallBackWorldSector callBack, void *data)
RpWorld RpCollisionWorldForAllIntersections (RpWorld *world, RpIntersection *intersection, RpIntersectionCallBackWorldTriangle callBack, void *data)
RpWorld RpWorldForAllAtomicIntersections (RpWorld *world, RpIntersection *intersection, RpIntersectionCallBackAtomic callBack, void *data)
RpWorldSector RpCollisionWorldSectorBuildData (RpWorldSector *worldSector, RpCollisionBuildParam *param)
RpWorldSector RpCollisionWorldSectorDestroyData (RpWorldSector *worldSector)
RwBool  RpCollisionWorldSectorQueryData (RpWorldSector *worldSector)
RpWorld RpCollisionWorldBuildData (RpWorld *world, RpCollisionBuildParam *param)
RpWorld RpCollisionWorldDestroyData (RpWorld *world)
RwBool  RpCollisionWorldQueryData (RpWorld *world)
RwBool  RpCollisionPluginAttach (void)

Detailed Description

Collision Plugin for RenderWare Graphics.

RpCollision Plugin Overview

Requirements

Overview

This plugin provides facilities for detecting collisions with atomics or the static geometry of a world.

Some functions are really just tools that operate on base object data. Others depend on plugin extension data which, if present, significantly speeds up the intersection tests.

Intersection primitives
Intersection tests require an intersection primitive (RpIntersection) to be set up. This specifies one of several simple geometric objects to be used for the test: a point, line, sphere, or box. It is also possible to use an atomic as the primitive, in which case its bounding sphere is used for precise tests with triangles in a world or geometry.
World intersections
These functions are available:-
The last function is prefixed with RpCollisionWorld since it uses plugin extension data within world sectors to speed up the testing process. This data would normally be created when the world is exported from an art package, but may also be generated in offline tools using the functions
Atomic and Geometry intersections
These are provided for precise tests with the triangles of an RpGeometry.
The first function may be used to test for intersections with geometries. The intersection primitive must be specified in the coordinate space of the geometry and the geometry must have only a single RpMorphTarget. Although not obligatory, performance will be considerably improved if collision data is generated with RpCollisionGeometryBuildData. This is particularly useful for modeling moving parts of a scene which objects must interact with, or for building custom collision worlds.

The second function is a more generic test at the atomic level. The intersection primitive is specified in world coordinates (which RenderWare transforms to local coordinates). If the atomic's geometry has more than one RpMorphTarget, the test will be based on the current interpolation. If the atomic is based on a geometry with collision data, then this will be used to perform a fast test.

Other information
For simple, low level intersection tests between geometric primitives, use RtIntersectionLineTriangle, RtIntersectionSphereTriangle, and RtIntersectionBBoxTriangle.
Collision data is based on an axis aligned BSP tree, operating in a similar way to the world sector tree but on a finer scale.
Requirements
Libraries and headers required: rwcore, rpworld, rpcollis, rpintsec

Typedef Documentation

typedef RpAtomic*(* RpIntersectionCallBackAtomic)(RpIntersection * intersection, RpWorldSector * sector, RpAtomic * atomic, RwReal distance, void *data)
 

RpIntersectionCallBackAtomic represents the function called from RpWorldForAllAtomicIntersections for all intersections between the specified primitive and collision atomics in a given world. This function should return the current atomic to indicate success. The callback may return NULL to terminate further callbacks on the world.

Parameters:
intersection  Pointer to the intersection primitive.
sector  Pointer to the world sector containing the intersected triangles.
atomic  Pointer to the intersected atomic.
distance  The collision distance. The distance returned depends on the intersection type which is defined in RpIntersectType.
  • rpINTERSECTPOINT Distance of point from atomic's bounding sphere center, normalized to sphere's radius.
  • rpINTERSECTLINE Distance of atomic's bounding-sphere center from start of line, projected onto the line, normalized to length of line. Note that by this definition, if the line starts or ends inside the sphere, this distance maybe negative or greater than one.
  • rpINTERSECTSPHERE Distance of atomic's bounding-sphere center from sphere's center, normalized to sum of spheres' radii.
  • rpINTERSECTBOX Distance undefined.
  • rpINTERSECTATOMIC Distance between atomics' bounding-sphere centers, normalized to sum of spheres' radii.
data  User defined data pointer.
Returns:
Pointer to the current atomic.
typedef RpCollisionTriangle*(* RpIntersectionCallBackGeometryTriangle)(RpIntersection *intersection, RpCollisionTriangle *collTriangle, RwReal distance, void *data)
 

RpIntersectionCallBackGeometryTriangle represents the function called from RpAtomicForAllIntersections and RpCollisionGeometryForAllIntersections for all intersections between the specified primitive and a given atomic. This function should return a pointer to the current collision triangle to indicate success. The callback may return NULL to terminate further callbacks on the atomic.

Note that the vertices and normal of the collision triangle are given in the coordinate space of the geometry. If they are required in world coordinates, they must be transformed using RwV3dTransformPoints and RwV3dTransformVectors with the LTM of the atomic's frame. This must be passed via the user-defined data if required.

Parameters:
intersection  Pointer to the intersection primitive.
collTri  Pointer to the RpCollisionTriangle representing the triangle in the atomic that is intersected.
distance  The distance to the intersection point(s). Note that the distance returned depends on the intersection type and is normalized for the given intersection primitive.
  • rpINTERSECTLINE Distance from start of line to collision triangle, normalized to length of line.
  • rpINTERSECTSPHERE Distance of sphere's center from the collision triangle along the direction of the normal, and normalized to the sphere's radius (may be negative if the sphere center is behind the triangle's plane with respect to the direction of the normal).
  • rpINTERSECTATOMIC Distance of atomic's bounding-sphere center from the collision triangle along the direction of the normal, and normalized to sphere's radius.
data  User defined data pointer
Returns:
Pointer to the current collision triangle.
typedef RpWorldSector*(* RpIntersectionCallBackWorldSector)(RpIntersection * intersection, RpWorldSector * worldSector, void *data)
 

RpIntersectionCallBackWorldSector represents the function called from RpWorldForAllWorldSectorIntersections for all intersections between the specified primitive and world sectors in a given world. This function should return the current world sector to indicate success. The callback may return NULL to terminate further callbacks on the world.

Parameters:
intersection  Pointer to the intersection primitive.
sector  Pointer to the world sector containing the intersected polygons.
data  User defined data pointer
Returns:
Pointer to the current world sector.
typedef RpCollisionTriangle*(* RpIntersectionCallBackWorldTriangle)(RpIntersection * intersection, RpWorldSector * sector, RpCollisionTriangle * collTriangle, RwReal distance, void *data)
 

RpIntersectionCallBackWorldTriangle represents the function called from RpCollisionWorldForAllIntersections for all intersections between the specified primitive and the static geometry in a given world. This function should return a pointer to the current collision triangle to indicate success. The callback may return NULL to terminate further callbacks on the world.

Note:
The memory pointed to by collTriangle is stored on the stack. This memory should be considered volatile. To use this data outside of the iterator, copy the contents.
Parameters:
intersection  Pointer to the intersection primitive.
sector  Pointer to the world sector containing the triangle.
collTriangle  Pointer to the RpCollisionTriangle representing the triangle in the world's static geometry that is intersected.
distance  The distance to the intersection point(s). Note that the distance returned depends on the intersection type and is normalized for the given intersection primitive.
  • rpINTERSECTLINE Distance from start of line to collision triangle, normalized to length of line.
  • rpINTERSECTSPHERE Distance of sphere's center from the collision triangle along the direction of the normal, and normalized to the sphere's radius (may be negative if the sphere center is behind the triangle's plane with respect to the direction of the normal).
  • rpINTERSECTBOX Distance is undefined.
  • rpINTERSECTATOMIC Distance of atomic's bounding-sphere center from the collision triangle along the direction of the normal and normalized to sphere's radius.
data  User defined data pointer
Returns:
Pointer to the current collision triangle.

Enumeration Type Documentation

enum RpIntersectType
 

RpIntersectType, this type represents the different types of primitives that can be used to intersect with an object (for example, see RpCollisionWorldForAllIntersections):

Enumeration values:
rpINTERSECTLINE  Line Intersection
rpINTERSECTPOINT  Point Intersection
rpINTERSECTSPHERE  Sphere Intersection
rpINTERSECTBOX  Box intersection
rpINTERSECTATOMIC  Atomic Intersection based on bounding sphere

Function Documentation

RpAtomic* RpAtomicForAllIntersections RpAtomic   atomic,
RpIntersection   intersection,
RpIntersectionCallBackGeometryTriangle    callBack,
void *    data
 

RpAtomicForAllIntersections is used to test for intersections of the given primitive with all triangles in the geometry of the specified atomic. If the atomic's geometry has multiple morph targets, then the position of each triangle is calculated based on the current RpInterpolator value. If the atomic has a single morph target geometry with collision extension data, then this will be used for greater performance (see RpCollisionGeometryBuildData).

For each intersection found the given callback function is executed, which may return NULL to terminate intersection testing. See RpIntersectionCallBackGeometryTriangle for full details of the information passed to the callback.

Note that a bounding sphere test is not done before testing the triangles of the atomic, as this usually takes place as part of a first pass collision stage, e.g. as in RpWorldForAllAtomicIntersections.

The world and collision plugins must be attached before using this function. Applications should use the header rpcollis.h and link with the rpcollis and rtintsec libraries.

Parameters:
atomic  Pointer to the atomic.
intersection  Pointer to an RpIntersection value describing the intersection primitive. This must be specified in world-space coordinates. Supported intersection types are:
  • rpINTERSECTLINE Line intersections.
  • rpINTERSECTSPHERE Sphere intersections.
  • rpINTERSECTATOMIC Atomic intersections based on bounding sphere.
callBack  Pointer to the callback function.
data  Pointer to the user supplied data to pass to the callback function.
Returns:
Returns NULL if there is an error, or otherwise a pointer to the atomic, even if no intersections were found.
See also:
RpCollisionGeometryForAllIntersections , RpCollisionGeometryBuildData , RpWorldForAllAtomicIntersections , RpCollisionWorldForAllIntersections , RpCollisionPluginAttach , RpWorldPluginAttach
RpGeometry* RpCollisionGeometryBuildData RpGeometry   geometry,
RpCollisionBuildParam   param
 

RpCollisionGeometryBuildData may be called to generate geometry collision extension data for fast intersection tests. This only applies to rigid geometries with a single morph target and the collision data must be rebuilt if the geometry is modified.

This function is intended for offline use. The collision data is stream read or written with the geometry.

The world and collision plugins must be attached before using this function. Applications should use the header file rpcollis.h and the rpcollis library.

Parameters:
geometry  Pointer to the geometry
param  Pointer to the build parameters. This should be set to NULL as no user parameters are currently supported. A NULL setting will cause default parameters to be used in future versions.
Returns:
Pointer to the geometry if successful, NULL otherwise.
See also:
RpCollisionGeometryForAllIntersections , RpAtomicForAllIntersections , RpCollisionGeometryDestroyData , RpCollisionGeometryQueryData , RpCollisionWorldBuildData , RpCollisionPluginAttach , RpWorldPluginAttach
RpGeometry* RpCollisionGeometryDestroyData RpGeometry   geometry
 

RpCollisionGeometryDestroyData is called to destroy collision data for a geometry.

The collision and world plug-ins must be attached before using this function. The header file rpcollis.h is required.

Parameters:
geometry  Pointer to the geometry
Returns:
Pointer to the geometry if successful, NULL otherwise.
See also:
RpCollisionPluginAttach , RpCollisionGeometryBuildData , RpCollisionGeometryQueryData
RpGeometry* RpCollisionGeometryForAllIntersections RpGeometry   geometry,
RpIntersection   intersection,
RpIntersectionCallBackGeometryTriangle    callBack,
void *    data
 

RpCollisionGeometryForAllIntersections is used to test for intersections of the given primitive with all triangles in the specified geometry, which must have only a single morph target. Use RpAtomicForAllIntersections for morphed atomics.

Fast elimination of non-intersected triangles is possible if collision extension data is present. Otherwise, all triangles of the geometry are individually tested. See RpCollisionGeometryBuildData.

Note that a bounding sphere test is not done before testing the triangles of the geometry, as this usually takes place as part of a first pass collision stage, e.g. as in RpWorldForAllAtomicIntersections.

For each intersection found the given callback function is executed, which may return NULL to terminate intersection testing. See RpIntersectionCallBackGeometryTriangle for details of the information passed to the callback.

The world and collision plugin must be attached before using this function. Applications should use the rpcollis.h header and link with the rpcollis and rtintsec libraries.

Parameters:
geometry  Pointer to the geometry.
intersection  Pointer to an RpIntersection describing the intersection primitive, which must be specified in the coordinate system of the geometry (this may require transformation from world coordinates using the inverse LTM of the parent atomic's RwFrame). Supported intersection types are:
  • rpINTERSECTLINE Line intersections.
  • rpINTERSECTSPHERE Sphere intersections.
  • rpINTERSECTBOX Box intersections.
  • rpINTERSECTATOMIC Atomic intersections based on bounding sphere.
callBack  Pointer to the callback function.
data  Pointer to the user supplied data to pass to the callback function.
Returns:
Returns a pointer to the geometry if successful (even if no intersections were found) or NULL if there is an error.
See also:
RpAtomicForAllIntersections , RpCollisionGeometryBuildData , RpCollisionWorldForAllIntersections , RpCollisionPluginAttach , RpWorldPluginAttach
RwBool RpCollisionGeometryQueryData RpGeometry   geometry
 

RpCollisionGeometryQueryData is called to query if collision data exists for the given geometry.

The collision and world plug-ins must be attached before using this function. The header file rpcollis.h is required.

Parameters:
geometry  Pointer to the geometry
Returns:
TRUE if collision data is present, FALSE otherwise.
See also:
RpCollisionPluginAttach , RpCollisionGeometryBuildData , RpCollisionGeometryDestroyData
RwBool RpCollisionPluginAttach void   
 

RpCollisionPluginAttach is called by the application to indicate that the collision plugin should be used. The call to this function should be placed between RwEngineInit and RwEngineOpen and the world plugin must already be attached.

The library rpcollis and the header file rpcollis.h are required.

Returns:
True on success, false otherwise
See also:
RpWorldPluginAttach , RpWorldForAllWorldSectorIntersections , RpWorldForAllAtomicIntersections , RpCollisionWorldForAllIntersections , RpCollisionWorldSectorBuildData , RpCollisionWorldBuildData , RpAtomicForAllIntersections , RpCollisionGeometryForAllIntersections , RpCollisionGeometryBuildData
RpWorld* RpCollisionWorldBuildData RpWorld   world,
RpCollisionBuildParam   param
 

RpCollisionWorldBuildData is called to generate collision data for all world sectors in the given world, and is intended for use in custom exporters and tools. The collision data can otherwise be generated by the standard RenderWare exporters.

The collision data allows fast intersection tests with the triangles of a world's static geometry. See RpCollisionWorldForAllIntersections.

The collision and world plug-ins must be attached before using this function. The header file rpcollis.h is required.

Parameters:
world  Pointer to the world
param  Pointer to the build parameters. This should be set to NULL as no user parameters are currently supported. A NULL setting will cause default parameters to be used in future versions.
Returns:
Pointer to the world if successful, NULL otherwise.
See also:
RpCollisionPluginAttach , RpCollisionWorldSectorBuildData , RpCollisionWorldForAllIntersections , RpCollisionGeometryBuildData
RpWorld* RpCollisionWorldDestroyData RpWorld   world
 

RpCollisionWorldDestroyData is called to destroy the attached collision data for the given world.

The collision and world plug-ins must be attached before using this function. The header file rpcollis.h is required.

Parameters:
world  Pointer to the world
Returns:
Pointer to the world if successful, NULL otherwise.
See also:
RpCollisionPluginAttach , RpCollisionWorldBuildData , RpCollisionWorldSectorBuildData , RpCollisionWorldSectorDestroyData
RpWorld* RpCollisionWorldForAllIntersections RpWorld   world,
RpIntersection   intersection,
RpIntersectionCallBackWorldTriangle    callBack,
void *    data
 

RpCollisionWorldForAllIntersections is used to test for intersections of the given primitive with all triangles in the static geometry of the specified world.

For each intersection found the given callback function is executed, which may return NULL to terminate intersection testing. See RpIntersectionCallBackWorldTriangle for full details of the information passed to the callback.

The world and collision plugins must be attached before using this function. The header file rpcollis.h is required along with the rpcollis and rtintsec libraries.

Note that collision data must exist for the world. This would normally be generated by an exporter or through a direct call to RpCollisionWorldBuildData in an offline tool. The intersection test uses the world BSP structure and the additional collision data to quickly isolate triangles that potentially intersect the primitive before individually testing them.

Parameters:
world  Pointer to the world.
intersection  Pointer to an RpIntersection value describing the intersection primitive. Supported intersection types are:
  • rpINTERSECTLINE Line intersections.
  • rpINTERSECTSPHERE Sphere intersections.
  • rpINTERSECTBOX Box intersections.
  • rpINTERSECTATOMIC Atomic intersections. Only the atomic’s world-space bounding sphere is tested against triangles in the world. Determination of fine-grained intersections between the atomic’s triangles and the world is not performed.
callBack  Pointer to the callback function.
data  Pointer to the user supplied data to pass to the callback function.
Returns:
Returns NULL if there is an error, or otherwise a pointer to the world, even if no intersections were found.
See also:
RpWorldForAllWorldSectorIntersections , RpWorldForAllAtomicIntersections , RpAtomicForAllIntersections , RpCollisionGeometryForAllIntersections , RpCollisionWorldBuildData , RpCollisionPluginAttach , RpWorldPluginAttach
RwBool RpCollisionWorldQueryData RpWorld   world
 

RpCollisionWorldQueryData is called to query for collision data for the given world.

The result is TRUE if any world sectors contains collision data. FALSE if no world sectors contains collision data.

The collision and world plug-ins must be attached before using this function. The header file rpcollis.h is required.

Parameters:
world  Pointer to the world
Returns:
TRUE if collision data are present. FALSE otherwise.
See also:
RpCollisionPluginAttach , RpCollisionWorldBuildData , RpCollisionWorldSectorBuildData , RpCollisionWorldSectorQueryData
RpWorldSector* RpCollisionWorldSectorBuildData RpWorldSector   worldSector,
RpCollisionBuildParam   param
 

RpCollisionWorldSectorBuildData is called to generate collision data for a world sector. Alternatively, collision data can be generated for all world sectors in a world with a single call to RpCollisionWorldBuildData. Both these functions are intended for offline use in custom exporters and tools. The collision data can otherwise be generated by the standard RenderWare exporters.

Collision data allows fast intersection tests with the triangles of a world's static geometry. See RpCollisionWorldForAllIntersections.

The collision and world plug-ins must be attached before using this function. The header file rpcollis.h is required.

Parameters:
worldSector  Pointer to the world sector
param  Pointer to the build parameters. This should be set to NULL as no user parameters are currently supported. A NULL setting will cause default parameters to be used in future versions.
Returns:
Pointer to the world sector if successful, NULL otherwise.
See also:
RpCollisionPluginAttach , RpCollisionWorldBuildData , RpCollisionWorldForAllIntersections , RpCollisionGeometryBuildData
RpWorldSector* RpCollisionWorldSectorDestroyData RpWorldSector   worldSector
 

RpCollisionWorldSectorDestroyData is called to destroy collision data for a world sector.

The collision and world plug-ins must be attached before using this function. The header file rpcollis.h is required.

Parameters:
worldSector  Pointer to the world sector
Returns:
Pointer to the world sector if successful, NULL otherwise.
See also:
RpCollisionPluginAttach , RpCollisionWorldBuildData , RpCollisionWorldDestroyData , RpCollisionWorldSectorBuildData
RwBool RpCollisionWorldSectorQueryData RpWorldSector   worldSector
 

RpCollisionWorldSectorQueryData is called to query if collision data exists for the given world sector.

The collision and world plug-ins must be attached before using this function. The header file rpcollis.h is required.

Parameters:
worldSector  Pointer to the world sector
Returns:
TRUE if collision data is present, FALSE otherwise.
See also:
RpCollisionPluginAttach , RpCollisionWorldBuildData , RpCollisionWorldQueryData , RpCollisionWorldSectorBuildData
RpWorld* RpWorldForAllAtomicIntersections RpWorld   world,
RpIntersection   intersection,
RpIntersectionCallBackAtomic    callBack,
void *    data
 

RpWorldForAllAtomicIntersections is used to test for intersections of the given primitive with atomics in the specified world based on their bounding spheres.

Only collision atomics (which have their rpATOMICCOLLISIONTEST flag set) are tested (see RpAtomicFlag). Also, since this function relies on the internal ties between world sectors and atomics, the results may be invalid if any atomics have been relocated since the last synchronization phase (which occurs during an RwCameraBeginUpdate).

For each atomic intersection found the given callback function is executed, which may return null to terminate intersection testing. See RpIntersectionCallBackAtomic for full details of the information passed to the callback.

For a more precise intersection test with the triangles of an atomic's geometry, use RpAtomicForAllIntersections or RpCollisionGeometryForAllIntersections.

The world and collision plugins must be attached before using this function. The header file rpcollis.h is required.

Parameters:
world  Pointer to the world containing atomics.
intersection  Pointer to an RpIntersection value describing the intersection primitive. Supported intersection types are:
  • rpINTERSECTPOINT Point intersections.
  • rpINTERSECTLINE Line intersections.
  • rpINTERSECTSPHERE Sphere intersections.
  • rpINTERSECTATOMIC Atomic intersections based on bounding sphere.
  • rpINTERSECTBOX Box intersections.
callBack  Pointer to the callback function.
data  Pointer to the user supplied data to pass to the call back function.
Returns:
Returns NULL if there is an error, or otherwise a pointer to the world, even if no intersections are found.
See also:
RpWorldForAllWorldSectorIntersections , RpCollisionWorldForAllIntersections , RpAtomicForAllIntersections , RpCollisionGeometryForAllIntersections , RpCollisionPluginAttach , RpAtomicSetFlags , RpWorldPluginAttach
RpWorld* RpWorldForAllWorldSectorIntersections RpWorld   world,
RpIntersection   intersection,
RpIntersectionCallBackWorldSector    callBack,
void *    data
 

RpWorldForAllWorldSectorIntersections is used to test for intersections of the given primitive with all world sectors in the specified world based on their bounding boxes. For each intersection found the given callback function (of type RpIntersectionCallBackWorldSector) is executed. The callback may return NULL to terminate intersection testing.

The world plugin must be attached before using this function. The header file rpcollis.h and rpcollis library are required.

Parameters:
world  Pointer to the world.
intersection  Pointer to an RpIntersection value describing the intersection primitive. Supported intersection types are:
  • rpINTERSECTPOINT Point intersections.
  • rpINTERSECTLINE Line intersections.
  • rpINTERSECTSPHERE Sphere intersections.
  • rpINTERSECTBOX Box intersections.
  • rpINTERSECTATOMIC Atomic intersections based on bounding sphere.
callBack  Pointer to the callback function.
data  Pointer to the user supplied data to pass to the callback function.
Returns:
Returns NULL if there is an error, or otherwise a pointer to the world, even if no intersections were found.
See also:
RpWorldForAllAtomicIntersections , RpAtomicForAllIntersections , RpCollisionWorldForAllIntersections , RpCollisionGeometryForAllIntersections , RpWorldPluginAttach

Criterion Software © 1993-2003 Criterion Software Limited. All rights reserved. Built Tue Apr 22 12:46:25 2003. Send Feedback
Converted from CHM to HTML with chm2web Pro 2.85 (unicode)