cgmo-webcgm message
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
| [List Home]
Subject: IsoDraw's declarative animation
- From: "Bezaire, Benoit" <bbezaire@ptc.com>
- To: <cgmo-webcgm@lists.oasis-open.org>
- Date: Thu, 6 Sep 2007 15:29:32 -0400
Hi
All,
Here's an attempt at
explaining what we have done in IsoDraw/IsoView. 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.
cgmo.svg
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
| [List Home]