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("操作对象不存在,无需重复移除!");
    }
}

results matching ""

    No results matching ""