48 const float side_len,
const unsigned int color)
51 const std::array<VECTOR, 8> vertex =
53 VGet(center_pos.x - side_len / 2, center_pos.y - side_len / 2,
54 center_pos.z - side_len / 2),
55 VGet(center_pos.x + side_len / 2, center_pos.y - side_len / 2,
56 center_pos.z - side_len / 2),
57 VGet(center_pos.x + side_len / 2, center_pos.y - side_len / 2,
58 center_pos.z + side_len / 2),
59 VGet(center_pos.x - side_len / 2, center_pos.y - side_len / 2,
60 center_pos.z + side_len / 2),
61 VGet(center_pos.x - side_len / 2, center_pos.y + side_len / 2,
62 center_pos.z - side_len / 2),
63 VGet(center_pos.x + side_len / 2, center_pos.y + side_len / 2,
64 center_pos.z - side_len / 2),
65 VGet(center_pos.x + side_len / 2, center_pos.y + side_len / 2,
66 center_pos.z + side_len / 2),
67 VGet(center_pos.x - side_len / 2, center_pos.y + side_len / 2,
68 center_pos.z + side_len / 2)
75 DrawTriangle3D(vertex[0], vertex[1], vertex[2], color, TRUE);
76 DrawTriangle3D(vertex[2], vertex[3], vertex[0], color, TRUE);
78 DrawTriangle3D(vertex[4], vertex[5], vertex[6], color, TRUE);
79 DrawTriangle3D(vertex[6], vertex[7], vertex[4], color, TRUE);
81 DrawTriangle3D(vertex[4], vertex[7], vertex[0], color, TRUE);
82 DrawTriangle3D(vertex[0], vertex[7], vertex[3], color, TRUE);
84 DrawTriangle3D(vertex[1], vertex[2], vertex[5], color, TRUE);
85 DrawTriangle3D(vertex[5], vertex[6], vertex[2], color, TRUE);
87 DrawTriangle3D(vertex[0], vertex[1], vertex[5], color, TRUE);
88 DrawTriangle3D(vertex[5], vertex[4], vertex[0], color, TRUE);
90 DrawTriangle3D(vertex[2], vertex[3], vertex[7], color, TRUE);
91 DrawTriangle3D(vertex[7], vertex[6], vertex[2], color, TRUE);
102void DrawHexagon(
const std::array<VECTOR, 6>& vertex,
const unsigned int color)
106 DrawTriangle3D(vertex[0], vertex[1], vertex[5], color, TRUE);
107 DrawTriangle3D(vertex[1], vertex[2], vertex[4], color, TRUE);
108 DrawTriangle3D(vertex[1], vertex[4], vertex[5], color, TRUE);
109 DrawTriangle3D(vertex[2], vertex[3], vertex[4], color, TRUE);
114 const unsigned int color)
121 const VECTOR center_to_top = VScale(VNorm(VCross(VSub(vertex[0], vertex[1]),
122 VSub(vertex[0], vertex[2]))), height / 2.0f);
125 const std::array<VECTOR, 6> vertex_top =
127 VAdd(vertex[0], center_to_top),
128 VAdd(vertex[1], center_to_top),
129 VAdd(vertex[2], center_to_top),
130 VAdd(vertex[3], center_to_top),
131 VAdd(vertex[4], center_to_top),
132 VAdd(vertex[5], center_to_top)
136 const std::array<VECTOR, 6> vertex_bottom =
138 VSub(vertex[0], center_to_top),
139 VSub(vertex[1], center_to_top),
140 VSub(vertex[2], center_to_top),
141 VSub(vertex[3], center_to_top),
142 VSub(vertex[4], center_to_top),
143 VSub(vertex[5], center_to_top)
150 for (
int i = 0; i < 6; i++)
152 DrawTriangle3D(vertex_top[i % 6],
153 vertex_top[(i + 1) % 6],
154 vertex_bottom[i % 6],
158 DrawTriangle3D(vertex_top[(i + 1) % 6],
159 vertex_bottom[i % 6],
160 vertex_bottom[(i + 1) % 6],