syntax = "proto3"; package cmvr.common; message Vec2 { optional double x = 1; optional double y = 2; } message Vec3 { optional double x = 1; optional double y = 2; optional double z = 3; } message Vec6 { optional double x = 1; optional double y = 2; optional double z = 3; optional double rx = 4; optional double ry = 5; optional double rz = 6; } message Quat { optional double w = 1; optional double x = 2; optional double y = 3; optional double z = 4; } message Euler { optional double rx = 1; optional double ry = 2; optional double rz = 3; } message Pose3d { Vec3 position = 1; Quat quaternion = 2; Euler euler = 3; } message Pose2d { optional double x = 1; optional double y = 2; optional double theta = 3; } message Mat3 { optional double m00 = 1; optional double m01 = 2; optional double m02 = 3; optional double m10 = 4; optional double m11 = 5; optional double m12 = 6; optional double m20 = 7; optional double m21 = 8; optional double m22 = 9; } message Mat4 { optional double m00 = 1; optional double m01 = 2; optional double m02 = 3; optional double m03 = 4; optional double m10 = 5; optional double m11 = 6; optional double m12 = 7; optional double m13 = 8; optional double m20 = 9; optional double m21 = 10; optional double m22 = 11; optional double m23 = 12; optional double m30 = 13; optional double m31 = 14; optional double m32 = 15; optional double m33 = 16; }