[Opensim-users] Room management application
Toni Alatalo
toni at playsign.net
Fri Apr 29 09:53:50 UTC 2011
On Apr 29, 2011, at 10:34 AM, Karl Haas wrote:
Hi,
> How can objects (chairs, tables, whiteboards, ...) be crated by scripting?
> How can the content or the state of an object (e.g. whiteboards) be saved externally?
> How can I save the state of an object immediately after it has been changed (e.g. whiteboard content modified)?
> In order to create a RESTful API, would it be a suitable approach to extend the class RestPlugin?
> Would it be an appropriate approach to write a region module, which creates and manages the rooms and the objects within the rooms?
I would do it as a region module, we've had good experience with those in a learning env project and others, where have made code that saves / loads / configures / generates etc. scenes.
This is also because I don't really know what e.g. application plugins are for :)
An example of a region module that creates a lot of objects and manages them afterwards is the automated software project visualization thing we made -- it creates everything based on the info it gets with http (xml-rpc and such) from github, google code bug tracker and buildbot build status.
For example this implements a 3d tree with branches that are added when branches are added to the git repo that the app is watching: http://code.google.com/p/rexprojectspace/source/browse/trunk/src/swsourcetree.py
Uses opensim scene api to create objects like this:
sog.RootPart.UpdateRotation(rexprojectspaceutils.euler_to_quat(0,0,90))
Uses a func from another module that does the new object creation with:
sceneobjgroup = scene.AddNewPrim(
root_avatar_uuid, root_avatar_uuid,
pos, rot, OpenSim.Framework.PrimitiveBaseShape.CreateBox())
http://blog.knowsense.co.uk/blog/_archives/2010/12/20/4707937.html has a screenshot and video of that, all those objects are created and controlled by that region module.
Markus wrote it by using the opensim api doc as ref etc., said that didn't encounter probs really.
> What's are possible ways to communicate with an external service (e.g. the room manager)?
Anything is possible, you can write whatever code in our module. Use everything that .net provides or other libs.
What would be best is a good question :)
What sort of communication do you need? Realtime two way stuff? With complex or simple data?
Something custom with a TCP socket, doing http polling xml-rpc / json style, using some existing realtime protocol .. lots of options.
Also one option is just running the whole room manager app in the opensim module, but have it expose a http/html ui to ouside too. Might be most straightforward, 'cause then you don't need to communicate over the net, but can just call the functions in the other parts of your system etc.
> Karl Haas
~Toni
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://opensimulator.org/pipermail/opensim-users/attachments/20110429/43b57056/attachment.html>
More information about the Opensim-users
mailing list