コード例 #1
0
		public static void TestEnvelope2Dintersector()
		{
			System.Collections.Generic.List<com.esri.core.geometry.Envelope2D> envelopes = new System.Collections.Generic.List<com.esri.core.geometry.Envelope2D>(0);
			com.esri.core.geometry.Envelope2D env0 = new com.esri.core.geometry.Envelope2D(2, 3, 4, 4);
			com.esri.core.geometry.Envelope2D env1 = new com.esri.core.geometry.Envelope2D(5, 13, 9, 15);
			com.esri.core.geometry.Envelope2D env2 = new com.esri.core.geometry.Envelope2D(6, 9, 11, 12);
			com.esri.core.geometry.Envelope2D env3 = new com.esri.core.geometry.Envelope2D(8, 10, 9, 17);
			com.esri.core.geometry.Envelope2D env4 = new com.esri.core.geometry.Envelope2D(11.001, 12, 14, 14);
			com.esri.core.geometry.Envelope2D env5 = new com.esri.core.geometry.Envelope2D(1, 3, 3, 4);
			com.esri.core.geometry.Envelope2D env6 = new com.esri.core.geometry.Envelope2D(0, 2, 5, 10);
			com.esri.core.geometry.Envelope2D env7 = new com.esri.core.geometry.Envelope2D(4, 7, 5, 10);
			com.esri.core.geometry.Envelope2D env8 = new com.esri.core.geometry.Envelope2D(3, 15, 15, 15);
			com.esri.core.geometry.Envelope2D env9 = new com.esri.core.geometry.Envelope2D(0, 9, 14, 9);
			com.esri.core.geometry.Envelope2D env10 = new com.esri.core.geometry.Envelope2D(0, 8.999, 14, 8.999);
			envelopes.Add(env0);
			envelopes.Add(env1);
			envelopes.Add(env2);
			envelopes.Add(env3);
			envelopes.Add(env4);
			envelopes.Add(env5);
			envelopes.Add(env6);
			envelopes.Add(env7);
			envelopes.Add(env8);
			envelopes.Add(env9);
			envelopes.Add(env10);
			com.esri.core.geometry.Envelope2DIntersectorImpl intersector = new com.esri.core.geometry.Envelope2DIntersectorImpl();
			intersector.SetTolerance(0.001);
			intersector.StartConstruction();
			for (int i = 0; i < envelopes.Count; i++)
			{
				intersector.AddEnvelope(i, envelopes[i]);
			}
			intersector.EndConstruction();
			int count = 0;
			while (intersector.Next())
			{
				int env_a = intersector.GetHandleA();
				int env_b = intersector.GetHandleB();
				count++;
				com.esri.core.geometry.Envelope2D env = new com.esri.core.geometry.Envelope2D();
				env.SetCoords(envelopes[env_a]);
				env.Inflate(0.001, 0.001);
				NUnit.Framework.Assert.IsTrue(env.IsIntersecting(envelopes[env_b]));
			}
			System.Diagnostics.Debug.Assert((count == 16));
			com.esri.core.geometry.Envelope2DIntersectorImpl intersector2 = new com.esri.core.geometry.Envelope2DIntersectorImpl();
			intersector2.SetTolerance(0.0);
			intersector2.StartConstruction();
			for (int i_1 = 0; i_1 < envelopes.Count; i_1++)
			{
				intersector2.AddEnvelope(i_1, envelopes[i_1]);
			}
			intersector2.EndConstruction();
			count = 0;
			while (intersector2.Next())
			{
				int env_a = intersector2.GetHandleA();
				int env_b = intersector2.GetHandleB();
				count++;
				com.esri.core.geometry.Envelope2D env = new com.esri.core.geometry.Envelope2D();
				env.SetCoords(envelopes[env_a]);
				NUnit.Framework.Assert.IsTrue(env.IsIntersecting(envelopes[env_b]));
			}
			System.Diagnostics.Debug.Assert((count == 13));
			env0 = new com.esri.core.geometry.Envelope2D(0, 0, 0, 10);
			env1 = new com.esri.core.geometry.Envelope2D(0, 10, 10, 10);
			env2 = new com.esri.core.geometry.Envelope2D(10, 0, 10, 10);
			env3 = new com.esri.core.geometry.Envelope2D(0, 0, 10, 0);
			envelopes.Clear();
			envelopes.Add(env0);
			envelopes.Add(env1);
			envelopes.Add(env2);
			envelopes.Add(env3);
			com.esri.core.geometry.Envelope2DIntersectorImpl intersector3 = new com.esri.core.geometry.Envelope2DIntersectorImpl();
			intersector3.SetTolerance(0.001);
			intersector3.StartConstruction();
			for (int i_2 = 0; i_2 < envelopes.Count; i_2++)
			{
				intersector3.AddEnvelope(i_2, envelopes[i_2]);
			}
			intersector3.EndConstruction();
			count = 0;
			while (intersector3.Next())
			{
				int env_a = intersector3.GetHandleA();
				int env_b = intersector3.GetHandleB();
				count++;
				com.esri.core.geometry.Envelope2D env = new com.esri.core.geometry.Envelope2D();
				env.SetCoords(envelopes[env_a]);
				NUnit.Framework.Assert.IsTrue(env.IsIntersecting(envelopes[env_b]));
			}
			NUnit.Framework.Assert.IsTrue(count == 4);
			env0 = new com.esri.core.geometry.Envelope2D(0, 0, 0, 10);
			envelopes.Clear();
			envelopes.Add(env0);
			envelopes.Add(env0);
			envelopes.Add(env0);
			envelopes.Add(env0);
			com.esri.core.geometry.Envelope2DIntersectorImpl intersector4 = new com.esri.core.geometry.Envelope2DIntersectorImpl();
			intersector4.SetTolerance(0.001);
			intersector4.StartConstruction();
			for (int i_3 = 0; i_3 < envelopes.Count; i_3++)
			{
				intersector4.AddEnvelope(i_3, envelopes[i_3]);
			}
			intersector4.EndConstruction();
			count = 0;
			while (intersector4.Next())
			{
				int env_a = intersector4.GetHandleA();
				int env_b = intersector4.GetHandleB();
				count++;
				com.esri.core.geometry.Envelope2D env = new com.esri.core.geometry.Envelope2D();
				env.SetCoords(envelopes[env_a]);
				NUnit.Framework.Assert.IsTrue(env.IsIntersecting(envelopes[env_b]));
			}
			System.Diagnostics.Debug.Assert((count == 6));
			env0 = new com.esri.core.geometry.Envelope2D(0, 10, 10, 10);
			envelopes.Clear();
			envelopes.Add(env0);
			envelopes.Add(env0);
			envelopes.Add(env0);
			envelopes.Add(env0);
			com.esri.core.geometry.Envelope2DIntersectorImpl intersector5 = new com.esri.core.geometry.Envelope2DIntersectorImpl();
			intersector5.SetTolerance(0.001);
			intersector5.StartConstruction();
			for (int i_4 = 0; i_4 < envelopes.Count; i_4++)
			{
				intersector5.AddEnvelope(i_4, envelopes[i_4]);
			}
			intersector5.EndConstruction();
			count = 0;
			while (intersector5.Next())
			{
				int env_a = intersector5.GetHandleA();
				int env_b = intersector5.GetHandleB();
				count++;
				com.esri.core.geometry.Envelope2D env = new com.esri.core.geometry.Envelope2D();
				env.SetCoords(envelopes[env_a]);
				NUnit.Framework.Assert.IsTrue(env.IsIntersecting(envelopes[env_b]));
			}
			NUnit.Framework.Assert.IsTrue(count == 6);
		}