Esempio n. 1
0
 def testTriangleCentroid(self):
     v1 = vect_3D(0.0, 0.0)
     v2 = vect_3D(1.0, 0.0)
     v3 = vect_3D(0.0, 1.0)
     v4 = (v1+v2+v3)*(1.0/3.0)
     a = triangle([v1,v2,v3])
     self.assertAlmostEqual(a.Centroid().length(),v4.length())
Esempio n. 2
0
 def testTriangleCentroid(self):
     v1 = vect_3D(0.0, 0.0)
     v2 = vect_3D(1.0, 0.0)
     v3 = vect_3D(0.0, 1.0)
     v4 = (v1 + v2 + v3) * (1.0 / 3.0)
     a = triangle([v1, v2, v3])
     self.assertAlmostEqual(a.Centroid().length(), v4.length())
Esempio n. 3
0
 def testTriangleInit(self):
     v1 = vect_3D(0.0, 0.0)
     v2 = vect_3D(1.0, 0.0)
     v3 = vect_3D(0.0, 1.0)
     v4 = vect_3D(1.0, 1.0)
     a = triangle([v1,v2,v3,v4])
     self.assertEqual(len(a.pts),3)
Esempio n. 4
0
 def testbPolygonCentroid(self):
     v1 = vect_3D(0.0, 0.0)
     v2 = vect_3D(1.0, 0.0)
     v3 = vect_3D(0.0, 1.0)
     v4 = (v1+v2+v3)*(1.0/3.0)
     a = base_polygon([v1,v2,v3])
     self.assertAlmostEqual(a.Centroid().length(),v4.length())
Esempio n. 5
0
 def testbPolygonCentroid(self):
     v1 = vect_3D(0.0, 0.0)
     v2 = vect_3D(1.0, 0.0)
     v3 = vect_3D(0.0, 1.0)
     v4 = (v1 + v2 + v3) * (1.0 / 3.0)
     a = base_polygon([v1, v2, v3])
     self.assertAlmostEqual(a.Centroid().length(), v4.length())
Esempio n. 6
0
 def testPolyArea(self):
     v0 = vect_3D(0, 1)
     v1 = vect_3D(1, 1)
     v2 = vect_3D(1, 0)
     v3 = vect_3D(0, 0)
     a = base_polygon([v0, v1, v2, v3])
     self.assertAlmostEqual(a.Area(), 1.0)
Esempio n. 7
0
 def testCircleRotate(self):
     a = circle(vect_3D(), 1.0)
     center = vect_3D(1.0, 0.0)
     angle = pi
     a.Rotate(angle, center)
     self.assertAlmostEqual((a.Centroid() - vect_3D(2.0, 0.0)).length(),
                            0.0)
Esempio n. 8
0
 def testPolyArea(self):
     v0 = vect_3D(0,1)
     v1 = vect_3D(1,1)
     v2 = vect_3D(1,0)
     v3 = vect_3D(0,0)
     a = base_polygon([v0,v1,v2,v3])
     self.assertAlmostEqual(a.Area(),1.0)
Esempio n. 9
0
 def testTriangleInit(self):
     v1 = vect_3D(0.0, 0.0)
     v2 = vect_3D(1.0, 0.0)
     v3 = vect_3D(0.0, 1.0)
     v4 = vect_3D(1.0, 1.0)
     a = triangle([v1, v2, v3, v4])
     self.assertEqual(len(a.pts), 3)
Esempio n. 10
0
 def testPolyRotatecentroid(self):
     v0 = vect_3D(0,1)
     v1 = vect_3D(1,1)
     v2 = vect_3D(1,0)
     v3 = vect_3D(0,0)
     a = base_polygon([v0,v1,v2,v3])
     a.Rotate(pi/2.0)
     self.assertEqual(a.Centroid(),vect_3D(0.5,0.5))
Esempio n. 11
0
 def testPolyRotateCorner(self):
     v0 = vect_3D(0, 1)
     v1 = vect_3D(1, 1)
     v2 = vect_3D(1, 0)
     v3 = vect_3D(0, 0)
     a = base_polygon([v0, v1, v2, v3])
     a.Rotate(pi / 2.0)
     self.assertEqual(a.vertices()[0], vect_3D(1, 1))
