Re: [vos-d] terangreal changes

2007-04-15 Thread Reed Hedges
S Mattison wrote:
 How do you differentiate between "I'm clicking on this to activate it" and 
 "I'm clicking on this to edit its properties"?
>>> What do you mean by "activate"? You mean if the objcet has the "clickable" 
>>> type? Different mouse clicks probably.  Or have modes.
>> Uh, yea.  That if the object has behaviors that respond to clicks, then 
>> click-to-select-to-edit needs to be different from 
>> click-to-activate-behavior.  It could be right mouse button vs right mouse 
>> button, a context menu, or an explicit editing mode.  Not a big deal, just a 
>> UI issue to keep in mind.  (I mainly thought of it because I've been using 
>> my MacBook a bit with Linux and Windows and suffering with having only one 
>> button...)
> ~
> It's fairly universal, already, isn't it, that you only get menus when
> you Right-click(Ctrl/Cmd-click), or right-click-and-drag, and
> left-clicking or left-double-clicking is a common activator. In 3d
> programs, middle-clicking or scroll-clicking seems to be a common
> 'spin around selected object' button. If something seems to be
> concensus, I try not to fight with it in my own interfaces...
> 
>>> Yes but there's no default currently.  A ui:action is like a macro for 
>>> sending a message to an object that describes the message in a user 
>>> friendly way.  It's implemented in mesh, it prints a list of actions for 
>>> the current object, and if there's an action called "foo" you just say "do 
>>> foo" and it sends whatever message is behind foo to the object.
> ~
> How do you distinguish between selecting an object, and activating it?

Well this was Peter's original question.   Right now the keys are:

Browse Mode Mouse Look Mode
Left click: Activate Clickable  Walk Forward
Middle click:   nothing nothing
Right click:toggle mode toggle mode
g key:  drag object drag object?
w,a,s,d keys:   walkwalk


What I would do is when the mouse is on top of an object in Browse Mode,
draw a 2d outline or a 3d aura around the object, and change the mouse
cursor (hand pointer if it's clickable or a hypercard; a kind of arrow
if not).

We could use middle click or shift-click for select. Then the object
would have a different color/style outline or aura permanently until
deselected, and some options would show up in a side pane depending on
the object's types. ... OR ... when the mouse is over and object and you
press a key like spacebar or 's' or something, select it.

At some point all these key bindings will be configurable anyway, right?

At some point we will also want to have multiple selected objects that
you can apply changes to as a set.

Reed

___
vos-d mailing list
[EMAIL PROTECTED]
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d


Re: [vos-d] terangreal changes

2007-04-13 Thread S Mattison
> > > How do you differentiate between "I'm clicking on this to activate it" 
> > > and "I'm clicking on this to edit its properties"?
> > What do you mean by "activate"? You mean if the objcet has the "clickable" 
> > type? Different mouse clicks probably.  Or have modes.
>
> Uh, yea.  That if the object has behaviors that respond to clicks, then 
> click-to-select-to-edit needs to be different from 
> click-to-activate-behavior.  It could be right mouse button vs right mouse 
> button, a context menu, or an explicit editing mode.  Not a big deal, just a 
> UI issue to keep in mind.  (I mainly thought of it because I've been using my 
> MacBook a bit with Linux and Windows and suffering with having only one 
> button...)
~
It's fairly universal, already, isn't it, that you only get menus when
you Right-click(Ctrl/Cmd-click), or right-click-and-drag, and
left-clicking or left-double-clicking is a common activator. In 3d
programs, middle-clicking or scroll-clicking seems to be a common
'spin around selected object' button. If something seems to be
concensus, I try not to fight with it in my own interfaces...

