8 #include <argos3/core/utility/string_utilities.h>
9 #include <argos3/core/simulator/simulator.h>
10 #include <argos3/core/simulator/space/space.h>
11 #include <argos3/core/simulator/entity/composable_entity.h>
12 #include <argos3/core/simulator/entity/embodied_entity.h>
23 m_pcEntityBody(NULL) {
31 const std::string& str_id,
40 m_psAnchor(&s_anchor),
41 m_cPosOffset(c_pos_offset),
42 m_cRotOffset(c_rot_offset),
45 m_pcEntityBody(&c_entity_body) {
70 std::string strRotOffset;
72 if(strRotOffset !=
"") {
80 std::string strAnchorId;
173 for(
SInt32 i = 0; i <= nRangeI; ++i) {
181 for(
SInt32 j = 0; j <= nRangeJ; ++j) {
189 for(
SInt32 k = 0; k <= nRangeK; ++k) {
205 c_space_hash.
UpdateCell(m_nCenterI + i, m_nCenterJ + j, m_nCenterK + k, c_element);
206 c_space_hash.
UpdateCell(m_nCenterI + i, m_nCenterJ + j, m_nCenterK - k, c_element);
207 c_space_hash.
UpdateCell(m_nCenterI + i, m_nCenterJ - j, m_nCenterK + k, c_element);
208 c_space_hash.
UpdateCell(m_nCenterI + i, m_nCenterJ - j, m_nCenterK - k, c_element);
209 c_space_hash.
UpdateCell(m_nCenterI - i, m_nCenterJ + j, m_nCenterK + k, c_element);
210 c_space_hash.
UpdateCell(m_nCenterI - i, m_nCenterJ + j, m_nCenterK - k, c_element);
211 c_space_hash.
UpdateCell(m_nCenterI - i, m_nCenterJ - j, m_nCenterK + k, c_element);
212 c_space_hash.
UpdateCell(m_nCenterI - i, m_nCenterJ - j, m_nCenterK - k, c_element);
220 c_space_hash.
UpdateCell(m_nCenterI + i, m_nCenterJ + j, m_nCenterK, c_element);
221 c_space_hash.
UpdateCell(m_nCenterI + i, m_nCenterJ - j, m_nCenterK, c_element);
222 c_space_hash.
UpdateCell(m_nCenterI - i, m_nCenterJ + j, m_nCenterK, c_element);
223 c_space_hash.
UpdateCell(m_nCenterI - i, m_nCenterJ - j, m_nCenterK, c_element);
237 c_space_hash.
UpdateCell(m_nCenterI + i, m_nCenterJ, m_nCenterK + k, c_element);
238 c_space_hash.
UpdateCell(m_nCenterI + i, m_nCenterJ, m_nCenterK - k, c_element);
239 c_space_hash.
UpdateCell(m_nCenterI - i, m_nCenterJ, m_nCenterK + k, c_element);
240 c_space_hash.
UpdateCell(m_nCenterI - i, m_nCenterJ, m_nCenterK - k, c_element);
248 c_space_hash.
UpdateCell(m_nCenterI + i, m_nCenterJ, m_nCenterK, c_element);
249 c_space_hash.
UpdateCell(m_nCenterI - i, m_nCenterJ, m_nCenterK, c_element);
268 c_space_hash.
UpdateCell(m_nCenterI, m_nCenterJ + j, m_nCenterK + k, c_element);
269 c_space_hash.
UpdateCell(m_nCenterI, m_nCenterJ + j, m_nCenterK - k, c_element);
270 c_space_hash.
UpdateCell(m_nCenterI, m_nCenterJ - j, m_nCenterK + k, c_element);
271 c_space_hash.
UpdateCell(m_nCenterI, m_nCenterJ - j, m_nCenterK - k, c_element);
279 c_space_hash.
UpdateCell(m_nCenterI, m_nCenterJ + j, m_nCenterK, c_element);
280 c_space_hash.
UpdateCell(m_nCenterI, m_nCenterJ - j, m_nCenterK, c_element);
294 c_space_hash.
UpdateCell(m_nCenterI, m_nCenterJ, m_nCenterK + k, c_element);
295 c_space_hash.
UpdateCell(m_nCenterI, m_nCenterJ, m_nCenterK - k, c_element);
303 c_space_hash.
UpdateCell(m_nCenterI, m_nCenterJ, m_nCenterK, c_element);
328 m_cGrid.UpdateCell(n_i, n_j, n_k, *m_pcEntity);
334 m_pcEntity = &c_entity;
339 m_cCellUpdater(c_grid) {}