コード例 #1
0
        //--------------------------------------------------------------------------------------------------

        void _UpdateInteractivityStatus()
        {
            if (_AisShape == null)
            {
                return;
            }

            if (_Options.HasFlag(Options.Ghosting))
            {
                AisContext.Display(_AisShape, false);
                AisContext.Deactivate(_AisShape);
                return;
            }

            var layer = _ShapeSource?.GetLayer();

            if (layer == null)
            {
                return;
            }

            bool isVisible = !_IsHidden && layer.IsVisible;

            if (WorkspaceController.VisualShapes.EntityIsolationEnabled)
            {
                isVisible &= WorkspaceController.VisualShapes.GetIsolatedEntities().Contains(_ShapeSource);
            }

            if (isVisible)
            {
                if (AisContext.IsDisplayed(_AisShape))
                {
                    AisContext.Update(_AisShape, false);
                }
                else
                {
                    AisContext.Display(_AisShape, false);
                }

                _UpdateSelectionSensitivity();
            }
            else
            {
                if (AisContext.IsDisplayed(_AisShape))
                {
                    AisContext.Erase(_AisShape, false);
                }
            }

            _RaiseAisObjectChanged();
        }