本文整理汇总了C++中AbstractAirspace::SetProperties方法的典型用法代码示例。如果您正苦于以下问题:C++ AbstractAirspace::SetProperties方法的具体用法?C++ AbstractAirspace::SetProperties怎么用?C++ AbstractAirspace::SetProperties使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AbstractAirspace
的用法示例。
在下文中一共展示了AbstractAirspace::SetProperties方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: AddCircle
void
AddCircle(Airspaces &airspace_database)
{
AbstractAirspace *as = new AirspaceCircle(center, radius);
as->SetProperties(std::move(name), type, base, top);
as->SetRadio(radio);
as->SetDays(days_of_operation);
airspace_database.Add(as);
}
示例2: AddPolygon
void
AddPolygon(Airspaces &airspace_database)
{
AbstractAirspace *as = new AirspacePolygon(points);
as->SetProperties(name, type, base, top);
as->SetRadio(radio);
as->SetDays(days_of_operation);
airspace_database.Add(as);
}
示例3: fixed
static void
airspace_random_properties(AbstractAirspace& as)
{
AirspaceClass Type = (AirspaceClass)(rand()%14);
AirspaceAltitude base;
AirspaceAltitude top;
base.altitude = fixed(rand()%4000);
top.altitude = base.altitude+fixed(rand()%3000);
as.SetProperties(_T("hello"), Type, base, top);
}
示例4: AddPolygon
void
AddPolygon(Airspaces &airspace_database)
{
if (points.size() < 3)
return;
AbstractAirspace *as = new AirspacePolygon(points);
as->SetProperties(std::move(name), type, base, top);
as->SetRadio(radio);
as->SetDays(days_of_operation);
airspace_database.Add(as);
}
示例5: xcsoar_Airspaces_addPolygon
//.........这里部分代码省略.........
std::vector<GeoPoint> points;
if (!PySequence_Check(py_points)) {
PyErr_SetString(PyExc_ValueError, "First argument is no sequence");
return nullptr;
}
Py_ssize_t num_items = PySequence_Fast_GET_SIZE(py_points);
for (Py_ssize_t i = 0; i < num_items; ++i) {
PyObject *py_location = PySequence_Fast_GET_ITEM(py_points, i);
GeoPoint location = Python::ReadLonLat(py_location);
if (!location.IsValid()) {
if (PyErr_Occurred() == nullptr)
PyErr_SetString(PyExc_RuntimeError, "Unknown error while parsing location");
return nullptr;
}
points.push_back(location);
}
if (points.size() < 3) {
PyErr_SetString(PyExc_ValueError, "Polygon has not enough points");
return nullptr;
}
/* Parse airspace name */
tstring name;
if (!Python::PyStringToString(py_name, name)) {
PyErr_SetString(PyExc_ValueError, "Can't parse airspace name.");
return nullptr;
}
/* Parse airspace class */
tstring as_class;
AirspaceClass type = AirspaceClass::OTHER;
if (!Python::PyStringToString(py_as_class, as_class)) {
PyErr_SetString(PyExc_ValueError, "Can't parse airspace class.");
return nullptr;
}
for (unsigned i = 0; i < ARRAY_SIZE(airspace_class_strings); i++) {
if (as_class.compare(airspace_class_strings[i].string) == 0)
type = airspace_class_strings[i].type;
}
/* Parse airspace base and top */
tstring base_ref, top_ref;
AirspaceAltitude base, top;
if (!Python::PyStringToString(py_base_ref, base_ref)) {
PyErr_SetString(PyExc_ValueError, "Can't parse airspace base reference.");
return nullptr;
}
if (!Python::PyStringToString(py_top_ref, top_ref)) {
PyErr_SetString(PyExc_ValueError, "Can't parse airspace top reference.");
return nullptr;
}
if (base_ref.compare("MSL") == 0) {
base.reference = AltitudeReference::MSL;
base.altitude = base_alt;
} else if (base_ref.compare("FL") == 0) {
base.reference = AltitudeReference::STD;
base.flight_level = base_alt;
} else if (base_ref.compare("AGL") == 0) {
base.reference = AltitudeReference::AGL;
base.altitude_above_terrain = base_alt;
} else {
PyErr_SetString(PyExc_ValueError, "Can't parse airspace base.");
return nullptr;
}
if (top_ref.compare("MSL") == 0) {
top.reference = AltitudeReference::MSL;
top.altitude = top_alt;
} else if (top_ref.compare("FL") == 0) {
top.reference = AltitudeReference::STD;
top.flight_level = top_alt;
} else if (top_ref.compare("AGL") == 0) {
top.reference = AltitudeReference::AGL;
top.altitude_above_terrain = top_alt;
} else {
PyErr_SetString(PyExc_ValueError, "Can't parse airspace top.");
return nullptr;
}
/* Create airspace and save it into the database */
AbstractAirspace *as = new AirspacePolygon(points);
as->SetProperties(std::move(name), type, base, top);
self->airspace_database->Add(as);
Py_RETURN_NONE;
}