MCPcopy
hub / github.com/scottbez1/splitflap / Vector

Class Vector

thirdparty/panelize.py:316–376  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

314
315
316class Vector( KicadObj ):
317
318 def __init__( self, name, x=None, y=None ):
319 KicadObj.__init__( self, name )
320 self.x = x
321 self.y = y
322
323 def tag_value( self, factory, value ):
324 if self.x == None:
325 self.x = float(value)
326 elif self.y == None:
327 self.y = float(value)
328 else:
329 factory.parse_error( "too many values for '%s'" % self.obj_name )
330
331 def clone( self ):
332 return Vector( self.obj_name, self.x, self.y )
333
334 def is_set( self ):
335 return self.y != None
336
337 def write_contents( self, writer ):
338 writer.write_float( self.x )
339 writer.write_float( self.y )
340
341 def __add__( self, v ):
342 return Vector( self.obj_name, self.x+v.x, self.y+v.y )
343
344 def __sub__( self, v ):
345 return Vector( self.obj_name, self.x-v.x, self.y-v.y )
346
347 def __str__( self ):
348 if self.y == None:
349 return "<<<NONE>>>"
350 return "%f/%f" % ( self.x, self.y )
351
352 def unrot( self ):
353 return self
354
355 def get_angle( self ):
356 return 0
357
358 def rotate( self, angle ):
359 x = self.x
360 y = self.y
361 if angle == 0:
362 pass
363 elif angle == 90:
364 x, y = y, -x
365 elif angle == 180:
366 x, y = -x, -y
367 elif angle == 270:
368 x, y = -y, x
369 else:
370 # +++ sin/cos???
371 # raise Exception( "unsupported angle" )
372 ra = math.radians( angle )
373 sa = math.sin( ra )

Callers 15

cloneMethod · 0.85
__add__Method · 0.85
__sub__Method · 0.85
rotateMethod · 0.85
__init__Method · 0.85
__init__Method · 0.85
__init__Method · 0.85
tag_startMethod · 0.85
__init__Method · 0.85
__init__Method · 0.85
__init__Method · 0.85
__init__Method · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected