Esempio n. 1
0
        
    def _getEndPoints(self):
        return [ self.line.endPoint ]
    
    startPoints = property( _getStartPoints, _setStartPoints)
    endPoints = property( _getEndPoints, _setEndPoints)


class LinesToLinesListAdapter(object):
    implements_interfaces = ILinesList
    
    def __init__(self, lines):
        self.lines = lines
        
    def _setLinesList(self, lines_list):
        assert len(lines_list) == 1
        self.lines.points = numpy.array( lines_list[0] )
        
    def _getLinesList(self):
        return [ self.lines.points ]
       
    lines_list = property( _getLinesList, _setLinesList)
    

from common import registerModelAdapter
registerModelAdapter( ILineLength, ILine, LineLengthToLineAdapter )
registerModelAdapter( ILineSegments, ILineSegmentsSeparate, LineSegmentsToLineSegmentsSeparateAdapter )
registerModelAdapter( ILine, ILineSegmentsSeparate, LineToLineSegmentsSeparateAdapter )
registerModelAdapter( ILines, ILinesList, LinesToLinesListAdapter )

    
Esempio n. 2
0
    def _getHeadSize(self):
        return self._headSize

    headSize = property(_getHeadSize, _setHeadSize)


class AngleArrowToArrowAdapter(object):
    ''' Adapts AngleArrows to Arrows '''
    implements_interfaces = IAngleArrow

    def __init__(self, angleArrow):
        self.angleArrow = angleArrow

    # let's implement them read-only properties just because for the fun of it
    startPoint = property(lambda self: self.angleArrow.startPoint)
    headSize = property(lambda self: self.angleArrow.headSize)

    def _getEndPoint(self):
        endPoint = self.startPoint + numpy.array([
            numpy.cos(self.angleArrow.angle),
            numpy.sin(self.angleArrow.angle)
        ]) * self.angleArrow.length
        return endPoint

    endPoint = property(_getEndPoint)


from common import registerModelAdapter
registerModelAdapter(IAngleArrow, IArrow, AngleArrowToArrowAdapter)
Esempio n. 3
0
    startPoint = property( _getStartPoint, _setStartPoint )

    def _setHeadSize(self, headSize):
        self._headSize = numpy.array( headSize )
        
    def _getHeadSize(self):
        return self._headSize
    
    headSize = property( _getHeadSize, _setHeadSize )


class AngleArrowToArrowAdapter(object):
    ''' Adapts AngleArrows to Arrows '''
    implements_interfaces = IAngleArrow
    
    def __init__(self, angleArrow):
        self.angleArrow = angleArrow

    # let's implement them read-only properties just because for the fun of it
    startPoint = property( lambda self: self.angleArrow.startPoint )
    headSize = property( lambda self: self.angleArrow.headSize )

    def _getEndPoint(self):
        endPoint = self.startPoint + numpy.array( [ numpy.cos(self.angleArrow.angle), numpy.sin(self.angleArrow.angle) ] ) * self.angleArrow.length
        return endPoint

    endPoint = property( _getEndPoint )

from common import registerModelAdapter
registerModelAdapter( IAngleArrow, IArrow, AngleArrowToArrowAdapter )
Esempio n. 4
0
    implements_interfaces = IArc

    def __init__(self, radius, startAngle, endAngle, clockwise):
        self.radius = radius
        self.startAngle = startAngle
        self.endAngle = endAngle
        self.clockwise = clockwise


# ----- adapters -------


class CircleToEllipseAdapter(object):
    implements_interfaces = IEllipse

    def __init__(self, circle):
        self.circle = circle

    def _getSize(self):
        return numpy.array((self.circle.radius, self.circle.radius)) * 2

    def _setSize(self, value):
        assert value[0] == value[
            1], 'Circle objects need to the same size in x and y directions'
        self.circle.radius = value[0]

    size = property(_getSize, _setSize)