> > Yes but there's no default currently.  A ui:action is like a macro for 
> > sending a message to an object that describes the message in a user 
> > friendly way.  It's implemented in mesh, it prints a list of actions for 
> > the current object, and if there's an action called "foo" you just say "do 
> > foo" and it sends whatever message is behind foo to the object.
~
How do you distinguish between selecting an object, and activating it?
One click to select, the second to activate?
How do you distinguish between whether you're rightclicking on the
object, or the space in front of the object? If it's not selected,
you're clicking on a line-of-sight space? You should get a menu with
"World Properties" and "Create New Object" options? And if you're
rightclicking on the object itself, you should get "Expanded actions",
"Object Properties", and "Clipboard alternatives" like copy, move, and
delete?

> I agree, although that requires a degree of coordination to pull off in a 
> presentation situation (like having to set up an ad-hoc network) that could 
> be hard.
~
I think acquiring two projectors would be more difficult than setting
up a network between two laptops. ;)

That's just me though.
-me

___
vos-d mailing list
[EMAIL PROTECTED]
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d


Re: [vos-d] terangreal changes

2007-04-13 Thread Peter Amstutz
On Fri, Apr 13, 2007 at 02:48:41PM -0400, Reed Hedges wrote:

> > How do you differentiate between "I'm clicking on this to activate it" 
> > and "I'm clicking on this to edit its properties"?  
> 
> What do you mean by "activate"? You mean if the objcet has the "clickable"
> type? Different mouse clicks probably.  Or have modes.  

Uh, yea.  That if the object has behaviors that respond to clicks, then 
click-to-select-to-edit needs to be different from 
click-to-activate-behavior.  It could be right mouse button vs right 
mouse button, a context menu, or an explicit editing mode.  Not a big 
deal, just a UI issue to keep in mind.  (I mainly thought of it because 
I've been using my MacBook a bit with Linux and Windows and suffering 
with having only one button...)

> Yes but there's no default currently.  A ui:action is like a macro for
> sending a message to an object that describes the message in a user
> friendly way.  It's implemented in mesh, it prints a list of actions for
> the current object, and if there's ann action called "foo" you just say
> "do foo" and it sends whatever message is behind foo to the object.

Ah, I see.  I think this is something we'll want to expand upon, for 
things like keybindings.  However, this is also where you start to want 
client-side scripting, to get message parameters from the user, doing 
simple data massaging, client-side chrome like rollovers, etc...

> I don't think it would be too hard.  It's just something I thought of
> that would be unique and interestincg to show off to people. I was
> actually thinking of making the layers be metaobjects so others would
> share your layer selection, useful for collaborative work.
> 
> Do you think that most of the Terangreal GUI (wx) will be easily transferred
> to s5, even if the A3DL CS plugin guts are torn out and redone?

I'm not sure.  There are certainly a lot of bits and pieces we will want 
to keep that may be worth working on, but the code as a whole will 
probably have to be rewritten since one of the goals of s5 is to improve 
the way wxwidgets (and crystal space) talk to the rest of the system.

> (Will you post a comprehensive description of A3DL changes in s5 later,
> like you have been doing for VOS in s5?)

Yea, I plan to do so.  I need to finish up my four-part series on s5 
first, though ;-)

Something that will be important in designing the new A3DL is how 2D, 3D 
and GUI component APIs will interact, and trying to unify them.

Related to that, my hope is that by having the code autogenerated from 
interface files, virtually all of the boilerplate presently involved in 
coding metaobjects will go away, so creating or modifying metaobject 
APIs will be easy.  This should make experimenting with new features a 
lot easier.

