23 const std::shared_ptr<const IHexapodCoordinateConverter>& converter_ptr) :
24 kMarginColor(GetColor(0, 255, 0)),
25 kMarginErrorColor(GetColor(255, 0, 0)),
27 converter_ptr_(converter_ptr)
36 std::vector<Vector3> polygon;
48 polygon.back() +=
Vector3{ 0, 0, 5 };
50 polygon_xy.
AddVertex(polygon.back().ProjectedXY());
52 polygon_sum += polygon.back();
57 const Vector3 center = polygon_sum /
static_cast<float>(polygon.size());
61 for (
size_t i = 0; i < polygon.size(); ++i)
63 const VECTOR poly[3] = {
69 SetDrawBlendMode(DX_BLENDMODE_ALPHA, kAlpha);
73 DrawTriangle3D(poly[0], poly[1], poly[2], kMarginColor, TRUE);
77 DrawTriangle3D(poly[0], poly[1], poly[2], kMarginErrorColor, TRUE);
81 SetDrawBlendMode(DX_BLENDMODE_NOBLEND, 0);
89 DrawSphere3D(projected_center_pos, 5, 10, 10, GetColor(255, 255, 255), TRUE);
bool IsGrounded(const LegStateBit &leg_state, const int leg_index)
脚番号 leg_index 0 ~ 5 に応じて,その脚が接地しているかを調べる. 脚は右前脚を0番として,時計回りに0,1,2,3,4,5となる.左前足が5番.