예제 #1
0
        private IGraphicsObject CreateCuboid(IMifAtlas atlas, OpenTK.Color color)
        {
            var figureType = FigureType.Cuboid;
            var shapeData  = _calculler.Calculate(atlas.X, atlas.Y, atlas.Z, false, 1, 1, 1, XyzConstrainsModifier.Norm);

            return(_factory.Create(figureType, shapeData.Item1, shapeData.Item2, shapeData.Item3, shapeData.Item4, color));
        }
 public SegReta(string rotulo, Ponto4D ponto, Ponto4D ponto2, Color cor, float primitivaTamanho, int angulo = 0) : base(rotulo, cor, primitivaTamanho)
 {
     matematica = new Matematica();
     base.PontosAdicionar(ponto);
     base.PontosAdicionar(ponto2);
     this._angulo = angulo;
     this._raio   = 100;
 }
 public SegReta(string rotulo, Ponto4D ponto, Color cor, float primitivaTamanho, int angulo = 0) : base(rotulo, cor, primitivaTamanho)
 {
     this.ponto   = ponto;
     this._angulo = angulo;
     this._raio   = 100;
     matematica   = new Matematica();
     ponto2       = matematica.GerarPtosCirculo(angulo, _raio, ponto);
     base.PontosAdicionar(ponto);
     base.PontosAdicionar(ponto2);
 }
        public Circulo(string rotulo, double raio, Color cor, List <double> angulos, int quantidadePontos = 72, int deslocamentoX = 0, int deslocamentoY = 0, int primitivaTamanho = 4, int angulo = 5)
            : base(rotulo, cor, primitivaTamanho, PrimitiveType.Points)
        {
            _raio             = raio;
            _deslocamentoX    = deslocamentoX;
            _deslocamentoY    = deslocamentoY;
            _quantidadePontos = quantidadePontos;
            _angulo           = angulo;
            _angulosDesejados = angulos;

            GerarCirculo();
        }
예제 #5
0
        public IGraphicsObject CreateGraphic(IMifAtlas atlas, IColor color)
        {
            OpenTK.Color colorOpenTk = GetColor(color);
            switch (atlas.GetType())
            {
            case Type T when T == typeof(BoxAtlas):
                return(CreateCuboid(atlas, colorOpenTk));

            case Type T when T == typeof(ScriptAtlas):
                return(CreateCylinder(atlas, colorOpenTk));

            default: throw new NotSupportedException("Atlas Type: " + atlas.GetType() + " is not supported");
            }
        }
예제 #6
0
        public ColorDictionary()
        {
            foreach (FigureColor color in Enum.GetValues(typeof(FigureColor)))
            {
                if (color != FigureColor.Custom)
                {
                    OpenTK.Color ColorTk = new OpenTK.Color();

                    PropertyInfo OpenTkColorProperty = typeof(OpenTK.Color).GetProperty(color.ToString(), typeof(OpenTK.Color));
                    ColorTk = (OpenTK.Color)OpenTkColorProperty.GetValue(null);

                    _colorDictionary.Add(color, ColorTk);
                }
            }
        }
        /// <summary>
        /// Cria um círculo na cena
        /// </summary>
        /// <param name="raio">Raio</param>
        /// <param name="cor">Cor dos pontos do círculo</param>
        /// <param name="deslocamentoX">Caso necessário deslocar no eixo X utilziar um inteiro</param>
        /// <param name="deslocamentoY">Caso necessário deslocar no eixo Y utilziar um inteiro</param>
        /// <param name="primitivaTamanho">Tamanho dos pontos</param>
        public Circulo(string rotulo, double raio, Color cor, int quantidadePontos = 72, int deslocamentoX = 0, int deslocamentoY = 0, int primitivaTamanho = 4, int angulo = 5)
            : base(rotulo, cor, primitivaTamanho, PrimitiveType.Points)
        {
            _raio             = raio;
            _deslocamentoX    = deslocamentoX;
            _deslocamentoY    = deslocamentoY;
            _quantidadePontos = quantidadePontos;
            _angulo           = angulo;
            pontoQuadrado1    = new Ponto4D(deslocamentoX, deslocamentoY - 3);
            pontoQuadrado2    = new Ponto4D(deslocamentoX, deslocamentoY + 3);
            segReta           = new SegReta("Q", pontoQuadrado1, pontoQuadrado2, Color.Blue, 3);

            pontoQuadrado1 = new Ponto4D(deslocamentoX, deslocamentoY - 3);
            pontoQuadrado2 = new Ponto4D(deslocamentoX, deslocamentoY + 3);
            segReta        = new SegReta("Q", pontoQuadrado1, pontoQuadrado2, Color.Blue, 3);

            GerarCirculo();
        }
