OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

cgmo-webcgm message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [cgmo-webcgm] IsoDraw's declarative animation


Hi Benoit (or Dieter),

One high-level follow up question...

At 03:29 PM 9/6/2007 -0400, Bezaire, Benoit wrote:
[...]
Here's an attempt at explaining what we have done in IsoDraw/IsoView.

Is this -- i.e., the below-summarized animation model -- the scope of the work for which you and Dieter quoted PTC's approximate programmer-time investment?

-Lofton.

It's not SVG animation; although we did look at it, there are some similarities with SVG, but there's also several differences.
 
In SVG, just about any attribute/property can be animated. The values can either be interpolated over time; or simply set a new value (discrete animation) for a certain duration.
 
Our animation model is as follows, it's compose of three items: Sequences, Steps and Atoms. We think it adapts well to animations found in technical illustrations. One major difference between our approach and the SVG approach is that we put the duration on the Step; so all the Atoms within a Step have the same start time and duration. SVG puts the duration at the Atom level. This is done because animation of technical illustration is often work in 'states'. Ex: disassembly steps; interactive wiring diagrams states, training situations, etc... Having to specify a duration and start time for all Atoms is time consuming for users.
 
A Sequence has the following attributes:
- a name
- a start time
- a flag to specify if the sequence is to be started by a remote event (instead of time based).
- a disabled flag (don't know the specifics of that?)
- a repeat count for the sequence.
- a restore flag (i.e., what to do once the sequence is done; leave as is, or restore to original state).
Note: there is no end time or duration time on a Sequence.
 
A Sequence is composed of one or more Steps, a Step has the following attributes:
- a name
- a flag to say if the Step is animated over time or if it is 'set' (instantaneous change); if it's animated over time, the step has a duration value.
 
And Steps are composed of 0 or more Atoms. Note that a Step with 0 Atom is a 'pause' Step. The are different types of Atoms; all with their own specific attributes:
- Rotate Atom, Move Atom, Scale Atom, Fill Atom, Stroke Atom, Visibility Atom etc... Note: we wanted to do more but ran out of time, there are use cases we don't cover yet. Ex: animating points of a polyline/polygon.
 
Most of the Atoms have a start and end value. Here is an example (a gauge/indicator that rotates to the left, pauses, then rotates to the right)
Sequence
name: mySequence
start: 1 second
  Step
  name: towardsLeft
  duration: 2 seconds
    Atom(Rotate)
    start angle: 0
    start center point: 200, 250
    end angle: 20
    end center point: 200, 250
  Step
  name: myPause
  duration: 3 seconds
  Step
  name: towardsRight
  duration: 4 seconds
    Atom(Rotate)
    start angle: 0
    start center point: 200, 250
    end angle: -70
    end center point: 200, 250
 
Although there are some differences between SVG and our model; it is close enough to support (most of the animation) in import/export filters. Please see exported SVG file attached.
 
If the group wants to, it can discuss this topic during the next few telecons. I'm back at work on Sept 24th.
 
Hope this help the group understand what we worked on in our last dev cycle.
 
Regards,
Benoit.
 
 


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]