On Mon, Dec 10, 2012 at 4:48 AM, Carsten Haitzler <ras...@rasterman.com> wrote:
> On Tue, 27 Nov 2012 08:52:14 -0200 Gustavo Sverzut Barbieri
> <barbi...@profusion.mobi> said:
>
>> On Tuesday, November 27, 2012, Carsten Haitzler wrote:
>>
>> > On Mon, 26 Nov 2012 12:47:16 -0200 Bruno Dilly
>> > <bdi...@profusion.mobi<javascript:;>> said:
>> >
>> > > Hey folks,
>> > >
>> > > we're are now making ephysics API more stable, almost all the features
>> > > intended to go in are already implemented, so we are moving to the
>> > > next step:
>> > > adding support to physics on Edje.
>> > >
>> > > There are many ways of doing this, so I'm sending a proposal with some
>> > > possibilities so we could discuss before we start to implement it.
>> > >
>> > > Just to make it clearer. My proposal exposes a lot of ephysics,
>> > > something very complete
>> > > (for what I believe are valid use cases. Lot of things possible with
>> > > ephysics API are not exposed),
>> > > and that would require a lot of time to be completely done.
>> > > So, it will be implemented gradually, covering the main use cases first.
>> > >
>> > > So initially would be possible to create a new world with a list of
>> > > bodies, with most properties set using ephysics default. Later we
>> > > would expose
>> > > some more relevant properties. Implement programs / scripts. Then
>> > > adding support to constraints, camera, etc etc...
>> > >
>> > > But would be good to define what would be the better, complete scenario.
>> > >
>> > > Thanks in advance,
>> > >
>> > > ======================================
>> > >
>> > > PROPOSAL: SUPPORT PHYSICS ON EDJE
>> > >
>> > > === CHOICES ===
>> > > There are 3 main different ways to do it. The first one
>> > > is described in details above, and has some alternatives explained.
>> > > The other 2 can be understood with these details.
>> > >
>> > > 1) A single physics block that would be set per group, and all the
>> > rendered
>> > >    objects to be manipulated would be other groups.
>> > > 2) A single physics block that would be set per group, and all the
>> > rendered
>> > >    objects to be manipulated would be other parts of this group.
>> > > 3) A physics block to describe world, camera and constraints,
>> > >     that would be set per group. And extra physics blocks per part that
>> > >     should be associated to a body. Example:
>> > >     group {
>> > >         physics {
>> > >             world {
>> > >                 ...
>> > >             }
>> > >         }
>> > >         parts {
>> > >             part {
>> > >                 name: ..
>> > >                 body_type: ...
>> > >                 description {
>> > >                     ...
>> > >                     physics {
>> > >                         // body props
>> > >                     }
>> > >                 }
>> > >             }
>> > >         }
>> > >     }
>> >
>> > option 3. definitely.
>> >
>> > > Regarding programs, there are three main choices:
>> > > 1) Physics world, camera, constraints and bodies have states with these
>> > > objects attributes. Using STATE_SET as already exists on Edje would be
>> > the way
>> > >    to change it. Bodies can handle actions that should be set only via
>> > >    scripts, like apply_impulse, apply_force, set_velocity ...
>> > > 2) No specific physics ACTIONs. Everything should be set via scripts.
>> > > 3) Another types of ACTION would be declared, like PHYSICS_IMPULSE,
>> > >    PHYSICS_FORCE, etc. So it could be used without scripts.
>> >
>> > option 3. definitely. (i assume this ALSO allows the script stuff to work
>> > too) :) (i'm loving your multi-choice thing here :)).
>>
>>
>> I initially said to Bruno that given the nature and usage of Physics, very
>> rarely you will end using fixed value for effects/force. Then those actions
>> would be rarely used, being easily replaceable with embryo script blocks.
>>
>> Most common case is calculating the force based on hit point (pointer),
>> drag objects, etc.
>>
>> So why not stick with option #2?
>
> i disagree it wont be common. i can well envisage ephysics as a way of doing
> complex animation easily. you click the button and it emits a "force" on a
> dozen "particle" object that fade it and glow - land bounce around - like
> sparks coming off the corner of the button. it's the same force each time...

ok, option 3 is already implemented.

>
>> > > The main argument in using scripts is that hardly a user will want
>> > > just to set a hardcoded property. Usually it will be based on body's
>> > > and other parts current state, like using geometry or velocity, etc.
>> > > So it would be required to get properties, do some calculation, set to
>> > body.
>> > >
>> > > PROGRAMS chapter exemplify it.
>> > >
>> > > Initially I would go with choices 1) and 1), but I would like to see
>> > > what you think about it.
>> > >
>> > >
>> > > === OVERVIEW ===
>> > > collections {
>> > >     ...
>> > >     group {
>> > >         ...
>> > >         parts {}
>> > >         physics {
>> > >             world {}
>> > >             camera {}
>> > >             bodies {
>> > >                 body {}
>> > >                 ...
>> > >             }
>> > >             constraints {
>> > >                 constraint {}
>> > >                 ...
>> > >             }
>> > >         }
>> > >         programs {}
>> > >         ...
>> > > }
>> > >
>> > > === PHYSICS ===
>> > > The "physics" block contains all the other blocks related to physics.
>> > Blocks
>> > > "world", "camera", "bodies" and "constraints" will be found inside it.
>> > Physics
>> > > only will be enabled if at least one "body" is listed on "bodies" block.
>> > >
>> > > It should be included in group's block, since a physics world won't be
>> > shared
>> > > between groups.
>> > >
>> > > === WORLD ===
>> > > The "world" block can have one or more description blocks.
>> > > It's required to simulate physics between bodies.
>> > > Only one world can be declared per group.
>> > >
>> > > Each "description" block is used to set all attributes required to
>> > configure a
>> > > physics world.
>> > >
>> > > ...
>> > > physics {
>> > >     world {
>> > >         name: "name";
>> > >         description {
>> > >             state: "description_name" INDEX;
>> > >             inherit: "another_description" INDEX;
>> > >             rel1 {
>> > >                 ..
>> > >             }
>> > >             rel2 {
>> > >                 ..
>> > >             }
>> > >             rate: 30;
>> > >             gravity: 0 294 0;
>> > >             running: 1;
>> > >             light {
>> > >                 light: "part_name";
>> > >                 all_bodies: 0;
>> > >             }
>> > >             simulation {
>> > >                 fixed_time_step: 0.033;
>> > >                 max_sub_steps: 3;
>> > >             }
>> > >             sleeping_time: 2.0;
>> > >             solver_iterations: 10;
>> > >             auto_delete {
>> > >                 top: 1;
>> > >                 bottom: 1;
>> > >                 left: 1;
>> > >                 right: 1;
>> > >                 front: 0;
>> > >                 back: 0;
>> > >             }
>> > >             stacking: 1;
>> > >         }
>> > >     }
>> > >     ...
>> > > }
>> > > ...
>> > >
>> > > ---
>> > >
>> > > name [world name]
>> > >     Define the name that refer to this world instance.
>> > >
>> > > state [a name for the d------------- Codito, ergo sum - "I code,
>> > therefore I am" --------------
>> > The Rasterman (Carsten Haitzler)    ras...@rasterman.com <javascript:;>
>> >
>> >
>> >
>> > ------------------------------------------------------------------------------
>> > Monitor your physical, virtual and cloud infrastructure from a single
>> > web console. Get in-depth insight into apps, servers, databases, vmware,
>> > SAP, cloud infrastructure, etc. Download 30-day Free Trial.
>> > Pricing starts from $795 for 25 servers or applications!
>> > http://p.sf.net/sfu/zoho_dev2dev_nov
>> > _______________________________________________
>> > enlightenment-devel mailing list
>> > enlightenment-devel@lists.sourceforge.net <javascript:;>
>> > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>> >
>>
>>
>> --
>> Gustavo Sverzut Barbieri
>> http://profusion.mobi embedded systems
>> --------------------------------------
>> MSN: barbi...@gmail.com
>> Skype: gsbarbieri
>> Mobile: +55 (19) 9225-2202
>> ------------------------------------------------------------------------------
>> Monitor your physical, virtual and cloud infrastructure from a single
>> web console. Get in-depth insight into apps, servers, databases, vmware,
>> SAP, cloud infrastructure, etc. Download 30-day Free Trial.
>> Pricing starts from $795 for 25 servers or applications!
>> http://p.sf.net/sfu/zoho_dev2dev_nov
>> _______________________________________________
>> enlightenment-devel mailing list
>> enlightenment-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>>
>
>
> --
> ------------- Codito, ergo sum - "I code, therefore I am" --------------
> The Rasterman (Carsten Haitzler)    ras...@rasterman.com
>
>
> ------------------------------------------------------------------------------
> LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
> Remotely access PCs and mobile devices and provide instant support
> Improve your efficiency, and focus on delivering more value-add services
> Discover what IT Professionals Know. Rescue delivers
> http://p.sf.net/sfu/logmein_12329d2d
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



-- 
Bruno Dilly
Lead Developer
ProFUSION embedded systems
http://profusion.mobi

------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to