registerModelAdapter(ICircle, IEllipse, CircleToEllipseAdapter)
Esempio n. 5
0
        to take and clockwise is a bool which specifies whether the clockwise or
        anticlockwise piece between startAngle and endAngle are taken.
    '''
    implements_interfaces = IArc

    def __init__( self, radius, startAngle, endAngle, clockwise ):
        self.radius = radius
        self.startAngle = startAngle
        self.endAngle = endAngle
        self.clockwise = clockwise


# ----- adapters -------

class CircleToEllipseAdapter(object):
    implements_interfaces = IEllipse
    
    def __init__(self, circle):
        self.circle = circle
        
    def _getSize(self):
        return numpy.array( (self.circle.radius, self.circle.radius) ) * 2
    
    def _setSize(self, value):
        assert value[0] == value[1], 'Circle objects need to the same size in x and y directions'
        self.circle.radius = value[0]
        
    size = property( _getSize, _setSize )

registerModelAdapter( ICircle, IEllipse, CircleToEllipseAdapter )
Esempio n. 6
0
        return [self.line.endPoint]

    startPoints = property(_getStartPoints, _setStartPoints)
    endPoints = property(_getEndPoints, _setEndPoints)


class LinesToLinesListAdapter(object):
    implements_interfaces = ILinesList

    def __init__(self, lines):
        self.lines = lines

    def _setLinesList(self, lines_list):
        assert len(lines_list) == 1
        self.lines.points = numpy.array(lines_list[0])

    def _getLinesList(self):
        return [self.lines.points]

    lines_list = property(_getLinesList, _setLinesList)


from common import registerModelAdapter

registerModelAdapter(ILineLength, ILine, LineLengthToLineAdapter)
registerModelAdapter(ILineSegments, ILineSegmentsSeparate,
                     LineSegmentsToLineSegmentsSeparateAdapter)
registerModelAdapter(ILine, ILineSegmentsSeparate,
                     LineToLineSegmentsSeparateAdapter)
registerModelAdapter(ILines, ILinesList, LinesToLinesListAdapter)
Esempio n. 7
0
    def _setPolygonList(self, polygon_list):
        self._polygon_list = [
            numpy.array([pnt for pnt in polygon]) for polygon in polygon_list
        ]

    def _getPolygonList(self):
        return self._polygon_list

    polygon_list = property(_getPolygonList, _setPolygonList)


class PolygonToPolygonListAdapter(object):
    implements_interfaces = IPolygonList

    def __init__(self, polygon):
        self.polygon = polygon

    def _setPolygonList(self, polygon_list):
        assert len(polygon_list) == 1
        self.polygon.points = numpy.array(polygon_list[0])

    def _getPolygonList(self):
        return [self.polygon.points]

    polygon_list = property(_getPolygonList, _setPolygonList)


from common import registerModelAdapter
registerModelAdapter(IPolygon, IPolygonList, PolygonToPolygonListAdapter)
Esempio n. 8
0
        self.polygon_list = polygon_list
        
    def _setPolygonList(self, polygon_list):
        self._polygon_list = [ numpy.array( [ pnt for pnt in polygon] ) for polygon in polygon_list ]
        
    def _getPolygonList(self):
        return self._polygon_list

    polygon_list = property( _getPolygonList, _setPolygonList )
    
    
class PolygonToPolygonListAdapter(object):
    implements_interfaces = IPolygonList
    
    def __init__(self, polygon):
        self.polygon = polygon
        
    def _setPolygonList(self, polygon_list):
        assert len(polygon_list) == 1
        self.polygon.points = numpy.array( polygon_list[0] )
        
    def _getPolygonList(self):
        return [ self.polygon.points ]
       
    polygon_list = property( _getPolygonList, _setPolygonList)
    

from common import registerModelAdapter
registerModelAdapter( IPolygon, IPolygonList, PolygonToPolygonListAdapter )