Package com.irurueta.ar.calibration
Class DualAbsoluteQuadric
java.lang.Object
com.irurueta.geometry.BaseQuadric
com.irurueta.geometry.DualQuadric
com.irurueta.ar.calibration.DualAbsoluteQuadric
- All Implemented Interfaces:
Serializable
The dual absolute quadric is the dual quadric tangent to the plane at
infinity.
The absolute quadric (which is its inverse) contains all planes located
at infinity (x,y,z,0), hence the absolute quadric fulfills
(x,y,z,0)'*Q*(x,y,z,0).
Consequently, the dual absolute quadric fulfills P*Q^-1*P, where P is the
plane at infinity (0,0,0,1) in the metric stratum.
This means that in the metric stratus the dual absolute quadric is equal
(up to scale) to:
[1 0 0 0]
Q = [0 1 0 0]
[0 0 1 0]
[0 0 0 0]
- See Also:
-
Field Summary
Fields inherited from class com.irurueta.geometry.BaseQuadric
BASEQUADRIC_MATRIX_COLUMN_SIZE, BASEQUADRIC_MATRIX_ROW_SIZE, DEFAULT_LOCUS_THRESHOLD, DEFAULT_PERPENDICULAR_THRESHOLD, MIN_THRESHOLD, N_PARAMS
-
Constructor Summary
ConstructorsConstructorDescriptionConstructor.DualAbsoluteQuadric
(double a, double b, double c, double d, double e, double f, double g, double h, double i, double j) Constructor of this class.Constructor using provided dual image of absolute conic on an arbitrary affine stratum while keeping the plane at infinity typically used in a metric stratum (0,0,0,1).DualAbsoluteQuadric
(DualImageOfAbsoluteConic diac, com.irurueta.geometry.Plane planeAtInfinity) Constructor from provided dual image of absolute conic and plane at infinity on an arbitrary projective stratum.DualAbsoluteQuadric
(com.irurueta.geometry.Plane planeAtInfinity) Constructor using provided plane at infinity while using the unitary dual image of absolute conic (the identity).DualAbsoluteQuadric
(com.irurueta.geometry.ProjectiveTransformation3D metricToProjectiveTransformation) Constructor of the Dual Absolute Quadric in an arbitrary projective stratum using a transformation from metric stratum to such projective space. -
Method Summary
Modifier and TypeMethodDescriptionGets dual image of absolute conic associated to this dual absolute quadric in an arbitrary projective stratum.void
Gets dual image of absolute conic associated to this dual absolute quadric in an arbitrary projective stratum and stores the result into provided instance.com.irurueta.geometry.ProjectiveTransformation3D
Obtains the metric to projective stratum transformation defining this Dual Absolute Quadric.void
getMetricToProjectiveTransformation
(com.irurueta.geometry.ProjectiveTransformation3D result) Obtains the metric to projective stratum transformation defining this Dual Absolute Quadric.com.irurueta.geometry.Plane
Gets plane at infinity associated to this dual absolute quadric in an arbitrary projective stratum.void
getPlaneAtInfinity
(com.irurueta.geometry.Plane result) Gets plane at infinity associated to this dual absolute quadric in an arbitrary projective stratum.final void
Sets dual image of absolute conic while keeping current plane at infinity in an arbitrary projective stratum.final void
setDualImageOfAbsoluteConicAndPlaneAtInfinity
(DualImageOfAbsoluteConic diac, com.irurueta.geometry.Plane planeAtInfinity) Sets this dual absolute quadric from provided dual image of absolute conic and plane at infinity on an arbitrary projective stratum.final void
setMetricToProjectiveTransformation
(com.irurueta.geometry.ProjectiveTransformation3D metricToProjectiveTransformation) Sets this dual absolute quadric from provided metric to projective space transformation.final void
setPlaneAtInfinity
(com.irurueta.geometry.Plane planeAtInfinity) Sets provided plane at infinity at an arbitrary projective stratum while keeping current dual image of absolute conic.Methods inherited from class com.irurueta.geometry.DualQuadric
angleBetweenPlanes, arePerpendicularPlanes, arePerpendicularPlanes, createCanonicalDualAbsoluteQuadric, getQuadric, isLocus, isLocus, quadric, setParametersFromPlanes
Methods inherited from class com.irurueta.geometry.BaseQuadric
asMatrix, asMatrix, getA, getB, getC, getD, getE, getF, getG, getH, getI, getJ, isNormalized, normalize, setA, setB, setC, setD, setE, setF, setG, setH, setI, setJ, setParameters, setParameters, setParameters
-
Constructor Details
-
DualAbsoluteQuadric
public DualAbsoluteQuadric()Constructor. Initializes the Dual Absolute Quadric assuming metric stratum, where it is equal to the identity except for the last element which is zero. -
DualAbsoluteQuadric
public DualAbsoluteQuadric(double a, double b, double c, double d, double e, double f, double g, double h, double i, double j) Constructor of this class. This constructor accepts every parameter describing a dual quadric (parameters a, b, c, d, e, f, g, h, i, j).- Parameters:
a
- Parameter A of the quadric.b
- Parameter B of the quadric.c
- Parameter C of the quadric.d
- Parameter D of the quadric.e
- Parameter E of the quadric.f
- Parameter F of the quadric.g
- Parameter G of the quadric.h
- Parameter H of the quadric.i
- Parameter I of the quadric.j
- Parameter J of the quadric.
-
DualAbsoluteQuadric
public DualAbsoluteQuadric(DualImageOfAbsoluteConic diac, com.irurueta.geometry.Plane planeAtInfinity) Constructor from provided dual image of absolute conic and plane at infinity on an arbitrary projective stratum.- Parameters:
diac
- dual image of absolute conic in an arbitrary projective stratum.planeAtInfinity
- plane at infinity in an arbitrary projective stratum.
-
DualAbsoluteQuadric
Constructor using provided dual image of absolute conic on an arbitrary affine stratum while keeping the plane at infinity typically used in a metric stratum (0,0,0,1).- Parameters:
diac
- dual image of absolute conic.
-
DualAbsoluteQuadric
public DualAbsoluteQuadric(com.irurueta.geometry.Plane planeAtInfinity) Constructor using provided plane at infinity while using the unitary dual image of absolute conic (the identity).- Parameters:
planeAtInfinity
- plane at infinity.
-
DualAbsoluteQuadric
public DualAbsoluteQuadric(com.irurueta.geometry.ProjectiveTransformation3D metricToProjectiveTransformation) throws InvalidTransformationException Constructor of the Dual Absolute Quadric in an arbitrary projective stratum using a transformation from metric stratum to such projective space.- Parameters:
metricToProjectiveTransformation
- transformation from metric to a projective space.- Throws:
InvalidTransformationException
- if provided transformation is numerically unstable.
-
-
Method Details
-
setMetricToProjectiveTransformation
public final void setMetricToProjectiveTransformation(com.irurueta.geometry.ProjectiveTransformation3D metricToProjectiveTransformation) throws InvalidTransformationException Sets this dual absolute quadric from provided metric to projective space transformation.- Parameters:
metricToProjectiveTransformation
- transformation from metric to a projective space.- Throws:
InvalidTransformationException
- if provided transformation is numerically unstable.
-
getMetricToProjectiveTransformation
public com.irurueta.geometry.ProjectiveTransformation3D getMetricToProjectiveTransformation() throws InvalidTransformationExceptionObtains the metric to projective stratum transformation defining this Dual Absolute Quadric.- Returns:
- a new metric to projective space transformation.
- Throws:
InvalidTransformationException
- if transformation cannot be determined because dual absolute quadric is numerically unstable.
-
getMetricToProjectiveTransformation
public void getMetricToProjectiveTransformation(com.irurueta.geometry.ProjectiveTransformation3D result) throws InvalidTransformationException Obtains the metric to projective stratum transformation defining this Dual Absolute Quadric.- Parameters:
result
- instance where metric to projective space transformation will be stored.- Throws:
InvalidTransformationException
- if transformation cannot be determined because dual absolute quadric is numerically unstable.
-
setDualImageOfAbsoluteConicAndPlaneAtInfinity
public final void setDualImageOfAbsoluteConicAndPlaneAtInfinity(DualImageOfAbsoluteConic diac, com.irurueta.geometry.Plane planeAtInfinity) Sets this dual absolute quadric from provided dual image of absolute conic and plane at infinity on an arbitrary projective stratum.- Parameters:
diac
- dual image of absolute conic to be set.planeAtInfinity
- plane at infinity to be set.
-
getDualImageOfAbsoluteConic
Gets dual image of absolute conic associated to this dual absolute quadric in an arbitrary projective stratum.- Returns:
- dual image of absolute conic associated to this dual absolute quadric.
-
getDualImageOfAbsoluteConic
Gets dual image of absolute conic associated to this dual absolute quadric in an arbitrary projective stratum and stores the result into provided instance.- Parameters:
result
- instance where dual image of absolute conic will be stored.
-
setDualImageOfAbsoluteConic
public final void setDualImageOfAbsoluteConic(DualImageOfAbsoluteConic diac) throws InvalidPlaneAtInfinityException Sets dual image of absolute conic while keeping current plane at infinity in an arbitrary projective stratum.- Parameters:
diac
- dual image of absolute conic to be set.- Throws:
InvalidPlaneAtInfinityException
- if plane at infinity to be preserved when setting DIAC cannot be determined.
-
getPlaneAtInfinity
Gets plane at infinity associated to this dual absolute quadric in an arbitrary projective stratum.- Returns:
- plane at infinity associated to this dual absolute quadric.
- Throws:
InvalidPlaneAtInfinityException
- if plane at infinity cannot be determined.
-
getPlaneAtInfinity
public void getPlaneAtInfinity(com.irurueta.geometry.Plane result) throws InvalidPlaneAtInfinityException Gets plane at infinity associated to this dual absolute quadric in an arbitrary projective stratum.- Parameters:
result
- instance where plane at infinity will be stored.- Throws:
InvalidPlaneAtInfinityException
- if plane at infinity cannot be determined.
-
setPlaneAtInfinity
public final void setPlaneAtInfinity(com.irurueta.geometry.Plane planeAtInfinity) Sets provided plane at infinity at an arbitrary projective stratum while keeping current dual image of absolute conic.- Parameters:
planeAtInfinity
- plane at infinity to be set.
-