Blender Git Loki

Blender Git "particles_refactor" branch commits.

Page: 3 / 7

April 22, 2014, 09:23 (GMT)
Added collision shape pointer attribute for particles. This will change
soon, for now is the easiest way to keep track of things.
April 22, 2014, 09:23 (GMT)
Particle validate function for adding particle rigid bodies.
April 22, 2014, 09:23 (GMT)
Basic mempool usage for creating and removing rbRigidBody instances.
This uses flags to indicate used rbRigidBodies and then loops over the
mempool to remove orphaned bodies. The same should eventually be done
for shapes and constraints.
April 22, 2014, 09:23 (GMT)
Make the btRigidBody a direct component of the rbRigidBody wrapper
struct. This avoids one pointer indirection and makes future memory
management possible. Requires a constructur/destructor pair to
initialize the 'body' member correctly.
April 22, 2014, 09:23 (GMT)
Generic flags for rbRigidBody. These can be used by the blenkernel API
to tag used rigid bodies and automatically remove unused bodies.
April 22, 2014, 09:23 (GMT)
Removed unused variables.
April 22, 2014, 09:23 (GMT)
Use the mempool in RigidBodyWorld instead of allocating memory inside
the Bullet CAPI.

NOTE: this is broken atm because to free an Object's rigid body data
the RBW needs to be passed along, which would require a Scene argument
in the blenkernel function. This will get fixed by moving ownership of
the rigid body away from object and into the RBW memory management sync
procedure.

Conflicts:
intern/rigidbody/RBI_api.h
April 22, 2014, 09:23 (GMT)
Added a mempool to RigidBodyWorld as a memory manager for bodies.

Conflicts:
intern/rigidbody/rb_bullet_api.cpp
April 22, 2014, 09:23 (GMT)
Pointer attribute get/set functions for particles.
April 22, 2014, 09:23 (GMT)
bpy particle objects are still valid if the particle id does not yet
exist. This allows a create-on-write feature, where a particle is
automatically added to the state if the pid does not yet exist.
April 22, 2014, 09:23 (GMT)
Add particle sequence as a state attribute in the API.
April 22, 2014, 09:23 (GMT)
Added a __dir__ method for particles to return the list of available
attributes.
April 22, 2014, 09:23 (GMT)
Include the standard type attributes in the dir function for particles.
April 22, 2014, 09:23 (GMT)
Fix for particle getattro: Throw an exception if iterator is not valid,
otherwise expect to find a correct void *data (assert is used to as a
sanity check, should never fail).
April 22, 2014, 09:23 (GMT)
Added a new attribute type 'POINTER', for storing rigid body pointers.
This may not be the best way to map rigid bodies to particles,
eventually a nicer way could be to make use of the userpointer in Bullet
btRigidBody and store a weak reference to Blender types there instead.
Storing rigid body pointers in the particles just mimicks the way the
Object RBs work atm.

The pointer attribute gets a flag 'TEMPORARY' to prevent it from being
stored in the cache and .blend files, since it's only valid during the
Bullet stepping anyway.
April 22, 2014, 09:23 (GMT)
Cleanup: Removed old unused code from multi-layer paged buffers.
April 22, 2014, 09:23 (GMT)
New API function for replacing the current particle system's state. ATM
this creates a full copy of the given state, so the reference can be
used further. This may need some more thought.
April 22, 2014, 09:23 (GMT)
Stub functions for creating and updating rigid bodies from particle
systems in the RigidBodyWorld steps.
April 22, 2014, 09:23 (GMT)
Store the particle ID alongside the particle iterator in the python
particle wrapper type, so it can be used to automatically create missing
particles later on.
April 22, 2014, 09:23 (GMT)
Fix for particle iterator validity check: also check for negative index,
this is used for indicating an invalid particle iterator.
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021