예제 #1
0
파일: Patch.cs 프로젝트: Tsuguri/CadCat
        public override void Render(BaseRenderer renderer)
        {
            if (ParametrizationChanged)
            {
                RecalculateParametrizationPoints();
            }
            if (Changed)
            {
                RecalculatePoints();
            }
            base.Render(renderer);

            renderer.ModelMatrix   = GetMatrix(false, new Vector3());
            renderer.SelectedColor = IsSelected ? Colors.LimeGreen : Colors.White;
            renderer.UseIndices    = true;

            if (ShowPolygon)
            {
                renderer.Indices = Indices;
                renderer.Points  = EnumerateCatPoints().Select(x => x.Position).ToList();


                renderer.Transform();
                renderer.DrawLines();
            }


            renderer.Indices = meshIndices;
            renderer.Points  = mesh;

            renderer.Transform();
            renderer.DrawLines();
        }
예제 #2
0
        public void Render(BaseRenderer renderer)
        {
            renderer.SelectedColor = Colors.White;
            foreach (var model in models)
            {
                model.Render(renderer);
            }
            renderer.UseIndices  = false;
            renderer.ModelMatrix = Matrix4.CreateIdentity();
            var renderingPoints = new List <Vector3>(1);

            renderingPoints.Insert(0, new Vector3());
            renderer.Points = renderingPoints;
            foreach (var point in Points)
            {
                if (!point.Visible)
                {
                    continue;
                }
                renderingPoints[0]     = point.Position;
                renderer.SelectedColor = point.IsSelected ? Colors.LimeGreen : Colors.White;
                renderer.Transform();
                renderer.DrawPoints();
            }

            if (hiddenPoints != null)
            {
                foreach (var point in hiddenPoints)
                {
                    if (!point.Visible)
                    {
                        continue;
                    }
                    renderingPoints[0]     = point.Position;
                    renderer.SelectedColor = Colors.BlueViolet;// point.IsSelected ? Colors.LimeGreen : Colors.White;
                    renderer.Transform();
                    renderer.DrawPoints();
                }
            }

            if (dragMode == MouseDragMode.SelectPoints)
            {
                var minX = System.Math.Min(dragActualPosition.X, dragStartPosition.X) / ScreenSize.X;
                var maxX = System.Math.Max(dragActualPosition.X, dragStartPosition.X) / ScreenSize.X;
                var minY = System.Math.Min(dragActualPosition.Y, dragStartPosition.Y) / ScreenSize.Y;
                var maxY = System.Math.Max(dragActualPosition.Y, dragStartPosition.Y) / ScreenSize.Y;
                renderer.DrawRectangle(minX, maxX, 1.0 - minY, 1.0 - maxY, Colors.DarkOrchid);
            }
            Cursor.Render(renderer);
        }
예제 #3
0
 public override void Render(BaseRenderer renderer)
 {
     base.Render(renderer);
     renderer.UseIndices  = true;
     renderer.Points      = points;
     renderer.Indices     = indices;
     renderer.ModelMatrix = Transform.CreateTransformMatrix();
     renderer.Transform();
     renderer.DrawLines();
 }
예제 #4
0
        public override void Render(BaseRenderer renderer)
        {
            base.Render(renderer);
            renderer.ModelMatrix = Matrix4.CreateIdentity();
            renderer.UseIndices  = false;

            renderer.SelectedColor = !IsSelected ? Colors.White : Colors.LightGreen;

            renderer.Points = curvePoints;
            renderer.Transform();
            renderer.DrawLines();
        }
예제 #5
0
        public override void Render(BaseRenderer renderer)
        {
            base.Render(renderer);
            renderer.Points        = catPoints.Select(x => x.Position).ToList();
            renderer.Indices       = indices;
            renderer.UseIndices    = true;
            renderer.ModelMatrix   = Matrix4.CreateIdentity();
            renderer.SelectedColor = IsSelected ? Colors.DarkViolet : Colors.White;

            renderer.Transform();
            renderer.DrawLines();
        }
예제 #6
0
        public void Render(BaseRenderer renderer)
        {
            renderer.UseIndices    = true;
            renderer.SelectedColor = Colors.BurlyWood;
            renderer.Points        = renderPoints.Select(x => x.Position).ToList();
            renderer.Indices       = indices;


            renderer.ModelMatrix = Matrix4.CreateIdentity();
            renderer.Transform();
            renderer.DrawLines();
        }