Esempio n. 12
0
 def testPolyRotatecentroid(self):
     v0 = vect_3D(0, 1)
     v1 = vect_3D(1, 1)
     v2 = vect_3D(1, 0)
     v3 = vect_3D(0, 0)
     a = base_polygon([v0, v1, v2, v3])
     a.Rotate(pi / 2.0)
     self.assertEqual(a.Centroid(), vect_3D(0.5, 0.5))
Esempio n. 13
0
 def testPolyTriangulate(self):
     v0 = vect_3D(0,1)
     v1 = vect_3D(1,0.5)
     v2 = vect_3D(0.7,-0.5)
     v3 = vect_3D(-0.7,-0.5)
     v4 = vect_3D(-1,0.5)
     a = base_polygon([v0,v1,v2,v3,v4])
     self.assertEqual(len(a.Triangulate()),3)
Esempio n. 14
0
 def testPolyArea2(self):
     v0 = vect_3D(-1, 0)
     v1 = vect_3D(-1, -1)
     v2 = vect_3D(0, 0.5)
     v3 = vect_3D(1, 1)
     v4 = vect_3D(1, 0)
     a = base_polygon([v0, v1, v2, v3, v4])
     self.assertAlmostEqual(a.Area(), 1.5)
Esempio n. 15
0
 def testPolyTriangulate(self):
     v0 = vect_3D(0, 1)
     v1 = vect_3D(1, 0.5)
     v2 = vect_3D(0.7, -0.5)
     v3 = vect_3D(-0.7, -0.5)
     v4 = vect_3D(-1, 0.5)
     a = base_polygon([v0, v1, v2, v3, v4])
     self.assertEqual(len(a.Triangulate()), 3)
Esempio n. 16
0
 def testPolyRotateCorner(self):
     v0 = vect_3D(0,1)
     v1 = vect_3D(1,1)
     v2 = vect_3D(1,0)
     v3 = vect_3D(0,0)
     a = base_polygon([v0,v1,v2,v3])
     a.Rotate(pi/2.0)
     self.assertEqual(a.vertices()[0],vect_3D(1,1))
Esempio n. 17
0
 def testPolyArea2(self):
     v0 = vect_3D(-1,0)
     v1 = vect_3D(-1,-1)
     v2 = vect_3D(0,0.5)
     v3 = vect_3D(1,1)
     v4 = vect_3D(1,0)
     a = base_polygon([v0,v1,v2,v3,v4])
     self.assertAlmostEqual(a.Area(),1.5)
Esempio n. 18
0
 def testPolyScale(self):
     v0 = vect_3D(0, 1)
     v1 = vect_3D(1, 1)
     v2 = vect_3D(1, 0)
     v3 = vect_3D(0, 0)
     a = base_polygon([v0, v1, v2, v3])
     a.Scale(2.0)
     ct = a.Centroid()
     self.assertAlmostEqual((ct - vect_3D(0.5, 0.5)).length(), 0.0)
Esempio n. 19
0
    def testConvexSquare(self):
        # Should return the same square
        v = []
        v.append(vect_3D(-1, -1))
        v.append(vect_3D(-1, 1))
        v.append(vect_3D(1, 1))
        v.append(vect_3D(1, -1))

        self.assertEqual(len(geometry_rubberband().Solve(v).vertices()), 4)
Esempio n. 20
0
 def testPolyScale(self):
     v0 = vect_3D(0,1)
     v1 = vect_3D(1,1)
     v2 = vect_3D(1,0)
     v3 = vect_3D(0,0)
     a = base_polygon([v0,v1,v2,v3])
     a.Scale(2.0)
     ct = a.Centroid()
     self.assertAlmostEqual((ct-vect_3D(0.5,0.5)).length(),0.0)
Esempio n. 21
0
 def testConvexSquare(self):
     # Should return the same square
     v = []
     v.append(vect_3D(-1,-1))
     v.append(vect_3D(-1,1))
     v.append(vect_3D(1,1))
     v.append(vect_3D(1,-1))
     
     self.assertEqual(len(geometry_rubberband().Solve(v).vertices()),4)
