Beispiel #1
0
        private void OnDrawGizmos()
        {
            Vector2   point    = Point.position;
            Triangle2 triangle = CreateTriangle2(V0, V1, V2);

            Orientations orientation = triangle.CalcOrientation();

            if (orientation == Orientations.CCW)
            {
                bool cont  = triangle.Contains(point);
                bool cont1 = triangle.ContainsCCW(point);                 // Use this if you know triangle orientation

                FiguresColor();
                DrawTriangle(ref triangle);
                if (cont)
                {
                    ResultsColor();
                }
                DrawPoint(point);

                LogInfo("Orientation: " + orientation + "    Contained: " + cont);
                if (cont != cont1)
                {
                    LogError("cont != cont1");
                }
            }
            else if (orientation == Orientations.CW)
            {
                bool cont  = triangle.Contains(point);
                bool cont1 = triangle.ContainsCW(point);                 // Use this if you know triangle orientation

                FiguresColor();
                DrawTriangle(ref triangle);
                if (cont)
                {
                    ResultsColor();
                }
                DrawPoint(point);

                LogInfo("Orientation: " + orientation + "    Contained: " + cont);
                if (cont != cont1)
                {
                    LogError("cont != cont1");
                }
            }
            else             // Degenerate
            {
                LogError("Triangle is degenerate");
            }
        }
Beispiel #2
0
        private void OnDrawGizmos()
        {
            Triangle2 triangle = new Triangle2(V0.position, V1.position, V2.position);

            Gizmos.color = Color.gray;
            Gizmos.DrawLine(triangle.V0, triangle.V1);
            Gizmos.DrawLine(triangle.V1, triangle.V2);
            Gizmos.DrawLine(triangle.V2, triangle.V0);

            var     ori    = triangle.CalcOrientation();
            Vector3 angles = triangle.CalcAnglesDeg();

            Gizmos.color = Color.blue;
            float radius = .25f;

            Vector2 baryPoint  = triangle.EvalBarycentric(c0, c1);
            Vector3 baryCoords = triangle.CalcBarycentricCoords(ref baryPoint);

            Gizmos.DrawSphere(baryPoint, radius);

            Logger.LogInfo("orientation: " + ori + "     Angles: " + angles.ToStringEx() + "    Bary: " + baryCoords.ToStringEx());
        }
Beispiel #3
0
        private void OnDrawGizmos()
        {
            Triangle2 triangle = CreateTriangle2(V0, V1, V2);
            Vector2   point    = Point.position;

            Orientations orientation = triangle.CalcOrientation();
            int          ccwSide     = triangle.QuerySideCCW(point);
            int          cwSide      = triangle.QuerySideCW(point);

            FiguresColor();
            DrawTriangle(ref triangle);
            if (orientation == Orientations.CCW)
            {
                SetColor(ccwSide);
            }
            else if (orientation == Orientations.CW)
            {
                SetColor(cwSide);
            }
            DrawPoint(point);

            LogInfo("Orientation: " + orientation + "      CCWSide: " + ccwSide + "     CWSide: " + cwSide);
        }