Program Listing for File motion_struct.h

Return to documentation for file (c/fmdt/motion/motion_struct.h)

#pragma once

typedef struct {
    float cos_theta;
    float neg_sin_theta;
    float tx;
    float sin_theta;
    float cos_theta2;
    float ty;
    float zero1;
    float zero2;
    float one;
} tmat3x3_t;

typedef struct {
    float x;
    float y;
    float one;
} hcoord_t;

void motion_init_tmat3x3(tmat3x3_t* tmat, const float cos_theta, const float sin_theta, const float tx, const float ty);

void motion_init_tmat3x3_identity(tmat3x3_t* tmat);

float motion_get_theta(const tmat3x3_t* tmat);

hcoord_t motion_update_pos(const tmat3x3_t* tmat, const float x, const float y);

void motion_combine_tmat3x3(const tmat3x3_t* tmat0, const tmat3x3_t* tmat1, tmat3x3_t* tmat0_1);

typedef struct {
    tmat3x3_t tmat;
    float mean_error;
    float std_deviation;
} motion_t;