Clumps are containers for Atomics RpAtomic and can also be linked to their own Frame RwFrame. Clumps are intended to group related Atomics together. The Atomics are stored by reference, so an Atomic can be stored in more than one Clump if necessary. A Frame object can be added to a Clump. If the Frame is then linked to others attached to the Atomics contained within the Clump, developers can then move the entire group of Atomics by simply repositioning the Clump as changes to the Clump's Frame will get propagated down through the hierarchy. Geometry lighting by dynamic lights RpLight can be enabled and disabled at the Atomic level. Further information is available in the Dynamic Models chapter of the User Guide.
|
RpClumpCallBack represents the function called from RwCameraForAllClumpsInFrustum when a clump lies inside the current camera's view frustum. It is also the callback type used with RpWorldForAllClumps. This function should return a pointer to the current clump to indicate success. The callback may return NULL to terminate further callbacks on the clumps.
|
|
RpClumpAddAtomic is used to add the specified atomic to the given clump. It is assumed that the atomic has not been previously added to a world (it is not necessary to add an atomic to a world if the atomic is already attached to a clump). The frame hierarchy defined in the clump determines where in the clump the atomic resides. The world plugin must be attached before using this function.
|
|
RpClumpAddCamera is used to add the specified camera to the given clump. It is assumed that the camera has not been previously added to a world (it is not necessary to add an camera to a world if the camera is already attached to a clump). The frame hierarchy defined in the clump determines where in the clump the camera resides. The world plugin must be attached before using this function.
|
|
RpClumpAddLight is used to add the specified light to the given clump. It is assumed that the light has not been previously added to a world (it is not necessary to add a light to a world if the light is already attached to a clump). The frame hierarchy defined in the clump determines where in the clump the light resides. The world plugin must be attached before using this function.
|
|
RpClumpClone is used to duplicate the specified clump. This function creates and initializes a new clump and copies the old clump's atomics and their frame hierarchy to the new one. The frustum callback function is also copied. If there are any plugins registered with the clump then the associated plugin data is also copied to the new clump using the registered copy constructor function. RpClumpClone does not guarantee to preserve the order of the atomics. If the order is important, contact Developer Relations. Cloning of any lights and cameras attached to the clump is not currently supported. The new clump will have empty light and camera lists. Note that each new atomic created using this function will reference the same geometry as the original and the reference count on the geometry will be incremented. When the copy is destroyed the referenced geometry will not be destroyed as it will still be referenced by the original atomic. The world plugin must be attached before using this function.
|
|
RpClumpCreate is used to create and initialize a new clump. Clumps are used as containers for groups of atomics and their frame hierarchy. The world plugin must be attached before using this function.
|
|
RpClumpCreateSpace is used to create a space holder clump at the given position in world space and with the specified bounding sphere radius. This function creates a clump that is not rendered but still takes place in collision detection. Useful for immediate mode hooks and frustum testing on points in the world via clump callbacks. The world plugin must be attached before using this function.
|
|
RpClumpDestroy is used to destroy the specified clump including all atomics and frame hierarchies attached to it but it will not destroy the frames of the atomics in the clump if those frames are not in the frame hierarchy. RpClumpDestroy also destroys clumps that are attached to lights and cameras. Each geometry referenced by atomics in the clump will only be destroyed if their reference counts are zero.
|
|
RpClumpForAllAtomics is used to apply the given callback function to all atomics in the specified clump. The format of the callback function is RpAtomic * (*RpAtomicCallBack)(RpAtomic *atomic, void *data) where data is a user-supplied data pointer to pass to the callback function. If any invocation of the callback function returns a failure status the interation is terminated. However, RpClumpForAllAtomics will still return successfully. The world plugin must be attached before using this function.
|
|
RpClumpForAllCameras is used to apply the given callback function to all cameras in the specified clump. The format of the callback function is RwCamera * (*RwCameraCallBack)(RwCamera *camera, void *data) where data is a user-supplied data pointer to pass to the callback function. If any invocation of the callback function returns a failure status the interation is terminated. However, RpClumpForAllCameras will still return successfully. The world plugin must be attached before using this function.
|
|
RpClumpForAllLights is used to apply the given callback function to all lights in the specified clump. The format of the callback function is RpLight * (*RpLightCallBack)(RpLight *light, void *data) where data is a user-supplied data pointer to pass to the callback function. If any invocation of the callback function returns a failure status the interation is terminated. However, RpClumpForAllLights will still return successfully. The world plugin must be attached before using this function.
|
|
RpClumpGetCallBack is used to determine the callback function of the specified clump. Note that if the default frustum callback is operational RpClumpGetCallBack will return NULL. The world plugin must be attached before using this function.
|
|
RpClumpGetFrame is used to retrieve the frame, if any, attached to the specified clump. Note that this function is used for debug purposes only and, for efficiency, is available as a macro for final release versions of an application. The world plugin must be attached before using this function.
|
|
RpClumpGetNumAtomics is used to retrieve the number of atomics in the specified clump. The world plugin must be attached before using this function.
|
|
RpClumpGetNumCameras is used to retrieve the number of cameras in the specified clump. The world plugin must be attached before using this function.
|
|
RpClumpGetNumLights is used to retrieve the number of lights in the specified clump. The world plugin must be attached before using this function.
|
|
RpClumpGetPluginOffset is used to get the offset of a previously registered clump plugin. The world plugin must be attached before using this function.
|
|
RpClumpGetWorld is used to determine the world the specified clump belongs to, if any. The world plugin must be attached before using this function.
|
|
RpClumpRegisterPlugin is used to register a plugin and reserve some space within a clump. This must happen after the engine has been initialized but before the engine is opened. The world plugin must be attached before using this function.
|
|
RpClumpRegisterPluginStream is used to associate a set of binary stream functionality with a previously registered plugin. The world plugin must be attached before using this function.
|
|
RpClumpRemoveAtomic is used to detach the specified atomic from the given clump. Note that this function does not destroy the atomic and it is assumed that the clump does not belong to any worlds. Note also that the atomic's frame, if any, remains attached to the clump's frame hierarchy. The world plugin must be attached before using this function.
|
|
RpClumpRemoveCamera is used to detach the specified camera from the given clump. Note that this function does not destroy the camera and it is assumed that the clump does not belong to any worlds. Note also that the camera's frame, if any, remains attached to the clump's frame hierarchy. The world plugin must be attached before using this function.
|
|
RpClumpRemoveLight is used to detach the specified light from the given clump. Note that this function does not destroy the light and it is assumed that the clump does not belong to any worlds. Note also that the light's frame, if any, remains attached to the clump's frame hierarchy. The world plugin must be attached before using this function.
|
|
RpClumpRender is used to render the specified clump into the current camera's image raster. All atomics that comprise the clump are rendered. Rendering is attempted whether or not the clump actually falls inside the camera's view frustum. Clumps/atomics only need to be added to the world if they are to be rendered via the RpWorldRender call or if "world" lights are to influence the objects. World lights being lights that have a position, so a point light, spot light and soft spot lights. The directional and ambient lights will still work without the object being added to the world.
The world plugin must be attached before using this function.
|
|
RpClumpSetCallBack is used to define a callback function for the specified clump. The callback function is executed from RwCameraForAllClumpsInFrustum when the clump enters the camera's frustum. This allows an application to place animation code in the callback function and to only process this when the clump is on screen. To return to the default frustum callback use NULL in the callback argument. The world plugin must be attached before using this function.
|
|
RpClumpSetFrame is used to attach the specified frame to the given clump. The frame describes the clump's position and orientation with respect to the world. Note that this function is used for debug purposes only and, for efficiency, is available as a macro for final release versions of an application. The world plugin must be attached before using this function.
|
|
RpClumpSetFreeListCreateParams allows the developer to specify how many RpClump s to preallocate space for. Call before RwEngineInit.
|
|
RpClumpSetStreamAlwaysCallBack is used to associate a binary stream callback with a previously registered plugin. This callback is called for all plugins after stream data reading has completed. The world plugin must be attached before using this function.
|
|
RpClumpStreamGetSize is used to determine the size in bytes of the binary representation of the given clump. This value is used in the binary chunk header to indicate the size of the chunk. The size does not include the size of the chunk header. The world plugin must be attached before using this function.
|
|
RpClumpStreamRead is used to read a clump from the specified binary stream. Note that prior to this function call, a binary clump chunk must be found in the stream using the RwStreamFindChunk API function. The world plugin must be attached before using this function. The sequence to locate and read a clump from a binary stream is as follows: RwStream *stream; RpClump *newClump; stream = RwStreamOpen(rwSTREAMFILENAME, rwSTREAMREAD, "mybinary.xxx"); if( stream ) { if( RwStreamFindChunk(stream, rwID_CLUMP, NULL, NULL) ) { newClump = RpClumpStreamRead(stream); } RwStreamClose(stream, NULL); }
|
|
RpClumpStreamWrite is used to write the specified clump to the given binary stream. Note that the stream will have been opened prior to this function call. The world plugin must be attached before using this function.
|
|
RpClumpValidatePlugins is used to validate the plugin memory allocated within the specified clump. This function is useful for determining where memory trampling may be occuring within an application. This function only returns a meaningful response under a debug library. The world plugin must be attached before using this function.
|
Converted from CHM to HTML with chm2web Pro 2.85 (unicode) |