Esempio n. 22
0
 def testAlignToSelf(self):
     a = base_polygon([vect_3D(1,1),vect_3D(1,-1),vect_3D(-1,-1)])
     b = base_polygon([vect_3D(1,1),vect_3D(1,-1),vect_3D(1,-3),vect_3D(0,-3),vect_3D(-1,-1)])
     
     x = morphable_polygon(a,b)
     x.SetDelta(0.5)
     self.assertTrue(True)
Esempio n. 23
0
 def Centroid(self):
     '''! \brief Runtime computation of the centroid.
     '''
     out = vect_3D()
     for i in self.pts:
         out = out + i
     return out * (1.0/len(self.pts))
Esempio n. 24
0
    def testConvexSquare6(self):
        # Test the kernelization
        v = []
        for i in xrange(100):
            v.append(vect_3D(gauss(0.0, 1.0), gauss(0.0, 1.0)))

        self.assert_(len(geometry_rubberband().Solve(v).vertices()))
Esempio n. 25
0
 def Centroid(self):
     '''! \brief Runtime computation of the centroid.
     '''
     out = vect_3D()
     for i in self.pts:
         out = out + i
     return out * (1.0 / len(self.pts))
Esempio n. 26
0
    def testConvexSquare6(self):
        # Test the kernelization
        v = []
        for i in xrange(100):
            v.append(vect_3D(gauss(0.0,1.0), gauss(0.0,1.0)))

        self.assert_(len(geometry_rubberband().Solve(v).vertices()))     
Esempio n. 27
0
def SetupFlatLand(flat, coord):
    # Get the first coordinate
    if type(coord) == type([]):
        x = coord[0]
    else:
        x = coord

    flat.Bind(vect_3D(), x)
Esempio n. 28
0
    def testConvexSquare4(self):
        # Should return the same square
        v = []
        v.append(vect_3D(0, 1))
        v.append(vect_3D(.7, .7))
        v.append(vect_3D(1, 0))
        v.append(vect_3D(.7, -.7))
        v.append(vect_3D(0, -1))
        v.append(vect_3D(-0.7, -0.7))
        v.append(vect_3D(-1, 0))
        v.append(vect_3D(-.7, 0.7))

        self.assertEqual(len(geometry_rubberband().Solve(v).vertices()), 8)
Esempio n. 29
0
    def testConvexSquare5(self):
        # Test the kernelization
        v = []
        for x in xrange(13):
            for y in xrange(13):
                X = -6 + x
                Y = -6 + y
                if (X**2 + Y**2)**0.5 <= 6.01:
                    v.append(vect_3D(float(X), float(Y)))

        self.assertEqual(len(geometry_rubberband().Solve(v).vertices()), 12)
Esempio n. 30
0
    def testAlignToSelf(self):
        a = base_polygon([vect_3D(1, 1), vect_3D(1, -1), vect_3D(-1, -1)])
        b = base_polygon([
            vect_3D(1, 1),
            vect_3D(1, -1),
            vect_3D(1, -3),
            vect_3D(0, -3),
            vect_3D(-1, -1)
        ])

        x = morphable_polygon(a, b)
        x.SetDelta(0.5)
        self.assertTrue(True)
Esempio n. 31
0
    def testConvexSquare5(self):
        # Test the kernelization
        v = []
        for x in xrange(13):
            for y in xrange(13):
                X = -6 + x
                Y = -6 + y
                if (X**2 + Y**2)**0.5 <= 6.01:
                    v.append(vect_3D( float(X), float(Y)))

        self.assertEqual(len(geometry_rubberband().Solve(v).vertices()),12)  
Esempio n. 32
0
 def testOverlapPosCase1(self):
     A = base_polygon([vect_3D(0, 0), vect_3D(1, 0), vect_3D(0, 1)])
     B = base_polygon(
         [vect_3D(0.1, 0.1),
          vect_3D(1.1, 0.1),
          vect_3D(0.1, 1.1)])
     self.assertEqual(A.Overlaps(B), True)
