Todo List

Class Util::AbstractPool< T >
This class may need to be thread-safe

Member Ammo::hitBefore (Physics::Contact *pContacts, unsigned int nbContacts, Physics::Contact *pMaxEnergyContact, Physics::Geom &thisGeom, Physics::Geom &otherGeom, Physics::Body *&inout_pThisBody, Physics::Body *&inout_pOtherBody)
Find how to get a non-empiric perforationToCinetik coef.

Member Ammo::hitBefore (Physics::Contact *pContacts, unsigned int nbContacts, Physics::Contact *pMaxEnergyContact, Physics::Geom &thisGeom, Physics::Geom &otherGeom, Physics::Body *&inout_pThisBody, Physics::Body *&inout_pOtherBody)
(Low priority) Look if it could be useful to add bounce params for ammo

Class AutoDeleteChildCallback< T >
Use an allocator for non default constructible objects.

Class AxisControl
(low) Sukender : I think deadzone should PROBABLY be relative to time (if movement is too slow).

Member C3DPhy::createPhysicsDebugView (bool enable)
Allow something to delay the creation on the next frame if the 3DPhyOwner is not assigned yet (in constructors).

Class C3DPhyOwner
Must be thread safe (But if addInScene / markAsRemoved / detatch are only be called by physics thread, it is not useful for these)

See if observer_ptr<> could be useful for the implementation of that class (ex: deallocate 3DPhy's if their parts have been deallocated ? Or if parent space/node have been deallocated ?).

Class ControlEvent
Must be thread safe.

Class ControlMapper
Redesign this class for support of multiple players (each binding is associated to a player). Idea : store controls in an external Controler (remove derivation). Idea 2 : simply use a control mapper per player, and cascade them.

Must be thread safe, for almost every access.

[Platforms: All but Win32] Keeps grabing the mouse even when app doesn't have the focus. See appHasFocus() in ControlMapper.cpp.

Class Explosion
Add real support for instant explosions.

Add sprites support for cool effects (How do we animate? How long? Which color of the polys?...).

Add debris support for cool effects? Or manually add them outside? Or support one or two default options?

Add sound support (sound played once).

(low) Support custom force attenuation.

(low) Support non-linear growth (logarithmic / sqrtf like) and explosion time as an equivalent of growingSpeed.

Add support for camera shaking.

Add support for creation via a factory (?).

Class ExplosionParams
create a second class for 'discardable' parameters (those used in the constructor only), to save memory.

Member Physics::Geom::rotate (const osg::Quat &quat)
Optimize this by avoiding ODE/OSG conversions.

Member Physics::Geom::rotateOffset (const osg::Quat &offsetQuat)
Optimize this by avoiding ODE/OSG conversions.

Class Hud
A HUD that can display 3D objects rendered at a 2D position and size.

Integrate with osgWidget

Class Physics::Joint
Test AMotors/LMotors and complete implementation. Idea : If AMotors are only a way to set/limit velocities/stops, separate angular motors by setting them to be parameters of joints, not a joint itself.

Look for LMotors new functions in ODE next releases.

Implement Plane2D when it'll be more stable in ODE (dJointSetPlane2DXParam, dJointSetPlane2DYParam, dJointSetPlane2DAngleParam).

Implement wrappers for utility functions (chapter 7.6 / Wiki-Joints 1.6) : setting joints forces/torques directly (dJointAdd*Torque, dJointAddSliderForce)

See what are (and implement) : dJointSetBallAnchor2 (Directly set anchor for body 2 olny ?), dJointSetHingeAnchorDelta (???), dJointSetSliderAxisDelta (Set axis with offset for body 1 ???)

Class LightSourceManager
Think about a feature that could allow the lights to be smoothly faded. For instance, the lights that must be switched off could say (in onSourceTaken()) "wait a bit, I'll release the source in a minute!".

Member Physics::MeshHandler::create (dSpaceID spaceId)
check if ALL primitive sets are triangles (list, strip, or fan) => use direct data. If not (Quads or mixed) => rebuild data or use no data.

Member Physics::MeshHandler::create (dSpaceID spaceId)
interpret BIND_PER_VERTEX by doing a sum + normalization (what about quads !? use 4-vertices or 3-vertices ?)

Member Physics::NearCallback::operator() (World *pWorld, AbstractGeom *pG1, AbstractGeom *pG2)
(low priority) See if contact's surface params should be computed before hitBefore() (overhead, but could be useful (?) in hit()), or document hit().

Class PVLEGame
Must be thread safe (?)

Member PVLEGameHolder::setCurrentGame (PVLEGame *pGame)
must be thread safe.

Class PVLEPlayer
Must be thread safe (?)

Class Simulation
Must be thread safe

Member SimulationHolder::set (Simulation *pObj)
must be thread safe.

Member Physics::SurfaceParams::mergeInto (const SurfaceParams &s1, const SurfaceParams &s2)
Needs a lot of testing and debugging : this small method is error prone (because effects are not easily detected).

Member Physics::SurfaceParams::mergeInto (const SurfaceParams &s1, const SurfaceParams &s2)
if not set, use the parameters (such as CFM / ERP) from the world (instead of using the other's value)

Member TracedException::SignalHandler (int sigint)
extract some context infos

Member Physics::World::step (dReal stepSize)
Apply air/water/other friction on bullets (and other things that take into account air friction). Can this be done by colliding with a huge geom that has a "glue"-type physical material ?

Member switchesNames
Switches/Keys : Create a preprocessor code that converts enum to text (or inverse if not possible) to avoid keeping up to date

Member loadBindings
Use a real parser, such as boost.program_options or boost.spririt

Member saveBindings
Use a real parser, such as boost.program_options or boost.spririt

Member Physics::toGraphVec3 (const dReal *v)
(Sukender) Unable to compile this... is this impossible ?

Member __PVLE_METHOD__
See if boost has a better define

Member INIT_TRACED_EXCEPTIONS
use sigaction instead of signal ?

Member createHeightColorization
Add parameters to customize the function (see code).

Create a similar function that sets verticies color of a height field.

Member createNormalMap
3D Part is deprecated and now unsupported !

RGB/RGBA source formats are handled using the first encountered color channel (Endian-dependant!). Need to average the 3 source colors.

Member getClosestFullscreenResolution
Move this elsewhere (that's windowing related, not 3D).

Generated on Sun Jan 17 11:39:25 2010 for PVLE (Pro-Vocation Light Engine) by  doxygen 1.5.9