openalea.phenomenal.calibration.transformations.Arcball
- class openalea.phenomenal.calibration.transformations.Arcball(initial=None)[source]
Bases:
object
Virtual Trackball Control.
>>> ball = Arcball() >>> ball = Arcball(initial=numpy.identity(4)) >>> ball.place([320, 320], 320) >>> ball.down([500, 250]) >>> ball.drag([475, 275]) >>> R = ball.matrix() >>> numpy.allclose(numpy.sum(R), 3.90583455) True >>> ball = Arcball(initial=[1, 0, 0, 0]) >>> ball.place([320, 320], 320) >>> ball.setaxes([1, 1, 0], [-1, 1, 0]) >>> ball.constrain = True >>> ball.down([400, 200]) >>> ball.drag([200, 400]) >>> R = ball.matrix() >>> numpy.allclose(numpy.sum(R), 0.2055924) True >>> ball.next()
- __init__(initial=None)[source]
Initialize virtual trackball control.
initial : quaternion or rotation matrix
Methods
__init__
([initial])Initialize virtual trackball control.
down
(point)Set initial cursor window coordinates and pick constrain-axis.
drag
(point)Update current cursor window coordinates.
matrix
()Return homogeneous rotation matrix.
next
([acceleration])Continue rotation in direction of last drag.
place
(center, radius)Place Arcball, e.g. when window size changes.
setaxes
(*axes)Set axes to constrain rotations.
Attributes
Return state of constrain to axis mode.
- property constrain
Return state of constrain to axis mode.