> When we do demos we actually should have two laptops so people can see
> what in the scene is shared (and what's not).

I agree, although that requires a degree of coordination to pull off in 
a presentation situation (like having to set up an ad-hoc network) that 
could be hard.

-- 
[   Peter Amstutz  ][ [EMAIL PROTECTED] ][ [EMAIL PROTECTED] ]
[Lead Programmer][Interreality Project][Virtual Reality for the Internet]
[ VOS: Next Generation Internet Communication][ http://interreality.org ]
[ http://interreality.org/~tetron ][ pgpkey:  pgpkeys.mit.edu  18C21DF7 ]



signature.asc
Description: Digital signature
___
vos-d mailing list
[EMAIL PROTECTED]
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d


Re: [vos-d] terangreal changes

2007-04-13 Thread Reed Hedges
On Thu, Apr 12, 2007 at 10:29:35PM -0400, Peter Amstutz wrote:
> On Thu, Apr 12, 2007 at 09:26:09PM -0400, Reed Hedges wrote:
> 
> > * Change mouse cursor to reflect what clicking will do (i.e. 
> > differentiate between mouselook/move modes; change when over a hypercard 
> > or clickable)
> 
> Yea, that would be useful.
> 
> > * If you click some mouse button on an object it becomes selected
> > * In the future, could show a panel to edit properties of selected 
> > object, or create new objects attached to it in scenegraph fashion, or 
> > whatever
> 
> How do you differentiate between "I'm clicking on this to activate it" 
> and "I'm clicking on this to edit its properties"?  

What do you mean by "activate"? You mean if the objcet has the "clickable"
type? Different mouse clicks probably.  Or have modes.  

> 
> > * If a selected object has the "ui:actions" type that I added recently, 
> > then display those in a side panel as buttons
> 
> I'll have to take a look at it -- sounds like a generalization of 
> misc:clickable perhaps?  So instead of "I can accept click messages" you 
> say "I can accept messages X, Y and Z" and specify that "X" is the 
> default message for clicking.

Yes but there's no default currently.  A ui:action is like a macro for
sending a message to an object that describes the message in a user
friendly way.  It's implemented in mesh, it prints a list of actions for
the current object, and if there's ann action called "foo" you just say
"do foo" and it sends whatever message is behind foo to the object.

> 
> > * Some way to show/hide sets of objects in the world, or change their 
> > properties together as a group (e.g. alhpa to make them fade in and 
> > out).  These groups could be called layers or groups.  This would be one 
> 
> This sounds kind of complicated, although I agree it could be useful.  
...
> Let me also point out that you probably shouldn't kill yourself with 
> crazy new ter'angreal features; the only reason I'm working on it is to 

I don't think it would be too hard.  It's just something I thought of
that would be unique and interestincg to show off to people. I was
actually thinking of making the layers be metaobjects so others would
share your layer selection, useful for collaborative work.

Do you think that most of the Terangreal GUI (wx) will be easily transferred
to s5, even if the A3DL CS plugin guts are torn out and redone?

(Will you post a comprehensive description of A3DL changes in s5 later,
like you have been doing for VOS in s5?)

When we do demos we actually should have two laptops so people can see
what in the scene is shared (and what's not).

Reed


___
vos-d mailing list
[EMAIL PROTECTED]
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d


Re: [vos-d] terangreal changes

2007-04-12 Thread Ken Taylor
Nevermind, I got it to build. Just needed to add -lvosext_http
and -lmetaobject_services to the demoplugin part of the .am file.

I can't seem to get omnivos to load gallery.xod, though. I get a "Error:
tried to dereference null smart pointer in -> operator"

-Ken


___
vos-d mailing list
[EMAIL PROTECTED]
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d


Re: [vos-d] terangreal changes

2007-04-12 Thread Ken Taylor
I tried a quick fix, replacing usleep(2) with _sleep(20) [usleep is
microseconds and _sleep is miliseconds, right?] ... But then I get a linking
problem:

g++ -shared -nostdlib /mingw/lib/dllcrt2.o
c:/mingw/bin/../lib/gcc/mingw32/3.4.2/crtbegin.o
.libs/demoplugin.o  -L/c/vos-projects/current/vos/inplace/lib -lmetaobject_m
isc -lmetaobject_a3dl -lvutil -lvip -lvos -lboost_thread-mgw-mt-1_33_1 -lws2
_32 -Lc:/mingw/bin/../lib/gcc/mingw32/3.4.2 -Lc:/mingw/bin/../lib/gcc -L/min
gw/lib/gcc/mingw32/3.4.2 -Lc:/mingw/bin/../lib/gcc/mingw32/3.4.2/../../../..
/mingw32/lib -L/mingw/lib/gcc/mingw32/3.4.2/../../../../mingw32/lib -L/mingw
/lib -Lc:/mingw/bin/../lib/gcc/mingw32/3.4.2/../../.. -L/mingw/lib/gcc/mingw
32/3.4.2/../../.. -lstdc++ -lmingw32 -lgcc -lmoldname -lmingwex -lmsvcrt -lu
ser32 -lkernel32 -ladvapi32 -lshell32 -lmingw32 -lgcc -lmoldname -lmingwex -
lmsvcrt
c:/mingw/bin/../lib/gcc/mingw32/3.4.2/crtend.o  -mthreads -mthreads -o
.libs/libomniplg_demoplugin-0.dll -Wl,--image-base=0x1000 -Wl,--out-impl
ib,.libs/libomniplg_demoplugin.dll.a
Creating library file: .libs/libomniplg_demoplugin.dll.a
.libs/demoplugin.o(.text+0x9874): In function
`ZN9WikipediaC2ERN3VOS4SiteEPN4A3DL6SectorESsddd':
c:/vos-projects/current/vos/apps/omnivos/plugins/demoplugin.cc:221:
undefined reference to `_imp___ZN3VOS8HTTP_GETEPNS_4SiteESs'
.libs/demoplugin.o(.text+0xc8a8): In function
`ZN9WikipediaC1ERN3VOS4SiteEPN4A3DL6SectorESsddd':
c:/vos-projects/current/vos/apps/omnivos/plugins/demoplugin.cc:221:
undefined reference to `_imp___ZN3VOS8HTTP_GETEPNS_4SiteESs'
.libs/demoplugin.o(.text+0x13bb8): In function
`Z41__static_initialization_and_destruction_0ii':
c:/vos-projects/current/vos/apps/omnivos/plugins/../../../libs/vos/metaobjec
ts/services/services.hh:44: undefined reference to
`_imp__RegisterServices_globalstatic'
collect2: ld returned 1 exit status

eh. too much to try to figure out tonight :P
Maybe I should just get a linux box up and running ;)

-Ken

Ken Taylor wrote:
> Nice! I'll have to try a build tonight and see if this works for me.
> (update: just finished the build... I get complaints about a "usleep"
> function in demoplugin.c. Ah well -- silly windows!)
>
> I haven't had much time this week to look at VOS stuff It sounds like
> you have been pretty busy though :)
>
> -Ken
>
>
> > This is mostly directed at Reed, but I thought everyone might be
> > interested --
> >
> > In working on a virtual demo world/presentation (which I intend to use
> > as a more compelling alterative to openoffice "impress" slides in
> > presenting VOS to potential investors) I've made a few changes that make
> > worldbuilding much easier:
> >
> >  - Fixed bugs in blender export script which causes rotations to
> > sometimes come out wrong.
> >
> >  - Added an "" directive under the  section in XOD files,
> > so objects from loaded files can be extended.
> >
> >  - Added some code to the vosapp framework so that if plugins introduce
> > new metaobject factories, existing vobjects with that type will have
> > metaobjects automatically attached.
> >
> >  - Fixed some collision handling in the CS plugin that was misbehaving.
> >
> >  - The 3rd person chase camera now won't go through walls, but will zoom
> > in as necessary to have a clear line of sight to the avatar.
> >
> >  - If you can hit "g" while moused over a 3d object, you "grab" it, this
> > means the object is placed in front of you and moves around when you
> > move.  (Moving this with the mouse isn't supported yet.)  You can tag
> > this "a3dl:nograb" to tell ter'angreal not to grab them (useful to avoid
> > grabbing the floor or walls by accident.)
> >
> > So, in combination with the new misc:clickable and misc:textentry types
> > (which communicate clicks on prompt for text on 3D objects) it's now
> > relatively easy to add behaviors (written in C++) to 3D objects in
> > scenes created in Blender.  See "galley.xod" in vos/apps/omnivos/ for
> > the work in progress.
> >
>
>
>
> ___
> vos-d mailing list
> [EMAIL PROTECTED]
> http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d
>


___
vos-d mailing list
[EMAIL PROTECTED]
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d


Re: [vos-d] terangreal changes

2007-04-12 Thread Ken Taylor
Nice! I'll have to try a build tonight and see if this works for me.
(update: just finished the build... I get complaints about a "usleep"
function in demoplugin.c. Ah well -- silly windows!)

I haven't had much time this week to look at VOS stuff It sounds like
you have been pretty busy though :)

-Ken


> This is mostly directed at Reed, but I thought everyone might be
> interested --
>
> In working on a virtual demo world/presentation (which I intend to use
> as a more compelling alterative to openoffice "impress" slides in
> presenting VOS to potential investors) I've made a few changes that make
> worldbuilding much easier:
>
>  - Fixed bugs in blender export script which causes rotations to
> sometimes come out wrong.
>
>  - Added an "" directive under the  section in XOD files,
> so objects from loaded files can be extended.
>
>  - Added some code to the vosapp framework so that if plugins introduce
> new metaobject factories, existing vobjects with that type will have
> metaobjects automatically attached.
>
>  - Fixed some collision handling in the CS plugin that was misbehaving.
>
>  - The 3rd person chase camera now won't go through walls, but will zoom
> in as necessary to have a clear line of sight to the avatar.
>
>  - If you can hit "g" while moused over a 3d object, you "grab" it, this
> means the object is placed in front of you and moves around when you
> move.  (Moving this with the mouse isn't supported yet.)  You can tag
> this "a3dl:nograb" to tell ter'angreal not to grab them (useful to avoid
> grabbing the floor or walls by accident.)
>
> So, in combination with the new misc:clickable and misc:textentry types
> (which communicate clicks on prompt for text on 3D objects) it's now
> relatively easy to add behaviors (written in C++) to 3D objects in
> scenes created in Blender.  See "galley.xod" in vos/apps/omnivos/ for
> the work in progress.
>



___
vos-d mailing list
[EMAIL PROTECTED]
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d


Re: [vos-d] terangreal changes

2007-04-12 Thread Peter Amstutz
On Thu, Apr 12, 2007 at 09:26:09PM -0400, Reed Hedges wrote:

> * Change mouse cursor to reflect what clicking will do (i.e. 
> differentiate between mouselook/move modes; change when over a hypercard 
> or clickable)

Yea, that would be useful.

> * If you click some mouse button on an object it becomes selected
> * In the future, could show a panel to edit properties of selected 
> object, or create new objects attached to it in scenegraph fashion, or 
> whatever

How do you differentiate between "I'm clicking on this to activate it" 
and "I'm clicking on this to edit its properties"?  

> * If a selected object has the "ui:actions" type that I added recently, 
> then display those in a side panel as buttons

I'll have to take a look at it -- sounds like a generalization of 
misc:clickable perhaps?  So instead of "I can accept click messages" you 
say "I can accept messages X, Y and Z" and specify that "X" is the 
default message for clicking.

> * Some way to show/hide sets of objects in the world, or change their 
> properties together as a group (e.g. alhpa to make them fade in and 
> out).  These groups could be called layers or groups.  This would be one 
> way to get certain effects in your presentation actually.  Also useful 
> in data visualizations, architectural type visualizations, etc.  Am 
> thinking of a demo world that shows some kind of factory or plant with 
> different systems on different layers, or an archeological site with 
> structures from different time periods.

This sounds kind of complicated, although I agree it could be useful.  
Actually, my plans for a redesign of A3DL (for s5) will specifically 
include a concept of layers, so unless you want to code layers as a 
server-side behavior (where you can select which layers to show, and the 
hidden ones are removed from the sector) it might be better to wait on 
that.

Let me also point out that you probably shouldn't kill yourself with 
crazy new ter'angreal features; the only reason I'm working on it is to 
have something shiny and polished enough to demo as a stepping stone to 
solicit funding for s5 development.  There are systemic flaws in the CS 
plugin (due to multithreaded race conditions that are very hard to 
debug, which is what prompted the whole concurrency discussion and 
overhaul for s5) that make it unsuitable for anything other than a demo.

> >  - Added an "" directive under the  section in XOD files, 
> > so objects from loaded files can be extended.
> 
> Ah, useful.

It was your idea.  We talked about this, remember?

> >  - If you can hit "g" while moused over a 3d object, you "grab" it, 
> 
> In general how should we start adding editing tools? Should we have an 
> edit mode that turns on these keystrokes? Should you have to select an 
> object (or objects) before you can edit them?  (Or, in edit mode, should 
> mousing over be considered a "selection" for editing purposes, with an 
> outline drawn around the object to indicate this.)

The "grab" feature is kind of a hack at the moment.  It was intended as 
a quick-and-dirty way of showing that you could interact with anything 
in your environment, not a real authoring tool.

> I think the Blender approach is a good one btw, where most commands are 
> single keystrokes you can hit with your left hand while you mouse with 
> your right (or vice versa).   But we should also have contextual menus 
> (even pie menus?) too (especially for a CAVE or something).

Do you mean commands for original authoring, or commands to be used in 
an interactive session to communicate with other users?  The former 
(authoring) I don't think we should focus on too much, our time is 
better spent working on supporting popular modeling programs and 3D file 
formats than it is on allowing modeling/authoring within ter'angreal 
itself.  Commands to modify the environment which may be useful in a 
multiuser scenario to assist in communication are a different story, and 
that's worth thinking about.

-- 
[   Peter Amstutz  ][ [EMAIL PROTECTED] ][ [EMAIL PROTECTED] ]
[Lead Programmer][Interreality Project][Virtual Reality for the Internet]
[ VOS: Next Generation Internet Communication][ http://interreality.org ]
[ http://interreality.org/~tetron ][ pgpkey:  pgpkeys.mit.edu  18C21DF7 ]



signature.asc
Description: Digital signature
___
vos-d mailing list
[EMAIL PROTECTED]
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d


Re: [vos-d] terangreal changes

2007-04-12 Thread Reed Hedges

Sounds great.

Here are some things I was thinking of doing to terangreal, please 
advise/modify:


* Change mouse cursor to reflect what clicking will do (i.e. 
differentiate between mouselook/move modes; change when over a hypercard 
or clickable)

* If you click some mouse button on an object it becomes selected
* In the future, could show a panel to edit properties of selected 
object, or create new objects attached to it in scenegraph fashion, or 
whatever

* If a selected object has the "ui:actions" type that I added recently, 
then display those in a side panel as buttons

* Some way to show/hide sets of objects in the world, or change their 
properties together as a group (e.g. alhpa to make them fade in and 
out).  These groups could be called layers or groups.  This would be one 
way to get certain effects in your presentation actually.  Also useful 
in data visualizations, architectural type visualizations, etc.  Am 
thinking of a demo world that shows some kind of factory or plant with 
different systems on different layers, or an archeological site with 
structures from different time periods.



>  - Added an "" directive under the  section in XOD files, 
> so objects from loaded files can be extended.

Ah, useful.


>  - If you can hit "g" while moused over a 3d object, you "grab" it, 

In general how should we start adding editing tools? Should we have an 
edit mode that turns on these keystrokes? Should you have to select an 
object (or objects) before you can edit them?  (Or, in edit mode, should 
mousing over be considered a "selection" for editing purposes, with an 
outline drawn around the object to indicate this.)

I think the Blender approach is a good one btw, where most commands are 
single keystrokes you can hit with your left hand while you mouse with 
your right (or vice versa).   But we should also have contextual menus 
(even pie menus?) too (especially for a CAVE or something).


Reed


___
vos-d mailing list
[EMAIL PROTECTED]
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d