Esempio n. 33
0
 def testOverlapNegCase1(self):
     A = base_polygon([vect_3D(0, 0), vect_3D(1, 0), vect_3D(0, 1)])
     B = base_polygon(
         [vect_3D(0.6, 0.6),
          vect_3D(1.6, 0.6),
          vect_3D(0.6, 1.6)])
     self.assertEqual(A.Overlaps(B), False)
Esempio n. 34
0
 def testOverlapPosCase3(self):
     A = base_polygon([vect_3D(0, 0), vect_3D(1, 0), vect_3D(0, 1)])
     B = base_polygon(
         [vect_3D(0.6, 0.6),
          vect_3D(0.7, 0.7),
          vect_3D(0.65, -10.0)])
     self.assertEqual(A.Overlaps(B), True)
Esempio n. 35
0
    def RandomTriangleOnCircle(self):
        center = vect_3D(0.5 - random(), 0.5 - random())
        radius = abs(gauss(1.0, 2.0))

        angles = []
        for i in xrange(3):
            angles.append(random() * 2 * pi)

        pt = []
        for i in angles:
            pt.append(center.ToBearing([i, radius]))

        return triangle(pt), center, radius
Esempio n. 36
0
 def RandomTriangleOnCircle(self):
     center = vect_3D(0.5 - random(), 0.5 - random())
     radius = abs(gauss(1.0,2.0)) 
     
     angles = []
     for i in xrange(3):
         angles.append(random()*2*pi)
         
     pt = []
     for i in angles:
         pt.append(center.ToBearing([i,radius]))
         
     return triangle(pt), center, radius
Esempio n. 37
0
 def testPolyTranslate(self):
     v0 = vect_3D(0, 1)
     v1 = vect_3D(1, 1)
     v2 = vect_3D(1, 0)
     v3 = vect_3D(0, 0)
     a = base_polygon([v0, v1, v2, v3])
     a.Translate(vect_3D(-0.5, -0.5))
     self.assertEqual(a.Centroid(), vect_3D())
Esempio n. 38
0
    def testConvexSquare4(self):
        # Should return the same square
        v = []
        v.append(vect_3D(0,1))
        v.append(vect_3D(.7,.7))
        v.append(vect_3D(1,0))
        v.append(vect_3D(.7,-.7))
        v.append(vect_3D(0,-1))
        v.append(vect_3D(-0.7,-0.7))
        v.append(vect_3D(-1, 0))
        v.append(vect_3D(-.7, 0.7))
        


        self.assertEqual(len(geometry_rubberband().Solve(v).vertices()),8)  
Esempio n. 39
0
 def testPolyTranslate(self):
     v0 = vect_3D(0,1)
     v1 = vect_3D(1,1)
     v2 = vect_3D(1,0)
     v3 = vect_3D(0,0)
     a = base_polygon([v0,v1,v2,v3])
     a.Translate(vect_3D(-0.5, -0.5))
     self.assertEqual(a.Centroid(),vect_3D())
Esempio n. 40
0
  def SituationalAwareness(self, E):
    # Prepare the two vectors of units and send to the entity

    eny = []
    fr = []
    for i in self.OOB.keys():
      e = self.sim.AsEntity(i)
      if e == E:
        continue
      # Get contact
      cnt = E['agent'].GetContact(e)
      if cnt != None:
        if cnt.GetField('side') != E['side']:
          eny.append(e)
        else:
          fr.append(e)
    
    return vect_3D(E.SituationalAwareness(eny),E.SituationalAwareness(fr))
Esempio n. 41
0
    def SituationalAwareness(self, E):
        # Prepare the two vectors of units and send to the entity

        eny = []
        fr = []
        for i in self.OOB.keys():
            e = self.sim.AsEntity(i)
            if e == E:
                continue
            # Get contact
            cnt = E['agent'].GetContact(e)
            if cnt != None:
                if cnt.GetField('side') != E['side']:
                    eny.append(e)
                else:
                    fr.append(e)

        return vect_3D(E.SituationalAwareness(eny), E.SituationalAwareness(fr))
