// 获取对象管理器,以后通过对象管理对象进行操作
FxSceneObject::ObjectManager* m_objectManager = FxSceneObject::ObjectManager::getInstance();
// 加载注册内置的实体和特效对象
m_objectManager->registerObject(FxSceneObject::COMMON_OBJECT, new FxSceneObject::ComObjectGenerator(), true);
// 添加飞机对象
std::string objId = "aircraft1";
// 飞行器配置项
osg::ref_ptr<FxSceneObject::AircraftOption> aircraftOption = m_objectManager->createOption<FxSceneObject::AircraftOption>(FxSceneObject::AIRCRAFT, objId);
aircraftOption->dynamic() = true;
aircraftOption->position() = osg::Vec3d(100.2819, 41.2142, 1100);
aircraftOption->attitude() = osg::Vec3(0, 0, 0);
aircraftOption->visible() = true;
// 设置对象使用模型和图片参数
FxSceneObject::AircraftGraphicOption* graphicOption = aircraftOption->graphicOption<FxSceneObject::AircraftGraphicOption>();
graphicOption->modelOption()->modelPath() = FxUtil::FilePath("|:System/Models/Rocket/CZ-2D.ive");
graphicOption->imageOption()->imageSize() = osg::Vec2(64, 64);
graphicOption->imageOption()->imagePath() = FxUtil::FilePath("|:System/Images/MIcon/Rocket.png");
graphicOption->billboardOption()->visible() = true;
graphicOption->billboardOption()->labelText() = std::string("rocket");
graphicOption->pathLineOption()->color() = osg::Vec4(0.8, 0.0, 0.7, 1.f);
graphicOption->pathLineOption()->width() = 4.f;
graphicOption->pathLineOption()->visible() = true;
graphicOption->pathLineOption()->updateInReal() = true;
graphicOption->modelOption()->autoScaleRadio() = 5.0;
graphicOption->modelOption()->visibleRange() = osg::Vec2(0.0, 5000000.0);
graphicOption->imageOption()->visibleRange() = osg::Vec2(0.0, 5000000.0);
// 这里使用实时数据来驱动飞行器运动
aircraftOption->pathModelOption()->driveMode() = FxSceneObject::PathModel::E_REAL_TIME_DATA;
FxSceneObject::SceneObject* aircraft = m_objectManager->addObject(aircraftOption.get());
//添加一个运动模型的轨迹
// 类型标识
const std::string CONTRAIL = "Contrail";
//添加一个运动模型的轨迹
osg::ref_ptr<FxSceneObject::ContrailOption> trailOption = m_objectManager->createOption<FxSceneObject::ContrailOption>(FxSceneObject::CONTRAIL, "32243");
if (!trailOption.valid())
{
return;
}
trailOption->attachId() = objId;
trailOption->ptLineVisible() = false;
trailOption->displayMode() = FxSceneObject::ContrailOption::E_NO_LIMIT;
trailOption->dataSource() = FxSceneObject::ContrailOption::E_DATA_ENTITY;
FxSceneObject::SceneObject* trail = m_objectManager->addObject(trailOption.get());