Include all constructors, methods

release/4.3a0
Frank Dellaert 2022-05-11 10:11:57 -04:00
parent 7bd0ae799d
commit b78a4e64b1
2 changed files with 17 additions and 7 deletions

View File

@ -1091,7 +1091,17 @@ class StereoCamera {
class TriangulationResult { class TriangulationResult {
enum Status { VALID, DEGENERATE, BEHIND_CAMERA, OUTLIER, FAR_POINT }; enum Status { VALID, DEGENERATE, BEHIND_CAMERA, OUTLIER, FAR_POINT };
Status status; Status status;
TriangulationResult(const gtsam::Point3& p);
const gtsam::Point3& get() const; const gtsam::Point3& get() const;
static TriangulationResult Degenerate();
static TriangulationResult Outlier();
static TriangulationResult FarPoint();
static TriangulationResult BehindCamera();
bool valid() const;
bool degenerate() const;
bool outlier() const;
bool farPoint() const;
bool behindCamera() const;
}; };
class TriangulationParameters { class TriangulationParameters {

View File

@ -228,17 +228,17 @@ class TestTriangulationExample(GtsamTestCase):
cameras = CameraSetCal3_S2() cameras = CameraSetCal3_S2()
measurements = Point2Vector() measurements = Point2Vector()
cameras.push_back(camera1) cameras.append(camera1)
cameras.push_back(camera2) cameras.append(camera2)
measurements.push_back(z1) measurements.append(z1)
measurements.push_back(z2) measurements.append(z2)
landmarkDistanceThreshold = 10 # landmark is closer than that landmarkDistanceThreshold = 10 # landmark is closer than that
# all default except landmarkDistanceThreshold: # all default except landmarkDistanceThreshold:
params = TriangulationParameters(1.0, False, landmarkDistanceThreshold) params = TriangulationParameters(1.0, False, landmarkDistanceThreshold)
actual: TriangulationResult = gtsam.triangulateSafe( actual: TriangulationResult = gtsam.triangulateSafe(
cameras, measurements, params) cameras, measurements, params)
self.gtsamAssertEquals(actual, self.landmark, 1e-2) self.gtsamAssertEquals(actual.get(), self.landmark, 1e-2)
self.assertTrue(actual.valid()) self.assertTrue(actual.valid())
landmarkDistanceThreshold = 4 # landmark is farther than that landmarkDistanceThreshold = 4 # landmark is farther than that
@ -254,8 +254,8 @@ class TestTriangulationExample(GtsamTestCase):
camera3 = PinholeCameraCal3_S2(pose3, K3) camera3 = PinholeCameraCal3_S2(pose3, K3)
z3 = camera3.project(self.landmark) z3 = camera3.project(self.landmark)
cameras.push_back(camera3) cameras.append(camera3)
measurements.push_back(z3 + Point2(10, -10)) measurements.append(z3 + Point2(10, -10))
landmarkDistanceThreshold = 10 # landmark is closer than that landmarkDistanceThreshold = 10 # landmark is closer than that
outlierThreshold = 100 # loose, the outlier is going to pass outlierThreshold = 100 # loose, the outlier is going to pass