def build_node(_session, _el, _type): """Builds SCgNode based on sc-element """ # check if it isn't content node _cnt_type = sc_utils.getContentFormat(_session, _el) if _cnt_type is not None: obj = objects.ObjectSheet() obj.hideContent() obj._setScAddr(_el) # creating viewer try: logic = core.Kernel.getSingleton().createViewer(_cnt_type) obj.setLogic(logic) except exceptions.UnsupportedFormatError: core.Kernel.getSingleton().logManager.logWarning("Format %s not supported for viewing" % (_session.get_idtf(_cnt_type))) return obj else: type_name = "node/const/elem" # creating type name based on element type _const = getConstStr(_type) _stype = "elem" if sc_utils.checkIncToSets(_session, _el, [keynodes.info.stype_sheaf], sc.SC_A_CONST | sc.SC_POS | sc.SC_PERMANENT): _stype = "sheaf" elif sc_utils.checkIncToSets(_session, _el, [keynodes.info.stype_ext_obj_abstract], sc.SC_A_CONST | sc.SC_POS | sc.SC_PERMANENT): _stype = "abstract" elif sc_utils.checkIncToSets(_session, _el, [keynodes.info.stype_bin_orient_norole_rel], sc.SC_A_CONST | sc.SC_POS | sc.SC_PERMANENT): _stype = "binary" elif sc_utils.checkIncToSets(_session, _el, [keynodes.info.stype_ext_obj_real], sc.SC_A_CONST | sc.SC_POS | sc.SC_PERMANENT): _stype = "real" elif sc_utils.checkIncToSets(_session, _el, [keynodes.info.stype_bin_orient_role_rel], sc.SC_A_CONST | sc.SC_POS | sc.SC_PERMANENT): _stype = "role" elif sc_utils.checkIncToSets(_session, _el, [keynodes.info.stype_struct], sc.SC_A_CONST | sc.SC_POS | sc.SC_PERMANENT): _stype = "struct" elif sc_utils.checkIncToSets(_session, _el, [keynodes.info.stype_concept_norel], sc.SC_A_CONST | sc.SC_POS | sc.SC_PERMANENT): _stype = "term" if _const is not None: type_name = "node/%s/%s" % (_const, _stype) else: type_name = "node/elem" obj = scg_alphabet.createSCgNode(type_name) obj._setScAddr(_el) return obj return None
def __init__(self, _logic): BaseEditMode.__init__(self, _logic, "Edit mode") # mouse objects for line creation mode self.line_mode_beg = None self.line_mode_obj = scg_alphabet.createSCgNode('mnode') self.line_mode_obj.setScale(ogre.Vector3(0.1, 0.1, 0.1)) self.line_mode_obj.setPosition(ogre.Vector3(0, 0, 0)) self.line_mode_line = scg_alphabet.createSCgPair('mpair') self.line_mode_line.setEnd(self.line_mode_obj) self.line_mode_line.setState(objects.Object.OS_Normal) # highlighted object self.highlighted_obj = None # widgets self.type_combo = None self.content_combo = None # object we worked on in current state self.object_active = None # current editor state self.state = SCgEditMode.ES_None # current mouse position self.mouse_pos = (0, 0) # visual menu # self.vis_menu = None # self._createVisualMenu() # 3d navigation mode self.rotX = 0.0 self.rotY = 0.0 self.move = ogre.Vector3(0.0, 0.0, 0.0) self.moveSpeed = 5.0 self.moveScale = 5.0 self.animationState = None # tool bar # self.toolbar = ToolBar() # self.toolbar.setVisible(False) # self.toolbar.setEnabled(True) # for idx in xrange(self.EM_Count): # button = self.toolbar.appendButton("", "scg_toolbar_icons.png", idx, (32, 32), (0, 0, 256, 32)) # button.setCheckable(True) # button.setUserData(idx) # button.eventPush = self._onToolBarButtonPush # # self.toolbar.setButtonSize(38) #contour points self.contour_points = [] self.contour_lines = []
def _createNode(self, _pos, _type = "node/const/elem"): """Creates node in specified position @param _pos: position tuple (x,y) @type _pos: tuple @param _type: node type @type _type: str @return: created node """ node = scg_alphabet.createSCgNode(_type) node.setState(objects.Object.OS_Normal) sheet = self._getSheet() sheet.addChild(node) if render_engine.viewMode == render_engine.Mode_Isometric: node.setPosition(render_engine.pos2dTo3dIsoPos(_pos)) else: # raise RuntimeError("Not implemented 3d mode in scg editor") node.setPosition(render_engine.pos2dToViewPortRay(_pos).getPoint(25.0)) return node
def __init__(self, _logic): BaseEditMode.__init__(self, _logic, "Edit mode") # mouse objects for line creation mode self.line_mode_beg = None self.line_mode_obj = scg_alphabet.createSCgNode('mnode') self.line_mode_obj.setScale(ogre.Vector3(0.1, 0.1, 0.1)) self.line_mode_obj.setPosition(ogre.Vector3(0, 0, 0)) self.line_mode_line = scg_alphabet.createSCgPair('mpair') self.line_mode_line.setEnd(self.line_mode_obj) self.line_mode_line.setState(objects.Object.OS_Normal) # highlighted object self.highlighted_obj = None # widgets self.type_combo = None self.content_combo = None # object we worked on in current state self.object_active = None # current editor state self.state = SCgEditMode.ES_None # current mouse position self.mouse_pos = (0, 0) # visual menu # self.vis_menu = None # self._createVisualMenu() # 3d navigation mode self.rotX = 0.0 self.rotY = 0.0 self.move = ogre.Vector3(0.0, 0.0, 0.0) self.moveSpeed = 5.0 self.moveScale = 5.0 self.animationState = None
def __init__(self, _logic): BaseEditMode.__init__(self, _logic, "Edit mode") # mouse objects for line creation mode self.line_mode_beg = None self.line_mode_obj = scg_alphabet.createSCgNode('mnode') self.line_mode_obj.setScale(ogre.Vector3(0.1, 0.1, 0.1)) self.line_mode_obj.setPosition(ogre.Vector3(0, 0, 0)) self.line_mode_line = scg_alphabet.createSCgPair('mpair') self.line_mode_line.setEnd(self.line_mode_obj) self.line_mode_line.setState(objects.Object.OS_Normal) # highlighted object self.highlighted_obj = None # widgets self.type_combo = None self.content_combo = None # object we worked on in current state self.object_active = None # current editor state self.state = SCgEditMode.ES_None # current mouse position self.mouse_pos = (0, 0) # visual menu self.vis_menu = None self._createVisualMenu() # 3d navigation mode self.rotX = 0.0 self.rotY = 0.0 self.move = ogre.Vector3(0.0, 0.0, 0.0) self.moveSpeed = 5.0 self.moveScale = 5.0 self.animationState = None
def _onKeyPressed(self, _evt): """Key pressed event """ BaseEditMode._onKeyPressed(self, _evt) key = _evt.key if key == ois.KC_LSHIFT: self._shift = True elif key == ois.KC_T: self._handlerChangeType() elif key == ois.KC_C: self._handlerChangeContent() elif key == ois.KC_H: self._handlerContentToogle() elif key == ois.KC_SPACE: layout_group = self._logic._getSheet().getLayoutGroup() if layout_group is not None: if layout_group.isPlaying(): layout_group.stop() else: layout_group.play() elif _evt.key == ois.KC_F9: if render_engine.viewMode is render_engine.Mode_Isometric: self._logic._getSheet().changeMode(render_engine.Mode_Perspective) else: self._logic._getSheet().changeMode(render_engine.Mode_Isometric) self.line_mode_line._needModeUpdate() # test code elif _evt.key == ois.KC_F3:# and 0: self._logic._getSheet().setLayoutGroup(None) elements = [] node_center = scg_alphabet.createSCgNode("node/const/binary") node_center.setText(u"центр*") elements.append(node_center) node_tchk_O = scg_alphabet.createSCgNode("node/const/real") node_tchk_O.setText(u"Тчк О") elements.append(node_tchk_O) node_tchk_A = scg_alphabet.createSCgNode("node/const/real") node_tchk_A.setText(u"Тчк А") elements.append(node_tchk_A) node_tchk_B = scg_alphabet.createSCgNode("node/const/real") node_tchk_B.setText(u"Тчк B") elements.append(node_tchk_B) node_tchk_C = scg_alphabet.createSCgNode("node/const/real") node_tchk_C.setText(u"Тчк C") elements.append(node_tchk_C) node_tchk_A1 = scg_alphabet.createSCgNode("node/const/real") node_tchk_A1.setText(u"Тчк А1") elements.append(node_tchk_A1) node_tchk_B1 = scg_alphabet.createSCgNode("node/const/real") node_tchk_B1.setText(u"Тчк B1") elements.append(node_tchk_B1) node_tchk_C1 = scg_alphabet.createSCgNode("node/const/real") node_tchk_C1.setText(u"Тчк C1") elements.append(node_tchk_C1) node_tchk_A2 = scg_alphabet.createSCgNode("node/const/real") node_tchk_A2.setText(u"Тчк А2") elements.append(node_tchk_A2) node_tchk_B2 = scg_alphabet.createSCgNode("node/const/real") node_tchk_B2.setText(u"Тчк B2") elements.append(node_tchk_B2) node_tchk_C2 = scg_alphabet.createSCgNode("node/const/real") node_tchk_C2.setText(u"Тчк C2") elements.append(node_tchk_C2) node_okr_OA2 = scg_alphabet.createSCgNode("node/const/struct") node_okr_OA2.setText(u"Окр(ТчкO;ТчкA2)") elements.append(node_okr_OA2) node_okr = scg_alphabet.createSCgNode("node/const/term") node_okr.setText(u"окружность") elements.append(node_okr) node_otr = scg_alphabet.createSCgNode("node/const/term") node_otr.setText(u"отрезок") elements.append(node_otr) node_otr_AA1 = scg_alphabet.createSCgNode("node/const/struct") node_otr_AA1.setText(u"Отр(ТчкА;ТчкА1)") elements.append(node_otr_AA1) node_otr_BB1 = scg_alphabet.createSCgNode("node/const/struct") node_otr_BB1.setText(u"Отр(ТчкB;ТчкB1)") elements.append(node_otr_BB1) node_otr_CC1 = scg_alphabet.createSCgNode("node/const/struct") node_otr_CC1.setText(u"Отр(ТчкC;ТчкC1)") elements.append(node_otr_CC1) node_biss = scg_alphabet.createSCgNode("node/const/binary") node_biss.setText(u"биссектриса*") elements.append(node_biss) node_trian = scg_alphabet.createSCgNode("node/const/term") node_trian.setText(u"треугольник") elements.append(node_trian) node_trian_ABC = scg_alphabet.createSCgNode("node/const/struct") node_trian_ABC.setText(u"Треугк(ТчкА;ТчкB;ТчкC)") elements.append(node_trian_ABC) node_vpis = scg_alphabet.createSCgNode("node/const/binary") node_vpis.setText(u"быть вписанным*") elements.append(node_vpis) node_versh_ = scg_alphabet.createSCgNode("node/const/role") node_versh_.setText(u"вершина_") elements.append(node_versh_) node_point = scg_alphabet.createSCgNode("node/const/term") node_point.setText(u"точка") elements.append(node_point) # link nodes points = [node_tchk_O, node_tchk_A, node_tchk_B, node_tchk_C, node_tchk_A1, node_tchk_B1, node_tchk_C1, node_tchk_A2, node_tchk_B2, node_tchk_C2] for pt in points: arc = scg_alphabet.createSCgPair("pair/pos/-/orient/const") arc.setBegin(node_point) arc.setEnd(pt) elements.append(arc) otrs = [node_otr_AA1, node_otr_BB1, node_otr_CC1] for otr in otrs: arc = scg_alphabet.createSCgPair("pair/pos/-/orient/const") arc.setBegin(node_otr) arc.setEnd(otr) arc2 = scg_alphabet.createSCgPair("pair/pos/-/orient/const") arc2.setBegin(otr) arc2.setEnd(node_tchk_O) arc3 = scg_alphabet.createSCgPair("pair/-/-/orient/const") arc3.setBegin(node_trian_ABC) arc3.setEnd(otr) arc4 = scg_alphabet.createSCgPair("pair/pos/-/orient/const") arc4.setBegin(node_biss) arc4.setEnd(arc3) elements.append(arc) elements.append(arc2) elements.append(arc3) elements.append(arc4) vershs = [node_tchk_A, node_tchk_B, node_tchk_C] for ver in vershs: arc = scg_alphabet.createSCgPair("pair/pos/-/orient/const") arc.setBegin(node_trian_ABC) arc.setEnd(ver) arc2 = scg_alphabet.createSCgPair("pair/pos/-/orient/const") arc2.setBegin(node_versh_) arc2.setEnd(arc) elements.append(arc) elements.append(arc2) points = [node_tchk_A2, node_tchk_B2, node_tchk_C2] for pt in points: arc = scg_alphabet.createSCgPair("pair/pos/-/orient/const") arc.setBegin(node_okr_OA2) arc.setEnd(pt) elements.append(arc) arc = scg_alphabet.createSCgPair("pair/pos/-/orient/const") arc.setBegin(node_trian) arc.setEnd(node_trian_ABC) elements.append(arc) arc = scg_alphabet.createSCgPair("pair/pos/-/orient/const") arc.setBegin(node_okr) arc.setEnd(node_okr_OA2) elements.append(arc) arc = scg_alphabet.createSCgPair("pair/-/-/orient/const") arc.setBegin(node_trian_ABC) arc.setEnd(node_okr_OA2) elements.append(arc) arc2 = scg_alphabet.createSCgPair("pair/pos/-/orient/const") arc2.setBegin(node_vpis) arc2.setEnd(arc) elements.append(arc2) arc = scg_alphabet.createSCgPair("pair/-/-/orient/const") arc.setBegin(node_okr_OA2) arc.setEnd(node_tchk_O) elements.append(arc) arc2 = scg_alphabet.createSCgPair("pair/pos/-/orient/const") arc2.setBegin(node_center) arc2.setEnd(arc) elements.append(arc2) self._logic._getSheet().addChildList(elements) # go to 3d mode if render_engine.viewMode is render_engine.Mode_Isometric: self._logic._getSheet().changeMode(render_engine.Mode_Perspective) # disable layout # layout_group = self._logic._getSheet().getLayoutGroup() # layout_group.stop() # setup node positions manualy node_trian.setPosition(ogre.Vector3(0.0, 0.0, 3.0)) node_otr_AA1.setPosition(ogre.Vector3(-5.0, 0.0, 2.0)) node_otr_BB1.setPosition(ogre.Vector3(-5.0, 0.0, 0.0)) node_otr_CC1.setPosition(ogre.Vector3(-5.0, 0.0, -2.0)) node_otr.setPosition(ogre.Vector3(-8.0, 0.0, -2.0)) node_biss.setPosition(ogre.Vector3(-1.0, 0.0, -2.0)) node_tchk_O.setPosition(ogre.Vector3(-10.0, 0.0, 0.0)) node_okr_OA2.setPosition(ogre.Vector3(-5, 3.0, 0.0)) node_okr.setPosition(ogre.Vector3(-5, 6.0, 0.0)) node_center.setPosition(ogre.Vector3(-8.0, 3.0, 0.0)) node_vpis.setPosition(ogre.Vector3(-2.0, 3.0, 0.0)) node_point.setPosition(ogre.Vector3(3.0, 2.0, -7.0)) node_tchk_A.setPosition(ogre.Vector3(5.0, 3.0, 0.0)) node_tchk_B.setPosition(ogre.Vector3(5.0, 0.0, 0.0)) node_tchk_C.setPosition(ogre.Vector3(5.0, -3.0, 0.0)) node_versh_.setPosition(ogre.Vector3(5.0, 2.0, 3.0)) node_tchk_A2.setPosition(ogre.Vector3(1.0, 3.0, -8.0)) node_tchk_B2.setPosition(ogre.Vector3(1.0, 0.0, -8.0)) node_tchk_C2.setPosition(ogre.Vector3(1.0, -3.0, -8.0)) node_tchk_A1.setPosition(ogre.Vector3(5.0, 3.0, -4.0)) node_tchk_B1.setPosition(ogre.Vector3(5.0, 0.0, -4.0)) node_tchk_C1.setPosition(ogre.Vector3(5.0, -3.0, -4.0)) # configure camera camera = render_engine._ogreCamera cameraNode = render_engine._ogreCameraNode sceneManager = render_engine._ogreSceneManager # set up spline animation of node animation = sceneManager.createAnimation('CameraTrack', 23) animation.interpolationMode = ogre.Animation.IM_SPLINE animationTrack = animation.createNodeTrack(0, cameraNode) key = animationTrack.createNodeKeyFrame(0) key.setTranslate((0.441312, -0.0484183, 15.4575)) key.setRotation((0.999381, 1.45161e-009, 0.0351611, 0.0)) key = animationTrack.createNodeKeyFrame(3) key.setTranslate((-3.84972, -9.9938, 1.59091)) key.setRotation((0.731662, 0.669154, 0.0960006, -0.0877989)) key = animationTrack.createNodeKeyFrame(7) key.setTranslate((-3.84972, -9.9938, 1.59091)) key.setRotation((0.731662, 0.669154, 0.0960006, -0.0877989)) key = animationTrack.createNodeKeyFrame(10) key.setTranslate((-4.48132, 4.00986, 9.80443)) key.setRotation((0.997827, -0.0657508, -0.00452801, -0.00029836)) key = animationTrack.createNodeKeyFrame(14) key.setTranslate((-4.48132, 4.00986, 9.80443)) key.setRotation((0.997827, -0.0657508, -0.00452801, -0.00029836)) key = animationTrack.createNodeKeyFrame(17) key.setTranslate((-0.88816, 1.8146, 6.93933)) key.setRotation((0.929973, -0.102752, -0.350851, -0.0387652)) key = animationTrack.createNodeKeyFrame(20) key.setTranslate((-0.88816, 1.8146, 6.93933)) key.setRotation((0.929973, -0.102752, -0.350851, -0.0387652)) self.animationState = sceneManager.createAnimationState('CameraTrack') self.animationState.setEnabled (True) #test elif key == ois.KC_F: # make selected sheet as root if self.state == SCgEditMode.ES_None: sheet = self._logic._getSheet() objs = sheet.getSelected() # getting object for making root if len(objs) == 1: obj = objs[0] if type(obj) == objects.ObjectSheet: render_engine._kernel.setRootSheet(obj) elif key == ois.KC_ESCAPE: # revert state to default self.revertState() elif key == ois.KC_1: import suit.core.layout.LayoutGroupForceDirected as layout self._logic._getSheet().setLayoutGroup(layout.LayoutGroupForceSimple()) elif key == ois.KC_2: import suit.core.layout.LayoutGroupForceDirected2 as layout self._logic._getSheet().setLayoutGroup(layout.LayoutGroupForceSimple()) # elif key == ois.KC_K: # self._logic._createContour([ogre.Vector3(-3, -2, 0), # ogre.Vector3(0, -3, 0), # ogre.Vector3(3, -1, 0), # ogre.Vector3(-3, 2, 0) # ]) return False
def _onKeyPressed(self, _evt): """Key pressed event """ BaseEditMode._onKeyPressed(self, _evt) key = _evt.key if key == ois.KC_LSHIFT: self._shift = True elif key == ois.KC_T: self._handlerChangeType() elif key == ois.KC_SPACE: layout_group = self._logic._getSheet().getLayoutGroup() if layout_group is not None: if layout_group.isPlaying(): layout_group.stop() else: layout_group.play() elif _evt.key == ois.KC_F9: if render_engine.viewMode is render_engine.Mode_Isometric: self._logic._getSheet().changeMode( render_engine.Mode_Perspective) else: self._logic._getSheet().changeMode( render_engine.Mode_Isometric) self.line_mode_line._needModeUpdate() # test code elif _evt.key == ois.KC_F3 and 0: self._logic._getSheet().setLayoutGroup(None) elements = [] node_center = scg_alphabet.createSCgNode("node/const/binary") node_center.setText(u"центр*") elements.append(node_center) node_tchk_O = scg_alphabet.createSCgNode("node/const/real") node_tchk_O.setText(u"Тчк О") elements.append(node_tchk_O) node_tchk_A = scg_alphabet.createSCgNode("node/const/real") node_tchk_A.setText(u"Тчк А") elements.append(node_tchk_A) node_tchk_B = scg_alphabet.createSCgNode("node/const/real") node_tchk_B.setText(u"Тчк B") elements.append(node_tchk_B) node_tchk_C = scg_alphabet.createSCgNode("node/const/real") node_tchk_C.setText(u"Тчк C") elements.append(node_tchk_C) node_tchk_A1 = scg_alphabet.createSCgNode("node/const/real") node_tchk_A1.setText(u"Тчк А1") elements.append(node_tchk_A1) node_tchk_B1 = scg_alphabet.createSCgNode("node/const/real") node_tchk_B1.setText(u"Тчк B1") elements.append(node_tchk_B1) node_tchk_C1 = scg_alphabet.createSCgNode("node/const/real") node_tchk_C1.setText(u"Тчк C1") elements.append(node_tchk_C1) node_tchk_A2 = scg_alphabet.createSCgNode("node/const/real") node_tchk_A2.setText(u"Тчк А2") elements.append(node_tchk_A2) node_tchk_B2 = scg_alphabet.createSCgNode("node/const/real") node_tchk_B2.setText(u"Тчк B2") elements.append(node_tchk_B2) node_tchk_C2 = scg_alphabet.createSCgNode("node/const/real") node_tchk_C2.setText(u"Тчк C2") elements.append(node_tchk_C2) node_okr_OA2 = scg_alphabet.createSCgNode("node/const/struct") node_okr_OA2.setText(u"Окр(ТчкO;ТчкA2)") elements.append(node_okr_OA2) node_okr = scg_alphabet.createSCgNode("node/const/term") node_okr.setText(u"окружность") elements.append(node_okr) node_otr = scg_alphabet.createSCgNode("node/const/term") node_otr.setText(u"отрезок") elements.append(node_otr) node_otr_AA1 = scg_alphabet.createSCgNode("node/const/struct") node_otr_AA1.setText(u"Отр(ТчкА;ТчкА1)") elements.append(node_otr_AA1) node_otr_BB1 = scg_alphabet.createSCgNode("node/const/struct") node_otr_BB1.setText(u"Отр(ТчкB;ТчкB1)") elements.append(node_otr_BB1) node_otr_CC1 = scg_alphabet.createSCgNode("node/const/struct") node_otr_CC1.setText(u"Отр(ТчкC;ТчкC1)") elements.append(node_otr_CC1) node_biss = scg_alphabet.createSCgNode("node/const/binary") node_biss.setText(u"биссектриса*") elements.append(node_biss) node_trian = scg_alphabet.createSCgNode("node/const/term") node_trian.setText(u"треугольник") elements.append(node_trian) node_trian_ABC = scg_alphabet.createSCgNode("node/const/struct") node_trian_ABC.setText(u"Треугк(ТчкА;ТчкB;ТчкC)") elements.append(node_trian_ABC) node_vpis = scg_alphabet.createSCgNode("node/const/binary") node_vpis.setText(u"быть вписанным*") elements.append(node_vpis) node_versh_ = scg_alphabet.createSCgNode("node/const/role") node_versh_.setText(u"вершина_") elements.append(node_versh_) node_point = scg_alphabet.createSCgNode("node/const/term") node_point.setText(u"точка") elements.append(node_point) # link nodes points = [ node_tchk_O, node_tchk_A, node_tchk_B, node_tchk_C, node_tchk_A1, node_tchk_B1, node_tchk_C1, node_tchk_A2, node_tchk_B2, node_tchk_C2 ] for pt in points: arc = scg_alphabet.createSCgPair("pair/pos/-/orient/const") arc.setBegin(node_point) arc.setEnd(pt) elements.append(arc) otrs = [node_otr_AA1, node_otr_BB1, node_otr_CC1] for otr in otrs: arc = scg_alphabet.createSCgPair("pair/pos/-/orient/const") arc.setBegin(node_otr) arc.setEnd(otr) arc2 = scg_alphabet.createSCgPair("pair/pos/-/orient/const") arc2.setBegin(otr) arc2.setEnd(node_tchk_O) arc3 = scg_alphabet.createSCgPair("pair/-/-/orient/const") arc3.setBegin(node_trian_ABC) arc3.setEnd(otr) arc4 = scg_alphabet.createSCgPair("pair/pos/-/orient/const") arc4.setBegin(node_biss) arc4.setEnd(arc3) elements.append(arc) elements.append(arc2) elements.append(arc3) elements.append(arc4) vershs = [node_tchk_A, node_tchk_B, node_tchk_C] for ver in vershs: arc = scg_alphabet.createSCgPair("pair/pos/-/orient/const") arc.setBegin(node_trian_ABC) arc.setEnd(ver) arc2 = scg_alphabet.createSCgPair("pair/pos/-/orient/const") arc2.setBegin(node_versh_) arc2.setEnd(arc) elements.append(arc) elements.append(arc2) points = [node_tchk_A2, node_tchk_B2, node_tchk_C2] for pt in points: arc = scg_alphabet.createSCgPair("pair/pos/-/orient/const") arc.setBegin(node_okr_OA2) arc.setEnd(pt) elements.append(arc) arc = scg_alphabet.createSCgPair("pair/pos/-/orient/const") arc.setBegin(node_trian) arc.setEnd(node_trian_ABC) elements.append(arc) arc = scg_alphabet.createSCgPair("pair/pos/-/orient/const") arc.setBegin(node_okr) arc.setEnd(node_okr_OA2) elements.append(arc) arc = scg_alphabet.createSCgPair("pair/-/-/orient/const") arc.setBegin(node_trian_ABC) arc.setEnd(node_okr_OA2) elements.append(arc) arc2 = scg_alphabet.createSCgPair("pair/pos/-/orient/const") arc2.setBegin(node_vpis) arc2.setEnd(arc) elements.append(arc2) arc = scg_alphabet.createSCgPair("pair/-/-/orient/const") arc.setBegin(node_okr_OA2) arc.setEnd(node_tchk_O) elements.append(arc) arc2 = scg_alphabet.createSCgPair("pair/pos/-/orient/const") arc2.setBegin(node_center) arc2.setEnd(arc) elements.append(arc2) self._logic._getSheet().addChildList(elements) # go to 3d mode if render_engine.viewMode is render_engine.Mode_Isometric: self._logic._getSheet().changeMode( render_engine.Mode_Perspective) # disable layout # layout_group = self._logic._getSheet().getLayoutGroup() # layout_group.stop() # setup node positions manualy node_trian.setPosition(ogre.Vector3(0.0, 0.0, 3.0)) node_otr_AA1.setPosition(ogre.Vector3(-5.0, 0.0, 2.0)) node_otr_BB1.setPosition(ogre.Vector3(-5.0, 0.0, 0.0)) node_otr_CC1.setPosition(ogre.Vector3(-5.0, 0.0, -2.0)) node_otr.setPosition(ogre.Vector3(-8.0, 0.0, -2.0)) node_biss.setPosition(ogre.Vector3(-1.0, 0.0, -2.0)) node_tchk_O.setPosition(ogre.Vector3(-10.0, 0.0, 0.0)) node_okr_OA2.setPosition(ogre.Vector3(-5, 3.0, 0.0)) node_okr.setPosition(ogre.Vector3(-5, 6.0, 0.0)) node_center.setPosition(ogre.Vector3(-8.0, 3.0, 0.0)) node_vpis.setPosition(ogre.Vector3(-2.0, 3.0, 0.0)) node_point.setPosition(ogre.Vector3(3.0, 2.0, -7.0)) node_tchk_A.setPosition(ogre.Vector3(5.0, 3.0, 0.0)) node_tchk_B.setPosition(ogre.Vector3(5.0, 0.0, 0.0)) node_tchk_C.setPosition(ogre.Vector3(5.0, -3.0, 0.0)) node_versh_.setPosition(ogre.Vector3(5.0, 2.0, 3.0)) node_tchk_A2.setPosition(ogre.Vector3(1.0, 3.0, -8.0)) node_tchk_B2.setPosition(ogre.Vector3(1.0, 0.0, -8.0)) node_tchk_C2.setPosition(ogre.Vector3(1.0, -3.0, -8.0)) node_tchk_A1.setPosition(ogre.Vector3(5.0, 3.0, -4.0)) node_tchk_B1.setPosition(ogre.Vector3(5.0, 0.0, -4.0)) node_tchk_C1.setPosition(ogre.Vector3(5.0, -3.0, -4.0)) # configure camera camera = render_engine._ogreCamera cameraNode = render_engine._ogreCameraNode sceneManager = render_engine._ogreSceneManager # set up spline animation of node animation = sceneManager.createAnimation('CameraTrack', 23) animation.interpolationMode = ogre.Animation.IM_SPLINE animationTrack = animation.createNodeTrack(0, cameraNode) key = animationTrack.createNodeKeyFrame(0) key.setTranslate((0.441312, -0.0484183, 15.4575)) key.setRotation((0.999381, 1.45161e-009, 0.0351611, 0.0)) key = animationTrack.createNodeKeyFrame(3) key.setTranslate((-3.84972, -9.9938, 1.59091)) key.setRotation((0.731662, 0.669154, 0.0960006, -0.0877989)) key = animationTrack.createNodeKeyFrame(7) key.setTranslate((-3.84972, -9.9938, 1.59091)) key.setRotation((0.731662, 0.669154, 0.0960006, -0.0877989)) key = animationTrack.createNodeKeyFrame(10) key.setTranslate((-4.48132, 4.00986, 9.80443)) key.setRotation((0.997827, -0.0657508, -0.00452801, -0.00029836)) key = animationTrack.createNodeKeyFrame(14) key.setTranslate((-4.48132, 4.00986, 9.80443)) key.setRotation((0.997827, -0.0657508, -0.00452801, -0.00029836)) key = animationTrack.createNodeKeyFrame(17) key.setTranslate((-0.88816, 1.8146, 6.93933)) key.setRotation((0.929973, -0.102752, -0.350851, -0.0387652)) key = animationTrack.createNodeKeyFrame(20) key.setTranslate((-0.88816, 1.8146, 6.93933)) key.setRotation((0.929973, -0.102752, -0.350851, -0.0387652)) self.animationState = sceneManager.createAnimationState( 'CameraTrack') self.animationState.setEnabled(True) #test elif key == ois.KC_F: # make selected sheet as root if self.state == SCgEditMode.ES_None: sheet = self._logic._getSheet() objs = sheet.getSelected() # getting object for making root if len(objs) == 1: obj = objs[0] if type(obj) == objects.ObjectSheet: render_engine._kernel.setRootSheet(obj) elif key == ois.KC_ESCAPE: # revert state to default self.revertState() elif key == ois.KC_K: self._logic._createContour([ ogre.Vector3(-3, -2, 0), ogre.Vector3(0, -3, 0), ogre.Vector3(3, -1, 0), ogre.Vector3(-3, 2, 0) ]) return False