39 #include <visp3/core/vpMomentCommon.h>
40 #include <visp3/core/vpMomentObject.h>
55 vpMomentCommon::vpMomentCommon(
double dstSurface,
const std::vector<double> &ref,
double refAlpha,
double dstZ,
56 bool flg_sxsyfromnormalized)
57 :
vpMomentDatabase(), momentBasic(), momentGravity(), momentCentered(), momentGravityNormalized(),
58 momentSurfaceNormalized(dstSurface, dstZ), momentCInvariant(), momentAlpha(ref, refAlpha), momentArea()
63 momentGravity.
linkTo(*
this);
64 momentCentered.
linkTo(*
this);
65 momentGravityNormalized.
linkTo(*
this);
66 momentSurfaceNormalized.
linkTo(*
this);
67 momentCInvariant->
linkTo(*
this);
140 momentSurfaceNormalized.
compute();
141 momentGravityNormalized.
compute();
145 std::cout <<
"Exception in vpMomentCommon:" << e.
getStringMessage() << std::endl;
158 momentGravity.
linkTo(moments);
160 momentCentered.
linkTo(moments);
169 a = momentCentered.
get(2, 0) + momentCentered.
get(0, 2);
171 a =
object.get(0, 0);
185 momentGravity.
linkTo(moments);
187 momentCentered.
linkTo(moments);
189 momentAlpha.
linkTo(moments);
196 return momentAlpha.
get();
208 momentGravity.
linkTo(moments);
210 momentCentered.
linkTo(moments);
217 std::vector<double> mu(4);
218 unsigned int idx = 0;
219 for (
unsigned int j = 0; j < 4; j++) {
220 for (
unsigned int i = 0; i < 4; i++) {
222 mu[idx] = momentCentered.
get(i, j);
232 if (momentCInvariant)
233 delete momentCInvariant;
error that can be emitted by ViSP classes.
const std::string & getStringMessage() const
This class defines the orientation of the object inside the plane parallel to the object.
This class defines the double-indexed centered moment descriptor .
double get(unsigned int i, unsigned int j) const
static std::vector< double > getMu3(vpMomentObject &object)
void updateAll(vpMomentObject &object) VP_OVERRIDE
static double getAlpha(vpMomentObject &object)
static double getSurface(vpMomentObject &object)
virtual ~vpMomentCommon() VP_OVERRIDE
This class allows to register all vpMoments so they can access each other according to their dependen...
virtual void updateAll(vpMomentObject &object)
Class describing 2D gravity center moment.
Class for generic objects.
void linkTo(vpMomentDatabase &moments)