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.
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.
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
RpIntersectType, this type represents the different types of primitives that can be used to intersect with an object (for example, see RpCollisionWorldForAllIntersections): |
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
Converted from CHM to HTML with chm2web Pro 2.85 (unicode) |