Re: Moving objects

Bernie Roehl ([email protected])
Thu, 22 Jun 1995 10:40:29 -0400


Brook Conner writes:
> Okay -- but ignoring geometry when considering behavior is (IMHO)
> naive. Lots of people talk in the user interface community about
> separating the interface from the application (by analogy, separating
> geometry from behavior).

I would argue that the reason so many people in the user interface
community are talking about that separation is that it's a good idea! :-)

> Bernie> but I want the clock to be stopped, or to run backwards,
>
> Stop time, or make time run backwards (just for the clock).

I'd rather be able to use the clock's geometry, but define new behaviors
for it; that's certainly the most flexible solution. I'm not clear how
exactly how we would "stop time", or make it run backwards -- especially
in a way that would affect

> Or define the clock so that it can do that.

Aha! That's what I mean; define a clock that runs backwards (for example).
What I *don't* want to do is have to re-define all that geometric information,
and force people to download another (identical) copy of the clock's
geometry just because this particular clock acts differently.

> For example, try using a behavior that rotates the hands of a
> clock on a car. It doesn't make sense.

Right, so you wouldn't do that. But if someon> writes a behavior for
the hands of a clock, it shouldn't matter if it's a wall clock, a mantle
clock, a grandfather clock, a wristwatch... once the behavior is written,
then can use it provided they create objects for which that behavior
makes sense.

> Behavior and geometry can't be ignorant of each other.

I'm not suggesting that they are; more specifically, I'm saying that
behavior has to know about the geometry of the entity on which it operates,
but shouldn't be constrained to operate only on a *particular* geometry.
In

> Can you use the behavior on something that isn't a clock (or more
> particularly, isn't structured _Exactly_ the same as your clock (down
> to using the same separators))? Not likely.

No, but why would you want to?

> Can you get the geometry to do something else? Not without intimate
> knowledge of the structure of the object.

Right, but if I'm writing a behavior that operates on any clock, I do
have initimate knowledge of the object's structure.

> So for the clock, you'd do this (just pretend about the nod> types for
> a mom>nt):
>
> MinuteHand { behavior "http://somewhere.com/behaviors/minute-hand.beh"
> }
> HourHand { behavior "http://somewhere.com/behaviors/hour-hand.beh" }
>
> What's the behavior doing in this case? Producing VRML corresponding
> to how the object should rotate?

No, the behavior nod> would be an indication to the browser find the instructions for operating the MinuteHand and HourHand entities
as a function of tili. It wouldn't produce any VRML at all, any more
than a WWWAnchor does.

> Bernie> We'd love to have you join the di cussion...
>
> I've been trying -- mailed both [email protected] and
> [email protected], both of which bounced. What's the right address?

The first on> looks right to me...

-- 
   Bernie Roehl
   University of Waterloo Dept of Electrical and Computer Engineering
   Mail: [email protected]    VoiceP  (519) 888-4567 x 2607 [work]
   URL: http://sunee.uwaterloo.ca/~broehl