예제 #7
0
파일: Bezier.cs 프로젝트: Tsuguri/CadCat
        public override void Render(BaseRenderer renderer)
        {
            CountBezierPoints(points.Select(x => x.Point.Position).ToList());
            base.Render(renderer);

            var pointList = points.Select(x => x.Point.Position).ToList();

            if (ShowPolygon)
            {
                renderer.Points = pointList;
                renderer.Transform();
                renderer.DrawLines();
            }
        }
예제 #8
0
        public void Render(BaseRenderer renderer)
        {
            if (changed)
            {
                RecalculateMesh();
            }

            renderer.Points        = mesh;
            renderer.Indices       = meshIndices;
            renderer.UseIndices    = true;
            renderer.SelectedColor = Colors.Crimson;

            renderer.Transform();
            renderer.DrawLines();
        }
예제 #9
0
        public override void Render(BaseRenderer renderer)
        {
            if (!Visible)
            {
                return;
            }
            base.Render(renderer);
            var cursorScale = (Transform.Position - scene.ActiveCamera.CameraPosition).Length() / 10;

            renderer.ModelMatrix = Transform.CreateTransformMatrix(true, new Math.Vector3(cursorScale, cursorScale, cursorScale));
            renderer.Points      = points;
            renderer.Indices     = indices;
            renderer.UseIndices  = true;
            renderer.Transform();
            renderer.DrawLines();
        }
예제 #10
0
파일: Torus.cs 프로젝트: Tsuguri/CadCat
 public override void Render(BaseRenderer renderer)
 {
     base.Render(renderer);
     if (!modelReady)
     {
         GenerateModel(bigRadius, smallRadius, bigAngleDensity, smallAngleDensity);
     }
     modelMat               = Transform.CreateTransformMatrix();
     normalMat              = modelMat.Inversed().Transposed();
     renderer.UseIndices    = true;
     renderer.SelectedColor = IsSelected ? Colors.LimeGreen : Colors.White;
     renderer.ModelMatrix   = Transform.CreateTransformMatrix();
     renderer.Points        = points;
     renderer.Indices       = indices;
     renderer.Transform();
     renderer.DrawLines();
 }
예제 #11
0
        public override void Render(BaseRenderer renderer)
        {
            base.Render(renderer);
            if (changed)
            {
                GenerateModel();
            }
            renderer.SelectedColor = IsSelected ? Colors.LimeGreen : Colors.White;
            renderer.UseIndices    = true;
            renderer.Points        = points;
            renderer.Indices       = indices;
            renderer.ModelMatrix   = Transform.CreateTransformMatrix();
            renderer.Transform();
            renderer.DrawLines();

            renderer.Indices       = outlineIndices;
            renderer.SelectedColor = IsSelected ? Colors.OrangeRed : Colors.White;
            renderer.DrawLines();
        }
예제 #12
0
        public override void Render(BaseRenderer renderer)
        {
            CalculateWhatever();
            if (berensteinPoints != null && berensteinPoints.Count > 1)
            {
                CountBezierPoints(berensteinPoints);
                base.Render(renderer);
            }


            if (ShowPolygon && berensteinPoints != null && berensteinPoints.Count > 1)
            {
                renderer.Points = berensteinPoints;
                renderer.Transform();
                renderer.DrawLines();
            }
            //renderer.Points = renderPoints;
            //renderer.UseIndices = false;
            //renderer.Transform();
            //renderer.DrawLines();
        }
예제 #13
0
        public override void Render(BaseRenderer renderer)
        {
            var berPtsList = berensteinPoints.Select(x => x.Position).ToList();

            CountBezierPoints(berPtsList);
            base.Render(renderer);

            if (ShowPolygon)
            {
                switch (currentType)
                {
                case BezierType.Berenstein:
                    renderer.Points = berPtsList;
                    break;

                case BezierType.BSpline:
                    renderer.Points = points.Select(x => x.Point.Position).ToList();

                    break;
                }
                renderer.Transform();
                renderer.DrawLines();
            }
        }