|
namespace Yw.WinFrmUI
|
{
|
public partial class BimfaceInterop3dContainer : UserControl, IBimfaceInterop3dContainer
|
{
|
public BimfaceInterop3dContainer()
|
{
|
InitializeComponent();
|
}
|
|
public event Action LoadCompletedEvent;
|
public event Action LoadFailedEvent;
|
public event Action<HandingError> HandingErrorEvent;
|
public event Action LoadViewCompletedEvent;
|
public event Action<string> LoadViewFailedEvent;
|
public event Action<ClickIn3dInfo> ClickInEvent;
|
public event Action<ClickOut3dInfo> ClickOutEvent;
|
|
/// <summary>
|
/// 交互对象
|
/// </summary>
|
public BimfaceInterop3dCallBackObj CallBackObj
|
{
|
get
|
{
|
if (_callBackObj == null)
|
{
|
_callBackObj = new BimfaceInterop3dCallBackObj();
|
}
|
return _callBackObj;
|
}
|
}
|
private BimfaceInterop3dCallBackObj _callBackObj;
|
|
/// <summary>
|
/// 是否初始化
|
/// </summary>
|
public bool IsInitialized
|
{
|
get
|
{
|
return _isInitialized;
|
}
|
}
|
private bool _isInitialized;
|
|
/// <summary>
|
/// 视图是否初始化
|
/// </summary>
|
public bool IsViewInitialized
|
{
|
get
|
{
|
return _isViewInitialized;
|
}
|
}
|
private bool _isViewInitialized;
|
|
/// <summary>
|
/// 初始话容器
|
/// </summary>
|
public async Task InitialContainer()
|
{
|
var callBackObj = this.CallBackObj;
|
callBackObj.LoadCompletedEvent += CallBackObj_LoadCompletedEvent;
|
callBackObj.LoadFailedEvent += CallBackObj_LoadFailedEvent;
|
callBackObj.HandingErrorEvent += CallBackObj_HandingErrorEvent;
|
callBackObj.LoadViewCompletedEvent += CallBackObj_LoadViewCompletedEvent;
|
callBackObj.LoadViewFailedEvent += CallBackObj_LoadViewFailedEvent;
|
callBackObj.ClickInEvent += CallBackObj_ClickInEvent;
|
callBackObj.ClickOutEvent += CallBackObj_ClickOutEvent;
|
await this.webViewControl1.InitialWebBrower(BimfaceUrlHelper.Interop3dUrl, callBackObj, true);
|
}
|
|
|
//加载完成
|
private void CallBackObj_LoadCompletedEvent()
|
{
|
_isInitialized = true;
|
this.LoadCompletedEvent?.Invoke();
|
}
|
|
//加载失败
|
private void CallBackObj_LoadFailedEvent()
|
{
|
this.LoadFailedEvent?.Invoke();
|
}
|
|
//处理错误
|
private void CallBackObj_HandingErrorEvent(HandingError obj)
|
{
|
this.HandingErrorEvent?.Invoke(obj);
|
}
|
|
//加载视图完成
|
private void CallBackObj_LoadViewCompletedEvent()
|
{
|
_isViewInitialized = true;
|
this.LoadViewCompletedEvent?.Invoke();
|
}
|
|
//加载视图失败
|
private void CallBackObj_LoadViewFailedEvent(string obj)
|
{
|
this.LoadViewFailedEvent?.Invoke(obj);
|
}
|
|
//点击构件
|
private void CallBackObj_ClickInEvent(ClickIn3dInfo obj)
|
{
|
this.ClickInEvent?.Invoke(obj);
|
}
|
|
//点击外部
|
private void CallBackObj_ClickOutEvent(ClickOut3dInfo obj)
|
{
|
this.ClickOutEvent?.Invoke(obj);
|
}
|
|
|
/// <summary>
|
/// 加载视图
|
/// </summary>
|
public async Task<bool> LoadView(string viewToken)
|
{
|
if (!_isInitialized)
|
{
|
return false;
|
}
|
return await this.webViewControl1.EvaluateScriptAsync<bool>("loadView", viewToken);
|
}
|
|
|
}
|
}
|