Exemplo n.º 1
0
 def __init__(self, x=0, y=0, z=0):
     __pvector__.__init__(self, x, y, z)
     self.add = self.__instance_add__
     self.sub = self.__instance_sub__
     self.mult = self.__instance_mult__
     self.div = self.__instance_div__
     self.cross = self.__instance_cross__
     self.dist = self.__instance_dist__
Exemplo n.º 2
0
 def __instance_lerp__(self, *args):
     if len(args) == 4:
         x = args[0]
         y = args[1]
         z = args[2]
         t = args[3]
     elif len(args) == 2:
         v = args[0]
         x = v.x
         y = v.y
         z = v.z
         t = args[1]
     else:
         raise Exception('lerp takes either (x, y, z, t) or (v, t)')
     __pvector__.lerp(self, x, y, z, t)
Exemplo n.º 3
0
 def __constrain(self, vector, axis):
     """
     private constrain (used to constrain axis)
     """
     vector.sub(axis.mult(axis, PVector.dot(axis, vector)))
     vector.normalize()
     return vector
Exemplo n.º 4
0
 def __init__(self, cx, cy, radius):
     """
     Initialize instance of ArcBall with no constraint on axis of rotation
     """
     self.center_x = cx
     self.center_y = cy
     self.radius = radius
     self.v_down = PVector()
     self.v_drag = PVector()
     self.q_now = Quaternion()
     self.q_down = Quaternion()
     self.q_drag = Quaternion() 
     self.axis_set = [PVector(1.0, 0.0, 0.0), PVector(0.0, 1.0, 0.0), PVector(0.0, 0.0, 1.0)]
     self.axis = -1  
Exemplo n.º 5
0
 def __mouse2sphere(self, x, y):
     """
     private map mouse to ArcBall (sphere)
     """
     v = PVector()
     v.x = (x - self.center_x) / self.radius
     v.y = (y - self.center_y) / self.radius
     mag = v.x * v.x + v.y * v.y
     if (mag > 1.0) :
         v.normalize()
     else:
         v.z = sqrt(1.0 - mag)
     if (self.axis != -1):
         v = self.__constrain(v, self.axis_set[self.axis])
     return  v  
Exemplo n.º 6
0
 def add(cls, a, b, dest=None):
     return __pvector__.add(a, b, dest)
Exemplo n.º 7
0
def __div__(a, b):
    if isinstance(b, __pvector__):
        raise TypeError("The / operator can only be used to divide a PVector by a scalar")
    return __pvector__.div(a, float(b), None)
Exemplo n.º 8
0
def __add__(a, b):
    return __pvector__.add(a, b, None)
Exemplo n.º 9
0
 def mult(cls, a, b, dest=None):
     return RealPVector.mult(a, b, dest)
Exemplo n.º 10
0
 def sub(cls, a, b, dest=None):
     return __pvector__.sub(a, b, dest)
Exemplo n.º 11
0
 def dot(cls, a, b):
     return __pvector__.dot(a, b)
Exemplo n.º 12
0
 def dist(cls, a, b):
     return RealPVector.dist(a, b)
Exemplo n.º 13
0
 def dot(cls, a, b):
     return RealPVector.dot(a, b)
Exemplo n.º 14
0
 def angleBetween(cls, a, b):
     return RealPVector.angleBetween(a, b)
Exemplo n.º 15
0
 def dist(cls, a, b):
     return RealPVector.dist(a, b)
Exemplo n.º 16
0
 def cross(cls, a, b, dest=None):
     return RealPVector.cross(a, b, dest)
Exemplo n.º 17
0
 def div(cls, a, b, dest=None):
     return RealPVector.div(a, b, dest)
Exemplo n.º 18
0
 def sub(cls, a, b, dest=None):
     return RealPVector.sub(a, b, dest)
Exemplo n.º 19
0
 def add(cls, a, b, dest=None):
     return RealPVector.add(a, b, dest)