Esempio n. 42
0
 def Circumcenter(self):
     self.Circumradius()
     a = array([[0, 0, 1.], [0, 0, 1.], [0, 0, 1.]])
     myarray = array([[0, 0, 1.], [0, 0, 1.], [0, 0, 1.]])
     for i in range(len(self.pts)):
         myarray[i][0] = (self.pts[i].x**2) + (self.pts[i].y**2)
         myarray[i][1] = self.pts[i].y
         a[i][0] = self.pts[i].x
         a[i][1] = self.pts[i].y
         # index 2 is already set to 1
     a = det(a)
     bx = -1.0 * det(myarray)
     for i in range(len(self.pts)):
         myarray[i][0] = (self.pts[i].x**2) + (self.pts[i].y**2)
         myarray[i][1] = self.pts[i].x
         # index 2 is already set to 1
     by = det(myarray)
     self.circumcenter = vect_3D(-bx / (2 * a), -by / (2 * a))
     a = 1
     '''
Esempio n. 43
0
 def Circumcenter(self):
     self.Circumradius()
     a = array([[0,0,1.],[0,0,1.],[0,0,1.]])
     myarray = array([[0,0,1.],[0,0,1.],[0,0,1.]])
     for i in range(len(self.pts)):
         myarray[i][0] = (self.pts[i].x**2) + (self.pts[i].y**2)
         myarray[i][1] = self.pts[i].y
         a[i][0] = self.pts[i].x
         a[i][1] = self.pts[i].y
         # index 2 is already set to 1
     a = det(a)
     bx = -1.0 * det(myarray)
     for i in range(len(self.pts)):
         myarray[i][0] = (self.pts[i].x**2) + (self.pts[i].y**2)
         myarray[i][1] = self.pts[i].x
         # index 2 is already set to 1
     by = det(myarray)
     self.circumcenter = vect_3D(-bx/(2*a),-by/(2*a))
     a = 1
     '''
Esempio n. 44
0
    def testRelocateTask1step(self):
        # Set stance to transit
        self.GetUnit().SetStance('transit')

        # Redeploy task
        import sandbox_tasks
        task = sandbox_tasks.taskRelocate()
        task['destination'] = vect_3D(20, 20)

        # Make and opord
        opord = self.GetOPORD()

        # Add a task
        opord.AddTask(task)

        # Issue Order
        self.GetUnit().IssueOrder(opord)

        # 1 hour simulate
        self.W.Simulate(datetime.timedelta(hours=2.0))

        self.assertEqual(self.GetUnit()['position'].x, 20.0)
Esempio n. 45
0
    def testRelocateTask3step(self):

        # Redeploy task
        import sandbox_tasks
        task = sandbox_tasks.taskRelocate()
        task['destination'] = vect_3D(20, 20)
        task['final_stance'] = 'deliberate defense'
        task['stance'] = 'transit'

        # Make and opord
        opord = self.GetOPORD()

        # Add a task
        opord.AddTask(task)

        # Issue Order
        self.GetUnit().IssueOrder(opord)

        # 1 hour simulate
        self.W.Simulate(datetime.timedelta(hours=3.0))

        self.assertEqual(self.GetUnit()['position'].x, 20.0)
Esempio n. 46
0
    def testRelocateTask1step(self):
        # Set stance to transit
        self.GetUnit().SetStance("transit")

        # Redeploy task
        import sandbox_tasks

        task = sandbox_tasks.taskRelocate()
        task["destination"] = vect_3D(20, 20)

        # Make and opord
        opord = self.GetOPORD()

        # Add a task
        opord.AddTask(task)

        # Issue Order
        self.GetUnit().IssueOrder(opord)

        # 1 hour simulate
        self.W.Simulate(datetime.timedelta(hours=2.0))

        self.assertEqual(self.GetUnit()["position"].x, 20.0)
Esempio n. 47
0
    def testRelocateTask3step(self):

        # Redeploy task
        import sandbox_tasks

        task = sandbox_tasks.taskRelocate()
        task["destination"] = vect_3D(20, 20)
        task["final_stance"] = "deliberate defense"
        task["stance"] = "transit"

        # Make and opord
        opord = self.GetOPORD()

        # Add a task
        opord.AddTask(task)

        # Issue Order
        self.GetUnit().IssueOrder(opord)

        # 1 hour simulate
        self.W.Simulate(datetime.timedelta(hours=3.0))

        self.assertEqual(self.GetUnit()["position"].x, 20.0)
