def _onKeyPressed(self, _evt): """Keyboard button pressed event """ if BaseEditMode._onKeyPressed(self, _evt): return True if _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.navigation = False # create link between objects if _evt.key == ois.KC_SPACE: _args = self._logic._getSheet().getSelected() if len(_args) == 2 and isinstance(_args[0], chem_objects.ChemistryAtom) and isinstance(_args[1], chem_objects.ChemistryAtom): self._logic.addLink(_args[0], _args[1]) # create random element if _evt.key == ois.KC_F1: import random atoms_num = random.randint(50, 100) links_num = random.randint(0, atoms_num) names = self.type_bindings.values() atoms = [] for a in xrange(atoms_num): _atom = self._logic.addAtom(ogre.Vector3(float(random.randint(-10, 10)), float(random.randint(-10, 10)), 0.0), 'C') if len(atoms) > 0: a1 = random.randint(0, len(atoms) - 1) self._logic.addLink(atoms[a1], _atom) atoms.append(_atom) # for l in xrange(links_num): # a1 = random.randint(0, atoms_num - 1) # a2 = random.randint(0, atoms_num - 1) # while a1 == a2: # a2 = random.randint(0, atoms_num - 1) # self._logic.addLink(atoms[a1], atoms[a2]) # test type changing if self.type_bindings.has_key(_evt.key): self.setSelectionName(self.type_bindings[_evt.key]) return False
def _onKeyPressed(self, _evt): """Event on key pressed """ if _evt.key == ois.KC_DELETE: return True if BaseEditMode._onKeyPressed(self, _evt): return True key = _evt.key if key == ois.KC_C and isinstance(self._logic._getSheet().getSelected()[0], GeometryPoint): self.state = GeometryEditMode.ES_CircleCreate self.active_object = self._logic.createCircle(self._logic._getSheet().getSelected()[0], 3.0) self._logic._getSheet().addChild(self.active_object) if key == ois.KC_T: selected = self._logic._getSheet().getSelected() if len(selected) == 3: # check if selected objects are lines lines = True for obj in selected: if not isinstance(obj, GeometryLineSection): lines = False if lines: triangle = self._logic.createTriangle(selected) self._logic._getSheet().addChild(triangle) if key == ois.KC_L: selected = self._logic._getSheet().getSelected() if len(selected) > 0 and isinstance(selected[0], GeometryLineSection): self.state = GeometryEditMode.ES_LengthChange self.length_changer = TextInput(selected[0], self._length_change_callback, str(selected[0].getLength())) return False
def _onKeyPressed(self, _evt): """Event on key pressed """ if BaseEditMode._onKeyPressed(self, _evt): return True key = _evt.key if key == ois.KC_C: _selected = self._logic._getSheet().getSelected() self.active_object = self._logic.createCircle() if self.active_object.makeBasedOnObjects(_selected): self._logic._getSheet().addChild(self.active_object) else: self.active_object.delete() self.active_object = None if key == ois.KC_A: _selected = self._logic._getSheet().getSelected() self.active_object = self._logic.createAngle() if self.active_object.makeBasedOnObjects(_selected): self._logic._getSheet().addChild(self.active_object) else: self.active_object.delete() self.active_object = None if key == ois.KC_T: _selected = self._logic._getSheet().getSelected() self.active_object = self._logic.createTriangle() if self.active_object.makeBasedOnObjects(_selected): self._logic._getSheet().addChild(self.active_object) else: self.active_object.delete() self.active_object = None if key == ois.KC_Q: _selected = self._logic._getSheet().getSelected() self.active_object = self._logic.createQuadrangle() if self.active_object.makeBasedOnObjects(_selected): self._logic._getSheet().addChild(self.active_object) else: self.active_object.delete() self.active_object = None if key == ois.KC_L: selected = self._logic._getSheet().getSelected() if len(selected) == 1: obj = selected[0] if isinstance(selected[0], (GeometryLineSection, GeometryCircle)): self.state = GeometryEditMode.ES_LengthChange self.length_changer = TextInput(obj, self._length_change_callback, obj.getPropertyValue(GeometryAbstractObject.PropLength)) if key == ois.KC_E: selected = self._logic._getSheet().getSelected() if len(selected) == 2: if isinstance(selected[0], selected[1].__class__): selected[0].setEqualTo(selected[1]) if self.objectInfoPanel.getObject() is selected[0] or self.objectInfoPanel.getObject() is selected[1]: self.objectInfoPanel.update() #remove figure's congruence property if key == ois.KC_W: selected = self._logic._getSheet().getSelected() if len(selected) == 2: if isinstance(selected[0], selected[1].__class__): selected[0].removeCongruency(selected[1]) if self.objectInfoPanel.getObject() is selected[0] or self.objectInfoPanel.getObject() is selected[1]: self.objectInfoPanel.update() if key == ois.KC_S: selected = self._logic._getSheet().getSelected() if len(selected) == 1: obj = selected[0] if isinstance(obj, (GeometryCircle, GeometryTriangle, GeometryQuadrangle)): self.state = GeometryEditMode.ES_SquareChange self.square_changer = TextInput(obj, self._square_change_callback, obj.getPropertyValue(GeometryAbstractObject.PropSquare)) if key == ois.KC_P: selected = self._logic._getSheet().getSelected() if len(selected) == 1: obj = selected[0] if isinstance(obj, (GeometryTriangle, GeometryQuadrangle)): self.state = GeometryEditMode.ES_PerimeterChange self.perimetr_changer = TextInput(obj, self._perimeter_change_callback, obj.getPropertyValue(GeometryAbstractObject.PropPerimeter)) if key == ois.KC_R: selected = self._logic._getSheet().getSelected() if len(selected) == 1: obj = selected[0] if isinstance(obj, GeometryCircle): self.state = GeometryEditMode.ES_RadiusChange self.radius_changer = TextInput(obj, self._radius_change_callback, obj.getPropertyValue(GeometryAbstractObject.PropRadius)) if key == ois.KC_D: selected = self._logic._getSheet().getSelected() if len(selected) == 1: obj = selected[0] if isinstance(obj, GeometryCircle): self.state = GeometryEditMode.ES_DiameterChange self.diameter_changer = TextInput(obj, self._diameter_change_callback, obj.getPropertyValue(GeometryAbstractObject.PropDiameter)) 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_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
def _onKeyPressed(self, _evt): """Event on key pressed """ if BaseEditMode._onKeyPressed(self, _evt): return True return False
def _onKeyPressed(self, _evt): """Event on key pressed """ if BaseEditMode._onKeyPressed(self, _evt): return True key = _evt.key if key == ois.KC_C: _selected = self._logic._getSheet().getSelected() self.active_object = self._logic.createCircle() if self.active_object.makeBasedOnObjects(_selected): self._logic._getSheet().addChild(self.active_object) else: self.active_object.delete() self.active_object = None if key == ois.KC_A: _selected = self._logic._getSheet().getSelected() self.active_object = self._logic.createAngle() if self.active_object.makeBasedOnObjects(_selected): self._logic._getSheet().addChild(self.active_object) else: self.active_object.delete() self.active_object = None if key == ois.KC_T: _selected = self._logic._getSheet().getSelected() self.active_object = self._logic.createTriangle() if self.active_object.makeBasedOnObjects(_selected): self._logic._getSheet().addChild(self.active_object) else: self.active_object.delete() self.active_object = None if key == ois.KC_Q: _selected = self._logic._getSheet().getSelected() self.active_object = self._logic.createQuadrangle() if self.active_object.makeBasedOnObjects(_selected): self._logic._getSheet().addChild(self.active_object) else: self.active_object.delete() self.active_object = None if key == ois.KC_L: selected = self._logic._getSheet().getSelected() if len(selected) == 1: obj = selected[0] if isinstance(selected[0], (GeometryLineSection, GeometryCircle)): self.state = GeometryEditMode.ES_LengthChange self.length_changer = TextInput( obj, self._length_change_callback, obj.getPropertyValue( GeometryAbstractObject.PropLength)) if key == ois.KC_E: selected = self._logic._getSheet().getSelected() if len(selected) == 2: if isinstance(selected[0], selected[1].__class__): selected[0].setEqualTo(selected[1]) if self.objectInfoPanel.getObject( ) is selected[0] or self.objectInfoPanel.getObject( ) is selected[1]: self.objectInfoPanel.update() #remove figure's congruence property if key == ois.KC_W: selected = self._logic._getSheet().getSelected() if len(selected) == 2: if isinstance(selected[0], selected[1].__class__): selected[0].removeCongruency(selected[1]) if self.objectInfoPanel.getObject( ) is selected[0] or self.objectInfoPanel.getObject( ) is selected[1]: self.objectInfoPanel.update() if key == ois.KC_S: selected = self._logic._getSheet().getSelected() if len(selected) == 1: obj = selected[0] if isinstance( obj, (GeometryCircle, GeometryTriangle, GeometryQuadrangle)): self.state = GeometryEditMode.ES_SquareChange self.square_changer = TextInput( obj, self._square_change_callback, obj.getPropertyValue( GeometryAbstractObject.PropSquare)) if key == ois.KC_P: selected = self._logic._getSheet().getSelected() if len(selected) == 1: obj = selected[0] if isinstance(obj, (GeometryTriangle, GeometryQuadrangle)): self.state = GeometryEditMode.ES_PerimeterChange self.perimetr_changer = TextInput( obj, self._perimeter_change_callback, obj.getPropertyValue( GeometryAbstractObject.PropPerimeter)) if key == ois.KC_R: selected = self._logic._getSheet().getSelected() if len(selected) == 1: obj = selected[0] if isinstance(obj, GeometryCircle): self.state = GeometryEditMode.ES_RadiusChange self.radius_changer = TextInput( obj, self._radius_change_callback, obj.getPropertyValue( GeometryAbstractObject.PropRadius)) if key == ois.KC_D: selected = self._logic._getSheet().getSelected() if len(selected) == 1: obj = selected[0] if isinstance(obj, GeometryCircle): self.state = GeometryEditMode.ES_DiameterChange self.diameter_changer = TextInput( obj, self._diameter_change_callback, obj.getPropertyValue( GeometryAbstractObject.PropDiameter)) return False
def _onKeyPressed(self, _evt): """Event on key pressed """ if BaseEditMode._onKeyPressed(self, _evt): return True key = _evt.key if key == ois.KC_C: _selected = self._logic._getSheet().getSelected() self.active_object = self._logic.createCircle() if self.active_object.makeBasedOnObjects(_selected): self._logic._getSheet().addChild(self.active_object) else: self.active_object.delete() self.active_object = None if key == ois.KC_A: _selected = self._logic._getSheet().getSelected() self.active_object = self._logic.createAngle() if self.active_object.makeBasedOnObjects(_selected): self._logic._getSheet().addChild(self.active_object) else: self.active_object.delete() self.active_object = None if key == ois.KC_T: _selected = self._logic._getSheet().getSelected() self.active_object = self._logic.createTriangle() if self.active_object.makeBasedOnObjects(_selected): self._logic._getSheet().addChild(self.active_object) else: self.active_object.delete() self.active_object = None if key == ois.KC_Q: _selected = self._logic._getSheet().getSelected() self.active_object = self._logic.createQuadrangle() if self.active_object.makeBasedOnObjects(_selected): self._logic._getSheet().addChild(self.active_object) else: self.active_object.delete() self.active_object = None if key == ois.KC_L: selected = self._logic._getSheet().getSelected() if len(selected) == 1: obj = selected[0] if isinstance(selected[0], (GeometryLineSection, GeometryCircle)): self.state = GeometryEditMode.ES_LengthChange self.length_changer = TextInput(obj, self._length_change_callback, obj.getPropertyValue(GeometryAbstractObject.PropLength)) if key == ois.KC_E: selected = self._logic._getSheet().getSelected() if len(selected) == 2: if isinstance(selected[0], selected[1].__class__): selected[0].setEqualTo(selected[1]) if self.objectInfoPanel.getObject() is selected[0] or self.objectInfoPanel.getObject() is selected[1]: self.objectInfoPanel.update() if key == ois.KC_S: selected = self._logic._getSheet().getSelected() if len(selected) == 1: obj = selected[0] if isinstance(obj, (GeometryCircle, GeometryTriangle, GeometryQuadrangle)): self.state = GeometryEditMode.ES_SquareChange self.square_changer = TextInput(obj, self._square_change_callback, obj.getPropertyValue(GeometryAbstractObject.PropSquare)) if key == ois.KC_P: selected = self._logic._getSheet().getSelected() if len(selected) == 1: obj = selected[0] if isinstance(obj, (GeometryTriangle, GeometryQuadrangle)): self.state = GeometryEditMode.ES_PerimeterChange self.perimetr_changer = TextInput(obj, self._perimeter_change_callback, obj.getPropertyValue(GeometryAbstractObject.PropPerimeter)) if key == ois.KC_V: selected = self._logic._getSheet().getSelected() for obj in selected: if isinstance(obj, (GeometryTriangle)): incirclePoints = obj._calculateIncirclePoints() # create center point incenterPointCoord = incirclePoints[0] incenter = self._logic.createPoint(incenterPointCoord) sheet = self._logic._getSheet() sheet.addChild(incenter) incenter._updateView() # create tangent point tangentPointCoord = incirclePoints[1] # get tangent point base side line sideObjects = self._logic._getSheet()._getObjectsUnderMouse(True, True, tangentPointCoord) line = comutils._getFirstObjectTypeFromList(sideObjects, [GeometryLineSection]) tangent = self._logic.createPoint(tangentPointCoord) sheet = self._logic._getSheet() sheet.addChild(tangent) tangent._updateView() _selected = incenter, tangent obj._setIncenterPoints(_selected) # draw incircle self.active_object = self._logic.createCircle() if self.active_object.makeBasedOnObjects(_selected): self._logic._getSheet().addChild(self.active_object) obj._setIsIncircleDrawed(True) else: self.active_object.delete() self.active_object = None return False
def _onKeyPressed(self, _evt): """Event on key pressed """ if BaseEditMode._onKeyPressed(self, _evt): return True key = _evt.key if key == ois.KC_C: _selected = self._logic._getSheet().getSelected() self.active_object = self._logic.createCircle() if self.active_object.makeBasedOnObjects(_selected): self._logic._getSheet().addChild(self.active_object) else: self.active_object.delete() self.active_object = None if key == ois.KC_A: _selected = self._logic._getSheet().getSelected() self.active_object = self._logic.createAngle() if self.active_object.makeBasedOnObjects(_selected): self._logic._getSheet().addChild(self.active_object) else: self.active_object.delete() self.active_object = None if key == ois.KC_T: _selected = self._logic._getSheet().getSelected() self.active_object = self._logic.createTriangle() if self.active_object.makeBasedOnObjects(_selected): self._logic._getSheet().addChild(self.active_object) else: self.active_object.delete() self.active_object = None if key == ois.KC_Q: _selected = self._logic._getSheet().getSelected() self.active_object = self._logic.createQuadrangle() if self.active_object.makeBasedOnObjects(_selected): self._logic._getSheet().addChild(self.active_object) else: self.active_object.delete() self.active_object = None if key == ois.KC_L: selected = self._logic._getSheet().getSelected() if len(selected) == 1: obj = selected[0] if isinstance(selected[0], (GeometryLineSection, GeometryCircle)): self.state = GeometryEditMode.ES_LengthChange self.length_changer = TextInput(obj, self._length_change_callback, obj.getPropertyValue(GeometryAbstractObject.PropLength)) if key == ois.KC_E: selected = self._logic._getSheet().getSelected() if len(selected) == 2: if isinstance(selected[0], selected[1].__class__): selected[0].setEqualTo(selected[1]) if self.objectInfoPanel.getObject() is selected[0] or self.objectInfoPanel.getObject() is selected[1]: self.objectInfoPanel.update() if key == ois.KC_S: selected = self._logic._getSheet().getSelected() if len(selected) == 1: obj = selected[0] if isinstance(obj, (GeometryCircle, GeometryTriangle, GeometryQuadrangle)): self.state = GeometryEditMode.ES_SquareChange self.square_changer = TextInput(obj, self._square_change_callback, obj.getPropertyValue(GeometryAbstractObject.PropSquare)) if key == ois.KC_P: selected = self._logic._getSheet().getSelected() if len(selected) == 1: obj = selected[0] if isinstance(obj, (GeometryTriangle, GeometryQuadrangle)): self.state = GeometryEditMode.ES_PerimeterChange self.perimetr_changer = TextInput(obj, self._perimeter_change_callback, obj.getPropertyValue(GeometryAbstractObject.PropPerimeter)) if key == ois.KC_K: selected = self._logic._getSheet().getSelected() if len(selected) == 1: obj = selected[0] if isinstance(obj, (GeometryQuadrangle)): from components.geometry.base.geom_qw_list import QuadrangleChanger self.dialog = QuadrangleChanger(obj,self._kind_change_callback,obj.getPropertyValue(GeometryAbstractObject.PropKind))
def _onKeyPressed(self, _evt): """Event on key pressed """ if BaseEditMode._onKeyPressed(self, _evt): return True key = _evt.key if key == ois.KC_C: _selected = self._logic._getSheet().getSelected() if len(_selected) == 1 and isinstance(_selected[0], GeometryTriangle): obj = _selected[0] circlePoints = obj._calculateCirclePoints() CoordinateC = circlePoints[0] center = self._logic.createPoint(CoordinateC) sheet = self._logic._getSheet() sheet.addChild(center) center._updateView() CoordinateT = circlePoints[1] sideObjects = self._logic._getSheet()._getObjectsUnderMouse(True, True, CoordinateT) line = comutils._getFirstObjectTypeFromList(sideObjects, [GeometryLineSection]) tangent = self._logic.createPoint(CoordinateT) sheet = self._logic._getSheet() sheet.addChild(tangent) tangent._updateView() _selected = center, tangent obj._setCenterPoints(_selected) obj._setIsCircleDrawed(True) self.active_object = self._logic.createCircle() if self.active_object.makeBasedOnObjects(_selected): self._logic._getSheet().addChild(self.active_object) else: self.active_object.delete() self.active_object = None if key == ois.KC_A: _selected = self._logic._getSheet().getSelected() self.active_object = self._logic.createAngle() if self.active_object.makeBasedOnObjects(_selected): self._logic._getSheet().addChild(self.active_object) else: self.active_object.delete() self.active_object = None if key == ois.KC_T: _selected = self._logic._getSheet().getSelected() self.active_object = self._logic.createTriangle() if self.active_object.makeBasedOnObjects(_selected): self._logic._getSheet().addChild(self.active_object) else: self.active_object.delete() self.active_object = None if key == ois.KC_Q: _selected = self._logic._getSheet().getSelected() self.active_object = self._logic.createQuadrangle() if self.active_object.makeBasedOnObjects(_selected): self._logic._getSheet().addChild(self.active_object) else: self.active_object.delete() self.active_object = None if key == ois.KC_L: selected = self._logic._getSheet().getSelected() if len(selected) == 1: obj = selected[0] if isinstance(selected[0], (GeometryLineSection, GeometryCircle)): self.state = GeometryEditMode.ES_LengthChange self.length_changer = TextInput(obj, self._length_change_callback, obj.getPropertyValue(GeometryAbstractObject.PropLength)) if key == ois.KC_E: selected = self._logic._getSheet().getSelected() if len(selected) == 2: if isinstance(selected[0], selected[1].__class__): selected[0].setEqualTo(selected[1]) if self.objectInfoPanel.getObject() is selected[0] or self.objectInfoPanel.getObject() is selected[1]: self.objectInfoPanel.update() #remove figure's congruence property if key == ois.KC_W: selected = self._logic._getSheet().getSelected() if len(selected) == 2: if isinstance(selected[0], selected[1].__class__): selected[0].removeCongruency(selected[1]) if self.objectInfoPanel.getObject() is selected[0] or self.objectInfoPanel.getObject() is selected[1]: self.objectInfoPanel.update() if key == ois.KC_S: selected = self._logic._getSheet().getSelected() if len(selected) == 1: obj = selected[0] if isinstance(obj, (GeometryCircle, GeometryTriangle, GeometryQuadrangle)): self.state = GeometryEditMode.ES_SquareChange self.square_changer = TextInput(obj, self._square_change_callback, obj.getPropertyValue(GeometryAbstractObject.PropSquare)) if key == ois.KC_P: selected = self._logic._getSheet().getSelected() if len(selected) == 1: obj = selected[0] if isinstance(obj, (GeometryTriangle, GeometryQuadrangle)): self.state = GeometryEditMode.ES_PerimeterChange self.perimetr_changer = TextInput(obj, self._perimeter_change_callback, obj.getPropertyValue(GeometryAbstractObject.PropPerimeter)) if key == ois.KC_R: selected = self._logic._getSheet().getSelected() if len(selected) == 1: obj = selected[0] if isinstance(obj, GeometryCircle): self.state = GeometryEditMode.ES_RadiusChange self.radius_changer = TextInput(obj, self._radius_change_callback, obj.getPropertyValue(GeometryAbstractObject.PropRadius)) if key == ois.KC_D: selected = self._logic._getSheet().getSelected() if len(selected) == 1: obj = selected[0] if isinstance(obj, GeometryCircle): self.state = GeometryEditMode.ES_DiameterChange self.diameter_changer = TextInput(obj, self._diameter_change_callback, obj.getPropertyValue(GeometryAbstractObject.PropDiameter)) return False
def _onKeyPressed(self, _evt): """Event on key pressed """ if BaseEditMode._onKeyPressed(self, _evt): return True key = _evt.key if key == ois.KC_C: _selected = self._logic._getSheet().getSelected() self.active_object = self._logic.createCircle() if self.active_object.makeBasedOnObjects(_selected): self._logic._getSheet().addChild(self.active_object) else: self.active_object.delete() self.active_object = None if key == ois.KC_A: _selected = self._logic._getSheet().getSelected() self.active_object = self._logic.createAngle() if self.active_object.makeBasedOnObjects(_selected): self._logic._getSheet().addChild(self.active_object) else: self.active_object.delete() self.active_object = None if key == ois.KC_T: _selected = self._logic._getSheet().getSelected() self.active_object = self._logic.createTriangle() if self.active_object.makeBasedOnObjects(_selected): self._logic._getSheet().addChild(self.active_object) else: self.active_object.delete() self.active_object = None if key == ois.KC_Q: _selected = self._logic._getSheet().getSelected() self.active_object = self._logic.createQuadrangle() if self.active_object.makeBasedOnObjects(_selected): self._logic._getSheet().addChild(self.active_object) else: self.active_object.delete() self.active_object = None if key == ois.KC_M: _selected = self._logic._getSheet().getSelected() self.active_object = self._logic.createPolygon() if self.active_object.makeBasedOnObjects(_selected): self._logic._getSheet().addChild(self.active_object) else: self.active_object.delete() self.active_object = None if key == ois.KC_L: selected = self._logic._getSheet().getSelected() if len(selected) == 1: obj = selected[0] if isinstance(selected[0], (GeometryLineSection, GeometryCircle)): self.state = GeometryEditMode.ES_LengthChange self.length_changer = TextInput(obj, self._length_change_callback, obj.getPropertyValue(GeometryAbstractObject.PropLength)) if key == ois.KC_E: selected = self._logic._getSheet().getSelected() if len(selected) == 2: if isinstance(selected[0], selected[1].__class__): selected[0].setEqualTo(selected[1]) if self.objectInfoPanel.getObject() is selected[0] or self.objectInfoPanel.getObject() is selected[1]: self.objectInfoPanel.update() if key == ois.KC_S: selected = self._logic._getSheet().getSelected() if len(selected) == 1: obj = selected[0] if isinstance(obj, (GeometryCircle, GeometryTriangle, GeometryQuadrangle)): self.state = GeometryEditMode.ES_SquareChange self.square_changer = TextInput(obj, self._square_change_callback, obj.getPropertyValue(GeometryAbstractObject.PropSquare)) if key == ois.KC_P: selected = self._logic._getSheet().getSelected() if len(selected) == 1: obj = selected[0] if isinstance(obj, (GeometryTriangle, GeometryQuadrangle)): self.state = GeometryEditMode.ES_PerimeterChange self.perimetr_changer = TextInput(obj, self._perimeter_change_callback, obj.getPropertyValue(GeometryAbstractObject.PropPerimeter)) if key == ois.KC_O: selected = self._logic._getSheet().getSelected() for obj in selected: if isinstance(obj, GeometryQuadrangle): sheet = self._logic._getSheet() c = obj.getCircumCircleCenter() c = self._logic.createPoint(render_engine.pos3dTo2dWindow(c)) sheet.addChild(c) c._updateView() p = obj.getSides()[0].getBegin() self.active_object = self._logic.createCircle() if self.active_object.makeBasedOnObjects([c, p]): sheet.addChild(self.active_object) obj.setCircumCircle(self.active_object) else: self.active_object.delete() self.active_object = None if key == ois.KC_V: selected = self._logic._getSheet().getSelected() for obj in selected: if isinstance(obj, GeometryQuadrangle): points = obj.getInCirclePoints() sheet = self._logic._getSheet() c = self._logic.createPoint(render_engine.pos3dTo2dWindow(points[0])) sheet.addChild(c) c._updateView() p = self._logic.createPoint(render_engine.pos3dTo2dWindow(points[1])) sheet.addChild(p) p._updateView() self.active_object = self._logic.createCircle() if self.active_object.makeBasedOnObjects([c, p]): sheet.addChild(self.active_object) else: self.active_object.delete() self.active_object = None return False