Shuxia Ning
2024-11-25 d4898c5d7e1bbbbba384a0e29f29c066d6f502a7
WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/IBimfaceInterop3dContainer.cs
@@ -3,16 +3,238 @@
    /// <summary>
    /// 
    /// </summary>
    public interface IBimfaceInterop3dContainer : Yw.IWebBrowerContainer, IBimfaceInterop3dEvents
    public interface IBimfaceInterop3dContainer : IBimfaceContainer, IBimfaceInterop3dEvents
    {
        /// <summary>
        /// 交互对象
        /// </summary>
        BimfaceInterop3dCallBackObj CallBackObj { get; }
        #region 构件的显示与隐藏
        /// <summary>
        /// 加载视图
        /// 显示构件
        /// </summary>
        Task<bool> LoadView(string viewToken);
        /// <param name="ids">构件id 列表</param>
        /// <returns></returns>
        Task ShowComponents(List<string> ids);
        /// <summary>
        /// 隐藏构件
        /// </summary>
        /// <param name="ids">构件id 列表<</param>
        /// <returns></returns>
        Task HideComponents(List<string> ids);
        /// <summary>
        /// 显示所有构件
        /// 所有的构件都可以通过这个方法恢复
        /// </summary>
        /// <returns></returns>
        Task ShowAllComponents();
        #endregion
        #region 构件半透明与取消
        /// <summary>
        /// 半透明组件(鼠标不可选)
        /// </summary>
        /// <param name="ids">构件id 列表</param>
        /// <returns></returns>
        Task TranslucentComponents(List<string> ids);
        /// <summary>
        /// 取消组件半透明
        /// </summary>
        /// <param name="ids">构件id 列表</param>
        /// <returns></returns>
        Task OpaqueComponents(List<string> ids);
        #endregion
        #region 构件的选择与取消
        /// <summary>
        /// 设置选择的构件列表
        /// </summary>
        /// <param name="ids">构件id列表</param>
        /// <returns></returns>
        Task SetSelectedComponents(List<string> ids);
        /// <summary>
        /// 增加选择的构件列表
        /// </summary>
        /// <param name="ids">构件id列表</param>
        /// <returns></returns>
        Task AddSelectedComponents(List<string> ids);
        /// <summary>
        /// 移除选择的构件列表
        /// </summary>
        /// <param name="ids">构件id列表</param>
        /// <returns></returns>
        Task RemoveSelectedComponents(List<string> ids);
        /// <summary>
        /// 清除选择的构件列表
        /// </summary>
        /// <returns></returns>
        Task ClearSelectedComponents();
        #endregion
        #region 缩放
        /// <summary>
        /// 缩放到包围盒
        /// </summary>
        Task ZoomToBoundingBox(BoundingBox boundingbox);
        /// <summary>
        /// 缩放到单个构件
        /// </summary>
        Task ZoomToComponent(string id);
        /// <summary>
        /// 缩放到选中构件
        /// </summary>
        Task ZoomToSelectedComponents();
        /// <summary>
        /// 缩放并选中多个构件
        /// </summary>
        Task ZoomAndSelectComponents(List<string> ids);
        #endregion
        #region 强调构件
        /// <summary>
        /// 设置强调构件
        /// </summary>
        /// <param name="ids">构件id列表</param>
        /// <param name="color">#32D3A6</param>
        /// <param name="transparency">0.8</param>
        /// <returns></returns>
        Task SetBlinkComponents(List<string> ids, string color, double transparency);
        /// <summary>
        /// 清除强调构件
        /// </summary>
        /// <returns></returns>
        Task ClearBlinkComponents();
        #endregion
        #region 构件着色
        /// <summary>
        /// 改变构件颜色
        /// </summary>
        /// <param name="ids">构件id列表</param>
        /// <param name="color">#32D3A6</param>
        /// <param name="transparency">0.8</param>
        /// <returns></returns>
        Task OverrideComponentsColor(List<string> ids, string color, double transparency);
        /// <summary>
        /// 恢复部件颜色
        /// </summary>
        /// <param name="ids">构件id列表</param>
        /// <returns></returns>
        Task RestoreComponentsColor(List<string> ids);
        #endregion
        #region 业务计算自定义标签
        /// <summary>
        /// 设置自定义标签
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        Task SetLogicCalcuCustomLabels(List<LogicCalcuCustomLabel> obj);
        /// <summary>
        /// 清除自定义标签
        /// </summary>
        /// <returns></returns>
        Task ClearLogicCalcuCustomLabels();
        #endregion
        #region 业务标注引线标签
        /// <summary>
        /// 设置业务标注引线标签
        /// </summary>
        Task SetLogicMarkLeadLabels(List<LogicMarkLeadLabel> obj);
        /// <summary>
        /// 更新业务标注引线标签
        /// </summary>
        Task UpdateLogicMarkLeadLabel(LogicMarkLeadLabel obj);
        /// <summary>
        /// 更新业务标注引线标签
        /// </summary>
        Task UpdateLogicMarkLeadLabels(List<LogicMarkLeadLabel> obj);
        /// <summary>
        /// 清除业务标注引线标签
        /// </summary>
        Task ClearLogicMarkLeadLabels();
        #endregion
        #region 业务水流动画
        /// <summary>
        /// 加载水流动画
        /// </summary>
        Task LoadFlowEffect(LogicFlowEffect obj);
        /// <summary>
        /// 加载水流动画列表
        /// </summary>
        Task LoadFlowEffectList(List<LogicFlowEffect> obj);
        /// <summary>
        /// 更新水流动画
        /// </summary>
        Task UpdateFlowEffect(LogicFlowEffect obj);
        /// <summary>
        /// 更新水流动画列表
        /// </summary>
        Task UpdateFlowEffectList(List<LogicFlowEffect> obj);
        /// <summary>
        /// 卸载水流动画
        /// </summary>
        Task UnloadFlowEffect();
        /// <summary>
        /// 通过 Id 卸载水流动画
        /// </summary>
        Task UnloadFlowEffectById(string Id);
        #endregion
        #region 业务监测点
        /// <summary>
        /// 设置业务监测点
        /// </summary>
        Task SetLogicMonitors(List<LogicMonitorMarker> obj);
        /// <summary>
        /// 清除业务监测点
        /// </summary>
        Task ClearLogicMonitors();
        #endregion
    }
}