def handle_entity_created(self, ent, changetype): # fun fact: since we are called for every entity and # self.finished checked only every "update" event, # this often cleans up >1 test objects (in case any # are left over from failed tests) if ent.Id == 2525429102: r.logInfo("##### found entity I need") self.select_test_ent = ent try: ec_netp = ent.network except AttributeError: if 0: print "skip entity without EC_NetworkPosition", dir(ent) else: netp = ec_netp.Position # for some reason z coord ends up as 22.25 #r.logInfo("found entity with netpos %s %s %s" % (netp.x(), netp.y(), netp.z())) if netp.x() == 42.0 and netp.y() == 42.0 and int(netp.z()) == 22: r.logInfo( "found created test prim - naming, moving and deleting (finished=%s)" % self.finished) ent.prim.Name = "Seppo" ent.prim.SendObjectNameUpdate() pos = ent.placeable.position pos.setX(netp.x() + 1) #change the x-coordinate ent.placeable.position = pos r.logInfo("Moving to move to pos: %s" % pos) r.getServerConnection().SendObjectDeRezPacket( ent.Id, r.getTrashFolderId()) self.finished = True
def handle_entity_created(self, ent, changetype): # fun fact: since we are called for every entity and # self.finished checked only every "update" event, # this often cleans up >1 test objects (in case any # are left over from failed tests) if ent.Id==2525429102: r.logInfo("##### found entity I need") self.select_test_ent = ent try: ec_netp = ent.network except AttributeError: if 0: print "skip entity without EC_NetworkPosition", dir(ent) else: netp = ec_netp.Position # for some reason z coord ends up as 22.25 #r.logInfo("found entity with netpos %s %s %s" % (netp.x(), netp.y(), netp.z())) if netp.x() == 42.0 and netp.y() == 42.0 and int(netp.z()) == 22: r.logInfo("found created test prim - naming, moving and deleting (finished=%s)" % self.finished) ent.prim.Name = "Seppo" ent.prim.SendObjectNameUpdate() pos = ent.placeable.position pos.setX(netp.x() + 1) #change the x-coordinate ent.placeable.position = pos r.logInfo("Moving to move to pos: %s" % pos) r.getServerConnection().SendObjectDeRezPacket( ent.Id, r.getTrashFolderId()) self.finished = True
def run(self): self.wait_time = int(self.config.get("wait_time", 60)) yield "doing login" self.timer_start() r.startLoginOpensim(user, pwd, server) yield "waiting for connection" conn = None while not self.elapsed(self.wait_time): conn = r.getServerConnection() if conn and conn.IsConnected(): break else: yield None else: return yield "waiting for scene" while not self.scene and not self.elapsed(self.wait_time): yield None yield "creating object" r.getServerConnection().SendObjectAddPacket(42, 42, 22) yield "waiting for EntityCreated" while (not self.finished) and (not self.elapsed(self.wait_time)): yield None yield "exiting" r.exit() if self.finished: yield "success" else: yield "failure"
def loadEstate(self): self.worldstream = r.getServerConnection() if self.worldstream == None: self.queue.put( ("displayerror", "No worldstream, check if you're connected to server")) else: self.estatesettings = EstateSettings(self.worldstream, self) s = naali.getScene("World") ids = s.GetEntityIdsWithComponent("EC_OpenSimPresence") self.ents = [r.getEntity(id) for id in ids] self.window.setRegionUsers(self.ents) #self.worldstream.SendEstateInfoRequestpacket() #!! self.worldstream.SendEstateOwnerMessage("getinfo", ()) self.updateSavedUsers() #self.updateSavedUsersTab() #test if rights to modify access cap = self.worldstream.GetCapability( 'EstateRegionSettingsModification') if cap == None or cap == "": self.window.setNoCapInfo() else: self.estatesettings.fetchEstates() self.window.resetCapInfo() pass
def run(self): self.wait_time = int(self.config.get("wait_time", 60)) yield "doing login" self.timer_start() r.startLoginOpensim(user, pwd, server) yield "waiting for connection" conn = None while not self.elapsed(self.wait_time): conn = r.getServerConnection() if conn and conn.IsConnected(): break else: yield None else: return yield "waiting for avatar to appear" ent = None while not self.elapsed(self.wait_time): try: ent = naali.getUserAvatar() except ValueError: yield None else: break if not ent: yield "failure, avatar didn't appear" return for i in range(100): for x in self.do_api_calls(): yield x break r.exit() yield "success"
def __init__(self): self.sels = [] self.selmasses = {} Component.__init__(self) self.resetValues() self.worldstream = r.getServerConnection() self.usingManipulator = False self.useLocalTransform = False #self.cpp_python_handler = None self.left_button_down = False self.keypressed = False self.editing = False self.editingKeyTrigger = (Qt.Key_M, Qt.ShiftModifier) self.shortcuts = { self.editingKeyTrigger : self.toggleEditingKeyTrigger, (Qt.Key_R, Qt.NoModifier) : self.rotateObject, (Qt.Key_S, Qt.NoModifier) : self.scaleObject, (Qt.Key_G, Qt.NoModifier) : self.translateObject, (Qt.Key_Tab, Qt.NoModifier) : self.cycleManipulator, (Qt.Key_Z, Qt.ControlModifier) : self.undo, (Qt.Key_Delete, Qt.NoModifier) : self.deleteObject, (Qt.Key_L, Qt.AltModifier) : self.linkObjects, (Qt.Key_L, Qt.ControlModifier|Qt.ShiftModifier) : self.unlinkObjects, } # Connect to key pressed signal from input context self.edit_inputcontext = naali.createInputContext("object-edit", 100) self.edit_inputcontext.SetTakeMouseEventsOverQt(True) #print "connecting to",self.edit_inputcontext self.edit_inputcontext.connect('KeyPressed(KeyEvent*)', self.on_keypressed) # Connect to mouse events self.edit_inputcontext.connect('MouseScroll(MouseEvent*)', self.on_mousescroll) self.edit_inputcontext.connect('MouseLeftPressed(MouseEvent*)', self.on_mouseleftpressed) self.edit_inputcontext.connect('MouseLeftReleased(MouseEvent*)', self.on_mouseleftreleased) self.edit_inputcontext.connect('MouseMove(MouseEvent*)', self.on_mousemove) self.resetManipulators() self.selection_rect = QRect() self.selection_rect_startpos = None r.c = self #this is for using objectedit from command.py self.selection_box_entity = None self.selection_box = None self.selection_box_inited = False self.menuToggleAction = None mainWindow = naali.ui.MainWindow() print mainWindow if mainWindow: menuBar = mainWindow.menuBar() self.menuToggleAction = menuBar.addAction("Manipulation Toggle") self.menuToggleAction.connect("triggered()", self.toggleEditingKeyTrigger) self.toggleEditing(False) """
def handle_entity_created(self, ent, changetype): # fun fact: since we are called for every entity and # self.finished checked only every "update" event, # this often cleans up >1 test objects (in case any # are left over from failed tests) ent_id = ent.Id ent = naali.getEntity(ent.Id) try: p = ent.netpos.Position except AttributeError: if 0: print "skip unplaceable entity" else: if 0: print "placeable entity created: pos", p.x(), p.y(), p.z() # for some reason z coord ends up as 22.25 if p.x() == 42.0 and p.y() == 42.0 and int(p.z()) == 22: r.logInfo("found created test prim, deleting (finished=%s)" % self.finished) r.getServerConnection().SendObjectDeRezPacket( ent_id, r.getTrashFolderId()) self.finished = True
def checkSceneActions(self): if(self.sceneActions==None): if(self.worldstream==None): self.worldstream = r.getServerConnection() uploadcap_url = self.worldstream.GetCapability('UploadScene') if(uploadcap_url==None or uploadcap_url==""): self.queue.put(('No upload capability', 'Check your rights to upload scene')) return False self.sceneActions = sceneactions.SceneActions(uploadcap_url, self) return True else: return True
def __init__(self): self.sels = [] Component.__init__(self) self.window = window.ObjectEditWindow(self) self.resetValues() self.worldstream = r.getServerConnection() self.mouse_events = { #r.LeftMouseClickPressed: self.LeftMousePressed, r.InWorldClick: self.LeftMousePressed, r.LeftMouseClickReleased: self.LeftMouseReleased, r.RightMouseClickPressed: self.RightMousePressed, r.RightMouseClickReleased: self.RightMouseReleased } self.shortcuts = { #r.PyObjectEditDeselect: self.deselect, r.PyObjectEditToggleMove: self.window.manipulator_move, #"ALT+M", #move r.PyObjectEditToggleScale: self.window.manipulator_scale, #"ALT+S" #, #scale r.Delete: self.deleteObject, r.Undo: self.undo, r.PyDuplicateDrag: self.duplicateStart, r.ObjectLink: self.linkObjects, r.ObjectUnlink: self.unlinkObjects, } self.resetManipulators() loader = QUiLoader() selectionfile = QFile(self.SELECTIONRECT) self.selection_rect = loader.load(selectionfile) rectprops = r.createUiWidgetProperty(2) #~ print type(rectprops), dir(rectprops) #print rectprops.WidgetType #uiprops.widget_name_ = "Selection Rect" #uiprops.my_size_ = QSize(width, height) #not needed anymore, uimodule reads it proxy = r.createUiProxyWidget(self.selection_rect, rectprops) uism = r.getUiSceneManager() uism.AddProxyWidget(proxy) proxy.setWindowFlags(0) #changing it to Qt::Widget self.selection_rect.setGeometry(0, 0, 0, 0) self.selection_rect_startpos = None r.c = self #this is for using objectedit from command.py
def checkSceneActions(self): if (self.sceneActions == None): if (self.worldstream == None): self.worldstream = r.getServerConnection() uploadcap_url = self.worldstream.GetCapability('UploadScene') if (uploadcap_url == None or uploadcap_url == ""): self.queue.put(('No upload capability', 'Check your rights to upload scene')) return False self.sceneActions = sceneactions.SceneActions(uploadcap_url, self) return True else: return True
def run(self): self.wait_time = int(self.config.get("wait_time", 60)) yield "doing login" self.timer_start() r.startLoginOpensim(user, pwd, server) yield "waiting for connection" conn = None while not self.elapsed(self.wait_time): conn = r.getServerConnection() if conn and conn.IsConnected(): break else: yield None else: return yield "waiting for avatar to appear" ent = None while not self.elapsed(self.wait_time): try: ent = naali.getUserAvatar() except ValueError: yield None else: break if not ent: yield "failure, avatar didn't appear" return print 'dynamic property stuff:' ent.GetOrCreateComponentRaw("EC_DynamicComponent") print ent, type(ent) d = ent.qent.EC_DynamicComponent val = 42.0 d.CreateAttribute("real", val) d.ComponentChanged(0) assert val == d.GetAttribute("real") val = 8.5 d.SetAttribute("real", val) d.ComponentChanged(0) assert val == d.GetAttribute("real") d.RemoveAttribute("real") d.ComponentChanged(0) yield "created, changed and removed attribute" r.exit() yield "success"
def __init__(self): self.sels = [] Component.__init__(self) self.window = window.ObjectEditWindow(self) self.resetValues() self.worldstream = r.getServerConnection() self.mouse_events = { #r.LeftMouseClickPressed: self.LeftMousePressed, r.InWorldClick: self.LeftMousePressed, r.LeftMouseClickReleased: self.LeftMouseReleased, r.RightMouseClickPressed: self.RightMousePressed, r.RightMouseClickReleased: self.RightMouseReleased } self.shortcuts = { #r.PyObjectEditDeselect: self.deselect, r.PyObjectEditToggleMove: self.window.manipulator_move,#"ALT+M", #move r.PyObjectEditToggleScale: self.window.manipulator_scale,#"ALT+S" #, #scale r.Delete: self.deleteObject, r.Undo: self.undo, r.PyDuplicateDrag: self.duplicateStart, r.ObjectLink: self.linkObjects, r.ObjectUnlink: self.unlinkObjects, } self.resetManipulators() loader = QUiLoader() selectionfile = QFile(self.SELECTIONRECT) self.selection_rect = loader.load(selectionfile) rectprops = r.createUiWidgetProperty(2) #~ print type(rectprops), dir(rectprops) #print rectprops.WidgetType #uiprops.widget_name_ = "Selection Rect" #uiprops.my_size_ = QSize(width, height) #not needed anymore, uimodule reads it proxy = r.createUiProxyWidget(self.selection_rect, rectprops) uism = r.getUiSceneManager() uism.AddProxyWidget(proxy) proxy.setWindowFlags(0) #changing it to Qt::Widget self.selection_rect.setGeometry(0,0,0,0) self.selection_rect_startpos = None r.c = self #this is for using objectedit from command.py
def publishScene(self, filename=""): print "publishScene" if(filename==""): filename = self.filename #print "publishing scene" if(self.worldstream==None): self.worldstream = r.getServerConnection() # try to get capability UploadScene uploadcap_url = self.worldstream.GetCapability('UploadScene') if(uploadcap_url==None or uploadcap_url==""): self.queue.put(('No upload capability', 'Check your rights to upload scene')) return if(self.uploader==None): self.uploader=SUploader(uploadcap_url, self) self.uploader.uploadScene(filename, self.dotScene, self.regionName, self.publishName) print "unloading dot scene" self.queue.put(('__unload__', '__unload__scene__')) self.queue.put(('scene upload', 'upload done'))
def publishScene(self, filename=""): print "publishScene" if (filename == ""): filename = self.filename #print "publishing scene" if (self.worldstream == None): self.worldstream = r.getServerConnection() # try to get capability UploadScene uploadcap_url = self.worldstream.GetCapability('UploadScene') if (uploadcap_url == None or uploadcap_url == ""): self.queue.put( ('No upload capability', 'Check your rights to upload scene')) return if (self.uploader == None): self.uploader = SUploader(uploadcap_url, self) self.uploader.uploadScene(filename, self.dotScene, self.regionName, self.publishName) print "unloading dot scene" self.queue.put(('__unload__', '__unload__scene__')) self.queue.put(('scene upload', 'upload done'))
def loadEstate(self): self.worldstream = r.getServerConnection() if self.worldstream==None: self.queue.put(("displayerror", "No worldstream, check if you're connected to server")) else: self.estatesettings = EstateSettings(self.worldstream, self) s = naali.getScene("World") self.ents = s.GetEntitiesWithComponentRaw("EC_OpenSimPresence") self.window.setRegionUsers(self.ents) #self.worldstream.SendEstateInfoRequestpacket() #!! self.worldstream.SendEstateOwnerMessage("getinfo", ()) self.updateSavedUsers() #self.updateSavedUsersTab() #test if rights to modify access cap = self.worldstream.GetCapability('EstateRegionSettingsModification') if cap==None or cap=="": self.window.setNoCapInfo() else: self.estatesettings.fetchEstates() self.window.resetCapInfo() pass
def on_worldstreamready(self, id): r.logInfo("Worldstream ready") self.worldstream = r.getServerConnection() return False # return False, we don't want to consume the event and not have it for others available
def __init__(self): self.sels = [] Component.__init__(self) self.window = window.ObjectEditWindow(self) self.resetValues() self.worldstream = r.getServerConnection() self.usingManipulator = False self.useLocalTransform = False self.cpp_python_handler = None self.left_button_down = False self.keypressed = False self.shortcuts = { (Qt.Key_Z, Qt.ControlModifier) : self.undo, (Qt.Key_Delete, Qt.NoModifier) : self.deleteObject, (Qt.Key_L, Qt.AltModifier) : self.linkObjects, (Qt.Key_L, Qt.ControlModifier|Qt.ShiftModifier) : self.unlinkObjects, } # Connect to key pressed signal from input context self.edit_inputcontext = naali.createInputContext("object-edit", 100) self.edit_inputcontext.SetTakeMouseEventsOverQt(True) self.edit_inputcontext.connect('KeyPressed(KeyEvent*)', self.on_keypressed) # Connect to mouse events self.edit_inputcontext.connect('MouseScroll(MouseEvent*)', self.on_mousescroll) self.edit_inputcontext.connect('MouseLeftPressed(MouseEvent*)', self.on_mouseleftpressed) self.edit_inputcontext.connect('MouseLeftReleased(MouseEvent*)', self.on_mouseleftreleased) self.edit_inputcontext.connect('MouseMove(MouseEvent*)', self.on_mousemove) self.resetManipulators() loader = QUiLoader() selectionfile = QFile(self.SELECTIONRECT) self.selection_rect = loader.load(selectionfile) #rectprops = r.createUiWidgetProperty(2) #~ print type(rectprops), dir(rectprops) #print rectprops.WidgetType #uiprops.widget_name_ = "Selection Rect" #uiprops.my_size_ = QSize(width, height) #not needed anymore, uimodule reads it proxy = r.createUiProxyWidget(self.selection_rect) uism = r.getUiSceneManager() uism.AddWidgetToScene(proxy) proxy.setWindowFlags(0) #changing it to Qt::Widget self.selection_rect.setGeometry(0,0,0,0) self.selection_rect_startpos = None r.c = self #this is for using objectedit from command.py # Get world building modules python handler self.cpp_python_handler = r.getQWorldBuildingHandler() if self.cpp_python_handler == None: r.logDebug("Could not aqquire world building service to object edit") else: # Connect signals self.cpp_python_handler.connect('ActivateEditing(bool)', self.on_activate_editing) self.cpp_python_handler.connect('ManipulationMode(int)', self.on_manupulation_mode_change) self.cpp_python_handler.connect('RemoveHightlight()', self.deselect_all) self.cpp_python_handler.connect('RotateValuesToNetwork(int, int, int)', self.changerot_cpp) self.cpp_python_handler.connect('ScaleValuesToNetwork(double, double, double)', self.changescale_cpp) self.cpp_python_handler.connect('PosValuesToNetwork(double, double, double)', self.changepos_cpp) self.cpp_python_handler.connect('CreateObject()', self.createObject) self.cpp_python_handler.connect('DuplicateObject()', self.duplicate) self.cpp_python_handler.connect('DeleteObject()', self.deleteObject) # Pass widgets self.cpp_python_handler.PassWidget("Mesh", self.window.mesh_widget) self.cpp_python_handler.PassWidget("Animation", self.window.animation_widget) self.cpp_python_handler.PassWidget("Sound", self.window.sound_widget) self.cpp_python_handler.PassWidget("Materials", self.window.materialTabFormWidget) # Check if build mode is active, required on python restarts self.on_activate_editing(self.cpp_python_handler.IsBuildingActive())
def printOutCurrentCap(self): if (self.worldstream == None): self.worldstream = r.getServerConnection() uploadcap_url = self.worldstream.GetCapability('UploadScene') print uploadcap_url
def printOutCurrentCap(self): if(self.worldstream==None): self.worldstream = r.getServerConnection() uploadcap_url = self.worldstream.GetCapability('UploadScene') print uploadcap_url
def __init__(self): self.sels = [] self.selmasses = {} Component.__init__(self) self.resetValues() self.worldstream = r.getServerConnection() self.usingManipulator = False self.useLocalTransform = False #self.cpp_python_handler = None self.left_button_down = False self.keypressed = False self.editing = False self.editingKeyTrigger = (Qt.Key_M, Qt.ShiftModifier) self.shortcuts = { self.editingKeyTrigger: self.toggleEditingKeyTrigger, (Qt.Key_R, Qt.NoModifier): self.rotateObject, (Qt.Key_S, Qt.NoModifier): self.scaleObject, (Qt.Key_G, Qt.NoModifier): self.translateObject, (Qt.Key_Tab, Qt.NoModifier): self.cycleManipulator, (Qt.Key_Z, Qt.ControlModifier): self.undo, (Qt.Key_Delete, Qt.NoModifier): self.deleteObject, (Qt.Key_L, Qt.AltModifier): self.linkObjects, (Qt.Key_L, Qt.ControlModifier | Qt.ShiftModifier): self.unlinkObjects, } # Connect to key pressed signal from input context self.edit_inputcontext = naali.createInputContext("object-edit", 100) self.edit_inputcontext.SetTakeMouseEventsOverQt(True) #print "connecting to",self.edit_inputcontext self.edit_inputcontext.connect('KeyPressed(KeyEvent*)', self.on_keypressed) # Connect to mouse events self.edit_inputcontext.connect('MouseScroll(MouseEvent*)', self.on_mousescroll) self.edit_inputcontext.connect('MouseLeftPressed(MouseEvent*)', self.on_mouseleftpressed) self.edit_inputcontext.connect('MouseLeftReleased(MouseEvent*)', self.on_mouseleftreleased) self.edit_inputcontext.connect('MouseMove(MouseEvent*)', self.on_mousemove) self.resetManipulators() self.selection_rect = QRect() self.selection_rect_startpos = None r.c = self #this is for using objectedit from command.py self.selection_box_entity = None self.selection_box = None self.selection_box_inited = False self.menuToggleAction = None mainWindow = naali.ui.MainWindow() print mainWindow if mainWindow: menuBar = mainWindow.menuBar() self.menuToggleAction = menuBar.addAction("Manipulation Toggle") self.menuToggleAction.connect("triggered()", self.toggleEditingKeyTrigger) self.toggleEditing(False) """
#~ max_ent = r.createEntity("cruncah1.mesh") #~ max_ent.scale = 0.3, 0.3, 0.3 #~ max_ent.pos = pos[0] + max.x, pos[1] + max.y, pos[2] + max.z if 0: #login - for running tests automatically print "starting opensim login" #user, pwd, server = "Test User", "test", "localhost:9000" user, pwd, server = "d d", "d", "world.evocativi.com:8002" r.startLoginOpensim(user, pwd, server) if 0: #getserver test #print dir(r) #print "YO", r.getTrashFolderId() #r.deleteObject(2351241440) worldstream = r.getServerConnection() #print worldstream, dir(worldstream), worldstream.SendObjectDeRezPacket worldstream.SendObjectDeRezPacket(2891301779, r.getTrashFolderId()) #ent = r.getEntity(r.getUserAvatarId()) #worldstream.SendObjectDeletePacket(1278500474, True) #~ ent = r.getEntity(2208825114) #~ print ent if 0: #undo tests e = r.getEntity(1752805599) print e.prim, e.uuid e_uuid = "d81432f2-28f3-4e05-ac8a-abb4b625dbe4-" worldstream = r.getServerConnection() #print worldstream, dir(worldstream), worldstream.SendObjectDeRezPacket worldstream.SendObjectUndoPacket(e.uuid)
def __init__(self): self.sels = [] Component.__init__(self) self.window = window.ObjectEditWindow(self) self.resetValues() self.worldstream = r.getServerConnection() self.usingManipulator = False self.useLocalTransform = False self.cpp_python_handler = None self.left_button_down = False self.keypressed = False self.shortcuts = { (Qt.Key_Z, Qt.ControlModifier): self.undo, (Qt.Key_Delete, Qt.NoModifier): self.deleteObject, (Qt.Key_L, Qt.AltModifier): self.linkObjects, (Qt.Key_L, Qt.ControlModifier | Qt.ShiftModifier): self.unlinkObjects, } # Connect to key pressed signal from input context self.edit_inputcontext = naali.createInputContext("object-edit", 100) self.edit_inputcontext.SetTakeMouseEventsOverQt(True) self.edit_inputcontext.connect('KeyPressed(KeyEvent*)', self.on_keypressed) # Connect to mouse events self.edit_inputcontext.connect('MouseScroll(MouseEvent*)', self.on_mousescroll) self.edit_inputcontext.connect('MouseLeftPressed(MouseEvent*)', self.on_mouseleftpressed) self.edit_inputcontext.connect('MouseLeftReleased(MouseEvent*)', self.on_mouseleftreleased) self.edit_inputcontext.connect('MouseMove(MouseEvent*)', self.on_mousemove) self.resetManipulators() loader = QUiLoader() selectionfile = QFile(self.SELECTIONRECT) self.selection_rect = loader.load(selectionfile) #rectprops = r.createUiWidgetProperty(2) #~ print type(rectprops), dir(rectprops) #print rectprops.WidgetType #uiprops.widget_name_ = "Selection Rect" #uiprops.my_size_ = QSize(width, height) #not needed anymore, uimodule reads it proxy = r.createUiProxyWidget(self.selection_rect) uism = naali.ui uism.AddWidgetToScene(proxy) proxy.setWindowFlags(0) #changing it to Qt::Widget self.selection_rect.setGeometry(0, 0, 0, 0) self.selection_rect_startpos = None r.c = self #this is for using objectedit from command.py # Get world building modules python handler self.cpp_python_handler = r.getQWorldBuildingHandler() if self.cpp_python_handler == None: r.logDebug( "Could not aqquire world building service to object edit") else: # Connect signals self.cpp_python_handler.connect('ActivateEditing(bool)', self.on_activate_editing) self.cpp_python_handler.connect('ManipulationMode(int)', self.on_manupulation_mode_change) self.cpp_python_handler.connect('RemoveHightlight()', self.deselect_all) self.cpp_python_handler.connect( 'RotateValuesToNetwork(int, int, int)', self.changerot_cpp) self.cpp_python_handler.connect( 'ScaleValuesToNetwork(double, double, double)', self.changescale_cpp) self.cpp_python_handler.connect( 'PosValuesToNetwork(double, double, double)', self.changepos_cpp) self.cpp_python_handler.connect('CreateObject()', self.createObject) self.cpp_python_handler.connect('DuplicateObject()', self.duplicate) self.cpp_python_handler.connect('DeleteObject()', self.deleteObject) # Pass widgets self.cpp_python_handler.PassWidget("Mesh", self.window.mesh_widget) self.cpp_python_handler.PassWidget("Animation", self.window.animation_widget) self.cpp_python_handler.PassWidget("Sound", self.window.sound_widget) self.cpp_python_handler.PassWidget( "Materials", self.window.materialTabFormWidget) # Check if build mode is active, required on python restarts self.on_activate_editing( self.cpp_python_handler.IsBuildingActive())
if 0: #testing the removal of canvases canvas = r.c.canvas modu = r.getQtModule() #print dir(modu) bool = modu.RemoveCanvasFromControlBar(canvas) print bool if 0: print "Testing..." e = r.getEntity(8880001) print e start_x = e.pos[0] start_y = e.pos[1] start_z = e.pos[2] worldstream = r.getServerConnection() worldstream.SendObjectAddPacket(start_x, start_y, start_z) if 0: #getUserAvatar ent = naali.getUserAvatar() print "User's avatar_id:", ent.id #print "Avatar's mesh_name:", ent.mesh.GetMeshName(0) #ent.mesh = "cruncah1.mesh" if 0: print r.getCameraUp() print r.getCameraRight() if 0: #test changing the mesh asset a prim is using ent_id = 2088826433 #print arkku_id, type(arkku_id)