Beispiel #1
0
        //定义裁剪面,开始分析
        private void btn_start_Click(object sender, EventArgs e)
        {
            m_oldAction = m_sceneControl.Action;

            m_sceneControl.Action = Action3D.CreatePolygon;
            this.RegisterEvents(false);
            this.RegisterEvents(true);

            this.btn_start.Enabled = false;
            this.btn_clear.Enabled = true;
        }
    public override async Task <bool> Show(InteractiveObject interactiveObject, bool lockTree)
    {
        if (!await base.Show(interactiveObject, lockTree))
        {
            return(false);
        }
        if (interactiveObject is Action3D action)
        {
            currentAction    = action;
            actionParameters = await Parameter.InitActionParameters(currentAction.ActionProvider.GetProviderId(), currentAction.Parameters.Values.ToList(), Content, OnChangeParameterHandler, DynamicContentLayout, CanvasRoot, false, CanvasGroup);

            ActionName.text      = $"Name: {action.GetName()}";
            ActionType.text      = $"Type: {action.ActionProvider.GetProviderName()}/{action.Metadata.Name}";
            ActionPointName.text = $"AP: {action.ActionPoint.GetName()}";
            EditorHelper.EnableCanvasGroup(CanvasGroup, true);
            action.ActionPoint.HighlightAP(true);
            return(true);
        }
        else
        {
            return(false);
        }
    }
Beispiel #3
0
        //绘制区域并开始分析
        private void btn_StartAnalysis_Click(object sender, EventArgs e)
        {
            if (m_shadowType == ShadowType.SELECTION)
            {
                //目前只允许一次选择一个图层中的对象
                Layer3Ds layers = m_sceneControl.Scene.Layers;
                for (int i = 0; i < layers.Count; i++)
                {
                    Layer3D     layer      = layers[i];
                    Selection3D seletion3D = layer.Selection;
                    if (seletion3D != null)
                    {
                        m_selection = seletion3D;
                        break;
                    }
                }
                if (m_selection == null)
                {
                    MessageBox.Show("请先选择要产生阴影的对象!");
                    return;
                }
            }

            this.RegisterEvents(false);
            this.RegisterEvents(true);

            m_oldAction           = m_sceneControl.Action;
            m_sceneControl.Action = Action3D.CreatePolygon;

            if (m_shadowQuery == null)
            {
                m_shadowQuery = this.CreateShadowVisibilityQuery();
            }

            this.btn_StartAnalysis.Enabled = false;
            this.btn_ClearResult.Enabled   = true;
        }
    public override async Task Hide()
    {
        await base.Hide();

        RectTransform[] transforms = Content.GetComponentsInChildren <RectTransform>();
        if (transforms != null)
        {
            foreach (RectTransform o in transforms)
            {
                if (o.gameObject.tag != "Persistent")
                {
                    Destroy(o.gameObject);
                }
            }
        }
        if (!IsVisible)
        {
            return;
        }

        EditorHelper.EnableCanvasGroup(CanvasGroup, false);
        currentAction.ActionPoint.HighlightAP(false);
        currentAction = null;
    }