Ejemplo n.º 1
0
        /// <summary>
        /// overriders the <see cref="CustomEntity.OnDraw(OpenGlDevice)"/> method.
        /// </summary>
        /// <param name="Device"></param>
        protected override void OnDraw(OpenGlDevice Device)
        {
            if (Device.RenderKind != RenderKind.Render)
            {
                return;
            }
            Device.PushMatrix();
            Device.ModelMatrix = Matrix.identity;
            _Base = new Base(true);


            if (Device.SnappItems.Count > 0)
            {
                if ((Device.SnappItems[0].Crossed) && (CrossStyle != Cross.None))
                {
                    Base Base = new Base(true);
                    Base.BaseO = Device.SnappItems[0].Point;

                    Color C = Device.Ambient;
                    Device.Ambient = ColoroFtheCrossSymbol;
                    double r = Device.PixelToWorld(Device.SnappItems[0].Point, CrossSize);
                    if (CrossStyle == Cross.Sphere)
                    {
                        Device.drawSphere(Device.SnappItems[0].Point, r / 2f);
                    }
                    if (CrossStyle == Cross.Cube)
                    {
                        Base B = Device.SnappItems[0].GetBase();

                        Matrix M = B.ToMatrix();
                        Device.PushMatrix();
                        Device.ModelMatrix = M;
                        Device.drawBox(new xyz(-r / 2, -r / 2, -r / 2), new xyz(r, r, r));
                        Device.PopMatrix();
                    }
                    if ((_Base.BaseO.X == 2) && (_Base.BaseO.y == 2) && (_Base.BaseO.Z == 2))
                    {
                    }
                    Device.Ambient = C;
                    return;
                }

                else
                {
                    _Base.BaseO = Device.SnappItems[0].Point;
                    if (_Base.BaseO.dist(Device.Currentxyz) > 0.1)
                    {
                    }
                    if (!AxisFix)
                    {
                        {
                            _Base = Device.SnappItems[0].GetBase();
                        }
                    }
                }
            }
            else
            {
                _Base       = Base.UnitBase;
                _Base.BaseO = Device.Currentxyz;
            }

            float PenW = Device.PenWidth;

            Device.PenWidth = PenWidth;
            Color SaveEmission = Device.Emission;
            bool  Save         = Device.LightEnabled;

            Device.LightEnabled = true;

            Device.Emission = xAxisColor;
            Device.drawLine(Base.BaseO - Base.BaseX * Device.PixelToWorld(Base.BaseO, Size), Base.BaseO + Base.BaseX * Device.PixelToWorld(Base.BaseO, Size));
            double d = Device.PixelToWorld(Base.BaseO, Size);

            Device.Emission = yAxisColor;
            Device.drawLine(Base.BaseO - Base.BaseY * Device.PixelToWorld(Base.BaseO, Size), Base.BaseO + Base.BaseY * Device.PixelToWorld(Base.BaseO, Size));
            Device.Emission = zAxisColor;
            Device.drawLine(Base.BaseO - Base.BaseZ * Device.PixelToWorld(Base.BaseO, Size), Base.BaseO + Base.BaseZ * Device.PixelToWorld(Base.BaseO, Size));
            Device.LightEnabled = Save;
            Device.Emission     = SaveEmission;
            Device.PenWidth     = PenW;
            Device.PopMatrix();

            BaseZ = Base.BaseZ;

            base.OnDraw(Device);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// overrides <see cref="CustomEntity.OnDraw(OpenGlDevice)"/>.
 /// </summary>
 /// <param name="Device"><see cref="OpenGlDevice"/> in which the box will be drawn.</param>
 protected override void OnDraw(OpenGlDevice Device)
 {
     Device.drawBox(Origin, Size);
     base.OnDraw(Device);
 }