#include <PxCollection.h>
Public Member Functions | |
virtual void | add (PxBase &object, PxSerialObjectId id=PX_SERIAL_OBJECT_ID_INVALID)=0 |
Adds a PxBase object to the collection. | |
virtual void | remove (PxBase &object)=0 |
Removes a PxBase member object from the collection. | |
virtual bool | contains (PxBase &object) const =0 |
Returns whether the collection contains a certain PxBase object. | |
virtual void | addId (PxBase &object, PxSerialObjectId id)=0 |
Adds an id to a member PxBase object. | |
virtual void | removeId (PxSerialObjectId id)=0 |
Removes id from a contained PxBase object. | |
virtual void | add (PxCollection &collection)=0 |
Adds all PxBase objects and their ids of collection to this collection. | |
virtual void | remove (PxCollection &collection)=0 |
Removes all PxBase objects of collection from this collection. | |
virtual PxU32 | getNbObjects () const =0 |
Gets number of PxBase objects in this collection. | |
virtual PxBase & | getObject (PxU32 index) const =0 |
Gets the PxBase object of this collection given its index. | |
virtual PxU32 | getObjects (PxBase **userBuffer, PxU32 bufferSize, PxU32 startIndex=0) const =0 |
Copies member PxBase pointers to a user specified buffer. | |
virtual PxBase * | find (PxSerialObjectId id) const =0 |
Looks for a PxBase object given a PxSerialObjectId value. | |
virtual PxU32 | getNbIds () const =0 |
Gets number of PxSerialObjectId names in this collection. | |
virtual PxU32 | getIds (PxSerialObjectId *userBuffer, PxU32 bufferSize, PxU32 startIndex=0) const =0 |
Copies member PxSerialObjectId values to a user specified buffer. | |
virtual PxSerialObjectId | getId (const PxBase &object) const =0 |
Gets the PxSerialObjectId name of a PxBase object within the collection. | |
virtual void | release ()=0 |
Deletes a collection object. | |
Protected Member Functions | |
PxCollection () | |
virtual | ~PxCollection () |
A collection is a set of PxBase objects. PxBase objects can be added to the collection regardless of other objects they depend on. Objects may be named using PxSerialObjectId values in order to resolve dependencies between objects of different collections.
Serialization and deserialization only work through collections.
A scene is typically serialized using the following steps:
For example the code may look like this:
PxPhysics* physics; // The physics PxScene* scene; // The physics scene SerialStream s; // The user-defined stream doing the actual write to disk PxSerializationRegistry* registry = PxSerialization::createSerializationRegistry(*physics); // step 1) PxCollection* collection = PxSerialization::createCollection(*scene); // step 2) PxSerialization::complete(*collection, *registry); // step 3) PxSerialization::serializeCollectionToBinary(s, *collection, *registry); // step 4) collection->release(); // step 5) registry->release(); // step 6)
A scene is typically deserialized using the following steps:
For example the code may look like this:
PxPhysics* physics; // The physics PxScene* scene; // The physics scene void* memory128; // a 128-byte aligned buffer previously loaded from disk by the user - step 1) PxSerializationRegistry* registry = PxSerialization::createSerializationRegistry(*physics); // step 2) PxCollection* collection = PxSerialization::createCollectionFromBinary(memory128, *registry); // step 3) scene->addCollection(*collection); // step 4) collection->release(); // step 5) registry->release(); // step 6)
PxCollection::PxCollection | ( | ) | [inline, protected] |
virtual PxCollection::~PxCollection | ( | ) | [inline, protected, virtual] |
virtual void PxCollection::add | ( | PxCollection & | collection | ) | [pure virtual] |
virtual void PxCollection::add | ( | PxBase & | object, | |
PxSerialObjectId | id = PX_SERIAL_OBJECT_ID_INVALID | |||
) | [pure virtual] |
Adds a PxBase object to the collection.
Adds a PxBase object to the collection. Optionally a PxSerialObjectId can be provided in order to resolve dependencies between collections. A PxSerialObjectId value of PX_SERIAL_OBJECT_ID_INVALID means the object remains without id. Objects can be added regardless of other objects they require. If the object is already in the collection, the ID will be set if it was PX_SERIAL_OBJECT_ID_INVALID previously, otherwise the operation fails.
[in] | object | Object to be added to the collection |
[in] | id | Optional PxSerialObjectId id |
virtual void PxCollection::addId | ( | PxBase & | object, | |
PxSerialObjectId | id | |||
) | [pure virtual] |
Adds an id to a member PxBase object.
If the object is already associated with an id within the collection, the id is replaced. May only be called for objects that are members of the collection. The id needs to be unique within the collection.
[in] | object | Member PxBase object |
[in] | id | PxSerialObjectId id to be given to the object |
virtual bool PxCollection::contains | ( | PxBase & | object | ) | const [pure virtual] |
virtual PxBase* PxCollection::find | ( | PxSerialObjectId | id | ) | const [pure virtual] |
virtual PxSerialObjectId PxCollection::getId | ( | const PxBase & | object | ) | const [pure virtual] |
virtual PxU32 PxCollection::getIds | ( | PxSerialObjectId * | userBuffer, | |
PxU32 | bufferSize, | |||
PxU32 | startIndex = 0 | |||
) | const [pure virtual] |
Copies member PxSerialObjectId values to a user specified buffer.
[out] | userBuffer | Array of PxSerialObjectId values |
[in] | bufferSize | Capacity of userBuffer |
[in] | startIndex | Offset into list of member PxSerialObjectId values |
virtual PxU32 PxCollection::getNbIds | ( | ) | const [pure virtual] |
Gets number of PxSerialObjectId names in this collection.
virtual PxU32 PxCollection::getNbObjects | ( | ) | const [pure virtual] |
Gets the PxBase object of this collection given its index.
[in] | index | PxBase index in [0, getNbObjects()) |
virtual void PxCollection::release | ( | ) | [pure virtual] |
Deletes a collection object.
This function only deletes the collection object, i.e. the container class. It doesn't delete objects that are part of the collection.
virtual void PxCollection::remove | ( | PxCollection & | collection | ) | [pure virtual] |
virtual void PxCollection::remove | ( | PxBase & | object | ) | [pure virtual] |
virtual void PxCollection::removeId | ( | PxSerialObjectId | id | ) | [pure virtual] |
Removes id from a contained PxBase object.
May only be called for ids that are associated with an object in the collection.
[in] | id | PxSerialObjectId value |