X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?p=folded-ctf.git;a=blobdiff_plain;f=pi_referential.h;h=d1341acf7c215c2cd3a28072266781bfc64febd9;hp=04516f3743bf73c6cba64ae1eb45cd55c76d03da;hb=33852c7b378d419be75d15a9663ee6b071c2f534;hpb=789f96ef05fda4588aa536adb614c0e841be0812 diff --git a/pi_referential.h b/pi_referential.h index 04516f3..d1341ac 100644 --- a/pi_referential.h +++ b/pi_referential.h @@ -46,19 +46,20 @@ class PiReferential { scalar_t _head_ux, _head_uy, _head_vx, _head_vy; scalar_t _head_ux_nopolarity, _head_uy_nopolarity, _head_vx_nopolarity, _head_vy_nopolarity; - // The body frame in that _common_scale. The vectors are of length the radii of the ellipse + // Useless fields, but they are necessary so that the optimized code + // with g++ gives the same results as some reference + // experiments. Sorry for that. scalar_t _body_xc, _body_yc; - scalar_t _body_radius_1, _body_radius_2; +// scalar_t _body_radius_1, _body_radius_2; scalar_t _body_tilt; - // The belly frame is defined by the body location and head scale + // The belly frame is defined by the belly location and head scale scalar_t _belly_xc, _belly_yc; scalar_t _belly_ux, _belly_uy, _belly_vx, _belly_vy; scalar_t _belly_ux_nopolarity, _belly_uy_nopolarity, _belly_vx_nopolarity, _belly_vy_nopolarity; scalar_t _belly_window_scaling; - // The head-belly frame is defined by the head location and the body - // center location + // The head-belly frame is defined by the head location and the belly scalar_t _head_belly_xc, _head_belly_yc; scalar_t _head_belly_ux, _head_belly_uy, _head_belly_vx, _head_belly_vy; int _head_belly_edge_shift; @@ -74,29 +75,30 @@ public: PiReferential(PoseCell *cell); enum { - // A frame centered on the head, of size four times the head radius - // and, flipped verically if the body center is on the left of the - // head center + // A square frame centered on the head, of size four times the + // head radius and, flipped vertically if the belly is on the left + // of the head center RM_HEAD, // Same as above, without the flipping RM_HEAD_NO_POLARITY, - // A frame centered on the body center, of size size times the - // head rardius, flipped vertically if the body center is on the - // left of the head center + + // A frame centered on the belly, of size eight times the head + // radius, flipped vertically if the belly is on the left of the + // head center RM_BELLY, // Same as above, without the flipping RM_BELLY_NO_POLARITY, // A frame centered on the middle point between the head center - // and the body center, of size twice the distance head center - - // body center in the head-body direction, and of four times the - // head radius in the other + // and the belly, of size twice the distance head center - belly + // in the head-belly direction, and of four times the head radius + // in the other RM_HEAD_BELLY, // Same as above with rotation of the edges - RM_HEAD_BELLY_EDGES, + RM_HEAD_BELLY_EDGES }; int common_scale();