syntax = "proto3";

package cmvr.msgs;


message Vec2 {
    double x = 1;
    double y = 2;
}

message Vec3 {
    double x = 1;
    double y = 2;
    double z = 3;
}

// ===== 四元数 =====
message Quat {
    double w = 1;
    double x = 2;
    double y = 3;
    double z = 4;
}

// ===== 位置（3D）=====
message Position {
    double x = 1; // unit: m
    double y = 2;
    double z = 3;
}

// ===== 欧拉角 =====
message Euler {
    double rx = 1; // unit: rad (roll)
    double ry = 2; // unit: rad (pitch)
    double rz = 3; // unit: rad (yaw)
}

// ===== 位姿（3D）=====
message Pose3d {
    Position position = 1; // (m)
    Quat quaternion = 2;   // 四元数
    Euler euler = 3;       // 欧拉角 (rad)
}

// ===== 位姿（2D）=====
message Pose2d {
    double x = 1;     // (m)
    double y = 2;     // (m)
    double theta = 3; // (rad)
}
