From 162d75eddbc8a71194557639253e966260e8a991 Mon Sep 17 00:00:00 2001 From: Astatin3 <77305074+Astatin3@users.noreply.github.com> Date: Thu, 11 Apr 2024 10:27:35 -0600 Subject: [PATCH] Copy --- .gitignore | 1 + README.md | 30 ++ images/Field.png | Bin 0 -> 50640 bytes images/XboxOne_A.png | Bin 0 -> 3925 bytes images/XboxOne_B.png | Bin 0 -> 3915 bytes images/XboxOne_Diagram.png | Bin 0 -> 62093 bytes images/XboxOne_Diagram_Simple.png | Bin 0 -> 57393 bytes images/XboxOne_Dpad.png | Bin 0 -> 1931 bytes images/XboxOne_Dpad_Down.png | Bin 0 -> 2265 bytes images/XboxOne_Dpad_Left.png | Bin 0 -> 2205 bytes images/XboxOne_Dpad_Right.png | Bin 0 -> 2170 bytes images/XboxOne_Dpad_Up.png | Bin 0 -> 2292 bytes images/XboxOne_LB.png | Bin 0 -> 2923 bytes images/XboxOne_LT.png | Bin 0 -> 2817 bytes images/XboxOne_Left_Stick.png | Bin 0 -> 5191 bytes images/XboxOne_Left_Stick_Click.png | Bin 0 -> 3006 bytes images/XboxOne_Menu.png | Bin 0 -> 3503 bytes images/XboxOne_RB.png | Bin 0 -> 2779 bytes images/XboxOne_RT.png | Bin 0 -> 2950 bytes images/XboxOne_Right_Stick.png | Bin 0 -> 5535 bytes images/XboxOne_Right_Stick_Click.png | Bin 0 -> 3314 bytes images/XboxOne_Windows.png | Bin 0 -> 3511 bytes images/XboxOne_X.png | Bin 0 -> 4216 bytes images/XboxOne_Y.png | Bin 0 -> 3838 bytes main.py | 112 +++++ requirements.txt | 3 + src/buttonEditor.py | 654 +++++++++++++++++++++++++++ src/export.py | 252 +++++++++++ src/pathEditor.py | 171 +++++++ src/render.py | 211 +++++++++ 30 files changed, 1434 insertions(+) create mode 100644 README.md create mode 100644 images/Field.png create mode 100644 images/XboxOne_A.png create mode 100644 images/XboxOne_B.png create mode 100644 images/XboxOne_Diagram.png create mode 100644 images/XboxOne_Diagram_Simple.png create mode 100644 images/XboxOne_Dpad.png create mode 100644 images/XboxOne_Dpad_Down.png create mode 100644 images/XboxOne_Dpad_Left.png create mode 100644 images/XboxOne_Dpad_Right.png create mode 100644 images/XboxOne_Dpad_Up.png create mode 100644 images/XboxOne_LB.png create mode 100644 images/XboxOne_LT.png create mode 100644 images/XboxOne_Left_Stick.png create mode 100644 images/XboxOne_Left_Stick_Click.png create mode 100644 images/XboxOne_Menu.png create mode 100644 images/XboxOne_RB.png create mode 100644 images/XboxOne_RT.png create mode 100644 images/XboxOne_Right_Stick.png create mode 100644 images/XboxOne_Right_Stick_Click.png create mode 100644 images/XboxOne_Windows.png create mode 100644 images/XboxOne_X.png create mode 100644 images/XboxOne_Y.png create mode 100644 main.py create mode 100644 requirements.txt create mode 100644 src/buttonEditor.py create mode 100644 src/export.py create mode 100644 src/pathEditor.py create mode 100644 src/render.py diff --git a/.gitignore b/.gitignore index d9005f2..da7e738 100644 --- a/.gitignore +++ b/.gitignore @@ -150,3 +150,4 @@ cython_debug/ # and can be added to the global gitignore or merged into this file. For a more nuclear # option (not recommended) you can uncomment the following to ignore the entire idea folder. #.idea/ +.vscode/ \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..ce7ef18 --- /dev/null +++ b/README.md @@ -0,0 +1,30 @@ +# autoPlanner + +(WIP) An auto creation tool for Ridgebotics 2024 + +### Install +```shell +git clone https://github.com/astatin3/autoPlanner +cd autoPlanner +pip install -r requirements.txt +python3 ./main.py +``` +### Usage: + +##### "Path Editor" Tab: +- Click to add nodes +- Click on specific points to manipulate paths and nodes + +##### "Button editor" Tab: +- Click on specific frames on the timeline to change to that position +- When selected on a frame, the robot's position in that time should show up. +- Drag positional keyframes around to speed up and speed down the robot's travel between nodes +- While a frame is selected, Press the 'e' key to swap to button mode. +- In button mode select buttons on the driver and operator controllers. + +##### "Export" Tab: +- Click export, and save to a file + +### Known Bugs: +- Because the variables don't get transferred over yet, you must click on the button editor tab before exporting. +- The driver controller's movement stick is rotated by 90 degrees (Maybe) \ No newline at end of file diff --git a/images/Field.png b/images/Field.png new file mode 100644 index 0000000000000000000000000000000000000000..4a384db4129c89e5bd14d84c8675ebed14f6f6d8 GIT binary patch literal 50640 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 literal 0 HcmV?d00001 diff --git a/images/XboxOne_A.png b/images/XboxOne_A.png new file mode 100644 index 0000000000000000000000000000000000000000..28c3b6019dd80a9661c32632b2ecc057a8182b63 GIT binary patch literal 3925 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 literal 0 HcmV?d00001 diff --git a/images/XboxOne_B.png b/images/XboxOne_B.png new file mode 100644 index 0000000000000000000000000000000000000000..2a4d9b6f98ca29b353fba05a64adf7769f0303c5 GIT binary patch literal 3915 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 V_ru1u9GOir0BUA!S_yG|_CH2@sZ;;} literal 0 HcmV?d00001 diff --git a/images/XboxOne_Diagram.png b/images/XboxOne_Diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..9b79c5d30e98f687539e9b91c992798718421e3c GIT binary patch literal 62093 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 literal 0 HcmV?d00001 diff --git a/images/XboxOne_Dpad_Left.png b/images/XboxOne_Dpad_Left.png new file mode 100644 index 0000000000000000000000000000000000000000..45ddb16bbe4228e65c7e94cdcb6f2c85128582b0 GIT binary patch literal 2205 zcmZ`*c{J3E7yl}1EQyRI2~%M(X)uo|&oX1*%~&$xM}{IxS+istrmTfV)~wBlLde)9 zlkGRQ$jBQ@vKueiL-D4+f4_Im-Ojz|+;i^sIXA(|!tfN2I1c~-r;LsCux#!2n?Wbo z^4`}B8vp>g8S9~JLh}B8t{uSaIonmh1xW++6JI#>6uUXkRyQv-g*Zx({pMvAo+=E; z^(+g0UdAd+w~x7Z^^^U`)j`jjjfk2%FW1LqWx_A9zO6q)2Jgr=&( z42npHtH=Rs2B)h*YFKLyIYi`-sf@@Pw7%b_ed=|DM8#y zuw@U%SlfrHYc;Vh=+x2C(eAiZ?M2%|b<7ZJ+yAt4gOytI2|@93CplNm}w^JW*?y+R3e4GJ5l zpW$_5ss%a~^b8{UKLqvh$a2YxB#EUM0MRC7!uEC$IH@yxGvZ*ULXHp8=&W_TSJTa@ zYnwG@EqENTv$MnY%9&<~UV<{@WRkqFf5FezP;TNxpyag2GI2WKD#rB|hdM5}7@rHy z?gf6ba?_Tum%1Gu%iAI5DA4tV06!rbr`#Z&{GRJ3pArav4<+_LA;Gn|U6XWVg9;k(rm0%W1Q?YR+-Xh=7y7GYIpKn zi#f74PH!3G<>iHDm~eYtRjv3vYLrF?no&}yXPka-ZAx>ZEh7Buqo(-qGzuv!_aG7} zQ9Q;fV$<|m$@E%y)gu~&U0pF0h&CwUz<^t?26p?o@_t1=zTG6GFKB9Ny0m)$MBl07 zF;2gbEBjSPp6Hna=er0yG6W81Eb~0-b8~Z}3Q3YbM#dP7H?_5@w((H0haCEt7IRzM zyn+H<+tGxrgWWY6!rW4T24@e(HRHNcX14=@;u*60ZPIKS!vAbMjGbjP8SEI+Oa8w`5 zoW2sbCMs1;)}Y${!^VbxvDoTkLnYtD;xDYRDx`*n?z`!eWN>L|Dcj!EQWsCTz>HFI z#fg}WNT^Qq)+9IIUqg=|K2y(Y4AO^!&X<>m6=4K8EHj~-w8bJeT4o{DdCC` zcUMvRE_B~ah=^F}_wLzm?fCaiSKc&wE|9(?5~o328Gz9fMix#0 zC2*!ciDV-4i4_DymzT3I8k$L;s@RPl4a1_q`rsse7z_q)Oa-0}mNk3138Jyhy+)w* z1xI^Xs`O@C&~wJAb~2f4leyf$cb}r7l)$;SwJao_VzAl~{at?Iy^DZ&EH?zN$l0l% z{-Vs)O*w<rEHcfKlJM;#J@d+OQNn|r)$!!f#DPbrrM~~%3kYnUtlqk0U3@s$pjH@~ zz#+XgcgjH(`I;!vzUUvdy&@dw)XiWp$ihahB;GqyhK7a>L9A!Hk$!&4)GKtUatjL! z*~h*9ShJD0?Q0@)5yv~Y#<{+KDhLS)iKo$My(JM1PcHmW-&N*33SRHFcXr+lLp!%U zK-G?K?KHMly%XTN=xOKA1513{Wm%P|+5e*OAY0Ic4|6~VP4ePpj84%L41lkXba&Es<0%gbxbFHcHv#!t;^(|{NIiEsy`{I+*}iHl(;XN21W>ffiSk`jnYa9w5!~!#S@(u> zPO@fTaM0E`J(wF}`SYO0zFLmYL|*7&`^1fS`pU{m6gMO-ImA;}UUMn%+VmoZS};)s zQEIBJ?||*&(DIr?L9KtR`O{n$lx=8mHfkQ;0PD}*Fzwx6HX~y92Q5lBMQQM_Roc0N veQ_{tMMXtzx9q5)5mO2NN3OoL{M4~004+s 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 TxhiJ(00000NkvXXu0mjfk5FpJ literal 0 HcmV?d00001 diff --git a/images/XboxOne_Left_Stick.png b/images/XboxOne_Left_Stick.png new file mode 100644 index 0000000000000000000000000000000000000000..9c5ca5c7f0b71a1a80ebb60dc51e27956e8378f2 GIT binary patch literal 5191 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 literal 0 HcmV?d00001 diff --git a/images/XboxOne_RB.png b/images/XboxOne_RB.png new file mode 100644 index 0000000000000000000000000000000000000000..5dcfc6d79703bb8649f52a79123e2fc2e644b636 GIT binary patch literal 2779 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 literal 0 HcmV?d00001 diff --git a/images/XboxOne_Right_Stick_Click.png b/images/XboxOne_Right_Stick_Click.png new file mode 100644 index 0000000000000000000000000000000000000000..de085082ec985dd6afea3f98f0fd76c655320c3b GIT binary patch literal 3314 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 u literal 0 HcmV?d00001 diff --git a/images/XboxOne_Windows.png b/images/XboxOne_Windows.png new file mode 100644 index 0000000000000000000000000000000000000000..3756d299c1823cf6c62183a15beb8838b3929f8f GIT binary patch literal 3511 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 lDJdx_DJdx_DJemZI1z~kiN7Bh5X&vvH#?f}k| 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 ArvLx| literal 0 HcmV?d00001 diff --git a/main.py b/main.py new file mode 100644 index 0000000..0ca8802 --- /dev/null +++ b/main.py @@ -0,0 +1,112 @@ +import math +from copy import copy + +import pygame as pg +from pygame.locals import * +from sys import exit +import numpy as np + +import src.render as render + +import src.pathEditor as pathEditor +import src.buttonEditor as buttonEditor +import src.export as export + +doubleClickDuration = 200 + +pg.init() +pg.font.init() + +topBarHeight = 40 +bottomBarHeight = 60 + +screen_width = 1200 +screen_height = (screen_width * (643/1286)) + topBarHeight + bottomBarHeight + +screen = pg.display.set_mode((screen_width, screen_height))#, pg.RESIZABLE) +pg.display.set_caption("Auto Planner") + +render = render.render(pg, screen, topBarHeight, bottomBarHeight) + +tabIndex = 0 +tabs = [ + pathEditor.pathEditor(render), + buttonEditor.buttonEditor(render, pathEditor), + export.export(pg, render, buttonEditor) +] + +tabs[tabIndex].load() + +def addTab(i): + x1 = i * (screen_width/(len(tabs))) + x2 = (screen_width/(len(tabs))) + rect = (x1, 0, x2, topBarHeight) + + def getIsSelected(): + global tabIndex + return tabIndex == i + + def getIsVisible(): + return True + + def onClick(pos): + global tabIndex + tabs[tabIndex].unload() + tabIndex = i + tabs[tabIndex].load() + render.renderElements(pos) + pg.display.update() + + render.addButton(rect, tabs[i].name, getIsSelected, getIsVisible, onClick) + +for i in range(len(tabs)): + addTab(i) + +render.renderElements((screen_width/2, screen_height/2)) + +running = True +last_click = -1 + +def offsetPos(pos): + return (pos[0],pos[1]) + +while running: + for event in pg.event.get(): + + if event.type == pg.MOUSEMOTION: + pos = pg.mouse.get_pos() + render.renderElements(pos) + if pos[1] > topBarHeight: + tabs[tabIndex].mouseMove(offsetPos(pos)) + # refreshTabs(pos) + + elif event.type == pg.MOUSEBUTTONDOWN: + pos = pg.mouse.get_pos() + render.clickElement(pos) + if pos[1] > topBarHeight: + now = pg.time.get_ticks() + if now - last_click <= doubleClickDuration: + tabs[tabIndex].doubleClick(offsetPos(pos)) + else: + tabs[tabIndex].mouseDown(offsetPos(pos)) + last_click = pg.time.get_ticks() + # else: + # clickTab(pos) + + elif event.type == pg.MOUSEBUTTONUP: + pos = pg.mouse.get_pos() + if pos[1] > topBarHeight: + tabs[tabIndex].mouseUp(offsetPos(pos)) + + elif event.type == pg.KEYDOWN: + tabs[tabIndex].keyDown(event.key) + if event.key == pg.K_TAB: + tabs[tabIndex].unload() + tabIndex = (tabIndex + 1) % len(tabs) + tabs[tabIndex].load() + render.renderElements(pg.mouse.get_pos()) + + elif event.type == pg.QUIT: + running = False + +pg.quit() diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..2806a78 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +numpy +pygame +crossfiledialog \ No newline at end of file diff --git a/src/buttonEditor.py b/src/buttonEditor.py new file mode 100644 index 0000000..aff2cf8 --- /dev/null +++ b/src/buttonEditor.py @@ -0,0 +1,654 @@ +import math +import copy +import json + +render = None +pathEditor = None +bottomBarRect = None + +# leftSidee = True + +ogNodes = [] +ogCtrlNodes = [] +ogRotNodes = [] + +keyFrames = [] + +matchLength = 15 +TPS = 50 + +tickTime = round(1/TPS*1000) +matchTicks = matchLength * TPS +displayTickResolution = 4 +displayTicks = round(matchTicks / displayTickResolution) + +buttonEditColor = (191,0,191) +buttonEditNodeRadius = 6 + +dragFrameIndex = -1 +ogDragFramePos = -1 + +selFrame = -1 + +buttonImages = {} +buttonMode = False + +buttonPositions = { + 'A': ((1089,494),100), + 'B': ((1187,404),100), + 'X': ((996,411),100), + 'Y': ((1093,321),100), + + 'Dpad': ((549,619),220), + + 'Dpad_Up': ((549,561),70), + 'Dpad_Down': ((549,677),70), + 'Dpad_Left': ((485,619),70), + 'Dpad_Right': ((607,619),70), + + 'Menu': ((832,411),100), + 'Windows': ((629,411),100), + + 'Left_Stick': ((375,422),150), + 'Right_Stick': ((914,622),150), + + 'LB': ((352,184),150), + 'RB': ((1100,184),150), + + 'LT': ((356,67),150), + 'RT': ((1096,67),150) +} + + + +def getKeyframeAtPos(index): + for frame in keyFrames: + if frame["timeIndex"] == index: + return frame + return None + + + +def getFrameIndex(frame): + if frame == None: + return -1 + return keyFrames.index(frame) + + + +def getPosKeyframeAtPos(index): + for frame in keyFrames: + if frame["timeIndex"] == index and frame['type'] == 'position': + return frame + return None + + + +def getPosKeyframes(): + frames = [] + for keyFrame in keyFrames: + if keyFrame['type'] == 'position': + frames.append(keyFrame) + return frames + + + +def getButtonKeyframes(): + frames = [] + for keyFrame in keyFrames: + if keyFrame['type'] == 'controller': + frames.append(keyFrame) + return frames + + + +def getBezierPointCounts(): + counts = [] + frames = getPosKeyframes() + for i in range(1,len(frames)): + counts.append(frames[i]['timeIndex'] - frames[i-1]['timeIndex']) + return counts + + + +def getPosKeyframeByIndex(index): + for frame in keyFrames: + if frame['type'] == 'position' and frame["index"] == index: + return frame + return None + + + +def getSurroundingPosFrames(index): + prevFrame = None + for i in range(index,-1,-1): + frame = getPosKeyframeAtPos(i) + if frame != None and (dragFrameIndex == -1 or not frame == keyFrames[dragFrameIndex]): + prevFrame = frame + break + nextFrame = None + for i in range(index,displayTicks,1): + frame = getPosKeyframeAtPos(i) + if frame != None and (dragFrameIndex == -1 or not frame == keyFrames[dragFrameIndex]): + nextFrame = frame + break + + if nextFrame == None and prevFrame == None: + return prevFrame, nextFrame + # elif nextFrame == None: + # return prevFrame, prevFrame + # elif prevFrame == None: + # return nextFrame, nextFrame + + return prevFrame, nextFrame + + + +def getLeftButtonFrame(index): + for i in range(index,0,-1): + frame = getKeyframeAtPos(i) + if frame != None and frame['type'] == 'controller': + return frame + return None + + + +def getButtonFrameAtPos(index): + for i in range(len(keyFrames)): + frame = keyFrames[i] + if frame != None and frame['type'] == 'controller': + return frame + return None + + + + +def getRobotAtIndex(index): + prevFrame, nextFrame = getSurroundingPosFrames(index) + + # print(prevFrame) + # print(nextFrame) + + if prevFrame == None and nextFrame == None: + return (0,0), 0 + if prevFrame == None: + return nextFrame['position'], nextFrame['rotation'] + elif nextFrame == None: + return prevFrame['position'], prevFrame['rotation'] + elif nextFrame['timeIndex'] - prevFrame['timeIndex'] == 0: + return prevFrame['position'], prevFrame['rotation'] + + relPos = -((prevFrame['timeIndex'] - index)/(nextFrame['timeIndex'] - prevFrame['timeIndex'])) + + pos = calcBezierPoint(prevFrame['position'], ogCtrlNodes[prevFrame['index']], nextFrame['position'], relPos) + + if prevFrame['rotation'] - nextFrame['rotation'] < -math.pi: + rot = ((nextFrame['rotation']-prevFrame['rotation']-math.pi*2)*relPos) + prevFrame['rotation'] + elif prevFrame['rotation'] - nextFrame['rotation'] > math.pi: + rot = ((nextFrame['rotation']-prevFrame['rotation']+math.pi*2)*relPos) + prevFrame['rotation'] + else: + rot = ((nextFrame['rotation']-prevFrame['rotation'])*relPos) + prevFrame['rotation'] + + # diff = (nextFrame['rotation']-prevFrame['rotation']) + # if diff >= math.pi: + # rot = ((nextFrame['rotation']-prevFrame['rotation']-math.pi*2)*relPos) + prevFrame['rotation'] + # elif diff <= math.pi: + # rot = ((nextFrame['rotation']-prevFrame['rotation']+math.pi*2)*relPos) + prevFrame['rotation'] + # else: + # rot = ((nextFrame['rotation']-prevFrame['rotation'])*relPos) + prevFrame['rotation'] + + + return pos, rot + + + +# def getTimeBarColor(index): +# frame = getKeyframeAtPos(index) +# if frame == None: +# return (0,0,0) +# if frame['type'] == 'position': +# return (127,127,0) +# elif frame['type'] == 'controller': +# return buttonEditColor + +# return (16,16,32) + + + +def calcBezierPoint(p0, p1, p2, t): + px = p0[0]*(1-t)**2 + 2*(1-t)*t*p1[0] + p2[0]*t**2 + py = p0[1]*(1-t)**2 + 2*(1-t)*t*p1[1] + p2[1]*t**2 + return (px, py) + + + + +def reloadBar(pos): + toggle = False + for i in range(displayTicks): + x1 = i * (render.width/(displayTicks)) + x2 = (render.width/(displayTicks)) + rect = (x1, bottomBarRect[1], x2, bottomBarRect[3]) + + color = (0, 0, 0) + + if i == selFrame: + color = (color[0]+64,color[1]+64,color[2]+64) + if render.isInRect(pos, rect): + color = (color[0]+64,color[1]+64,color[2]+64) + if dragFrameIndex != -1 and getKeyframeAtPos(i) == None: + if keyFrames[dragFrameIndex]['type'] == 'position': + prevFrame, nextFrame = getSurroundingPosFrames(ogDragFramePos) + + if prevFrame == nextFrame: + pass + elif prevFrame == None: + if i < nextFrame['timeIndex']: + keyFrames[dragFrameIndex]['timeIndex'] = i + elif nextFrame == None: + if i > prevFrame['timeIndex']: + keyFrames[dragFrameIndex]['timeIndex'] = i + elif i > prevFrame['timeIndex'] and i < nextFrame['timeIndex']: + keyFrames[dragFrameIndex]['timeIndex'] = i + + else: + keyFrames[dragFrameIndex]['timeIndex'] = i + else: + color = (color[0]+16+(toggle*16),color[1]+16+(toggle*16),color[2]+32+(toggle*16)) + + + frame = getKeyframeAtPos(i) + if frame == None: + pass + elif frame['type'] == 'position': + color = (191,191,0) + elif frame['type'] == 'controller': + color = buttonEditColor + + toggle = not toggle + + render.drawrect(color, rect) + # renderSelectIndicator(i) + render.update() + + + +def clickBar(pos): + for i in range(displayTicks): + x1 = i * (render.width/(displayTicks)) + x2 = (render.width/(displayTicks)) + rect = (x1, bottomBarRect[1], x2, bottomBarRect[3]) + + if render.isInRect(pos, rect): + global selFrame + global dragFrameIndex + global ogDragFramePos + selFrame = i + if dragFrameIndex == -1: + dragFrameIndex = getFrameIndex(getKeyframeAtPos(i)) + ogDragFramePos = i + return + + + +def createBlankController(): + returnArr = [] + for i in range(len(controllerRects)): + returnArr.append({ + 'A': False, + 'B': False, + 'X': False, + 'Y': False, + 'Dpad_Up': False, + 'Dpad_Down': False, + 'Dpad_Left': False, + 'Dpad_Right': False, + 'Menu': False, + 'Windows': False, + 'Left_Stick': False, + 'Right_Stick': False, + 'LB': False, + 'RB': False, + 'LT': False, + 'RT': False + }) + return returnArr + + + + +def toggleControllerButton(btnStr, controllerIndex): + global keyFrames + lastFrame = getLeftButtonFrame(selFrame) + if lastFrame == None: + keyFrames.append({ + "type": "controller", + "timeIndex": selFrame, + "controllers": createBlankController() + }) + frame = keyFrames[len(keyFrames)-1] + elif lastFrame['timeIndex'] != selFrame: + keyFrames.append({ + "type": "controller", + "timeIndex": selFrame, + "controllers": copy.deepcopy(lastFrame['controllers']) + }) + frame = keyFrames[len(keyFrames)-1] + else: + frame = lastFrame + + if not btnStr in ['Dpad_Up', 'Dpad_Down', 'Dpad_Left', 'Dpad_Right']: + + frame['controllers'][controllerIndex][btnStr] = not frame['controllers'][controllerIndex][btnStr] + + # Dpad Stuff + elif frame['controllers'][controllerIndex][btnStr] == True: + for btn in ['Dpad_Up', 'Dpad_Down', 'Dpad_Left', 'Dpad_Right']: + frame['controllers'][controllerIndex][btn] = False + else: + for btn in ['Dpad_Up', 'Dpad_Down', 'Dpad_Left', 'Dpad_Right']: + frame['controllers'][controllerIndex][btn] = False + frame['controllers'][controllerIndex][btnStr] = True + + + + + +def getControllerButtons(controllerIndex): + frame = getLeftButtonFrame(selFrame) + if frame == None: + return createBlankController()[0] + else: + return frame['controllers'][controllerIndex] + + + +def renderXboxControllers(): + for i in range(len(controllerRects)): + + rect = controllerRects[i] + + offsetSize = rect[2]/buttonImages['Controller'].get_width() + + def offsetControllerButton(index): + pos, size = buttonPositions[index] + rect2 = ((pos[0]-(size/2), pos[1]-(size/2), size, size)) + return (rect[0]+(rect2[0])*offsetSize,rect[1]+(rect2[1])*offsetSize,rect2[2]*offsetSize,rect2[2]*offsetSize) + + render.image(buttonImages['Controller'], rect) + + btns = getControllerButtons(i) + + for btn in ['A','B','X','Y','Menu','Windows','LB','RB','LT','RT','Left_Stick','Right_Stick']: + if btns[btn]: + render.image(render.invert(buttonImages[btn]), offsetControllerButton(btn)) + else: + render.image(buttonImages[btn], offsetControllerButton(btn)) + + if btns['Dpad_Up']: + render.image(buttonImages['Dpad_Up'], offsetControllerButton('Dpad')) + elif btns['Dpad_Down']: + render.image(buttonImages['Dpad_Down'], offsetControllerButton('Dpad')) + elif btns['Dpad_Left']: + render.image(buttonImages['Dpad_Left'], offsetControllerButton('Dpad')) + elif btns['Dpad_Right']: + render.image(buttonImages['Dpad_Right'], offsetControllerButton('Dpad')) + else: + render.image(buttonImages['Dpad'], offsetControllerButton('Dpad')) + + + # for btn in ['Dpad_Up','Dpad_Down','Dpad_Left','Dpad_Right']: + # if + # render.drawrect((255,255,255), offsetControllerButton(btn)) + + + +def controllerClick(pos): + for i in range(len(controllerRects)): + + rect = controllerRects[i] + + offsetSize = rect[2]/buttonImages['Controller'].get_width() + + def offsetControllerButton(index): + pos, size = buttonPositions[index] + rect2 = ((pos[0]-(size/2), pos[1]-(size/2), size, size)) + return (rect[0]+(rect2[0])*offsetSize,rect[1]+(rect2[1])*offsetSize,rect2[2]*offsetSize,rect2[2]*offsetSize) + + for btn in ['A','B','X','Y','Menu','Windows','LB','RB','LT','RT','Left_Stick','Right_Stick','Dpad_Up','Dpad_Down','Dpad_Left','Dpad_Right']: + if render.isInRect(pos, offsetControllerButton(btn)): + toggleControllerButton(btn, i) + + + + +def renderTimeText(): + if selFrame == -1: + return + seconds = round((((selFrame*displayTickResolution)+1)/matchTicks)*matchLength,2) + text = f'{str(seconds)} s / {str(matchLength)}.0 s' + + text = render.font.render(text, True, (255,255,255)) + + # global leftSide + + # if leftSide: + # rect = text.get_rect(bottomright=(render.width,render.height+render.topBarHeight)) + # else: + rect = text.get_rect(bottomleft=(0,render.height+render.topBarHeight)) + + render.screen.blit(text, rect) + + + + +class buttonEditor: + name = "Button Editor" + + def __init__(self, tmprender, tmppathEditor): + global render + global pathEditor + render = tmprender + pathEditor = tmppathEditor + + global indicatorBarHeight + indicatorBarHeight = round(render.screen.get_width()/displayTicks) + + global bottomBarRect + bottomBarRect = (0, (render.screen.get_height()-render.bottomBarHeight), render.screen.get_width(), render.bottomBarHeight) + + global buttonImages + buttonImages = { + "Controller": render.loadImg('images/XboxOne_Diagram_Simple.png'), + + "A": render.loadImg('images/XboxOne_A.png'), + "B": render.loadImg('images/XboxOne_B.png'), + "X": render.loadImg('images/XboxOne_X.png'), + "Y": render.loadImg('images/XboxOne_Y.png'), + + "Dpad": render.loadImg('images/XboxOne_Dpad.png'), + "Dpad_Up": render.loadImg('images/XboxOne_Dpad_Up.png'), + "Dpad_Down": render.loadImg('images/XboxOne_Dpad_Down.png'), + "Dpad_Left": render.loadImg('images/XboxOne_Dpad_Left.png'), + "Dpad_Right": render.loadImg('images/XboxOne_Dpad_Right.png'), + + "Menu": render.loadImg('images/XboxOne_Menu.png'), + "Windows": render.loadImg('images/XboxOne_Windows.png'), + + "Left_Stick": render.loadImg('images/XboxOne_Left_Stick.png'), + "Left_Stick_Click": render.loadImg('images/XboxOne_Left_Stick_Click.png'), + "Right_Stick": render.loadImg('images/XboxOne_Right_Stick.png'), + "Right_Stick_Click": render.loadImg('images/XboxOne_Right_Stick_Click.png'), + + + "LB": render.loadImg('images/XboxOne_LB.png'), + "RB": render.loadImg('images/XboxOne_RB.png'), + "LT": render.loadImg('images/XboxOne_LT.png'), + "RT": render.loadImg('images/XboxOne_RT.png') + + } + + ControllerSize = (render.width/2, render.width*(buttonImages['Controller'].get_height()/buttonImages['Controller'].get_width())/2) + ControllerYOffset = (render.height-ControllerSize[1])/2 + global controllerRects + controllerRects = [ + (0, render.topBarHeight+ControllerYOffset, ControllerSize[0], ControllerSize[1]), + (ControllerSize[0], render.topBarHeight+ControllerYOffset, ControllerSize[0], ControllerSize[1]) + ] + + def refresh(self): + render.clear() + if not buttonMode: + global ogNodes + global ogCtrlNodes + global ogRotNodes + + render.drawField() + + pointCounts = getBezierPointCounts() + for i in range(0,len(ogCtrlNodes)): + render.bezier(ogNodes[i], ogCtrlNodes[i], ogNodes[i+1], pointCounts[i]) + + buttonFrames = getButtonKeyframes() + for frame in buttonFrames: + pos, rot = getRobotAtIndex(frame['timeIndex']) + render.circle(buttonEditColor, pos, buttonEditNodeRadius) + + if selFrame != -1 and len(ogNodes) > 0: + pos, rot = getRobotAtIndex(selFrame) + render.robotSquare(pos, rot) + + + else: + renderXboxControllers() + + renderTimeText() + + reloadBar((0,0)) + render.update() + + + + def mouseDown(self, pos): + if buttonMode and pos[1] < bottomBarRect[1]: + controllerClick(pos) + self.refresh() + elif pos[1] > bottomBarRect[1]: + clickBar(pos) + self.refresh() + + + + def mouseUp(self, pos): + global dragFrameIndex + if dragFrameIndex != -1: + dragFrameIndex = -1 + ogDragFramePos = -1 + self.refresh() + reloadBar((0, 0)) + + + + def mouseMove(self, pos): + global dragFrameIndex + if dragFrameIndex != -1 or pos[1] > bottomBarRect[1]: + reloadBar(pos) + + # global leftSide + + # if leftSide and pos[0] > (render.width/2): + # leftSide = False + # self.refresh() + # if not leftSide and pos[0] < (render.width/2): + # leftSide = True + # self.refresh() + + # if pos[1] > bottomBarRect[1]: + + + + def doubleClick(self, pos): + pass + # if pos[1] > bottomBarRect[1]: + # clickBar(pos) + # self.refresh() + + + def keyDown(self, key): + global selFrame + global buttonMode + if key == render.pg.K_LEFT and selFrame > 0: + selFrame -= 1 + self.refresh() + elif key == render.pg.K_RIGHT and selFrame < displayTicks-1: + selFrame += 1 + self.refresh() + elif buttonMode and key == render.pg.K_DELETE and selFrame != -1: + frame = getKeyframeAtPos(selFrame) + if frame != None and frame['type'] != 'position': + global keyFrames + keyFrames.remove(frame) + self.refresh() + elif selFrame != -1 and key == render.pg.K_e: + buttonMode = not buttonMode + self.refresh() + + + def updateNodes(self, loadKeyframes): + global ogNodes + global ogCtrlNodes + global ogRotNodes + ogNodes = pathEditor.nodes.copy() + ogCtrlNodes = pathEditor.curveEditPoints.copy() + ogRotNodes = pathEditor.nodeRotations.copy() + + if not loadKeyframes: + return + + for i in range(len(ogNodes)): + frame = getPosKeyframeByIndex(i) + frame['position'] = ogNodes[i] + frame['rotation'] = ogRotNodes[i] + + + + def load(self): + global selFrame + global buttonMode + selFrame = -1 + buttonMode = False + + global ogNodes + global ogCtrlNodes + global ogRotNodes + + if len(ogNodes) != len(pathEditor.nodes): + + global keyFrames + + for i in range(len(keyFrames)-1,-1,-1): + if keyFrames[i]['type'] == 'position': + keyFrames.pop(i) + + self.updateNodes(False) + + for i in range(len(ogNodes)): + if len(ogNodes) == 1: + timeIndex = 0 + else: + timeIndex = round((i)/(len(ogNodes)-1) * (displayTicks-1)) + keyFrames.append({ + "type": "position", + "timeIndex": timeIndex, + "index": i, + "position": ogNodes[i], + "rotation": ogRotNodes[i] + }) + else: + self.updateNodes(True) + + self.refresh() + + + def unload(self): + pass \ No newline at end of file diff --git a/src/export.py b/src/export.py new file mode 100644 index 0000000..1285b1e --- /dev/null +++ b/src/export.py @@ -0,0 +1,252 @@ +import crossfiledialog +import struct +import copy + +pg = None +buttonEditor = None +events = [] + +#Save according to https://github.com/Team4388/2024AcrossTheRidgebotiverse/blob/Prep-For-Denver/src/main/java/frc4388/robot/commands/Autos/neo%20AutoRecoding%20format.txt + + +moveMultiplier = 0.1 +rotMultiplier = 1 + + +def buttonsToBytes(buttons): + data = 0 + for i in range(16): + data |= buttons[i] << i + return data.to_bytes(2, "little", signed=True) + + +def toByte(num): + if num > 255: + raise OverflowError + return num.to_bytes(1, 'big', signed=False) + + + +def toShort(num): + if num > 65535: + raise OverflowError + return num.to_bytes(2, 'big', signed=True) + + +def toInt(num): + return struct.pack('>i', num) + + +def toDouble(num): + return struct.pack('>d', num) + + + + +class xboxController: + def __init__(self): + self.buttons = [False for i in range(16)] + self.leftStick = (0,0) + self.rightStick = (0,0) + self.LT = -1 + self.RT = -1 + self.POV = -1 + + +def getPOVhat(up, down, left, right): + if up and right: + return 45 + elif right and down: + return 135 + elif down and left: + return 225 + elif left and up: + return 315 + elif up: + return 0 + elif right: + return 90 + elif down: + return 180 + elif left: + return 270 + else: + return -1 + + + + +def getSticksAtFrame(index): + + fractionIndex = round(index/buttonEditor.displayTickResolution) + + newpos, newrot = buttonEditor.getRobotAtIndex(fractionIndex) + oldpos, oldrot = buttonEditor.getRobotAtIndex(fractionIndex-1) + + # print(oldrot-newrot) + + diffPos = ((oldpos[0]-newpos[0])*moveMultiplier, (oldpos[1]-newpos[1])*moveMultiplier) + diffRot = (oldrot-newrot)*rotMultiplier + + if abs(diffPos[0]) > 1 or abs(diffPos[1]) > 1 or abs(diffRot) > 1: + print("Error! Robot moved too fast!, Try to edit 'Multiplier' values in export.py") + return (0, 0), 0 + + + print(diffPos) + + # print(diffRot) + + return diffPos, diffRot + + + +def getControllersAtFrame(index): + controllers = [xboxController(), xboxController()] + if index >= buttonEditor.matchTicks: + return controllers + + pos, rot = getSticksAtFrame(index) + + controllers[0].leftStick = pos + controllers[0].rightStick = (rot,0) + + btns = buttonEditor.getLeftButtonFrame(index) + if btns == None: + btns = buttonEditor.createBlankController() + else: + btns = btns['controllers'] + + for i in range(len(controllers)): + ctrlr = btns[i] + + controllers[i].buttons[0] = ctrlr['A'] + controllers[i].buttons[1] = ctrlr['B'] + controllers[i].buttons[2] = ctrlr['X'] + controllers[i].buttons[3] = ctrlr['Y'] + + controllers[i].buttons[4] = ctrlr['LB'] + controllers[i].buttons[5] = ctrlr['RB'] + + controllers[i].buttons[6] = ctrlr['Menu'] + controllers[i].buttons[7] = ctrlr['Windows'] + + controllers[i].buttons[8] = ctrlr['Left_Stick'] + controllers[i].buttons[9] = ctrlr['Right_Stick'] + + controllers[i].LT = (ctrlr['LT']*2)-1 + controllers[i].RT = (ctrlr['RT']*2)-1 + + controllers[i].POV = getPOVhat(ctrlr['Dpad_Up'], ctrlr['Dpad_Down'], + ctrlr['Dpad_Left'], ctrlr['Dpad_Right']) + + + + return controllers + + + +def getFrameData(index): + controllers = getControllersAtFrame(index) + data = b'' + for ctrlr in controllers: + # print(ctrlr.leftStick[0]) + data += toDouble(ctrlr.leftStick[0]) + data += toDouble(ctrlr.leftStick[1]) + data += toDouble(ctrlr.LT) + data += toDouble(ctrlr.RT) + data += toDouble(ctrlr.rightStick[0]) + data += toDouble(ctrlr.rightStick[1]) + + data += buttonsToBytes(ctrlr.buttons) + + # for btn in ctrlr.buttons: + # data += toBit(data) + # print(toBit(data)) + + data += toShort(ctrlr.POV) + + data += toInt(index * buttonEditor.tickTime) + + return data + + + +def getHeader(): + header = toByte(6) # Num Axes per controller + header += toByte(1) # Num POVs + header += toByte(2) # Num Controllers + header += toShort(buttonEditor.matchTicks) # Num Frames + return header + + + +def getData(): + data = b'' + for i in range(buttonEditor.matchTicks): + data += getFrameData(i) + return getHeader() + data + + + +def save(): + path = crossfiledialog.save_file('Save auto file', './') + # path = "./file.txt" + with open(path, "wb") as f: + f.write(getData()) + +class export: + name = "Export" + + def __init__(self, tmppg, tmprender, tmpbuttonEditor): + global pg + pg = tmppg + global render + render = tmprender + global buttonEditor + buttonEditor = tmpbuttonEditor + + self.loaded = False + + def getIsSelected(): + return False + + def getIsVisible(): + return self.loaded + + def onClick(pos): + save() + + render.addButton((round(render.width/4),round(render.screen.get_height()/4),round(render.width/2),round(render.height/2)), + "Export", getIsSelected, getIsVisible, onClick) + + def mouseDown(self, pos): + pass + + def mouseUp(self, pos): + pass + + def mouseMove(self, pos): + pass + + def doubleClick(self, pos): + pass + + def keyDown(self, key): + pass + + def load(self): + self.loaded = True + + # for keyFrame in buttonEditor.keyFrames: + # keyFrame['timeIndex'] = keyFrame['timeIndex'] * buttonEditor.displayTickResolution + + + render.clear() + pg.display.update() + + def unload(self): + self.loaded = False + + # for keyFrame in buttonEditor.keyFrames: + # keyFrame['timeIndex'] = round(keyFrame['timeIndex'] / buttonEditor.displayTickResolution) \ No newline at end of file diff --git a/src/pathEditor.py b/src/pathEditor.py new file mode 100644 index 0000000..fc43aec --- /dev/null +++ b/src/pathEditor.py @@ -0,0 +1,171 @@ +import math +from pygame.locals import * + +nodeColor = (255, 255, 255) +nodeRadius = 12 + +rotNodeDist = 35 +rotNodeColor = (255, 0, 255) +rotNodeRadius = 8 + +lineApproximationLineColor = (127, 127, 127, 0.5) +lineApproximationLineWidth = 3 + +curveEditPointColor = (0, 255, 255) +curveEditPointRadius = 8 + +curvePointCount = 80 + +nodes = [] +curveEditPoints = [] +nodeRotations = [] + +clickType = -1 +clickIndex = -1 + +render = None + + + + +def refresh(): + render.clear() + render.drawField() + + for i in range(0,len(curveEditPoints)): + render.line(lineApproximationLineColor, nodes[i], curveEditPoints[i], lineApproximationLineWidth) + render.line(lineApproximationLineColor, curveEditPoints[i], nodes[i+1], lineApproximationLineWidth) + + render.bezier(nodes[i], curveEditPoints[i], nodes[i+1], curvePointCount) + + render.circle(curveEditPointColor, curveEditPoints[i], curveEditPointRadius) + for i in range(0,len(nodeRotations)): + posX = (math.sin(nodeRotations[i])*rotNodeDist/render.offsetSize) + nodes[i][0] + posY = (math.cos(nodeRotations[i])*rotNodeDist/render.offsetSize) + nodes[i][1] + render.circle(rotNodeColor, (posX, posY), rotNodeRadius) + render.robotSquare(nodes[i], nodeRotations[i]) + for pos in nodes: + + render.circle(nodeColor, pos, nodeRadius) + render.update() + + + +def getElemAt(pos): + for i in range(0,len(nodes)): + if getDist(pos, nodes[i], nodeRadius): + return 0, i + for i in range(0,len(nodeRotations)): + posX = (math.sin(nodeRotations[i])*rotNodeDist/render.offsetSize) + nodes[i][0] + posY = (math.cos(nodeRotations[i])*rotNodeDist/render.offsetSize) + nodes[i][1] + if getDist(pos, (posX, posY), nodeRadius): + return 2, i + for i in range(0,len(curveEditPoints)): + if getDist(pos, curveEditPoints[i], curveEditPointRadius): + return 1, i + return -1, -1 + + + +def getDist(pos1, pos2, dist): + return math.sqrt(math.pow(pos1[0]-pos2[0], 2) + math.pow(pos1[1]-pos2[1], 2)) <= dist + + + +def addNode(pos): + nodes.append(pos) + if len(nodes) > 1: + index = len(nodes)-1 + # Middle point between current point and previous point + editPos = (nodes[index-1][0]+pos[0])/2,(nodes[index-1][1]+pos[1])/2 + curveEditPoints.append(editPos) + nodeRotations.append(nodeRotations[index-1]) + else: + nodeRotations.append(math.pi/2) + refresh() + + + +def nearestCirclePoint(center, pos, R): + vX = pos[0] - center[0] + vY = pos[1] - center[1] + magV = math.sqrt(vX*vX + vY*vY) + aX = center[0] + vX / magV * R + aY = center[1] + vY / magV * R + return (aX, aY) + + + +def points2rad(center, pos): + diffX = center[0] - pos[0] + diffY = center[1] - pos[1] + return -math.atan2(diffY, diffX) - (math.pi/2) + +class pathEditor: + name = "Path Editor" + + + def __init__(self, tmprender): + # global screen + # screen = tmpscreen + global render + render = tmprender + + refresh() + + + + def mouseDown(self, pos): + global clickType + global clickIndex + clickType, clickIndex = getElemAt(pos) + if clickType == -1: + addNode(pos) + + + + def mouseUp(self, pos): + global clickType + global clickIndex + if clickType != -1: + clickType = -1 + clickIndex = -1 + + + + def mouseMove(self, pos): + if clickType != -1: + if clickType == 0: + nodes[clickIndex] = pos + if clickType == 1: + curveEditPoints[clickIndex] = pos + if clickType == 2: + nodeRotations[clickIndex] = points2rad(nodes[clickIndex], nearestCirclePoint(nodes[clickIndex], pos, rotNodeDist/render.offsetSize)) + refresh() + + + + def doubleClick(self, pos): + clickType, clickIndex = getElemAt(pos) + if clickType == -1: + pass + elif clickType == 0: + if clickIndex > 0: + if clickIndex < len(nodes)-1: + newPos = (nodes[clickIndex-1][0]+nodes[clickIndex][0])/2,(nodes[clickIndex-1][1]+nodes[clickIndex][1])/2 + curveEditPoints[clickIndex] = newPos + curveEditPoints.pop(clickIndex-1) + elif clickIndex == 0 and len(nodes) > 1: + curveEditPoints.pop(clickIndex) + nodes.pop(clickIndex) + nodeRotations.pop(clickIndex) + refresh() + + def keyDown(self, key): + pass + + def load(self): + refresh() + + def unload(self): + pass \ No newline at end of file diff --git a/src/render.py b/src/render.py new file mode 100644 index 0000000..4b3d08a --- /dev/null +++ b/src/render.py @@ -0,0 +1,211 @@ +import math +import os +import sys +from pygame.locals import * +import numpy as np + +curvePointColor = (255, 255, 0) +curvePointRadius = 2 + +selTabBorderSize = 2 +selTabBorderIndent = 3 + +nodeSquareRadius = 35 +nodeSquareColor = (127, 127, 127, 0.5) +nodeSquareWidth = 3 + +nodeTickLength = 5 + +def image_path(relative_path): + try: + base_path = sys._MEIPASS + except Exception: + base_path = os.path.abspath(".") + + return os.path.join(base_path, relative_path) + + +class render(): + + + def __init__(self, pg, screen, topBarHeight, bottomBarHeight): + self.pg = pg + self.screen = screen + + self.topBarHeight = topBarHeight + self.bottomBarHeight = bottomBarHeight + + self.width = self.screen.get_width() + self.height = self.screen.get_width() * (643/1286) + self.rect = (0, self.topBarHeight, self.width, self.height+bottomBarHeight) + + self.font = self.pg.font.Font(None, 25) + + self.fieldImg = self.loadImg("images/Field.png") + self.offsetSize = self.fieldImg.get_width() / self.width + self.fieldImg = pg.transform.scale(self.fieldImg, (self.width, self.height)) + + self.elements = [] + + + + + def invert(self, img): + inv = self.pg.Surface(img.get_rect().size, self.pg.SRCALPHA) + inv.fill((255,255,255)) + inv.blit(img, (0,0), None, BLEND_RGB_SUB) + return inv + + + + def line(self, color, pos1, pos2, width): + self.pg.draw.line(self.screen, color, pos1, pos2, round(width/self.offsetSize)) + + + + def circle(self, color, pos, radius): + self.pg.draw.circle(self.screen, color, pos, radius/self.offsetSize) + + + + def drawrect(self, color, rect): + self.pg.draw.rect(self.screen, color, rect) + + + + # def drawText(self, text, color,): + + # text = self.font.render(text, True, color) + + # rect = text.get_rect() + + # self.screen.blit(text, rect) + # # text_rect = text.get_rect(center=(rect[0]+(rect[2]/2), rect[1]+(rect[3]/2))) + + + + def isInRect(self, pos, rect): + return pos[0] >= rect[0] and \ + pos[0] <= rect[0]+rect[2] and \ + pos[1] >= rect[1] and \ + pos[1] <= rect[1]+rect[3] + + + + def image(self, img, rect): + self.screen.blit(self.pg.transform.scale(img, (rect[2], rect[3])), rect) + + + + def loadImg(self, path): + return self.pg.image.load(image_path(path)).convert_alpha() + + + + def robotSquare(self, pos, rot): + pos1 = ((math.sin(rot + math.pi*-0.25)*nodeSquareRadius/self.offsetSize) + pos[0], + (math.cos(rot + math.pi*-0.25)*nodeSquareRadius/self.offsetSize) + pos[1]) + pos2 = ((math.sin(rot + math.pi*0.25)*nodeSquareRadius/self.offsetSize) + pos[0], + (math.cos(rot + math.pi*0.25)*nodeSquareRadius/self.offsetSize) + pos[1]) + pos3 = ((math.sin(rot + math.pi*0.75)*nodeSquareRadius/self.offsetSize) + pos[0], + (math.cos(rot + math.pi*0.75)*nodeSquareRadius/self.offsetSize) + pos[1]) + pos4 = ((math.sin(rot + math.pi*1.25)*nodeSquareRadius/self.offsetSize) + pos[0], + (math.cos(rot + math.pi*1.25)*nodeSquareRadius/self.offsetSize) + pos[1]) + + pos5 = ((math.sin(rot)*(nodeSquareRadius+nodeTickLength)/self.offsetSize) + pos[0], + (math.cos(rot)*(nodeSquareRadius+nodeTickLength)/self.offsetSize) + pos[1]) + pos6 = ((math.sin(rot)*(nodeSquareRadius-nodeTickLength)/self.offsetSize) + pos[0], + (math.cos(rot)*(nodeSquareRadius-nodeTickLength)/self.offsetSize) + pos[1]) + + self.line(nodeSquareColor, pos1, pos2, nodeSquareWidth*self.offsetSize) + self.line(nodeSquareColor, pos2, pos3, nodeSquareWidth*self.offsetSize) + self.line(nodeSquareColor, pos3, pos4, nodeSquareWidth*self.offsetSize) + self.line(nodeSquareColor, pos4, pos1, nodeSquareWidth*self.offsetSize) + + self.line(nodeSquareColor, pos5, pos6, nodeSquareWidth*self.offsetSize) + + + + + def bezier(self, p0, p1, p2, curvePointCount): + #for p in [p0, p1, p2]: + # pg.draw.circle(self.screen, (255, 255, 255), p, 5) + for t in np.arange(0, 1, 1/curvePointCount): + px = p0[0]*(1-t)**2 + 2*(1-t)*t*p1[0] + p2[0]*t**2 + py = p0[1]*(1-t)**2 + 2*(1-t)*t*p1[1] + p2[1]*t**2 + self.circle(curvePointColor, (px, py), curvePointRadius) + self.circle(curvePointColor, p2, curvePointRadius) + #self.drawrect(curvePointColor, (round(px+0.5), round(py+0.5), curvePointRadius, curvePointRadius)) + + + + def clear(self): + self.pg.draw.rect(self.screen, (0, 0, 0), self.rect) + + + + def drawField(self): + self.screen.blit(self.fieldImg, self.rect) + + + + def renderElements(self, pos): + for elem in self.elements: + if elem['type'] == 'button' and elem['getIsVisible'](): + # print(elem['getIsSelected']()) + self.renderButton(elem['rect'], elem['text'], elem['getIsSelected'](), pos) + + + + def clickElement(self, pos): + for elem in self.elements: + if elem['type'] == 'button' and elem['getIsVisible']() and self.isInRect(pos, elem['rect']): + elem['onClick'](pos) + + + + def update(self): + self.pg.display.update() + + + + def addButton(self, rect, text, getIsSelected, getIsVisible, onClick): + self.elements.append({ + "type": "button", + "text": text, + "getIsSelected": getIsSelected, + "getIsVisible": getIsVisible, + "onClick": onClick, + "rect": rect + }) + + + + def renderButton(self, rect, text, selected, mousePos): + + # print(isInRect(mousePos, rect)) + + if self.isInRect(mousePos, rect): + color = (16,64,32) + else: + color = (16,16,32) + + if selected: + borderColor = (0,255,0) + else: + borderColor = (64,127,127) + + text = self.font.render(text, True, (255,255,255)) + text_rect = text.get_rect(center=(rect[0]+(rect[2]/2), rect[1]+(rect[3]/2))) + + self.pg.draw.rect(self.screen, color, rect) + rect = (rect[0]+selTabBorderIndent,rect[1]+selTabBorderIndent, + rect[2]-selTabBorderIndent*2,rect[3]-selTabBorderIndent*2) + self.pg.draw.rect(self.screen, borderColor, rect) + rect = (rect[0]+selTabBorderSize,rect[1]+selTabBorderSize, + rect[2]-selTabBorderSize*2,rect[3]-selTabBorderSize*2) + self.pg.draw.rect(self.screen, color, rect) + + self.screen.blit(text, text_rect) + + self.update() \ No newline at end of file