Isis 3 Programmer Reference
BundleLidarControlPoint.h
1#ifndef BundleLidarControlPoint_h
2#define BundleLidarControlPoint_h
8/* SPDX-License-Identifier: CC0-1.0 */
9#include <QSharedPointer>
10
11#include "BundleControlPoint.h"
12#include "BundleMeasure.h"
13#include "BundleSettings.h"
14#include "LidarControlPoint.h"
15
16namespace Isis {
17
18// class LidarControlPoint;
20
21 typedef QSharedPointer<BundleLidarRangeConstraint> BundleLidarRangeConstraintQsp;
22
39
40 public:
42 LidarControlPointQsp lidarControlPoint);
44
45 // copy
46 BundleLidarControlPoint &operator=(const BundleLidarControlPoint &src);// ??? not implemented
47 void copy(const BundleLidarControlPoint &src);
48
55 void computeResiduals();
56
57 virtual void applyParameterCorrections(LinearAlgebra::Vector imageSolution,
58 SparseBlockMatrix &sparseNormals,
59 const BundleTargetBodyQsp target);
60
62 double vtpvRangeContribution();
64 double range();
65 double sigmaRange();
66
67 private:
68 LidarControlPointQsp m_lidarControlPoint;
69 QVector<BundleLidarRangeConstraintQsp> m_rangeConstraints;
70 };
71
72 // typedefs
74 typedef QSharedPointer<BundleLidarControlPoint> BundleLidarControlPointQsp;
75}
76
77#endif // BundleLidarControlPoint_h
78
This class holds information about a control point that BundleAdjust needs to run correctly.
This class holds information about a lidar control point that BundleAdjust requires.
int applyLidarRangeConstraints(SparseBlockMatrix &normalsMatrix, LinearAlgebra::MatrixUpperTriangular &N22, SparseBlockColumnMatrix &N12, LinearAlgebra::VectorCompressed &n1, LinearAlgebra::Vector &n2)
Applies range constraint between image and lidar point acquired simultaneously.
BundleLidarControlPoint(BundleSettingsQsp bundleSettings, LidarControlPointQsp lidarControlPoint)
Constructs a BundleLidarControlPoint object from a LidarControlPoint.
BundleLidarRangeConstraintQsp rangeConstraint(int n)
Returns range constraint at index n.
int numberRangeConstraints()
Returns number of range constraints between this lidar point & images acquired simultaneously.
void computeResiduals()
Computes the residuals for this BundleLidarControlPoint.
virtual void applyParameterCorrections(LinearAlgebra::Vector imageSolution, SparseBlockMatrix &sparseNormals, const BundleTargetBodyQsp target)
Apply the parameter corrections to the lidar range.
double range()
Returns range between this point and ???
void copy(const BundleLidarControlPoint &src)
Copies given BundleLidarControlPoint to this BundleLidarControlPoint.
void initializeRangeConstraints()
Initialize range constraints.
~BundleLidarControlPoint()
TODO: implement? Copy constructor.
double vtpvRangeContribution()
Returns Weighted sum of squares of range residuals for this point.
double sigmaRange()
Returns sigma of observed range.
Implements range constraint between image position and lidar point acquired simultaneously with the i...
boost::numeric::ublas::compressed_vector< double > VectorCompressed
Definition for an Isis::LinearAlgebra::VectorCompressed of doubles.
boost::numeric::ublas::vector< double > Vector
Definition for an Isis::LinearAlgebra::Vector of doubles.
boost::numeric::ublas::symmetric_matrix< double, boost::numeric::ublas::upper > MatrixUpperTriangular
Definition for an Isis::LinearAlgebra::MatrixUpperTriangular of doubles with an upper configuration.
SparseBlockColumnMatrix.
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16
QSharedPointer< BundleLidarControlPoint > BundleLidarControlPointQsp
QSharedPointer to a BundleLidarControlPoint.
QSharedPointer< BundleLidarRangeConstraint > BundleLidarRangeConstraintQsp
Typdef for BundleLidarRangeConstraint QSharedPointer.