Revision 8031

View differences:

trunk/extensions/extGraph_predes/.classpath
14 14
	<classpathentry combineaccessrules="false" kind="src" path="/libGDBMS"/>
15 15
	<classpathentry sourcepath="D:/eclipse_3_1/workspace_pruebas/jts/src" kind="lib" path="/libFMap/lib/jts-1.7.jar"/>
16 16
	<classpathentry sourcepath="ECLIPSE_HOME/plugins/org.eclipse.jdt.source_3.1.1/src/org.junit_3.8.1/junitsrc.zip" kind="var" path="JUNIT_HOME/junit.jar"/>
17
	<classpathentry sourcepath="/extGeoProcessing/src" kind="lib" path="/_fwAndami/gvSIG/extensiones/com.iver.cit.gvsig.geoprocess/lib/com.iver.cit.gvsig.geoprocess.jar"/>
18
	<classpathentry sourcepath="/libUI/src" kind="lib" path="/_fwAndami/lib/beans.jar"/>
19
	<classpathentry sourcepath="" kind="lib" path="/_fwAndami/gvSIG/extensiones/com.iver.cit.gvsig/lib/fmap.jar"/>
17 20
	<classpathentry kind="output" path="bin"/>
18 21
</classpath>
trunk/extensions/extGraph_predes/src/com/iver/cit/gvsig/topology/geomgraph/SnappingNodeMap.java
60 60
		List resultAreaEdgeList = null;
61 61

  
62 62
		List getResultAreaEdges() {
63
			// print(System.out);
64 63
			if (resultAreaEdgeList != null)
65 64
				return resultAreaEdgeList;
66 65
			resultAreaEdgeList = new ArrayList();
......
279 278
				Label label = de.getLabel();
280 279
				Label symLabel = de.getSym().getLabel();
281 280
				label.merge(symLabel);
282
				System.currentTimeMillis();
283 281
			}
284 282
		}
285 283

  
......
457 455
	 */
458 456
	public void add(EdgeEnd e) {
459 457
		Coordinate p = e.getCoordinate();
460
		System.out.println("Verificando nodo " + p.toString());
461 458
		Node n = addNode(p);
462
		System.out.println("antes de a?adir...");
463 459
		List list = n.getEdges().getEdges();
464
		System.out.println(list.size());
465 460
		for (int i = 0; i < list.size(); i++) {
466 461
			EdgeEnd ee = (EdgeEnd) list.get(i);
467
			System.out.println("edge" + i);
468 462
			Coordinate[] coords = ee.getEdge().getCoordinates();
469 463
			String ctx = "(";
470 464
			for (int j = 0; j < coords.length; j++) {
471 465
				ctx += coords[j].x + " " + coords[j].y + ",";
472 466
			}
473 467
			ctx += ")";
474
			System.out.println(ctx);
475 468
		}
476
		System.out.println("despues de a?adir...");
477 469
		n.add(e);// Si el nodo ya existe, se le a?ade una arista
478 470
		list = n.getEdges().getEdges();
479
		System.out.println(list.size());
480 471
		for (int i = 0; i < list.size(); i++) {
481 472
			EdgeEnd ee = (EdgeEnd) list.get(i);
482
			System.out.println("edge" + i);
483 473
			Coordinate[] coords = ee.getEdge().getCoordinates();
484 474
			String ctx = "(";
485 475
			for (int j = 0; j < coords.length; j++) {
486 476
				ctx += coords[j].x + " " + coords[j].y + ",";
487 477
			}
488 478
			ctx += ")";
489
			System.out.println(ctx);
490 479
		}
491 480
	}
492 481

  
trunk/extensions/extGraph_predes/src/com/iver/cit/gvsig/topology/SnappingOverlayOperation.java
464 464
	 * edges for both Geometries
465 465
	 */
