On 4 janv. 07, at 00:49, Jacques Rebourcier wrote:
Marmoute,
I understand that by default a Soya.Body _is_ a "ode body" if
Soya.Body.ode =
True (which is the default).
By default a soya.Body __may__ be an Ode Body. Ode support turn on in
many case (mostly when you set and ode property *) and could be
checked with the soya.Body.ode property (which should be False by
default)
*(For example if you set the mass attribute of a non-Ode-management
body, ode support will turn on for it.)
I understand that a Soya.World _is_ a "ode world" by default
(because world
inherit Body, so has a Soya.World.ode=True, correct ?),
A soya.World __may__ be an Ode Body (because the soya.Body inherence)
**and** __may__ be an Ode World
It may be the both and have two property to check it soya.World.ode
(which are in fact soya.Body.ode) and soya.World.odeWorld:
Both should be False by default.
Each world can have a collision space. I don't know if I must set
soya.World.has_space to true to activate collision detection in
that World (i
assume it is at True by default, correct ?). I don't know how to
allocate
soya.World.space (I assume, it is done automatically, so the space
type is
not configurable, correct ?).
The has_space property should be False by default. By default a
SimpleSpace will be allocated, but it's design to explicity assign
different space type to a World.
As a world can only have a single Space the creation of any new Space
for a World will replace the old one (and transvase it's content into
the new one).
The Space of a world is the first argument of the Space constructor
( SimpleSpace(bibi) #will create a Space for the bibi world)
I understand that by default, a ode body will be placed in the
"nearest" ode
world.
True, when you activate ode management for a Body it'll travel up the
World tree to find an ode World if not found, it enable the root as
an odeWorld.
If I create a ode Geom for that body, it will be placed in the space
of the nearest "ode world". Correct ?
False, each body (with collision detection) will be placed into the
Space of it's parent World* and each Space will be placed into the
Space of it's parent until you get the root space.
*(not that the body's space are automatically changed when the
body's parent change.)
So by default the ode integration is "nested / related" to a World.
So I
assume several ode world can exist independantly in a soya scene.
So I assume
Collide and Stepping are managed begin/end round of soya.World,
correct ?
Yop you're right. But take care that Ode architecture use a
**single** world for all his operation (but allow several nested
Space) And two object can interact only if they are both into the
__same__ world !
So it's possible to have more that one Ode, world but in most case
you only need the root to be and Ode World.
I assume world manage contact group (delete contact joints) and call
automatically Body.hit function for the 2 bodies involved in the
contact,
correct ?
Yop you're right
If I want manage a global ode world, I must deactivate ode
attribute in
intermediate Worls, correct ?
False, since all the intermediate world should'nt be ode managed by
default. If I made mistake and the property have wrong valu let me
know and I'll investigate the issue.
But I do not see doc about joint classes (just see a Joint class),
normal ?
Hum I don't get the time to write the Joint doc. And I don't very
well this part of Ode. But all the Joint classe should have been
pretty well implemented and could be used in the way I hope the most
natural.
If you can play a little with the Joint and tell me what you think
about it I'll be very pleased. (reading the source should be a good
doc if you need it.)
I'll then write tutorial from you're "play/work".
--
marmoute
_______________________________________________
Soya-user mailing list
[email protected]
https://mail.gna.org/listinfo/soya-user