<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On Apr 29, 2011, at 10:34 AM, Karl Haas wrote:</div><div><br></div><div>Hi,</div><div><br></div><blockquote type="cite"><div bgcolor="#ffffff" text="#000000"><ul><li>How can objects (chairs, tables, whiteboards, ...) be crated
by scripting?</li>
<li>How can the content or the state of an object (e.g.
whiteboards) be saved externally?</li>
<li>How can I save the state of an object immediately after it has
been changed (e.g. whiteboard content modified)?<br>
</li>
<li>In order to create a RESTful API, would it be a suitable
approach to extend the class RestPlugin?</li>
<li>Would it be an appropriate approach to write a region module,
which creates and manages the rooms and the objects within the
rooms?</li></ul></div></blockquote><div><br></div><div>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.</div><div><br></div><div>This is also because I don't really know what e.g. application plugins are for :)</div><div><br></div><div>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.</div><div><br></div><div>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: <a href="http://code.google.com/p/rexprojectspace/source/browse/trunk/src/swsourcetree.py">http://code.google.com/p/rexprojectspace/source/browse/trunk/src/swsourcetree.py</a></div><div><br></div><div>Uses opensim scene api to create objects like this:</div><div>sog.RootPart.UpdateRotation(rexprojectspaceutils.euler_to_quat(0,0,90))<br><br></div><div>Uses a func from another module that does the new object creation with: </div><div>sceneobjgroup = scene.AddNewPrim(</div> root_avatar_uuid, root_avatar_uuid,<br> pos, rot, OpenSim.Framework.PrimitiveBaseShape.CreateBox())</div><div><br></div><div><a href="http://blog.knowsense.co.uk/blog/_archives/2010/12/20/4707937.html">http://blog.knowsense.co.uk/blog/_archives/2010/12/20/4707937.html</a> has a screenshot and video of that, all those objects are created and controlled by that region module.</div><div><br></div><div>Markus wrote it by using the opensim api doc as ref etc., said that didn't encounter probs really.</div><div><br></div><div><blockquote type="cite"><div bgcolor="#ffffff" text="#000000"><ul><li>What's are possible ways to communicate with an external service (e.g. the room manager)?</li></ul></div></blockquote><div><br></div><div>Anything is possible, you can write whatever code in our module. Use everything that .net provides or other libs.</div><div><br></div><div>What would be best is a good question :)</div><div><br></div><div>What sort of communication do you need? Realtime two way stuff? With complex or simple data?</div><div><br></div><div>Something custom with a TCP socket, doing http polling xml-rpc / json style, using some existing realtime protocol .. lots of options.</div><div><br></div><div>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.</div><div><font class="Apple-style-span" face="Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace"><span class="Apple-style-span" style="border-collapse: collapse; white-space: pre-wrap; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"><font class="Apple-style-span" face="Helvetica"><span class="Apple-style-span" style="border-collapse: separate; white-space: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px;"><br></span></font></span></font></div><blockquote type="cite"><div bgcolor="#ffffff" text="#000000"><ul>
</ul>Karl Haas<br></div></blockquote><br></div><div>~Toni</div><br></body></html>