示例#1
0
        internal static HandleRef getCPtrAndDisown(MathFilter obj)
        {
            HandleRef ptr = new HandleRef(null, IntPtr.Zero);

            if (obj != null)
            {
                ptr             = obj.swigCPtr;
                obj.swigCMemOwn = false;
            }

            return(ptr);
        }
示例#2
0
        private void GenDelaunayTreeDecks(List <Vector3> points)
        {
            GameObject DeckNode = new GameObject("Deck Node");

            // Magic and beautiful Delaunay triangulation
            List <Triangle> triangulation = Delaunay.TriangulateByFlippingEdges(points);

            // Area filter setup
            double[] check_range = MathFilter.AreaSpan(triangulation, MaxLength, MinAngle, RelativeArea);

            foreach (Triangle tri in triangulation)
            {
                // Length constraint. if 0, no constraint
                if (MathFilter.LengthFilter(tri, MaxLength))
                {
                    List <double> TriAngles = MathFilter.AngleDegrees(tri);

                    // Angle constraint
                    if (TriAngles.TrueForAll(angle => angle >= MinAngle))
                    {
                        double area = MathFilter.TriangleArea(tri);

                        // Area constraint
                        if (check_range[0] <= area && area <= check_range[1])
                        {
                            Vector3 P1 = tri.v1.position;
                            Vector3 P2 = tri.v2.position;
                            Vector3 P3 = tri.v3.position;

                            // Brett deck
                            GameObject TreeDeck      = Instantiate(DeckObject);
                            Treehouse  TreehouseComp = TreeDeck.AddComponent <Treehouse>();
                            TreeDeck.AddComponent <Deck>();

                            // Deck component needs 3 GameObjects. In the future this
                            // may become 3 Vector3s.
                            GameObject newTreeNode1 = Instantiate(DeckNode, P1, rot);
                            GameObject newTreeNode2 = Instantiate(DeckNode, P2, rot);
                            GameObject newTreeNode3 = Instantiate(DeckNode, P3, rot);

                            List <GameObject> TreesTri = new List <GameObject>();
                            TreesTri.Add(newTreeNode1);
                            TreesTri.Add(newTreeNode2);
                            TreesTri.Add(newTreeNode3);

                            TreehouseComp.Trees = TreesTri;
                        }
                    }
                }
            }
        }
示例#3
0
 internal static HandleRef getCPtr(MathFilter obj)
 {
     return((obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr);
 }