466 466
	private void computeLabelling() {
467
		graph.dump();
468 467
		for (Iterator nodeit = graph.getNodes().iterator(); nodeit.hasNext();) {
469 468
			Node node = (Node) nodeit.next();
470 469
			node.getEdges().computeLabelling(arg);
......
472 471
		mergeSymLabels();
473 472
		updateNodeLabelling();
474 473
		
475
//		graph.dump();
476 474
	}
477 475

  
478 476
	/**
......
485 483
		for (Iterator nodeit = graph.getNodes().iterator(); nodeit.hasNext();) {
486 484
			Node node = (Node) nodeit.next();
487 485
			((DirectedEdgeStar) node.getEdges()).mergeSymLabels();
488
			//	node.print(System.out);
489 486
		}
490 487
	}
491 488

  
......
529 526
			// now update the labelling for the DirectedEdges incident on this
530 527
			// node
531 528
			((DirectedEdgeStar) n.getEdges()).updateLabelling(label);
532
			//	n.print(System.out);
533 529
		}
534 530
	}
535 531

  
......
646 642
		try {
647 643
		
648 644
			//Snap en un extremo y en un vertice intermedio
649
//			a = reader.read("LINESTRING(0.001 0.001, 5.001 5.001)");
650
//			b = reader.read("LINESTRING(2.1 -3, 0.0 -0.001, -2.22 4.88, 10.0 10.0, 5.002 5.002)");
651
//			System.out.println(SnappingOverlayOperation.overlayOp(a, b, OverlayOp.INTERSECTION, 0.01));
652
//			
645
			a = reader.read("LINESTRING(0.001 0.001, 5.001 5.001)");
646
			b = reader.read("LINESTRING(2.1 -3, 0.0 -0.001, -2.22 4.88, 10.0 10.0, 5.002 5.002)");
647
			System.out.println(SnappingOverlayOperation.overlayOp(a, b, OverlayOp.INTERSECTION, 0.01));			
653 648
//			//snap mediante l?neas paralelas
654
//			c = reader.read("LINESTRING(0 0, 5 0, 10 0.001)");
655
//			d = reader.read("LINESTRING(0.001 0.01, 5.001 0.002, 10.001 0.002)");
656
//			
657
//			long t0 = System.currentTimeMillis();
658
//			System.out.println(SnappingOverlayOperation.overlayOp(c, d, OverlayOp.INTERSECTION, 0.1));
659
//
660
//			
661
//			
662
//			
663
//			long t1 = System.currentTimeMillis();
664
//			System.out.println(OverlayOp.overlayOp(c, d, OverlayOp.INTERSECTION));
665
//			long t2 = System.currentTimeMillis();
666
//			System.out.println("Con snap: "+(t1-t0)+" ms");
667
//			System.out.println("Sin snap: "+(t2-t1)+" ms");
668
//			
669
//			d = reader.read("LINESTRING(0 0, 5 0, 10 0.001)");
670
//			System.out.println(OverlayOp.overlayOp(c, d, OverlayOp.INTERSECTION));
649
			c = reader.read("LINESTRING(0 0, 5 0, 10 0.001)");
650
			d = reader.read("LINESTRING(0.001 0.01, 5.001 0.002, 10.001 0.002)");		
651
			long t0 = System.currentTimeMillis();
652
			System.out.println(SnappingOverlayOperation.overlayOp(c, d, OverlayOp.INTERSECTION, 0.1));		
653
			long t1 = System.currentTimeMillis();
654
			System.out.println(OverlayOp.overlayOp(c, d, OverlayOp.INTERSECTION));
655
			long t2 = System.currentTimeMillis();
656
			System.out.println("Con snap: "+(t1-t0)+" ms");
657
			System.out.println("Sin snap: "+(t2-t1)+" ms");
671 658
			
659
			d = reader.read("LINESTRING(0 0, 5 0, 10 0.001)");
660
			System.out.println(OverlayOp.overlayOp(c, d, OverlayOp.INTERSECTION));
661
			
672 662
			//lineas paralelas a una distancia superior a la de snap
673 663
			//(para comprobar el criterio de paralelismo en LineIntersector
674
//			c = reader.read("LINESTRING(0 0, 5 0, 10 0.001)");
675
//			d = reader.read("LINESTRING(0 0.11, 5 0.12, 10 0.14)");
676
//			System.out.println(SnappingOverlayOperation.overlayOp(c, d, OverlayOp.INTERSECTION, 0.001));
664
			c = reader.read("LINESTRING(0 0, 5 0, 10 0.001)");
665
			d = reader.read("LINESTRING(0 0.11, 5 0.12, 10 0.14)");
666
			System.out.println(SnappingOverlayOperation.overlayOp(c, d, OverlayOp.INTERSECTION, 0.001));
677 667
//			
678
//			c = reader.read("LINESTRING(1 0, 3 2)");
679
//			d = reader.read("LINESTRING(3.05 2.01, 5 1.25, 0.25 1.75)");
680
//			System.out.println(OverlayOp.overlayOp(c, d, OverlayOp.INTERSECTION));
681
//			System.out.println((SnappingOverlayOperation.overlayOp(c, d, OverlayOp.INTERSECTION, 0.1)));
668
			c = reader.read("LINESTRING(1 0, 3 2)");
669
			d = reader.read("LINESTRING(3.05 2.01, 5 1.25, 0.25 1.75)");
670
			System.out.println(OverlayOp.overlayOp(c, d, OverlayOp.INTERSECTION));
671
			System.out.println((SnappingOverlayOperation.overlayOp(c, d, OverlayOp.INTERSECTION, 0.1)));
682 672
//			
683 673
//			
684
//			d = reader.read("LINESTRING(3 2, 5 1.25, 0.25 1.75)");
685
//			System.out.println(OverlayOp.overlayOp(c, d, OverlayOp.INTERSECTION));
686
//			System.out.println((SnappingOverlayOperation.overlayOp(c, d, OverlayOp.INTERSECTION, 0.1)));
674
			d = reader.read("LINESTRING(3 2, 5 1.25, 0.25 1.75)");
675
			System.out.println(OverlayOp.overlayOp(c, d, OverlayOp.INTERSECTION));
676
			System.out.println((SnappingOverlayOperation.overlayOp(c, d, OverlayOp.INTERSECTION, 0.1)));
687 677
			
688 678
			//Que un pol?gono est? cerrado o no no es snap, sino regla topologica
689 679
			
......
716 706
				   System.out.println(d.toText());
717 707
				System.exit(-2);
718 708
			}
719
			
720
			
721
			
722
//			c = reader.read("LINESTRING (-0.01 0, 6 6)");
723
//			d = reader.read("LINESTRING (0 0, 5 0, 5 5, 0 5)");
709
		
724 710
			System.out.println((SnappingOverlayOperation.overlayOp(c, d, OverlayOp.INTERSECTION, 0.1)));
711

  
712
			Geometry pol1 = reader.read("POLYGON((0 0, -5 0, -10 5, 0 10,  10 5, 5 0, 0 0))");
713
			Geometry pol2 = reader.read("POLYGON((10.01 0, 5 5, 5 10, 10 10, 10.01 0))");
725 714
			
715
			System.out.println((SnappingOverlayOperation.overlayOp(pol1, pol2, OverlayOp.INTERSECTION, 0.1)));
716
			System.out.println((OverlayOp.overlayOp(pol1, pol2, OverlayOp.INTERSECTION)));
726 717
			
727 718
			
728
			
729 719
		} catch (ParseException e) {
730 720
			e.printStackTrace();
731 721
		}
trunk/extensions/extGraph_predes/src/com/iver/cit/gvsig/topology/SnappingOverlayOperationTest.java
45 45
*
46 46
* $Id$
47 47
* $Log$
48
* Revision 1.2  2006-10-09 19:10:56  azabala
48
* Revision 1.3  2006-10-10 18:50:57  azabala
49
* *** empty log message ***
50
*
51
* Revision 1.2  2006/10/09 19:10:56  azabala
49 52
* First version in CVS
50 53
*
51 54
* Revision 1.1  2006/10/05 19:20:57  azabala
......
161 164
											OverlayOp.INTERSECTION, 
162 165
											0.01);
163 166
		assertTrue(geom instanceof Polygon);
167
		assertTrue(geom.toString().equals("POLYGON ((5 7.5, 10 5, 7.502497502497502 2.5024975024975022, 5 5, 5 7.5))"));
164 168
		
165 169

  
166 170
		

Also available in: Unified diff