Esempio n. 48
0
 def testTrianglePointOut(self):
     v1 = vect_3D(0.0, 0.0)
     v2 = vect_3D(1.0, 0.0)
     v3 = vect_3D(0.0, 1.0)
     a = triangle([v1, v2, v3])
     self.assertEqual(a.PointInside(vect_3D(-0.1, 0.1)), False)
Esempio n. 49
0
 def testTrianglePointOnLine(self):
     v1 = vect_3D(0.0, 0.0)
     v2 = vect_3D(1.0, 0.0)
     v3 = vect_3D(0.0, 1.0)
     a = triangle([v1,v2,v3])
     self.assert_(a.PointInside(vect_3D(0.5,0.0)))
Esempio n. 50
0
 def testTrianglePointOut(self):
     v1 = vect_3D(0.0, 0.0)
     v2 = vect_3D(1.0, 0.0)
     v3 = vect_3D(0.0, 1.0)
     a = triangle([v1,v2,v3])
     self.assertEqual(a.PointInside(vect_3D(-0.1,0.1)), False)   
Esempio n. 51
0
 def testTrianglePointOnLine(self):
     v1 = vect_3D(0.0, 0.0)
     v2 = vect_3D(1.0, 0.0)
     v3 = vect_3D(0.0, 1.0)
     a = triangle([v1, v2, v3])
     self.assert_(a.PointInside(vect_3D(0.5, 0.0)))
Esempio n. 52
0
 def testbPolygonPointOut(self):
     v1 = vect_3D(0.0, 0.0)
     v2 = vect_3D(1.0, 0.0)
     v3 = vect_3D(0.0, 1.0)
     a = base_polygon([v1, v2, v3])
     self.assertEqual(a.PointInside(vect_3D(-0.1, 0.1)), False)
Esempio n. 53
0
 def testbPolygonPointOnPoint(self):
     v1 = vect_3D(0.0, 0.0)
     v2 = vect_3D(1.0, 0.0)
     v3 = vect_3D(0.0, 1.0)
     a = base_polygon([v1,v2,v3])
     self.assert_(a.PointInside(vect_3D(0.0,0.0)))
Esempio n. 54
0
 def testbPolygonPointOut(self):
     v1 = vect_3D(0.0, 0.0)
     v2 = vect_3D(1.0, 0.0)
     v3 = vect_3D(0.0, 1.0)
     a = base_polygon([v1,v2,v3])
     self.assertEqual(a.PointInside(vect_3D(-0.1,0.1)), False)   
Esempio n. 55
0
 def Normalize(self):
     '''! Bring center to origin.
     '''
     self.center = vect_3D()
Esempio n. 56
0
 def testCircleScale2radius(self):
     a = circle(vect_3D(),1.0)
     a.Scale(2.0, vect_3D(1,1))
     self.assertAlmostEqual(a.radius,2.0)   
Esempio n. 57
0
 def testLineIntersect2(self):
     l1 = [vect_3D(-1,-1),vect_3D(-0.01,0.01)]
     l2 = [vect_3D(-1,1),vect_3D(-10,1)]
     self.assertEqual(Intersect(l1, l2), None)
Esempio n. 58
0
 def testLineIntersect1(self):
     l1 = [vect_3D(-1,-1),vect_3D(1,1)]
     l2 = [vect_3D(-1,-1),vect_3D(-10,1)]
     self.assertEqual(Intersect(l1, l2), vect_3D(-1,-1))
Esempio n. 59
0
 def testbPolygonPointOnPoint(self):
     v1 = vect_3D(0.0, 0.0)
     v2 = vect_3D(1.0, 0.0)
     v3 = vect_3D(0.0, 1.0)
     a = base_polygon([v1, v2, v3])
     self.assert_(a.PointInside(vect_3D(0.0, 0.0)))
Esempio n. 60
0
 def testCircleScale2center(self):
     a = circle(vect_3D(),1.0)
     a.Scale(2.0, vect_3D(1,1))
     center = (a.center-vect_3D(-1,-1)).length()
     self.assertAlmostEqual(center,0.0)