std::string cLayerImage::NamePose2NameLayer(const std::string & aNP) { // En geometrie terrain chaque image genere une entree, pour avoir son orientation return IsTerrain() ? aNP : mAppli.ICNM()->Assoc1To1(mLI2P.KeyCalculImage(),aNP,true) ; }
bool AirspaceAltitude::IsBelow(const AltitudeState &state, const fixed margin) const { return GetAltitude(state) <= state.altitude + margin || /* special case: GND is always "below" the aircraft, even if the aircraft's AGL altitude turns out to be negative due to terrain file inaccuracies */ IsTerrain(); }
string RobotWorld::GetName(int id) const { int i = IsRigidObject(id); if(i >= 0) return rigidObjects[i].name; i = IsTerrain(id); if(i >= 0) return terrains[i].name; i = IsRobot(id); if(i >= 0) return robots[i].name; pair<int,int> j = IsRobotLink(id); if(j.first >= 0) return robots[j.first].name+"["+robots[j.first].robot->linkNames[j.second]+"]"; return ""; }
GLDraw::GeometryAppearance& RobotWorld::GetAppearance(int id) { int terrain = IsTerrain(id); if(terrain >= 0) return terrains[terrain].view.appearance; int rigidObject = IsRigidObject(id); if(rigidObject >= 0) return rigidObjects[rigidObject].view.appearance; pair<int,int> robotLink = IsRobotLink(id); if(robotLink.first >= 0) { return robots[robotLink.first].view.linkAppearance[robotLink.second]; } FatalError("GetGeometry: Invalid ID: %d\n",id); return robots[0].view.linkAppearance[0]; }
const Geometry::AnyCollisionGeometry3D& RobotWorld::GetGeometry(int id) const { int terrain = IsTerrain(id); if(terrain >= 0) return terrains[terrain].terrain->geometry; int rigidObject = IsRigidObject(id); if(rigidObject >= 0) return rigidObjects[rigidObject].object->geometry; pair<int,int> robotLink = IsRobotLink(id); if(robotLink.first >= 0) { return robots[robotLink.first].robot->geometry[robotLink.second]; } FatalError("GetGeometry: Invalid ID: %d\n",id); return robots[0].robot->geometry[0]; }