Re: [vos-d] terangreal changes
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
> > > 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
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
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
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
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
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
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
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