import threading
import re
-from fabmetheus_utilities.vector3 import Vector3
+from newui import util3d
class gcode():
def __init__(self, filename):
f = open(filename, 'r')
- pos = Vector3()
- posOffset = Vector3()
+ pos = util3d.Vector3()
+ posOffset = util3d.Vector3()
currentE = 0
pathList = []
scale = 1.0
y = self.getCodeFloat(line, 'Y')
z = self.getCodeFloat(line, 'Z')
if x is None and y is None and z is None:
- pos = Vector3()
+ pos = util3d.Vector3()
else:
if x is not None:
pos.x = 0.0
print "Failed to find PyOpenGL: http://pyopengl.sourceforge.net/"\r
hasOpenGLlibs = False\r
\r
-from fabmetheus_utilities.fabmetheus_tools import fabmetheus_interpret\r
-from fabmetheus_utilities.vector3 import Vector3\r
from fabmetheus_utilities import settings\r
from newui import gcodeInterpreter\r
+from newui import util3d\r
+\r
+from fabmetheus_utilities.fabmetheus_tools import fabmetheus_interpret\r
+from fabmetheus_utilities.vector3 import Vector3\r
\r
class previewPanel(wx.Panel):\r
def __init__(self, parent):\r
for i in xrange(0, len(path['list'])-1):\r
v0 = path['list'][i]\r
v1 = path['list'][i+1]\r
- normal = (v0 - v1).cross(Vector3(0,0,1))\r
+ normal = (v0 - v1).cross(util3d.Vector3(0,0,1))\r
normal.normalize()\r
v2 = v0 + normal * lineWidth\r
v3 = v1 + normal * lineWidth\r
--- /dev/null
+
+import math
+
+class Vector3():
+ def __init__(self, x=0.0, y=0.0, z=0.0):
+ self.x = x
+ self.y = y
+ self.z = z
+
+ def __copy__(self):
+ return Vector3(self.x, self.y, self.z)
+
+ def copy(self):
+ return Vector3(self.x, self.y, self.z)
+
+ def __repr__(self):
+ return '%s, %s, %s' % ( self.x, self.y, self.z )
+
+ def __add__(self, v):
+ return Vector3( self.x + v.x, self.y + v.y, self.z + v.z )
+
+ def __sub__(self, v):
+ return Vector3( self.x - v.x, self.y - v.y, self.z - v.z )
+
+ def __mul__(self, v):
+ return Vector3( self.x * v, self.y * v, self.z * v )
+
+ def __div__(self, v):
+ return Vector3( self.x / v, self.y / v, self.z / v )
+
+ def __neg__(self):
+ return Vector3( - self.x, - self.y, - self.z )
+
+ def __iadd__(self, v):
+ self.x += v.x
+ self.y += v.x
+ self.z += v.x
+ return self
+
+ def __isub__(self, v):
+ self.x += v.x
+ self.y += v.x
+ self.z += v.x
+ return self
+
+ def __imul__(self, v):
+ self.x *= v
+ self.y *= v
+ self.z *= v
+ return self
+
+ def __idiv__(self, v):
+ self.x /= v
+ self.y /= v
+ self.z /= v
+ return self
+
+ def cross(self, v):
+ return Vector3(self.y * v.z - self.z * v.y, -self.x * v.z + self.z * v.x, self.x * v.y - self.y * v.x)
+
+ def vsize(self):
+ return math.sqrt( self.x * self.x + self.y * self.y + self.z * self.z )
+
+ def normalize(self):
+ f = self.vsize()
+ if f != 0.0:
+ self.x /= f
+ self.y /= f
+ self.z /= f
+