[cython] remove copy constructor requirement

Using make_shared[C](other) instead of shared_ptr[C](new C(other)) to leverage the implicit default constructor inside C++
release/4.3a0
Duy-Nguyen Ta 2017-03-06 01:06:53 -05:00
parent ff75d63876
commit ed8f7c5f82
5 changed files with 21 additions and 115 deletions

View File

@ -174,7 +174,6 @@ virtual class Value {
class LieScalar { class LieScalar {
// Standard constructors // Standard constructors
LieScalar(); LieScalar();
LieScalar(const gtsam::LieScalar& l);
LieScalar(double d); LieScalar(double d);
// Standard interface // Standard interface
@ -204,7 +203,6 @@ class LieScalar {
class LieVector { class LieVector {
// Standard constructors // Standard constructors
LieVector(); LieVector();
LieVector(const gtsam::LieVector& l);
LieVector(Vector v); LieVector(Vector v);
// Standard interface // Standard interface
@ -238,7 +236,6 @@ class LieMatrix {
// Standard constructors // Standard constructors
LieMatrix(); LieMatrix();
LieMatrix(Matrix v); LieMatrix(Matrix v);
LieMatrix(const gtsam::LieMatrix& l);
// Standard interface // Standard interface
Matrix matrix() const; Matrix matrix() const;
@ -276,7 +273,6 @@ class Point2 {
Point2(); Point2();
Point2(double x, double y); Point2(double x, double y);
Point2(Vector v); Point2(Vector v);
Point2(const gtsam::Point2& l);
// Testable // Testable
void print(string s) const; void print(string s) const;
@ -328,7 +324,6 @@ class StereoPoint2 {
// Standard Constructors // Standard Constructors
StereoPoint2(); StereoPoint2();
StereoPoint2(double uL, double uR, double v); StereoPoint2(double uL, double uR, double v);
StereoPoint2(const gtsam::StereoPoint2& l);
// Testable // Testable
void print(string s) const; void print(string s) const;
@ -364,7 +359,6 @@ class Point3 {
Point3(); Point3();
Point3(double x, double y, double z); Point3(double x, double y, double z);
Point3(Vector v); Point3(Vector v);
Point3(const gtsam::Point3& l);
// Testable // Testable
void print(string s) const; void print(string s) const;
@ -388,8 +382,6 @@ class Rot2 {
// Standard Constructors and Named Constructors // Standard Constructors and Named Constructors
Rot2(); Rot2();
Rot2(double theta); Rot2(double theta);
Rot2(const gtsam::Rot2& l);
static gtsam::Rot2 fromAngle(double theta); static gtsam::Rot2 fromAngle(double theta);
static gtsam::Rot2 fromDegrees(double theta); static gtsam::Rot2 fromDegrees(double theta);
static gtsam::Rot2 fromCosSin(double c, double s); static gtsam::Rot2 fromCosSin(double c, double s);
@ -434,8 +426,6 @@ class Rot3 {
// Standard Constructors and Named Constructors // Standard Constructors and Named Constructors
Rot3(); Rot3();
Rot3(Matrix R); Rot3(Matrix R);
Rot3(const gtsam::Rot3& l);
static gtsam::Rot3 Rx(double t); static gtsam::Rot3 Rx(double t);
static gtsam::Rot3 Ry(double t); static gtsam::Rot3 Ry(double t);
static gtsam::Rot3 Rz(double t); static gtsam::Rot3 Rz(double t);
@ -589,8 +579,6 @@ class Pose3 {
class Pose3Vector class Pose3Vector
{ {
Pose3Vector(); Pose3Vector();
Pose3Vector(const gtsam::Pose3Vector& l);
size_t size() const; size_t size() const;
bool empty() const; bool empty() const;
gtsam::Pose3 at(size_t n) const; gtsam::Pose3 at(size_t n) const;
@ -601,8 +589,7 @@ class Pose3Vector
class Unit3 { class Unit3 {
// Standard Constructors // Standard Constructors
Unit3(); Unit3();
Unit3(const gtsam::Point3& p); Unit3(const gtsam::Point3& pose);
Unit3(const gtsam::Unit3& other);
// Testable // Testable
void print(string s) const; void print(string s) const;
@ -621,10 +608,8 @@ class Unit3 {
#include <gtsam/geometry/EssentialMatrix.h> #include <gtsam/geometry/EssentialMatrix.h>
class EssentialMatrix { class EssentialMatrix {
EssentialMatrix();
// Standard Constructors // Standard Constructors
EssentialMatrix(const gtsam::Rot3& aRb, const gtsam::Unit3& aTb); EssentialMatrix(const gtsam::Rot3& aRb, const gtsam::Unit3& aTb);
EssentialMatrix(const gtsam::EssentialMatrix& other);
// Testable // Testable
void print(string s) const; void print(string s) const;
@ -650,7 +635,6 @@ class Cal3_S2 {
Cal3_S2(double fx, double fy, double s, double u0, double v0); Cal3_S2(double fx, double fy, double s, double u0, double v0);
Cal3_S2(Vector v); Cal3_S2(Vector v);
Cal3_S2(double fov, int w, int h); Cal3_S2(double fov, int w, int h);
Cal3_S2(const gtsam::Cal3_S2& other);
// Testable // Testable
void print(string s) const; void print(string s) const;
@ -685,7 +669,6 @@ class Cal3_S2 {
virtual class Cal3DS2_Base { virtual class Cal3DS2_Base {
// Standard Constructors // Standard Constructors
Cal3DS2_Base(); Cal3DS2_Base();
Cal3DS2_Base(const gtsam::Cal3DS2_Base& other);
// Testable // Testable
void print(string s) const; void print(string s) const;
@ -714,7 +697,6 @@ virtual class Cal3DS2 : gtsam::Cal3DS2_Base {
Cal3DS2(double fx, double fy, double s, double u0, double v0, double k1, double k2); Cal3DS2(double fx, double fy, double s, double u0, double v0, double k1, double k2);
Cal3DS2(double fx, double fy, double s, double u0, double v0, double k1, double k2, double p1, double p2); Cal3DS2(double fx, double fy, double s, double u0, double v0, double k1, double k2, double p1, double p2);
Cal3DS2(Vector v); Cal3DS2(Vector v);
Cal3DS2(const gtsam::Cal3DS2& other);
// Testable // Testable
bool equals(const gtsam::Cal3DS2& rhs, double tol) const; bool equals(const gtsam::Cal3DS2& rhs, double tol) const;
@ -736,7 +718,6 @@ virtual class Cal3Unified : gtsam::Cal3DS2_Base {
Cal3Unified(double fx, double fy, double s, double u0, double v0, double k1, double k2); Cal3Unified(double fx, double fy, double s, double u0, double v0, double k1, double k2);
Cal3Unified(double fx, double fy, double s, double u0, double v0, double k1, double k2, double p1, double p2, double xi); Cal3Unified(double fx, double fy, double s, double u0, double v0, double k1, double k2, double p1, double p2, double xi);
Cal3Unified(Vector v); Cal3Unified(Vector v);
Cal3Unified(const gtsam::Cal3Unified& other);
// Testable // Testable
bool equals(const gtsam::Cal3Unified& rhs, double tol) const; bool equals(const gtsam::Cal3Unified& rhs, double tol) const;
@ -762,7 +743,6 @@ class Cal3_S2Stereo {
Cal3_S2Stereo(); Cal3_S2Stereo();
Cal3_S2Stereo(double fx, double fy, double s, double u0, double v0, double b); Cal3_S2Stereo(double fx, double fy, double s, double u0, double v0, double b);
Cal3_S2Stereo(Vector v); Cal3_S2Stereo(Vector v);
Cal3_S2Stereo(const gtsam::Cal3_S2Stereo& other);
// Testable // Testable
void print(string s) const; void print(string s) const;
@ -783,7 +763,6 @@ class Cal3Bundler {
// Standard Constructors // Standard Constructors
Cal3Bundler(); Cal3Bundler();
Cal3Bundler(double fx, double k1, double k2, double u0, double v0); Cal3Bundler(double fx, double k1, double k2, double u0, double v0);
Cal3Bundler(const gtsam::Cal3Bundler& other);
// Testable // Testable
void print(string s) const; void print(string s) const;
@ -821,7 +800,6 @@ class CalibratedCamera {
CalibratedCamera(const gtsam::Pose3& pose); CalibratedCamera(const gtsam::Pose3& pose);
CalibratedCamera(const Vector& v); CalibratedCamera(const Vector& v);
static gtsam::CalibratedCamera Level(const gtsam::Pose2& pose2, double height); static gtsam::CalibratedCamera Level(const gtsam::Pose2& pose2, double height);
CalibratedCamera(const gtsam::CalibratedCamera& other);
// Testable // Testable
void print(string s) const; void print(string s) const;
@ -850,7 +828,6 @@ template<CALIBRATION>
class PinholeCamera { class PinholeCamera {
// Standard Constructors and Named Constructors // Standard Constructors and Named Constructors
PinholeCamera(); PinholeCamera();
PinholeCamera(const This& cam);
PinholeCamera(const gtsam::Pose3& pose); PinholeCamera(const gtsam::Pose3& pose);
PinholeCamera(const gtsam::Pose3& pose, const CALIBRATION& K); PinholeCamera(const gtsam::Pose3& pose, const CALIBRATION& K);
static This Level(const CALIBRATION& K, const gtsam::Pose2& pose, double height); static This Level(const CALIBRATION& K, const gtsam::Pose2& pose, double height);
@ -894,7 +871,6 @@ virtual class SimpleCamera {
static gtsam::SimpleCamera Level(const gtsam::Pose2& pose, double height); static gtsam::SimpleCamera Level(const gtsam::Pose2& pose, double height);
static gtsam::SimpleCamera Lookat(const gtsam::Point3& eye, const gtsam::Point3& target, static gtsam::SimpleCamera Lookat(const gtsam::Point3& eye, const gtsam::Point3& target,
const gtsam::Point3& upVector, const gtsam::Cal3_S2& K); const gtsam::Point3& upVector, const gtsam::Cal3_S2& K);
SimpleCamera(const gtsam::SimpleCamera& other);
// Testable // Testable
void print(string s) const; void print(string s) const;
@ -935,7 +911,6 @@ class StereoCamera {
// Standard Constructors and Named Constructors // Standard Constructors and Named Constructors
StereoCamera(); StereoCamera();
StereoCamera(const gtsam::Pose3& pose, const gtsam::Cal3_S2Stereo* K); StereoCamera(const gtsam::Pose3& pose, const gtsam::Cal3_S2Stereo* K);
StereoCamera(const gtsam::StereoCamera& other);
// Testable // Testable
void print(string s) const; void print(string s) const;
@ -999,7 +974,6 @@ virtual class SymbolicFactorGraph {
SymbolicFactorGraph(); SymbolicFactorGraph();
SymbolicFactorGraph(const gtsam::SymbolicBayesNet& bayesNet); SymbolicFactorGraph(const gtsam::SymbolicBayesNet& bayesNet);
SymbolicFactorGraph(const gtsam::SymbolicBayesTree& bayesTree); SymbolicFactorGraph(const gtsam::SymbolicBayesTree& bayesTree);
SymbolicFactorGraph(const gtsam::SymbolicFactorGraph& other);
// From FactorGraph // From FactorGraph
void push_back(gtsam::SymbolicFactor* factor); void push_back(gtsam::SymbolicFactor* factor);
@ -1223,7 +1197,6 @@ virtual class Base {
virtual class Null: gtsam::noiseModel::mEstimator::Base { virtual class Null: gtsam::noiseModel::mEstimator::Base {
Null(); Null();
Null(const gtsam::noiseModel::mEstimator::Null& other);
void print(string s) const; void print(string s) const;
static gtsam::noiseModel::mEstimator::Null* Create(); static gtsam::noiseModel::mEstimator::Null* Create();
@ -1233,7 +1206,6 @@ virtual class Null: gtsam::noiseModel::mEstimator::Base {
virtual class Fair: gtsam::noiseModel::mEstimator::Base { virtual class Fair: gtsam::noiseModel::mEstimator::Base {
Fair(double c); Fair(double c);
Fair(const gtsam::noiseModel::mEstimator::Fair& other);
void print(string s) const; void print(string s) const;
static gtsam::noiseModel::mEstimator::Fair* Create(double c); static gtsam::noiseModel::mEstimator::Fair* Create(double c);
@ -1243,8 +1215,6 @@ virtual class Fair: gtsam::noiseModel::mEstimator::Base {
virtual class Huber: gtsam::noiseModel::mEstimator::Base { virtual class Huber: gtsam::noiseModel::mEstimator::Base {
Huber(double k); Huber(double k);
Huber(const gtsam::noiseModel::mEstimator::Huber& other);
void print(string s) const; void print(string s) const;
static gtsam::noiseModel::mEstimator::Huber* Create(double k); static gtsam::noiseModel::mEstimator::Huber* Create(double k);
@ -1254,8 +1224,6 @@ virtual class Huber: gtsam::noiseModel::mEstimator::Base {
virtual class Tukey: gtsam::noiseModel::mEstimator::Base { virtual class Tukey: gtsam::noiseModel::mEstimator::Base {
Tukey(double k); Tukey(double k);
Tukey(const gtsam::noiseModel::mEstimator::Tukey& other);
void print(string s) const; void print(string s) const;
static gtsam::noiseModel::mEstimator::Tukey* Create(double k); static gtsam::noiseModel::mEstimator::Tukey* Create(double k);
@ -1267,8 +1235,6 @@ virtual class Tukey: gtsam::noiseModel::mEstimator::Base {
virtual class Robust : gtsam::noiseModel::Base { virtual class Robust : gtsam::noiseModel::Base {
Robust(const gtsam::noiseModel::mEstimator::Base* robust, const gtsam::noiseModel::Base* noise); Robust(const gtsam::noiseModel::mEstimator::Base* robust, const gtsam::noiseModel::Base* noise);
Robust(const gtsam::noiseModel::Robust& other);
static gtsam::noiseModel::Robust* Create(const gtsam::noiseModel::mEstimator::Base* robust, const gtsam::noiseModel::Base* noise); static gtsam::noiseModel::Robust* Create(const gtsam::noiseModel::mEstimator::Base* robust, const gtsam::noiseModel::Base* noise);
void print(string s) const; void print(string s) const;
@ -1284,8 +1250,6 @@ class Sampler {
Sampler(gtsam::noiseModel::Diagonal* model, int seed); Sampler(gtsam::noiseModel::Diagonal* model, int seed);
Sampler(Vector sigmas, int seed); Sampler(Vector sigmas, int seed);
Sampler(int seed); Sampler(int seed);
Sampler(const gtsam::Sampler& other);
//Standard Interface //Standard Interface
size_t dim() const; size_t dim() const;
@ -1362,7 +1326,6 @@ virtual class JacobianFactor : gtsam::GaussianFactor {
JacobianFactor(size_t i1, Matrix A1, size_t i2, Matrix A2, size_t i3, Matrix A3, JacobianFactor(size_t i1, Matrix A1, size_t i2, Matrix A2, size_t i3, Matrix A3,
Vector b, const gtsam::noiseModel::Diagonal* model); Vector b, const gtsam::noiseModel::Diagonal* model);
JacobianFactor(const gtsam::GaussianFactorGraph& graph); JacobianFactor(const gtsam::GaussianFactorGraph& graph);
JacobianFactor(const gtsam::JacobianFactor& other);
//Testable //Testable
void print(string s) const; void print(string s) const;
@ -1408,7 +1371,6 @@ virtual class HessianFactor : gtsam::GaussianFactor {
Vector g1, Matrix G22, Matrix G23, Vector g2, Matrix G33, Vector g3, Vector g1, Matrix G22, Matrix G23, Vector g2, Matrix G33, Vector g3,
double f); double f);
HessianFactor(const gtsam::GaussianFactorGraph& factors); HessianFactor(const gtsam::GaussianFactorGraph& factors);
HessianFactor(const gtsam::HessianFactor& other);
//Testable //Testable
size_t size() const; size_t size() const;
@ -1432,7 +1394,6 @@ class GaussianFactorGraph {
GaussianFactorGraph(); GaussianFactorGraph();
GaussianFactorGraph(const gtsam::GaussianBayesNet& bayesNet); GaussianFactorGraph(const gtsam::GaussianBayesNet& bayesNet);
GaussianFactorGraph(const gtsam::GaussianBayesTree& bayesTree); GaussianFactorGraph(const gtsam::GaussianBayesTree& bayesTree);
GaussianFactorGraph(const gtsam::GaussianFactorGraph& other);
// From FactorGraph // From FactorGraph
void print(string s) const; void print(string s) const;
@ -1509,7 +1470,6 @@ class GaussianFactorGraph {
#include <gtsam/linear/GaussianConditional.h> #include <gtsam/linear/GaussianConditional.h>
virtual class GaussianConditional : gtsam::GaussianFactor { virtual class GaussianConditional : gtsam::GaussianFactor {
//Constructors //Constructors
GaussianConditional();
GaussianConditional(size_t key, Vector d, Matrix R, const gtsam::noiseModel::Diagonal* sigmas); GaussianConditional(size_t key, Vector d, Matrix R, const gtsam::noiseModel::Diagonal* sigmas);
GaussianConditional(size_t key, Vector d, Matrix R, size_t name1, Matrix S, GaussianConditional(size_t key, Vector d, Matrix R, size_t name1, Matrix S,
const gtsam::noiseModel::Diagonal* sigmas); const gtsam::noiseModel::Diagonal* sigmas);
@ -1518,10 +1478,9 @@ virtual class GaussianConditional : gtsam::GaussianFactor {
//Constructors with no noise model //Constructors with no noise model
GaussianConditional(size_t key, Vector d, Matrix R); GaussianConditional(size_t key, Vector d, Matrix R);
GaussianConditional(size_t key, Vector d, Matrix R, size_t name1, Matrix S); GaussianConditional(size_t key, Vector d, Matrix R, size_t name1, Matrix S);
GaussianConditional(size_t key, Vector d, Matrix R, size_t name1, Matrix S, GaussianConditional(size_t key, Vector d, Matrix R, size_t name1, Matrix S,
size_t name2, Matrix T); size_t name2, Matrix T);
GaussianConditional(const gtsam::GaussianConditional& other);
//Standard Interface //Standard Interface
void print(string s) const; void print(string s) const;
@ -1540,8 +1499,6 @@ virtual class GaussianConditional : gtsam::GaussianFactor {
#include <gtsam/linear/GaussianDensity.h> #include <gtsam/linear/GaussianDensity.h>
virtual class GaussianDensity : gtsam::GaussianConditional { virtual class GaussianDensity : gtsam::GaussianConditional {
//Constructors //Constructors
GaussianDensity();
GaussianDensity(const gtsam::GaussianDensity& other);
GaussianDensity(size_t key, Vector d, Matrix R, const gtsam::noiseModel::Diagonal* sigmas); GaussianDensity(size_t key, Vector d, Matrix R, const gtsam::noiseModel::Diagonal* sigmas);
//Standard Interface //Standard Interface
@ -1555,7 +1512,6 @@ virtual class GaussianDensity : gtsam::GaussianConditional {
virtual class GaussianBayesNet { virtual class GaussianBayesNet {
//Constructors //Constructors
GaussianBayesNet(); GaussianBayesNet();
GaussianBayesNet(const gtsam::GaussianBayesNet& other);
GaussianBayesNet(const gtsam::GaussianConditional* conditional); GaussianBayesNet(const gtsam::GaussianConditional* conditional);
// Testable // Testable
@ -1615,7 +1571,6 @@ virtual class GaussianBayesTree {
class Errors { class Errors {
//Constructors //Constructors
Errors(); Errors();
Errors(const gtsam::Errors& other);
Errors(const gtsam::VectorValues& V); Errors(const gtsam::VectorValues& V);
//Testable //Testable
@ -1627,7 +1582,6 @@ class Errors {
class GaussianISAM { class GaussianISAM {
//Constructor //Constructor
GaussianISAM(); GaussianISAM();
GaussianISAM(const gtsam::GaussianISAM& other);
//Standard Interface //Standard Interface
void update(const gtsam::GaussianFactorGraph& newFactors); void update(const gtsam::GaussianFactorGraph& newFactors);
@ -1637,7 +1591,6 @@ class GaussianISAM {
#include <gtsam/linear/IterativeSolver.h> #include <gtsam/linear/IterativeSolver.h>
virtual class IterativeOptimizationParameters { virtual class IterativeOptimizationParameters {
IterativeOptimizationParameters(const gtsam::IterativeOptimizationParameters& other);
string getVerbosity() const; string getVerbosity() const;
void setVerbosity(string s) ; void setVerbosity(string s) ;
void print() const; void print() const;
@ -1651,8 +1604,6 @@ virtual class IterativeOptimizationParameters {
#include <gtsam/linear/ConjugateGradientSolver.h> #include <gtsam/linear/ConjugateGradientSolver.h>
virtual class ConjugateGradientParameters : gtsam::IterativeOptimizationParameters { virtual class ConjugateGradientParameters : gtsam::IterativeOptimizationParameters {
ConjugateGradientParameters(); ConjugateGradientParameters();
ConjugateGradientParameters(const gtsam::ConjugateGradientParameters& other);
int getMinIterations() const ; int getMinIterations() const ;
int getMaxIterations() const ; int getMaxIterations() const ;
int getReset() const; int getReset() const;
@ -1670,23 +1621,18 @@ virtual class ConjugateGradientParameters : gtsam::IterativeOptimizationParamete
#include <gtsam/linear/SubgraphSolver.h> #include <gtsam/linear/SubgraphSolver.h>
virtual class SubgraphSolverParameters : gtsam::ConjugateGradientParameters { virtual class SubgraphSolverParameters : gtsam::ConjugateGradientParameters {
SubgraphSolverParameters(); SubgraphSolverParameters();
SubgraphSolverParameters(const gtsam::SubgraphSolverParameters& other);
void print() const; void print() const;
}; };
virtual class SubgraphSolver { virtual class SubgraphSolver {
SubgraphSolver(const gtsam::GaussianFactorGraph &A, const gtsam::SubgraphSolverParameters &parameters, const gtsam::Ordering& ordering); SubgraphSolver(const gtsam::GaussianFactorGraph &A, const gtsam::SubgraphSolverParameters &parameters, const gtsam::Ordering& ordering);
SubgraphSolver(const gtsam::GaussianFactorGraph &Ab1, const gtsam::GaussianFactorGraph &Ab2, const gtsam::SubgraphSolverParameters &parameters, const gtsam::Ordering& ordering); SubgraphSolver(const gtsam::GaussianFactorGraph &Ab1, const gtsam::GaussianFactorGraph &Ab2, const gtsam::SubgraphSolverParameters &parameters, const gtsam::Ordering& ordering);
SubgraphSolver(const gtsam::SubgraphSolver& other);
gtsam::VectorValues optimize() const; gtsam::VectorValues optimize() const;
}; };
#include <gtsam/linear/KalmanFilter.h> #include <gtsam/linear/KalmanFilter.h>
class KalmanFilter { class KalmanFilter {
KalmanFilter(size_t n); KalmanFilter(size_t n);
KalmanFilter(const gtsam::KalmanFilter& other);
// gtsam::GaussianDensity* init(Vector x0, const gtsam::SharedDiagonal& P0); // gtsam::GaussianDensity* init(Vector x0, const gtsam::SharedDiagonal& P0);
gtsam::GaussianDensity* init(Vector x0, Matrix P0); gtsam::GaussianDensity* init(Vector x0, Matrix P0);
void print(string s) const; void print(string s) const;
@ -1722,9 +1668,8 @@ void PrintKeySet (const gtsam::KeySet& keys, string s);
#include <gtsam/inference/LabeledSymbol.h> #include <gtsam/inference/LabeledSymbol.h>
class LabeledSymbol { class LabeledSymbol {
LabeledSymbol();
LabeledSymbol(const gtsam::LabeledSymbol& key);
LabeledSymbol(size_t full_key); LabeledSymbol(size_t full_key);
LabeledSymbol(const gtsam::LabeledSymbol& key);
LabeledSymbol(unsigned char valType, unsigned char label, size_t j); LabeledSymbol(unsigned char valType, unsigned char label, size_t j);
size_t key() const; size_t key() const;
@ -1901,11 +1846,7 @@ class Values {
void update(size_t j, Vector t); void update(size_t j, Vector t);
void update(size_t j, Matrix t); void update(size_t j, Matrix t);
template <T = {gtsam::Point2, gtsam::Rot2, gtsam::Pose2, gtsam::Point3, template<T = {gtsam::Point2, gtsam::Point3, gtsam::Rot2, gtsam::Pose2, gtsam::Rot3, gtsam::Pose3, gtsam::Cal3_S2, gtsam::Cal3DS2, gtsam::Cal3Bundler, gtsam::EssentialMatrix, gtsam::imuBias::ConstantBias, Vector, Matrix}>
gtsam::Rot3, gtsam::Pose3, gtsam::Cal3_S2, gtsam::Cal3DS2,
gtsam::Cal3Bundler, gtsam::EssentialMatrix,
gtsam::SimpleCamera, gtsam::imuBias::ConstantBias,
Vector, Matrix}>
T at(size_t j); T at(size_t j);
/// version for double /// version for double
@ -2008,7 +1949,6 @@ typedef gtsam::FastMap<gtsam::Key,int> KeyGroupMap;
class Marginals { class Marginals {
Marginals(const gtsam::NonlinearFactorGraph& graph, Marginals(const gtsam::NonlinearFactorGraph& graph,
const gtsam::Values& solution); const gtsam::Values& solution);
Marginals(const gtsam::Marginals& other);
void print(string s) const; void print(string s) const;
Matrix marginalCovariance(size_t variable) const; Matrix marginalCovariance(size_t variable) const;
@ -2018,7 +1958,6 @@ class Marginals {
}; };
class JointMarginal { class JointMarginal {
JointMarginal(const JointMarginal& j);
Matrix at(size_t iVariable, size_t jVariable) const; Matrix at(size_t iVariable, size_t jVariable) const;
Matrix fullMatrix() const; Matrix fullMatrix() const;
void print(string s) const; void print(string s) const;
@ -2027,7 +1966,6 @@ class JointMarginal {
#include <gtsam/nonlinear/LinearContainerFactor.h> #include <gtsam/nonlinear/LinearContainerFactor.h>
virtual class LinearContainerFactor : gtsam::NonlinearFactor { virtual class LinearContainerFactor : gtsam::NonlinearFactor {
LinearContainerFactor(const gtsam::LinearContainerFactor& other);
LinearContainerFactor(gtsam::GaussianFactor* factor, const gtsam::Values& linearizationPoint); LinearContainerFactor(gtsam::GaussianFactor* factor, const gtsam::Values& linearizationPoint);
LinearContainerFactor(gtsam::GaussianFactor* factor); LinearContainerFactor(gtsam::GaussianFactor* factor);
@ -2066,7 +2004,6 @@ virtual class LinearContainerFactor : gtsam::NonlinearFactor {
#include <gtsam/nonlinear/NonlinearOptimizerParams.h> #include <gtsam/nonlinear/NonlinearOptimizerParams.h>
virtual class NonlinearOptimizerParams { virtual class NonlinearOptimizerParams {
NonlinearOptimizerParams(); NonlinearOptimizerParams();
NonlinearOptimizerParams(const gtsam::NonlinearOptimizerParams& other);
void print(string s) const; void print(string s) const;
int getMaxIterations() const; int getMaxIterations() const;
@ -2100,13 +2037,11 @@ bool checkConvergence(double relativeErrorTreshold,
#include <gtsam/nonlinear/GaussNewtonOptimizer.h> #include <gtsam/nonlinear/GaussNewtonOptimizer.h>
virtual class GaussNewtonParams : gtsam::NonlinearOptimizerParams { virtual class GaussNewtonParams : gtsam::NonlinearOptimizerParams {
GaussNewtonParams(); GaussNewtonParams();
GaussNewtonParams(const gtsam::GaussNewtonParams& other);
}; };
#include <gtsam/nonlinear/LevenbergMarquardtOptimizer.h> #include <gtsam/nonlinear/LevenbergMarquardtOptimizer.h>
virtual class LevenbergMarquardtParams : gtsam::NonlinearOptimizerParams { virtual class LevenbergMarquardtParams : gtsam::NonlinearOptimizerParams {
LevenbergMarquardtParams(); LevenbergMarquardtParams();
LevenbergMarquardtParams(const gtsam::LevenbergMarquardtParams& other);
double getlambdaInitial() const; double getlambdaInitial() const;
double getlambdaFactor() const; double getlambdaFactor() const;
@ -2122,7 +2057,6 @@ virtual class LevenbergMarquardtParams : gtsam::NonlinearOptimizerParams {
#include <gtsam/nonlinear/DoglegOptimizer.h> #include <gtsam/nonlinear/DoglegOptimizer.h>
virtual class DoglegParams : gtsam::NonlinearOptimizerParams { virtual class DoglegParams : gtsam::NonlinearOptimizerParams {
DoglegParams(); DoglegParams();
DoglegParams(const gtsam::DoglegParams& other);
double getDeltaInitial() const; double getDeltaInitial() const;
string getVerbosityDL() const; string getVerbosityDL() const;
@ -2165,7 +2099,6 @@ virtual class LevenbergMarquardtOptimizer : gtsam::NonlinearOptimizer {
#include <gtsam/nonlinear/ISAM2.h> #include <gtsam/nonlinear/ISAM2.h>
class ISAM2GaussNewtonParams { class ISAM2GaussNewtonParams {
ISAM2GaussNewtonParams(); ISAM2GaussNewtonParams();
ISAM2GaussNewtonParams(const gtsam::ISAM2GaussNewtonParams& other);
void print(string str) const; void print(string str) const;
@ -2176,7 +2109,6 @@ class ISAM2GaussNewtonParams {
class ISAM2DoglegParams { class ISAM2DoglegParams {
ISAM2DoglegParams(); ISAM2DoglegParams();
ISAM2DoglegParams(const gtsam::ISAM2DoglegParams& other);
void print(string str) const; void print(string str) const;
@ -2213,7 +2145,6 @@ class ISAM2ThresholdMap {
class ISAM2Params { class ISAM2Params {
ISAM2Params(); ISAM2Params();
ISAM2Params(const gtsam::ISAM2Params& other);
void print(string str) const; void print(string str) const;
@ -2242,7 +2173,6 @@ class ISAM2Clique {
//Constructors //Constructors
ISAM2Clique(); ISAM2Clique();
ISAM2Clique(const gtsam::ISAM2Clique& other);
//Standard Interface //Standard Interface
Vector gradientContribution() const; Vector gradientContribution() const;
@ -2251,7 +2181,6 @@ class ISAM2Clique {
class ISAM2Result { class ISAM2Result {
ISAM2Result(); ISAM2Result();
ISAM2Result(const gtsam::ISAM2Result& other);
void print(string str) const; void print(string str) const;
@ -2300,8 +2229,6 @@ class ISAM2 {
class NonlinearISAM { class NonlinearISAM {
NonlinearISAM(); NonlinearISAM();
NonlinearISAM(int reorderInterval); NonlinearISAM(int reorderInterval);
NonlinearISAM(const gtsam::NonlinearISAM& other);
void print(string s) const; void print(string s) const;
void printStats() const; void printStats() const;
void saveGraph(string s) const; void saveGraph(string s) const;
@ -2329,7 +2256,6 @@ class NonlinearISAM {
template<T = {Vector, gtsam::Point2, gtsam::StereoPoint2, gtsam::Point3, gtsam::Rot2, gtsam::Rot3, gtsam::Pose2, gtsam::Pose3, gtsam::Cal3_S2,gtsam::CalibratedCamera, gtsam::SimpleCamera, gtsam::imuBias::ConstantBias}> template<T = {Vector, gtsam::Point2, gtsam::StereoPoint2, gtsam::Point3, gtsam::Rot2, gtsam::Rot3, gtsam::Pose2, gtsam::Pose3, gtsam::Cal3_S2,gtsam::CalibratedCamera, gtsam::SimpleCamera, gtsam::imuBias::ConstantBias}>
virtual class PriorFactor : gtsam::NoiseModelFactor { virtual class PriorFactor : gtsam::NoiseModelFactor {
PriorFactor(size_t key, const T& prior, const gtsam::noiseModel::Base* noiseModel); PriorFactor(size_t key, const T& prior, const gtsam::noiseModel::Base* noiseModel);
PriorFactor(const This& other);
T prior() const; T prior() const;
// enabling serialization functionality // enabling serialization functionality
@ -2341,7 +2267,6 @@ virtual class PriorFactor : gtsam::NoiseModelFactor {
template<T = {gtsam::Point2, gtsam::Point3, gtsam::Rot2, gtsam::Rot3, gtsam::Pose2, gtsam::Pose3, gtsam::imuBias::ConstantBias}> template<T = {gtsam::Point2, gtsam::Point3, gtsam::Rot2, gtsam::Rot3, gtsam::Pose2, gtsam::Pose3, gtsam::imuBias::ConstantBias}>
virtual class BetweenFactor : gtsam::NoiseModelFactor { virtual class BetweenFactor : gtsam::NoiseModelFactor {
BetweenFactor(size_t key1, size_t key2, const T& relativePose, const gtsam::noiseModel::Base* noiseModel); BetweenFactor(size_t key1, size_t key2, const T& relativePose, const gtsam::noiseModel::Base* noiseModel);
BetweenFactor(const This& other);
T measured() const; T measured() const;
// enabling serialization functionality // enabling serialization functionality
@ -2357,7 +2282,6 @@ virtual class NonlinearEquality : gtsam::NoiseModelFactor {
NonlinearEquality(size_t j, const T& feasible); NonlinearEquality(size_t j, const T& feasible);
// Constructor - allows inexact evaluation // Constructor - allows inexact evaluation
NonlinearEquality(size_t j, const T& feasible, double error_gain); NonlinearEquality(size_t j, const T& feasible, double error_gain);
NonlinearEquality(const This& other);
// enabling serialization functionality // enabling serialization functionality
void serialize() const; void serialize() const;
@ -2368,7 +2292,6 @@ virtual class NonlinearEquality : gtsam::NoiseModelFactor {
template<POSE, POINT> template<POSE, POINT>
virtual class RangeFactor : gtsam::NoiseModelFactor { virtual class RangeFactor : gtsam::NoiseModelFactor {
RangeFactor(size_t key1, size_t key2, double measured, const gtsam::noiseModel::Base* noiseModel); RangeFactor(size_t key1, size_t key2, double measured, const gtsam::noiseModel::Base* noiseModel);
RangeFactor(const This& other);
}; };
typedef gtsam::RangeFactor<gtsam::Pose2, gtsam::Point2> RangeFactorPosePoint2; typedef gtsam::RangeFactor<gtsam::Pose2, gtsam::Point2> RangeFactorPosePoint2;
@ -2385,7 +2308,6 @@ typedef gtsam::RangeFactor<gtsam::SimpleCamera, gtsam::SimpleCamera> RangeFactor
template<POSE, POINT, BEARING> template<POSE, POINT, BEARING>
virtual class BearingFactor : gtsam::NoiseModelFactor { virtual class BearingFactor : gtsam::NoiseModelFactor {
BearingFactor(size_t key1, size_t key2, const BEARING& measured, const gtsam::noiseModel::Base* noiseModel); BearingFactor(size_t key1, size_t key2, const BEARING& measured, const gtsam::noiseModel::Base* noiseModel);
BearingFactor(const This& other);
// enabling serialization functionality // enabling serialization functionality
void serialize() const; void serialize() const;
@ -2399,7 +2321,6 @@ virtual class BearingRangeFactor : gtsam::NoiseModelFactor {
BearingRangeFactor(size_t poseKey, size_t pointKey, BearingRangeFactor(size_t poseKey, size_t pointKey,
const BEARING& measuredBearing, const RANGE& measuredRange, const BEARING& measuredBearing, const RANGE& measuredRange,
const gtsam::noiseModel::Base* noiseModel); const gtsam::noiseModel::Base* noiseModel);
BearingRangeFactor(const This& other);
// enabling serialization functionality // enabling serialization functionality
void serialize() const; void serialize() const;
@ -2421,7 +2342,6 @@ virtual class GenericProjectionFactor : gtsam::NoiseModelFactor {
GenericProjectionFactor(const gtsam::Point2& measured, const gtsam::noiseModel::Base* noiseModel, GenericProjectionFactor(const gtsam::Point2& measured, const gtsam::noiseModel::Base* noiseModel,
size_t poseKey, size_t pointKey, const CALIBRATION* k, bool throwCheirality, bool verboseCheirality, size_t poseKey, size_t pointKey, const CALIBRATION* k, bool throwCheirality, bool verboseCheirality,
const POSE& body_P_sensor); const POSE& body_P_sensor);
GenericProjectionFactor(const This& other);
gtsam::Point2 measured() const; gtsam::Point2 measured() const;
CALIBRATION* calibration() const; CALIBRATION* calibration() const;
@ -2439,7 +2359,6 @@ typedef gtsam::GenericProjectionFactor<gtsam::Pose3, gtsam::Point3, gtsam::Cal3D
template<CAMERA, LANDMARK> template<CAMERA, LANDMARK>
virtual class GeneralSFMFactor : gtsam::NoiseModelFactor { virtual class GeneralSFMFactor : gtsam::NoiseModelFactor {
GeneralSFMFactor(const gtsam::Point2& measured, const gtsam::noiseModel::Base* model, size_t cameraKey, size_t landmarkKey); GeneralSFMFactor(const gtsam::Point2& measured, const gtsam::noiseModel::Base* model, size_t cameraKey, size_t landmarkKey);
GeneralSFMFactor(const This& other);
gtsam::Point2 measured() const; gtsam::Point2 measured() const;
}; };
typedef gtsam::GeneralSFMFactor<gtsam::SimpleCamera, gtsam::Point3> GeneralSFMFactorCal3_S2; typedef gtsam::GeneralSFMFactor<gtsam::SimpleCamera, gtsam::Point3> GeneralSFMFactorCal3_S2;
@ -2448,7 +2367,6 @@ typedef gtsam::GeneralSFMFactor<gtsam::PinholeCameraCal3DS2, gtsam::Point3> Gene
template<CALIBRATION = {gtsam::Cal3_S2}> template<CALIBRATION = {gtsam::Cal3_S2}>
virtual class GeneralSFMFactor2 : gtsam::NoiseModelFactor { virtual class GeneralSFMFactor2 : gtsam::NoiseModelFactor {
GeneralSFMFactor2(const gtsam::Point2& measured, const gtsam::noiseModel::Base* model, size_t poseKey, size_t landmarkKey, size_t calibKey); GeneralSFMFactor2(const gtsam::Point2& measured, const gtsam::noiseModel::Base* model, size_t poseKey, size_t landmarkKey, size_t calibKey);
GeneralSFMFactor2(const This& other);
gtsam::Point2 measured() const; gtsam::Point2 measured() const;
// enabling serialization functionality // enabling serialization functionality
@ -2458,7 +2376,6 @@ virtual class GeneralSFMFactor2 : gtsam::NoiseModelFactor {
#include <gtsam/slam/SmartProjectionFactor.h> #include <gtsam/slam/SmartProjectionFactor.h>
class SmartProjectionParams { class SmartProjectionParams {
SmartProjectionParams(); SmartProjectionParams();
SmartProjectionParams(const gtsam::SmartProjectionParams& other);
// TODO(frank): make these work: // TODO(frank): make these work:
// void setLinearizationMode(LinearizationMode linMode); // void setLinearizationMode(LinearizationMode linMode);
// void setDegeneracyMode(DegeneracyMode degMode); // void setDegeneracyMode(DegeneracyMode degMode);
@ -2481,7 +2398,6 @@ virtual class SmartProjectionPoseFactor: gtsam::NonlinearFactor {
const CALIBRATION* K, const CALIBRATION* K,
const gtsam::Pose3& body_P_sensor, const gtsam::Pose3& body_P_sensor,
const gtsam::SmartProjectionParams& params); const gtsam::SmartProjectionParams& params);
SmartProjectionPoseFactor(const This& other);
void add(const gtsam::Point2& measured_i, size_t poseKey_i); void add(const gtsam::Point2& measured_i, size_t poseKey_i);
@ -2497,7 +2413,6 @@ template<POSE, LANDMARK>
virtual class GenericStereoFactor : gtsam::NoiseModelFactor { virtual class GenericStereoFactor : gtsam::NoiseModelFactor {
GenericStereoFactor(const gtsam::StereoPoint2& measured, const gtsam::noiseModel::Base* noiseModel, GenericStereoFactor(const gtsam::StereoPoint2& measured, const gtsam::noiseModel::Base* noiseModel,
size_t poseKey, size_t landmarkKey, const gtsam::Cal3_S2Stereo* K); size_t poseKey, size_t landmarkKey, const gtsam::Cal3_S2Stereo* K);
GenericStereoFactor(const This& other);
gtsam::StereoPoint2 measured() const; gtsam::StereoPoint2 measured() const;
gtsam::Cal3_S2Stereo* calibration() const; gtsam::Cal3_S2Stereo* calibration() const;
@ -2510,7 +2425,6 @@ typedef gtsam::GenericStereoFactor<gtsam::Pose3, gtsam::Point3> GenericStereoFac
template<POSE> template<POSE>
virtual class PoseTranslationPrior : gtsam::NoiseModelFactor { virtual class PoseTranslationPrior : gtsam::NoiseModelFactor {
PoseTranslationPrior(size_t key, const POSE& pose_z, const gtsam::noiseModel::Base* noiseModel); PoseTranslationPrior(size_t key, const POSE& pose_z, const gtsam::noiseModel::Base* noiseModel);
PoseTranslationPrior(const This& other);
}; };
typedef gtsam::PoseTranslationPrior<gtsam::Pose2> PoseTranslationPrior2D; typedef gtsam::PoseTranslationPrior<gtsam::Pose2> PoseTranslationPrior2D;
@ -2520,7 +2434,6 @@ typedef gtsam::PoseTranslationPrior<gtsam::Pose3> PoseTranslationPrior3D;
template<POSE> template<POSE>
virtual class PoseRotationPrior : gtsam::NoiseModelFactor { virtual class PoseRotationPrior : gtsam::NoiseModelFactor {
PoseRotationPrior(size_t key, const POSE& pose_z, const gtsam::noiseModel::Base* noiseModel); PoseRotationPrior(size_t key, const POSE& pose_z, const gtsam::noiseModel::Base* noiseModel);
PoseRotationPrior(const This& other);
}; };
typedef gtsam::PoseRotationPrior<gtsam::Pose2> PoseRotationPrior2D; typedef gtsam::PoseRotationPrior<gtsam::Pose2> PoseRotationPrior2D;
@ -2530,7 +2443,6 @@ typedef gtsam::PoseRotationPrior<gtsam::Pose3> PoseRotationPrior3D;
virtual class EssentialMatrixFactor : gtsam::NoiseModelFactor { virtual class EssentialMatrixFactor : gtsam::NoiseModelFactor {
EssentialMatrixFactor(size_t key, const gtsam::Point2& pA, const gtsam::Point2& pB, EssentialMatrixFactor(size_t key, const gtsam::Point2& pA, const gtsam::Point2& pB,
const gtsam::noiseModel::Base* noiseModel); const gtsam::noiseModel::Base* noiseModel);
EssentialMatrixFactor(const gtsam::EssentialMatrixFactor& other);
}; };
#include <gtsam/slam/dataset.h> #include <gtsam/slam/dataset.h>
@ -2563,7 +2475,6 @@ class ConstantBias {
// Constructors // Constructors
ConstantBias(); ConstantBias();
ConstantBias(Vector biasAcc, Vector biasGyro); ConstantBias(Vector biasAcc, Vector biasGyro);
ConstantBias(const gtsam::imuBias::ConstantBias& other);
// Testable // Testable
void print(string s) const; void print(string s) const;
@ -2599,7 +2510,6 @@ class NavState {
NavState(); NavState();
NavState(const gtsam::Rot3& R, const gtsam::Point3& t, Vector v); NavState(const gtsam::Rot3& R, const gtsam::Point3& t, Vector v);
NavState(const gtsam::Pose3& pose, Vector v); NavState(const gtsam::Pose3& pose, Vector v);
NavState(const gtsam::NavState& other);
// Testable // Testable
void print(string s) const; void print(string s) const;
@ -2615,7 +2525,6 @@ class NavState {
#include <gtsam/navigation/PreintegratedRotation.h> #include <gtsam/navigation/PreintegratedRotation.h>
virtual class PreintegratedRotationParams { virtual class PreintegratedRotationParams {
PreintegratedRotationParams(); PreintegratedRotationParams();
PreintegratedRotationParams(const gtsam::PreintegratedRotationParams& other);
void setGyroscopeCovariance(Matrix cov); void setGyroscopeCovariance(Matrix cov);
void setOmegaCoriolis(Vector omega); void setOmegaCoriolis(Vector omega);
void setBodyPSensor(const gtsam::Pose3& pose); void setBodyPSensor(const gtsam::Pose3& pose);
@ -2630,7 +2539,6 @@ virtual class PreintegratedRotationParams {
#include <gtsam/navigation/PreintegrationParams.h> #include <gtsam/navigation/PreintegrationParams.h>
virtual class PreintegrationParams : gtsam::PreintegratedRotationParams { virtual class PreintegrationParams : gtsam::PreintegratedRotationParams {
PreintegrationParams(Vector n_gravity); PreintegrationParams(Vector n_gravity);
PreintegrationParams(const gtsam::PreintegrationParams& other);
void setAccelerometerCovariance(Matrix cov); void setAccelerometerCovariance(Matrix cov);
void setIntegrationCovariance(Matrix cov); void setIntegrationCovariance(Matrix cov);
void setUse2ndOrderCoriolis(bool flag); void setUse2ndOrderCoriolis(bool flag);
@ -2647,7 +2555,6 @@ class PreintegratedImuMeasurements {
PreintegratedImuMeasurements(const gtsam::PreintegrationParams* params); PreintegratedImuMeasurements(const gtsam::PreintegrationParams* params);
PreintegratedImuMeasurements(const gtsam::PreintegrationParams* params, PreintegratedImuMeasurements(const gtsam::PreintegrationParams* params,
const gtsam::imuBias::ConstantBias& bias); const gtsam::imuBias::ConstantBias& bias);
PreintegratedImuMeasurements(const gtsam::PreintegratedImuMeasurements& other);
// Testable // Testable
void print(string s) const; void print(string s) const;
@ -2671,7 +2578,6 @@ virtual class ImuFactor: gtsam::NonlinearFactor {
ImuFactor(size_t pose_i, size_t vel_i, size_t pose_j, size_t vel_j, ImuFactor(size_t pose_i, size_t vel_i, size_t pose_j, size_t vel_j,
size_t bias, size_t bias,
const gtsam::PreintegratedImuMeasurements& preintegratedMeasurements); const gtsam::PreintegratedImuMeasurements& preintegratedMeasurements);
ImuFactor(const gtsam::ImuFactor& other);
// Standard Interface // Standard Interface
gtsam::PreintegratedImuMeasurements preintegratedMeasurements() const; gtsam::PreintegratedImuMeasurements preintegratedMeasurements() const;
@ -2682,7 +2588,6 @@ virtual class ImuFactor: gtsam::NonlinearFactor {
#include <gtsam/navigation/CombinedImuFactor.h> #include <gtsam/navigation/CombinedImuFactor.h>
class PreintegratedCombinedMeasurements { class PreintegratedCombinedMeasurements {
PreintegratedCombinedMeasurements(const gtsam::PreintegratedCombinedMeasurements& other);
// Testable // Testable
void print(string s) const; void print(string s) const;
bool equals(const gtsam::PreintegratedCombinedMeasurements& expected, bool equals(const gtsam::PreintegratedCombinedMeasurements& expected,
@ -2706,7 +2611,6 @@ virtual class CombinedImuFactor: gtsam::NonlinearFactor {
CombinedImuFactor(size_t pose_i, size_t vel_i, size_t pose_j, size_t vel_j, CombinedImuFactor(size_t pose_i, size_t vel_i, size_t pose_j, size_t vel_j,
size_t bias_i, size_t bias_j, size_t bias_i, size_t bias_j,
const gtsam::PreintegratedCombinedMeasurements& CombinedPreintegratedMeasurements); const gtsam::PreintegratedCombinedMeasurements& CombinedPreintegratedMeasurements);
CombinedImuFactor(const gtsam::CombinedImuFactor& other);
// Standard Interface // Standard Interface
gtsam::PreintegratedCombinedMeasurements preintegratedMeasurements() const; gtsam::PreintegratedCombinedMeasurements preintegratedMeasurements() const;
@ -2742,7 +2646,6 @@ virtual class AHRSFactor : gtsam::NonlinearFactor {
AHRSFactor(size_t rot_i, size_t rot_j, size_t bias, AHRSFactor(size_t rot_i, size_t rot_j, size_t bias,
const gtsam::PreintegratedAhrsMeasurements& preintegratedMeasurements, Vector omegaCoriolis, const gtsam::PreintegratedAhrsMeasurements& preintegratedMeasurements, Vector omegaCoriolis,
const gtsam::Pose3& body_P_sensor); const gtsam::Pose3& body_P_sensor);
AHRSFactor(const gtsam::AHRSFactor& rhs);
// Standard Interface // Standard Interface
gtsam::PreintegratedAhrsMeasurements preintegratedMeasurements() const; gtsam::PreintegratedAhrsMeasurements preintegratedMeasurements() const;
@ -2759,11 +2662,10 @@ virtual class AHRSFactor : gtsam::NonlinearFactor {
// AttitudeFactor(); // AttitudeFactor();
//}; //};
virtual class Rot3AttitudeFactor : gtsam::NonlinearFactor{ virtual class Rot3AttitudeFactor : gtsam::NonlinearFactor{
Rot3AttitudeFactor(size_t key, const gtsam::Unit3& nZ, const gtsam::noiseModel::Diagonal* model, const gtsam::Unit3& bRef); Rot3AttitudeFactor(size_t key, const gtsam::Unit3& nZ, const gtsam::noiseModel::Diagonal* model,
const gtsam::Unit3& bRef);
Rot3AttitudeFactor(size_t key, const gtsam::Unit3& nZ, const gtsam::noiseModel::Diagonal* model); Rot3AttitudeFactor(size_t key, const gtsam::Unit3& nZ, const gtsam::noiseModel::Diagonal* model);
Rot3AttitudeFactor(); Rot3AttitudeFactor();
Rot3AttitudeFactor(const gtsam::Rot3AttitudeFactor& rhs);
void print(string s) const; void print(string s) const;
bool equals(const gtsam::NonlinearFactor& expected, double tol) const; bool equals(const gtsam::NonlinearFactor& expected, double tol) const;
gtsam::Unit3 nZ() const; gtsam::Unit3 nZ() const;
@ -2775,7 +2677,6 @@ virtual class Pose3AttitudeFactor : gtsam::NonlinearFactor{
const gtsam::Unit3& bRef); const gtsam::Unit3& bRef);
Pose3AttitudeFactor(size_t key, const gtsam::Unit3& nZ, const gtsam::noiseModel::Diagonal* model); Pose3AttitudeFactor(size_t key, const gtsam::Unit3& nZ, const gtsam::noiseModel::Diagonal* model);
Pose3AttitudeFactor(); Pose3AttitudeFactor();
Pose3AttitudeFactor(const gtsam::Pose3AttitudeFactor& rhs);
void print(string s) const; void print(string s) const;
bool equals(const gtsam::NonlinearFactor& expected, double tol) const; bool equals(const gtsam::NonlinearFactor& expected, double tol) const;
gtsam::Unit3 nZ() const; gtsam::Unit3 nZ() const;

View File

@ -14,8 +14,7 @@ std::string FullyOverloadedFunction::pyx_functionCall(
string ret; string ret;
if (!returnVals_[iOverload].isPair && !returnVals_[iOverload].type1.isPtr && if (!returnVals_[iOverload].isPair && !returnVals_[iOverload].type1.isPtr &&
returnVals_[iOverload].type1.isNonBasicType()) { returnVals_[iOverload].type1.isNonBasicType()) {
ret = returnVals_[iOverload].type1.shared_pxd_class_in_pyx() + "(new " + ret = returnVals_[iOverload].type1.make_shared_pxd_class_in_pyx() + "(";
returnVals_[iOverload].type1.pxd_class_in_pyx() + "(";
} }
// actual function call ... // actual function call ...
@ -27,9 +26,9 @@ std::string FullyOverloadedFunction::pyx_functionCall(
if (!returnVals_[iOverload].isPair && !returnVals_[iOverload].type1.isPtr && if (!returnVals_[iOverload].isPair && !returnVals_[iOverload].type1.isPtr &&
returnVals_[iOverload].type1.isNonBasicType()) returnVals_[iOverload].type1.isNonBasicType())
ret += "))"; ret += ")";
return ret; return ret;
} }
} }

View File

@ -349,7 +349,8 @@ void Module::emit_cython_pxd(FileWriter& pxdFile) const {
" shared_ptr(T*)\n" " shared_ptr(T*)\n"
" T* get()\n" " T* get()\n"
" T& operator*()\n\n" " T& operator*()\n\n"
" cdef shared_ptr[T] dynamic_pointer_cast[T,U](const shared_ptr[U]& r)\n"; " cdef shared_ptr[T] dynamic_pointer_cast[T,U](const shared_ptr[U]& r)\n"
" cdef shared_ptr[T] make_shared[T](const T& r)\n";
for(const TypedefPair& types: typedefs) for(const TypedefPair& types: typedefs)
types.emit_cython_pxd(pxdFile); types.emit_cython_pxd(pxdFile);
@ -408,7 +409,8 @@ void Module::emit_cython_pyx(FileWriter& pyxFile) const {
"import numpy as npp\n" "import numpy as npp\n"
"cimport " << pxdHeader << "\n" "cimport " << pxdHeader << "\n"
"from "<< pxdHeader << " cimport shared_ptr\n" "from "<< pxdHeader << " cimport shared_ptr\n"
"from "<< pxdHeader << " cimport dynamic_pointer_cast\n"; "from "<< pxdHeader << " cimport dynamic_pointer_cast\n"
"from "<< pxdHeader << " cimport make_shared\n";
// import all typedefs, e.g. from gtsam_wrapper cimport Key, so we don't need to say gtsam.Key // import all typedefs, e.g. from gtsam_wrapper cimport Key, so we don't need to say gtsam.Key
for(const Qualified& q: Qualified::BasicTypedefs) { for(const Qualified& q: Qualified::BasicTypedefs) {
pyxFile.oss << "from " << pxdHeader << " cimport " << q.pxdClassName() << "\n"; pyxFile.oss << "from " << pxdHeader << " cimport " << q.pxdClassName() << "\n";

View File

@ -246,6 +246,10 @@ public:
return "shared_" + pxdClassName() + "_"; return "shared_" + pxdClassName() + "_";
} }
std::string make_shared_pxd_class_in_pyx() const {
return "make_shared[" + pxd_class_in_pyx() + "]";
}
std::string shared_pxd_class_in_pyx() const { std::string shared_pxd_class_in_pyx() const {
return "shared_ptr[" + pxd_class_in_pyx() + "]"; return "shared_ptr[" + pxd_class_in_pyx() + "]";
} }

View File

@ -102,8 +102,8 @@ std::string ReturnType::pyx_casting(const std::string& var,
return pyxClassName() + ".cyCreateFromShared(" + var + ")"; return pyxClassName() + ".cyCreateFromShared(" + var + ")";
else { else {
// construct a shared_ptr if var is not a shared ptr // construct a shared_ptr if var is not a shared ptr
return pyxClassName() + ".cyCreateFromShared(" + shared_pxd_class_in_pyx() + return pyxClassName() + ".cyCreateFromShared(" + make_shared_pxd_class_in_pyx() +
"(new " + pxd_class_in_pyx() + "(" + var + ")))"; + "(" + var + "))";
} }
} else } else
return var; return var;