Source code for ggame.line
"""
Line objects for MathApp applications
"""
from ggame.mathapp import _MathVisual
from ggame.asset import LineAsset
[docs]class LineSegment(_MathVisual):
"""
Create a line segment on the screen. This is a subclass of
:class:`~ggame.sprite.Sprite` and
:class:`~ggame.mathapp._MathVisual` but most of the inherited members are of
little use and are not shown in the documentation.
:param \\*args:
See below
:param \\**kwargs:
See below
:Required Arguments:
* **pos** (*tuple(float,float)*) Starting point of the segment, which may
be a literal tuple of floats, or a reference to any object or
function that returns or evaluates to a tuple of floats.
* **end** (*tuple(float,float)*) Ending point of the segment (see above)
:Optional Keyword Arguments:
* **positioning** (*str*) One of 'logical' or 'physical'
* **style** (*LineStyle*) Valid :class:`~ggame.asset.LineStyle` object
Example::
from ggame.point import Point
from ggame.line import LineSegment
from ggame.mathapp import MathApp
p1 = Point((2,1))
ls = LineSegment(p1, Point((1,1)))
MathApp().run()
"""
_posinputsdef = ["pos", "end"]
def __init__(self, *args, **kwargs):
super().__init__(LineAsset(0, 0, self._defaultstyle), *args, **kwargs)
self.touchAsset()
def _buildAsset(self):
# pylint: disable=no-member
start = self._pposinputs.pos
end = self._pposinputs.end
# pylint: enable=no-member
self.position = start
return LineAsset(end[0] - start[0], end[1] - start[1], self._stdinputs.style())
[docs] def physicalPointTouching(self, ppos):
"""
This method always returns False.
"""
return False
[docs] def translate(self, pdisp):
"""
This method is not implemented.
"""