public virtual void Draw(IGraphicsContext3D g, IMaterial brush, PointD3D point)
            {
                g.DrawString(_firstpart, _font1, brush, point);

                point = point.WithXPlus(_size1.X);

                g.DrawString(_exponent, _font2, brush, point.WithYPlus(_size1.Y - _size2.Y));

                point = point.WithXPlus(_size2.X);

                g.DrawString(_lastpart, _font1, brush, point);
            }
示例#2
0
        public virtual void DrawString(string text, FontX3D font, IMaterial brush, PointD3D point, Alignment alignmentX, Alignment alignmentY, Alignment alignmentZ)
        {
            var stringSize = new VectorD3D(0, 0, font.Depth); // depth is already known, for this we don't need to call MeasureString

            if (alignmentX != Alignment.Near || alignmentY != Alignment.Near)
            {
                stringSize = FontManager3D.Instance.MeasureString(text, font);
            }

            switch (alignmentX)
            {
            case Alignment.Near:
                break;

            case Alignment.Center:
                point = point.WithXPlus(-0.5 * stringSize.X);
                break;

            case Alignment.Far:
                point = point.WithXPlus(-stringSize.X);
                break;

            default:
                break;
            }

            switch (alignmentY)
            {
            case Alignment.Near:
                break;

            case Alignment.Center:
                point = point.WithYPlus(-0.5 * stringSize.Y);
                break;

            case Alignment.Far:
                point = point.WithYPlus(-stringSize.Y);
                break;

            default:
                break;
            }

            switch (alignmentZ)
            {
            case Alignment.Near:
                break;

            case Alignment.Center:
                point = point.WithZPlus(-0.5 * stringSize.Z);
                break;

            case Alignment.Far:
                point = point.WithZPlus(-stringSize.Z);
                break;

            default:
                break;
            }

            DrawString(text, font, brush, point);
        }
示例#3
0
		public virtual void DrawString(string text, FontX3D font, IMaterial brush, PointD3D point, Alignment alignmentX, Alignment alignmentY, Alignment alignmentZ)
		{
			VectorD3D stringSize = new VectorD3D(0, 0, font.Depth); // depth is already known, for this we don't need to call MeasureString

			if (alignmentX != Alignment.Near || alignmentY != Alignment.Near)
				stringSize = FontManager3D.Instance.MeasureString(text, font);

			switch (alignmentX)
			{
				case Alignment.Near:
					break;

				case Alignment.Center:
					point = point.WithXPlus(-0.5 * stringSize.X);
					break;

				case Alignment.Far:
					point = point.WithXPlus(-stringSize.X);
					break;

				default:
					break;
			}

			switch (alignmentY)
			{
				case Alignment.Near:
					break;

				case Alignment.Center:
					point = point.WithYPlus(-0.5 * stringSize.Y);
					break;

				case Alignment.Far:
					point = point.WithYPlus(-stringSize.Y);
					break;

				default:
					break;
			}

			switch (alignmentZ)
			{
				case Alignment.Near:
					break;

				case Alignment.Center:
					point = point.WithZPlus(-0.5 * stringSize.Z);
					break;

				case Alignment.Far:
					point = point.WithZPlus(-stringSize.Z);
					break;

				default:
					break;
			}

			DrawString(text, font, brush, point);
		}
			public virtual void Draw(IGraphicsContext3D g, IMaterial brush, PointD3D point)
			{
				g.DrawString(_firstpart, _font1, brush, point);

				point = point.WithXPlus(_size1.X);

				g.DrawString(_exponent, _font2, brush, point.WithYPlus(_size1.Y - _size2.Y));

				point = point.WithXPlus(_size2.X);

				g.DrawString(_lastpart, _font1, brush, point);
			}