A 2D shape type that can reference a group of other 2D shapes (including other compounds). Compound shape overlaps and physics colliders with compound shapes are supported. More...
Public Member Functions | |
void | AddShape (FrameBase f, ref Shape2D shape, bool updateCompoundMeta=true) |
Adds the shape to the compound buffer. More... | |
void | CopyFrom (FrameBase f, ref Shape2D shape) |
Creates a copy of another compound shape 's and any nested compound's buffers. The resultant shapes will not share data. More... | |
void | FreePersistent (FrameBase f, Boolean freeNestedPersistent=true) |
Dispose any persistently allocated memory for this compound shape. More... | |
bool | GetShapes (FrameBase f, out Shape2D *shapesBuffer, out Int32 count) |
Gets a pointer to the buffer of shapes added to this compound. More... | |
bool | RemoveShapes (FrameBase f, Int32? userTag=null, Boolean resetCompoundMeta=true, Boolean removeFromNested=true) |
Removes all shapes in a compound that have a Shape2D.UserTag field matching the specified userTag . More... | |
void | ResetCompoundMeta (FrameBase f) |
Recomputes the compound shape broad radius, centroid and area sum (the later is used internally). More... | |
Properties | |
Int32 | Count [get] |
The number of shapes in the compound buffer. More... | |
Boolean | IsPersistent [get] |
If the buffer of shapes is persistently allocated. More... | |
A 2D shape type that can reference a group of other 2D shapes (including other compounds). Compound shape overlaps and physics colliders with compound shapes are supported.
Creates a copy of another compound shape 's and any nested compound's buffers. The resultant shapes will not share data.
Any existing persistent compounds in this shape's hierarchy are disposed before copying.
f | The current frame being simulated. |
shape | The compound shape that will be copied from. |
|
inline |
Adds the shape to the compound buffer.
Trying to add a compound shape that holds a buffer already reference in this shape's hierarchy will throw an error in debug mode.
f | The frame currently being simulated. |
shape | The shape being added to the compound. |
updateCompoundMeta | If the compound meta data (e.g. broad radius and centroid) should be automatically updated. |
|
inline |
Removes all shapes in a compound that have a Shape2D.UserTag field matching the specified userTag .
f | The frame currently being simulated. |
userTag | A tag that specifies a shape or group of shapes. Any shape in a compound that has a matching Shape2D.UserTag field will be removed. If none is specified, all shapes are removed. |
resetCompoundMeta | If the compound meta data (e.g. broad radius, centroid) should be automatically reset if any shapes are removed. |
removeFromNested | If shapes should also be removed from any compound shape nested inside this. |
|
inline |
Gets a pointer to the buffer of shapes added to this compound.
f | The frame currently being simulated. |
shapesBuffer | A pointer to the buffer of shapes added to this compound. Null if the compound doesn't have shapes. |
count | The number of shapes in the shapesBuffer . |
|
inline |
Recomputes the compound shape broad radius, centroid and area sum (the later is used internally).
f | The frame currently being simulated. |
|
inline |
Dispose any persistently allocated memory for this compound shape.
f | The frame currently being simulated. |
freeNestedPersistent | If nested compound shapes should also have persistent buffers disposed. |
|
get |
If the buffer of shapes is persistently allocated.
Persistently allocated memory is not disposed automatically. Call FreePersistent when done using a persistent compound.
|
get |
The number of shapes in the compound buffer.