2.6.6 大气光晕特效
大气光晕特效
大气光晕特效是指控制场景光晕开关的更新操作。可以通过该功能开启/关闭光晕。光晕默认是开启状态的。
大气光晕特效主要包括添加(创建)、更新和删除3种操作。
下图是大气光晕特效效果:
参数说明
大气光晕特效可配置的参数如下表所示:
配置项 | 配置说明 | 值类型 | 备注 |
---|---|---|---|
OptionsTypeName | 操作配置项类名 | string | AtmosphereOptions代表大气光晕更新 |
Operation | 操作类型 | string | 更新操作的类型。主要有:Add-添加; Remove-移除 |
代码调用示例
Javascript调用
var operationPtr = null;
//创建光晕操作对象
function createHaloOperation(){
if(operationPtr == null){
var tlo = map.CreateOperationOptions("Halo"); //创建更新配置对象,任意名称
tlo.AddConfig("OptionsTypeName", "AtmosphereOptions");//更新类型,AtmosphereOptions代表大气光晕更新
operationPtr = map.CreateOperation("AtmosphereOperation", tlo);//创建更新对象,AtmosphereOperation代表大气光晕更新
map.AddOperation(operationPtr);//加入操作并执行
}else{
alert("操作对象已存在,无需创建!");
}
}
//添加光晕
function updateHaloAdd(){
if(operationPtr){
var tlo = map.CreateOperationOptions("Halo"); //创建更新配置对象,任意名称
tlo.AddConfig("OptionsTypeName", "AtmosphereOptions");//更新类型,AtmosphereOptions代表大气光晕更新
tlo.AddConfig("Operation", "Add");//操作类型.Add-添加;Remove-移除
operationPtr.UpdateOperationOptions(tlo); //根据配置创建模型调整操作
}else{
alert("操作对象不存在,更新失败!");
}
}
//删除光晕
function updateHaloRemove(){
if(operationPtr){
var tlo = map.CreateOperationOptions("Halo"); //创建更新配置对象,任意名称
tlo.AddConfig("OptionsTypeName", "AtmosphereOptions");//更新类型,AtmosphereOptions代表大气光晕更新
tlo.AddConfig("Operation", "Remove"); //操作类型.Add-添加;Remove-移除
operationPtr.UpdateOperationOptions(tlo); //根据配置创建模型调整操作
}else{
alert("操作对象不存在,更新失败!");
}
}
//销毁光晕操作对象
function removeHaloOperation(){
if(operationPtr){
map.RemoveOperation(operationPtr);//移除更新对象
operationPtr = null;
}else{
alert("操作对象不存在,无需重复移除!");
}
}
C++调用
BaseObjectCOMLib::IOperationObjectPtr operationPtr;//更新对象
//创建光晕操作对象
void Cf5c5AtmosphereDlg::OnBnClickedcreatehalooperation()
{
if(operationPtr)
{
return;
}
ConfigOptionsCOMLib::IOperationOptionPtr tlo = map->CreateOperationOptions("Halo");//创建配置类型,操作类型的配置
tlo->AddConfig("OptionsTypeName", "AtmosphereOptions");//更新类型,AtmosphereOptions代表大气光晕更新
operationPtr = map->CreateOperation("AtmosphereOperation", tlo);//创建更新对象,AtmosphereOperation代表大气光晕更新
map->AddOperation(operationPtr);//加入操作并执行
}
//添加光晕
void Cf5c5AtmosphereDlg::OnBnClickedupdatehaloadd()
{
if(!operationPtr)
{
return;
}
ConfigOptionsCOMLib::IOperationOptionPtr tlo = map->CreateOperationOptions("Halo");//创建配置类型,操作类型的配置
tlo->AddConfig("OptionsTypeName", "AtmosphereOptions");//更新类型,AtmosphereOptions代表大气光晕更新
tlo->AddConfig("Operation", "Add");//操作类型.Add-添加;Remove-移除
operationPtr->UpdateOperationOptions(tlo); //根据配置创建模型调整操作
}
//删除光晕
void Cf5c5AtmosphereDlg::OnBnClickedupdatehaloremove()
{
if(!operationPtr)
{
return;
}
ConfigOptionsCOMLib::IOperationOptionPtr tlo = map->CreateOperationOptions("Halo");//创建配置类型,操作类型的配置
tlo->AddConfig("OptionsTypeName", "AtmosphereOptions");//更新类型,AtmosphereOptions代表大气光晕更新
tlo->AddConfig("Operation", "Remove");//操作类型.Add-添加;Remove-移除
operationPtr->UpdateOperationOptions(tlo); //根据配置创建模型调整操作
}
//销毁光晕操作对象
void Cf5c5AtmosphereDlg::OnBnClickedremovehalooperation()
{
if(!operationPtr)
{
return;
}
map->RemoveOperation(operationPtr);//移除更新对象
operationPtr = NULL;
}
C#调用
IOperationObject operationPtr;//光线操作对象
//创建光晕操作对象
private void createHaloOperation_Click(object sender, EventArgs e)
{
if (operationPtr == null)
{
var tlo = map.CreateOperationOptions("Halo"); //创建更新配置对象,任意名称
tlo.AddConfig("OptionsTypeName", "AtmosphereOptions");//更新类型,AtmosphereOptions代表大气光晕更新
operationPtr = map.CreateOperation("AtmosphereOperation", tlo);//创建更新对象,AtmosphereOperation代表大气光晕更新
map.AddOperation(operationPtr);//加入操作并执行
}
else
{
MessageBox.Show("操作对象已存在,无需创建!");
}
}
//添加光晕
private void updateHaloAdd_Click(object sender, EventArgs e)
{
if (operationPtr!=null)
{
var tlo = map.CreateOperationOptions("Halo"); //创建更新配置对象,任意名称
tlo.AddConfig("OptionsTypeName", "AtmosphereOptions");//更新类型,AtmosphereOptions代表大气光晕更新
tlo.AddConfig("Operation", "Add");//操作类型.Add-添加;Remove-移除
operationPtr.UpdateOperationOptions(tlo); //根据配置创建模型调整操作
}
else
{
MessageBox.Show("操作对象不存在,更新失败!");
}
}
//删除光晕
private void updateHaloRemove_Click(object sender, EventArgs e)
{
if (operationPtr!=null)
{
var tlo = map.CreateOperationOptions("Halo"); //创建更新配置对象,任意名称
tlo.AddConfig("OptionsTypeName", "AtmosphereOptions");//更新类型,AtmosphereOptions代表大气光晕更新
tlo.AddConfig("Operation", "Remove"); //操作类型.Add-添加;Remove-移除
operationPtr.UpdateOperationOptions(tlo); //根据配置创建模型调整操作
}
else
{
MessageBox.Show("操作对象不存在,更新失败!");
}
}
//销毁光晕操作对象
private void removeHaloOperation_Click(object sender, EventArgs e)
{
if (operationPtr!=null)
{
map.RemoveOperation(operationPtr);//移除更新对象
operationPtr = null;
}
else
{
MessageBox.Show("操作对象不存在,无需重复移除!");
}
}