Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
eclipse
GitHub Repository: eclipse/sumo
Path: blob/main/tools/neteditTestFunctions/frames/move.py
169679 views
1
# -*- coding: utf-8 -*-
2
# Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3
# Copyright (C) 2009-2025 German Aerospace Center (DLR) and others.
4
# This program and the accompanying materials are made available under the
5
# terms of the Eclipse Public License 2.0 which is available at
6
# https://www.eclipse.org/legal/epl-2.0/
7
# This Source Code may also be made available under the following Secondary
8
# Licenses when the conditions for such availability set forth in the Eclipse
9
# Public License 2.0 are satisfied: GNU General Public License, version 2
10
# or later which is available at
11
# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
12
# SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
13
14
# @file move.py
15
# @author Pablo Alvarez Lopez
16
# @date 28-05-25
17
18
# imports
19
from ..enums.attributesEnum import attrs
20
from ..general.functions import focusOnFrame
21
from ..input.keyboard import typeKey
22
from ..input.mouse import dragDrop, leftClick
23
24
25
def moveElementHorizontal(referencePosition, originalPosition, radius):
26
"""
27
@brief move element in horizontal
28
"""
29
leftClick(referencePosition, originalPosition)
30
# move element
31
dragDrop(referencePosition, originalPosition.x, originalPosition.y,
32
originalPosition.x + radius.right, originalPosition.y)
33
dragDrop(referencePosition, originalPosition.x + radius.right,
34
originalPosition.y, originalPosition.x + radius.left, originalPosition.y)
35
36
37
def moveElementVertical(referencePosition, originalPosition, radius):
38
"""
39
@brief move element in vertical
40
"""
41
# move element
42
if (radius.up != 0):
43
dragDrop(referencePosition, originalPosition.x, originalPosition.y,
44
originalPosition.x, originalPosition.y + radius.up)
45
if (radius.down != 0):
46
dragDrop(referencePosition, originalPosition.x, originalPosition.y + radius.up,
47
originalPosition.x, originalPosition.y + radius.down)
48
49
50
def moveElement(referencePosition, originalPosition, radius):
51
"""
52
@brief move element
53
"""
54
# move element
55
dragDrop(referencePosition,
56
originalPosition.x,
57
originalPosition.y,
58
originalPosition.x + radius.right,
59
originalPosition.y)
60
dragDrop(referencePosition,
61
originalPosition.x + radius.right,
62
originalPosition.y,
63
originalPosition.x + radius.right,
64
originalPosition.y + radius.down)
65
dragDrop(referencePosition,
66
originalPosition.x + radius.right,
67
originalPosition.y + radius.down,
68
originalPosition.x + radius.left,
69
originalPosition.y + radius.down)
70
dragDrop(referencePosition,
71
originalPosition.x + radius.left,
72
originalPosition.y + radius.down,
73
originalPosition.x + radius.left,
74
originalPosition.y + radius.up)
75
76
77
def moveGeometryPoint(referencePosition, originalPosition, destinyPositionA, destinyPositionB):
78
"""
79
@brief move geometry point
80
"""
81
leftClick(referencePosition, originalPosition)
82
# move element
83
dragDrop(referencePosition, originalPosition.x, originalPosition.y, destinyPositionA.x, destinyPositionA.y)
84
dragDrop(referencePosition, destinyPositionA.x, destinyPositionA.y, destinyPositionB.x, destinyPositionB.y)
85
86
87
def toggleMoveEntireShape():
88
"""
89
@brief toggle move entire shape
90
"""
91
# focus current frame
92
focusOnFrame()
93
for _ in range(attrs.move.moveWholePolygon):
94
typeKey('tab')
95
# type space to create crossing
96
typeKey('space')
97
98