예제 #8
0
        private IGraphicsObject CreateCylinder(IMifAtlas atlas, OpenTK.Color color)
        {
            var scriptAtlas = (ScriptAtlas)atlas;

            if (scriptAtlas.Script == null)
            {
                throw new FormatException("ScriptAtlas " + atlas.Name
                                          + " doesn't have script.");
            }
            var tuple = _calculler.Calculate(atlas.X, atlas.Y, atlas.Z, true);

            if (!(scriptAtlas.Script.Name.Contains("Ellipse")))
            {
                throw new FormatException("Unknown script " + scriptAtlas.Script.Name + " is in Oxs_ScriptAtlas "
                                          + scriptAtlas.Name + ". Only EllipseX, EllipseY, EllipseZ are supported");
            }
            return(_factory.Create(FigureType.Cylinder, tuple.Item1, tuple.Item2, tuple.Item3, tuple.Item4, color));
        }
예제 #9
0
 public ObjetoAramado(string rotulo) : base(rotulo)
 {
     Cor = Color.White;
 }
예제 #10
0
 public ObjetoAramado(string rotulo) : base(rotulo)
 {
     Cor = Color.Black;
 }
예제 #11
0
 public ObjetoAramado(string rotulo, Color cor, float primitivaTamanho, PrimitiveType primitivaTipo) : base(rotulo)
 {
     this.Cor              = cor;
     base.PrimitivaTipo    = primitivaTipo;
     base.PrimitivaTamanho = primitivaTamanho;
 }
예제 #12
0
 public CoreColor(OpenTK.Color color)
 {
     R = color.R;
     G = color.G;
     B = color.B;
 }
예제 #13
0
        public IGraphicsObject Create(FigureType type, Point firstPoint, Point lastPoint, double d1, double d2, OpenTK.Color color)
        {
            switch (type)
            {
            case FigureType.Cuboid:
                return(CreateCuboid(firstPoint, lastPoint, d1, d2, color));

            case FigureType.Cylinder:
                return(CreateCylinder(firstPoint, lastPoint, d1, d2, color));

            case FigureType.Arrow:
                return(CreateArrow(firstPoint, lastPoint, d1, color));

            case FigureType.DoubleArrow:
                return(CreateDoubleArrow(firstPoint, lastPoint, d1, color));

            case FigureType.Tetrahedron:
                return(new Tetrahedron(firstPoint, lastPoint, color, d1));

            default:
                throw new Exception("Chosen ShapeType do not exist");
            }
        }
예제 #14
0
 Tetrahedron CreateTetrahedron(Point firstPoint, Point lastPoint, double d1, OpenTK.Color color)
 => new Tetrahedron(firstPoint, lastPoint, color, d1);
예제 #15
0
 DoubleArrow CreateDoubleArrow(Point firstPoint, Point lastPoint, double d1, OpenTK.Color color)
 => new DoubleArrow(firstPoint, lastPoint, color);
예제 #16
0
 Cylinder CreateCylinder(Point firstPoint, Point lastPoint, double d1, double d2, OpenTK.Color color)
 => new Cylinder(firstPoint, lastPoint, d1, color);
예제 #17
0
 Cube CreateCuboid(Point firstPoint, Point lastPoint, double d1, double d2, OpenTK.Color color)
 => new Cube(firstPoint, lastPoint, d1, d2, color);