public class TLspLookFromTrackingCameraConstraint3D<T extends TLspViewXYZWorldTransformation3D> extends ALspCameraConstraint<T>
Constraint for TLspViewXYZWorldTransformation3D
that forces the camera to always look from a target point.
It provides two modes, based on the value of the flag followOrientation
.
If the flag is set to true
, the camera's orientation is adapted based on the
tracked point(s) orientation. If set to false
, the camera's orientation is
controlled by the user (through the rotation controller).
By default, this camera constraint doesn't track any objects. To do this
setTrackingPointProvider
should be called first.
Constructor and Description |
---|
TLspLookFromTrackingCameraConstraint3D(boolean aFollowOrientation)
Creates a look-from camera constraint for a given set of objects (whose motion is to be tracked).
|
Modifier and Type | Method and Description |
---|---|
void |
constrain(T aSource,
T aTargetSFCT)
Constrains the given view world transformation.
|
ALspTrackingPointProvider |
getTrackingPointProvider()
Returns the used tracking point provider, or
null if no tracking point
provider is used. |
void |
setTrackingPointProvider(ALspTrackingPointProvider aTrackingPointProvider)
Sets the tracking point provider.
|
addConstraintChangeListener, fireConstraintChangeEvent, removeConstraintChangeListener
public TLspLookFromTrackingCameraConstraint3D(boolean aFollowOrientation)
aFollowOrientation
- whether or not to follow the orientation changes of the tracked
objects. If true
, the camera follows both
translations and rotations of the object, so that it is
fully in the reference frame of the object. If
false
, only translations of the object
are followed, rotations of it are ignored.public ALspTrackingPointProvider getTrackingPointProvider()
null
if no tracking point
provider is used.null
if no tracking point
provider is used.setTrackingPointProvider(ALspTrackingPointProvider)
public void setTrackingPointProvider(ALspTrackingPointProvider aTrackingPointProvider)
aTrackingPointProvider
- a tracking point provider.getTrackingPointProvider()
public void constrain(T aSource, T aTargetSFCT)
ALspCameraConstraint
Constrains the given view world transformation. This method can be implemented by
modifying aTargetSFCT
.
When the original view world transformation is
modified, the changes are first applied on a copy of the transformation (aTargetSFCT
).
This copy is passed to the constraints, which can also modify it. After all constraints are
evaluated, all changes are applied on the original transformation.
aSource
is the original transformation. It is given as context information.
constrain
in class ALspCameraConstraint<T extends TLspViewXYZWorldTransformation3D>
aSource
- the original transformation, on which all changes will be applied after
all constraints are evaluated. It is given as context information.aTargetSFCT
- the view transformation copy which contains the modifications. Constraints
should be applied on this transformation.