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

        public override void Update()
        {
            bool isValid = _Circle.Radius() > Double.Epsilon;

            if (!isValid)
            {
                Remove();
                return;
            }

            if (_AisCircle == null)
            {
                if (!_EnsureAisObject())
                {
                    return;
                }
            }
            else
            {
                _AisCircle.SetCircle(_Circle);
                _AisCircle.SetFirstParam(_StartParam);
                _AisCircle.SetLastParam(_EndParam);
                AisContext.RecomputePrsOnly(_AisCircle, false);
            }
        }
コード例 #2
0
        //--------------------------------------------------------------------------------------------------

        public override void Update()
        {
            bool isValid = true;

            if (_GeomLine == null)
            {
                isValid = _P1.Distance(_P2) > Double.Epsilon;
            }
            if (!isValid)
            {
                Remove();
                return;
            }

            if (_AisLine == null)
            {
                if (!_EnsureAisObject())
                {
                    return;
                }
            }
            else
            {
                if (_GeomLine != null)
                {
                    _AisLine.SetLine(_GeomLine);
                }
                else
                {
                    _AisLine.SetPoints(_P1, _P2);
                }
                AisContext.RecomputePrsOnly(_AisLine, false);
            }
        }
コード例 #3
0
        //--------------------------------------------------------------------------------------------------

        public void SetColor(Quantity_Color color)
        {
            if (!_EnsureAisObject())
            {
                return;
            }

            _AisAxis.SetColor(color);
            AisContext.RecomputePrsOnly(_AisAxis, false);
        }
コード例 #4
0
        //--------------------------------------------------------------------------------------------------

        public void SetLength(double length)
        {
            if (!_EnsureAisObject())
            {
                return;
            }

            _AisAxis.SetLength(length);
            AisContext.RecomputePrsOnly(_AisAxis, false);
        }
コード例 #5
0
        //--------------------------------------------------------------------------------------------------

        public override void Update()
        {
            if (_AisAxis == null)
            {
                _EnsureAisObject();
            }
            else
            {
                AisContext.RecomputePrsOnly(_AisAxis, false);
            }
        }
コード例 #6
0
        //--------------------------------------------------------------------------------------------------

        public void SetColor(Quantity_Color color)
        {
            _Color = color ?? Colors.BallMarker;

            if (!_EnsureAisObject())
            {
                return;
            }

            _AisPoint.SetColor(_Color);
            AisContext.RecomputePrsOnly(_AisPoint, false);
        }
コード例 #7
0
        //--------------------------------------------------------------------------------------------------

        void _Update()
        {
            if (_AisCircle == null)
            {
                if (!_EnsureAisObject())
                    return;
            }
            else
            {
                _AisCircle.SetCircle(_Circle);
                _AisCircle.SetFirstParam(_StartParam);
                _AisCircle.SetLastParam(_EndParam);
                AisContext.RecomputePrsOnly(_AisCircle, false);
            }
        }
コード例 #8
0
        //--------------------------------------------------------------------------------------------------

        public void SetAxis(Ax1 axis)
        {
            if (!_EnsureAisObject())
            {
                return;
            }

            if ((_Style & HintStyle.NoResize) > 0)
            {
                _AisAxis.SetComponent(new Geom_Line(Pnt.Origin, axis.Direction));
                _AisAxis.SetTransformPersistence(new Graphic3d_TransformPers(Graphic3d_TransModeFlags.Graphic3d_TMF_ZoomPers, axis.Location));
            }
            else
            {
                _AisAxis.SetComponent(new Geom_Line(axis));
            }
            AisContext.RecomputePrsOnly(_AisAxis, false);
        }
コード例 #9
0
        //--------------------------------------------------------------------------------------------------

        void _Update()
        {
            if (_AisLine == null)
            {
                if (!_EnsureAisObject())
                {
                    return;
                }
            }
            else
            {
                if (_GeomLine != null)
                {
                    _AisLine.SetLine(_GeomLine);
                }
                else
                {
                    _AisLine.SetPoints(_P1, _P2);
                }
                AisContext.RecomputePrsOnly(_AisLine, false);
            }
        }
コード例 #10
0
        //--------------------------------------------------------------------------------------------------

        void _UpdatePresentation()
        {
            _UpdateMarker();

            if (_AisShape == null)
            {
                return;
            }

            var layer = _ShapeSource?.GetLayer();

            if (layer == null)
            {
                return;
            }

            AttributeSet attributeSet;

            if (!_DrawerCache.TryGetValue(layer, out attributeSet))
            {
                attributeSet = new AttributeSet();
                _UpdateAttributesForLayer(layer, ref attributeSet);
                _DrawerCache.SetValue(layer, attributeSet);
            }

            _AisShape.SetAttributes(attributeSet.Drawer);
            //_AisShape.SetHilightAttributes(attributeSet.HilightDrawer);

            _AisShape.SynchronizeAspects();

            if (_Options.HasFlag(Options.Ghosting))
            {
                _UpdatePresentationForGhost();
            }

            //TODO maybe not needed due to call to SynchronizeAspects
            AisContext.RecomputePrsOnly(_AisShape, false, true);
        }