Exemplo n.º 20
0
 def div(cls, a, b, dest=None):
     return RealPVector.div(a, b, dest)
Exemplo n.º 21
0
 def div(cls, a, b, dest=None):
     return __pvector__.div(a, float(b), dest)
Exemplo n.º 22
0
 def angleBetween(cls, a, b):
     return RealPVector.angleBetween(a, b)
Exemplo n.º 23
0
 def angleBetween(cls, a, b):
     return __pvector__.angleBetween(a, b)
Exemplo n.º 24
0
 def random3D(cls, *args):
     jpv = __pvector__.random3D(*args)
     return PVector(jpv.x, jpv.y, jpv.z)
Exemplo n.º 25
0
 def fromAngle(cls, a, target=None):
     return __pvector__.fromAngle(a, target)
Exemplo n.º 26
0
 def mult(cls, a, b, dest=None):
     return __pvector__.mult(a, float(b), dest)
Exemplo n.º 27
0
 def sub(cls, a, b, dest=None):
     return RealPVector.sub(a, b, dest)
Exemplo n.º 28
0
 def cross(cls, a, b, dest=None):
     return __pvector__.cross(a, b, dest)
Exemplo n.º 29
0
 def __rmul__(a, b):
     if not isinstance(b, Number):
         raise TypeError("The * operator can only be used to multiply a PVector by a number")
     return PVector.mult(a, float(b), None)
Exemplo n.º 30
0
 def random3D(cls):
     return __pvector__.random3D()
Exemplo n.º 31
0
 def __div__(a, b):
     if not isinstance(b, Number):
         raise TypeError("The / operator can only be used to divide a PVector by a number")
     return PVector.div(a, float(b), None)
Exemplo n.º 32
0
def __sub__(a, b):
    return __pvector__.sub(a, b, None)
Exemplo n.º 33
0
 def add(cls, a, b, dest=None):
     return __pvector__.add(a, b, dest)
Exemplo n.º 34
0
def __rmul__(a, b):
    if isinstance(b, __pvector__):
        raise TypeError("The * operator can only be used to multiply a PVector by a scalar")
    return __pvector__.mult(a, float(b), None)
Exemplo n.º 35
0
 def sub(cls, a, b, dest=None):
     return __pvector__.sub(a, b, dest)
Exemplo n.º 36
0
def __magSq__(a):
    return __pvector__.magSq(a)
Exemplo n.º 37
0
 def mult(cls, a, b, dest=None):
     return __pvector__.mult(a, float(b), dest)
Exemplo n.º 38
0
 def add(cls, a, b, dest=None):
     return RealPVector.add(a, b, dest)
Exemplo n.º 39
0
 def div(cls, a, b, dest=None):
     return __pvector__.div(a, float(b), dest)
Exemplo n.º 40
0
 def mult(cls, a, b, dest=None):
     return RealPVector.mult(a, b, dest)
Exemplo n.º 41
0
 def cross(cls, a, b, dest=None):
     return __pvector__.cross(a, b, dest)
Exemplo n.º 42
0
 def cross(cls, a, b, dest=None):
     return RealPVector.cross(a, b, dest)
Exemplo n.º 43
0
 def dist(cls, a, b):
     return __pvector__.dist(a, b)
Exemplo n.º 44
0
 def dot(cls, a, b):
     return RealPVector.dot(a, b)
Exemplo n.º 45
0
 def dot(cls, a, b):
     return __pvector__.dot(a, b)
Exemplo n.º 46
0
 def dist(cls, a, b):
     return __pvector__.dist(a, b)
Exemplo n.º 47
0
 def angleBetween(cls, a, b):
     return __pvector__.angleBetween(a, b)
Exemplo n.º 48
0
 def random2D(cls):
     return __pvector__.random2D()
Exemplo n.º 49
0
 def fromAngle(cls, *args):
     jpv = __pvector__.fromAngle(*args)
     return PVector(jpv.x, jpv.y, jpv.z)