Revision 135 trunk/libraries/libCq CMS for java.old/src/org/cresques/px/dxf/DxfFeatureMaker.java

View differences:

DxfFeatureMaker.java
193 193
			lastFeaFondos = null;
194 194
		} else {
195 195
			Feature feature = lastFeature;
196
			
197
			System.out.println("feature = " + feature);
198
			System.out.println("feature.getGeometry() = " + feature.getGeometry());
199
			
196 200
			LineString lineString = (LineString)feature.getGeometry();
197 201
			if (!(bulge==0)) {
198 202
				int cnt = lineString.pointNr();
......
258 262
			Feature feaBordes = lastFeaBordes;		
259 263
			Feature feaFondos = lastFeaFondos;		
260 264
			LineString lineString = (LineString)feaBordes.getGeometry();
265
			Polygon polygon = (Polygon)feaFondos.getGeometry();
261 266
			if (grp.hasCode(8))
262 267
				feaBordes.setProp("layer", grp.getDataAsString(8));
268
				feaFondos.setProp("layer", grp.getDataAsString(8));
263 269
			if (grp.hasCode(62)) {
264 270
				Integer integer = new Integer(grp.getDataAsInt(62));
265 271
				String string = integer.toString();
266 272
				feaBordes.setProp("color", string);
273
				feaFondos.setProp("color", string);
267 274
			} else {
268 275
				DxfLayer layer = (DxfLayer)layers.getByName(grp.getDataAsString(8));
269 276
				int clr = layer.colorNumber;
270 277
				Integer integer = new Integer(clr);
271 278
				String string = integer.toString();
272 279
				feaBordes.setProp("color", string);
280
				feaFondos.setProp("color", string);
273 281
			}
274 282
			x  = grp.getDataAsDouble(10);
275 283
			y  = grp.getDataAsDouble(20);
......
283 291
			y = point_out.getY();
284 292
			Point2D pt = proj.createPoint( x, y);
285 293
			lineString.add(pt);
294
			polygon.add(pt);
286 295
			if (lineString.pointNr() == 1) {
287 296
				firstPt = pt;
288 297
			}
......
291 300
					bulge = grp.getDataAsDouble(42);
292 301
				} else { bulge = 0.0; }
293 302
			} else {
294
				/*if (grp.hasCode(8))
295
					feature.setProp("layer", grp.getDataAsString(8));
296
				if (grp.hasCode(62)) {
297
					Integer integer = new Integer(grp.getDataAsInt(62));
298
					String string = integer.toString();
299
					feature.setProp("color", string);
300
				} else {
301
					DxfLayer layer = (DxfLayer)layers.getByName(grp.getDataAsString(8));
302
					int clr = layer.colorNumber;
303
					Integer integer = new Integer(clr);
304
					String string = integer.toString();
305
					feature.setProp("color", string);
306
				}
307
				x  = grp.getDataAsDouble(10);
308
				y  = grp.getDataAsDouble(20);
309
				if (grp.hasCode(30)) z = grp.getDataAsDouble(30);
310
				Point3D point_in = new Point3D(x, y, z);
311
				Point3D xtru = new Point3D(xtruX, xtruY, xtruZ);
312
				Point2D point_out = DxfCalXtru.CalculateXtru(point_in, xtru);
313
				x = point_out.getX();
314
				y = point_out.getY();
315
				Point2D pt = proj.createPoint( x, y);
316
				lineString.add(pt);
317
				if (lineString.pointNr() == 1) {
318
					firstPt = pt;
319
				}*/
320 303
				double bulge_aux = 0.0;
321 304
				if (grp.hasCode(42)) {
322 305
					bulge_aux = grp.getDataAsDouble(42);
......
324 307
				int cnt = lineString.pointNr();
325 308
				Vector arc = createArc((Point2D)(lineString.get(cnt-2)), (Point2D)(lineString.get(cnt-1)), bulge);
326 309
				lineString.remove(cnt-1);
310
				polygon.remove(cnt-1);
327 311
				for (int i=0; i<arc.size(); i++) {
328 312
					pt = proj.createPoint(((Point2D)arc.get(i)).getX(), ((Point2D)arc.get(i)).getY());
329 313
					lineString.add(pt);
314
					polygon.add(pt);
330 315
					if (lineString.pointNr() == 1) firstPt = pt;
331 316
				}
332 317
				bulge = bulge_aux;
333 318
			}
334
			
335
			Polygon polygon = (Polygon)feaFondos.getGeometry();
336
			if (grp.hasCode(8))
337
				feaFondos.setProp("layer", grp.getDataAsString(8));
338
			if (grp.hasCode(62)) {
339
				Integer integer = new Integer(grp.getDataAsInt(62));
340
				String string = integer.toString();
341
				feaFondos.setProp("color", string);
342
			} else {
343
				DxfLayer layer = (DxfLayer)layers.getByName(grp.getDataAsString(8));
344
				int clr = layer.colorNumber;
345
				Integer integer = new Integer(clr);
346
				String string = integer.toString();
347
				feaFondos.setProp("color", string);
348
			}
349
			x  = grp.getDataAsDouble(10);
350
			y  = grp.getDataAsDouble(20);
351
			if (grp.hasCode(30)) z = grp.getDataAsDouble(30);
352
			point_in = new Point3D(x, y, z);
353
			xtru = new Point3D(xtruX, xtruY, xtruZ);
354
			point_out = DxfCalXtru.CalculateXtru(point_in, xtru);
355
			x = point_out.getX();
356
			y = point_out.getY();
357
			pt = proj.createPoint( x, y);
358
			polygon.add(pt);
359
			if (polygon.pointNr() == 1) {
360
				firstPt = pt;
361
			}
362
			if (bulge == 0.0) {
319
			/*if (bulge == 0.0) {
363 320
				if (grp.hasCode(42)) {
364 321
					bulge = grp.getDataAsDouble(42);
365 322
				} else { bulge = 0.0; }
366 323
			} else {
367
				/*if (grp.hasCode(8))
368
					feature.setProp("layer", grp.getDataAsString(8));
369
				if (grp.hasCode(62)) {
370
					Integer integer = new Integer(grp.getDataAsInt(62));
371
					String string = integer.toString();
372
					feature.setProp("color", string);
373
				} else {
374
					DxfLayer layer = (DxfLayer)layers.getByName(grp.getDataAsString(8));
375
					int clr = layer.colorNumber;
376
					Integer integer = new Integer(clr);
377
					String string = integer.toString();
378
					feature.setProp("color", string);
379
				}
380
				x  = grp.getDataAsDouble(10);
381
				y  = grp.getDataAsDouble(20);
382
				if (grp.hasCode(30)) z = grp.getDataAsDouble(30);
383
				Point3D point_in = new Point3D(x, y, z);
384
				Point3D xtru = new Point3D(xtruX, xtruY, xtruZ);
385
				Point2D point_out = DxfCalXtru.CalculateXtru(point_in, xtru);
386
				x = point_out.getX();
387
				y = point_out.getY();
388
				Point2D pt = proj.createPoint( x, y);
389
				polygon.add(pt);
390
				if (polygon.pointNr() == 1) {
391
					firstPt = pt;
392
				}*/
393 324
				double bulge_aux = 0.0;
394 325
				if (grp.hasCode(42)) {
395 326
					bulge_aux = grp.getDataAsDouble(42);
396 327
				} else { bulge_aux = 0.0; }
397 328
				int cnt = polygon.pointNr();
398
				System.out.println("cnt = " + cnt);
399 329
				Vector arc = createArc((Point2D)(polygon.get(cnt-2)), (Point2D)(polygon.get(cnt-1)), bulge);
400 330
				polygon.remove(cnt-1);
401 331
				for (int i=0; i<arc.size(); i++) {
......
404 334
					if (polygon.pointNr() == 1) firstPt = pt;
405 335
				}
406 336
				bulge = bulge_aux;
407
			}
337
			}*/
408 338
		} else {
409 339
			Feature feature = lastFeature;
410 340
			LineString lineString = (LineString)feature.getGeometry();
......
456 386
				bulge = bulge_aux;
457 387
			}
458 388
		}
459
		
460
		/*if (feature.getGeometry() instanceof LineString) {
461
			LineString lineString = (LineString)feature.getGeometry();
462
			if (bulge == 0.0) {
463
				
464
				if (grp.hasCode(8))
465
					feature.setProp("layer", grp.getDataAsString(8));
466
				if (grp.hasCode(62)) {
467
					Integer integer = new Integer(grp.getDataAsInt(62));
468
					String string = integer.toString();
469
					feature.setProp("color", string);
470
				} else {
471
					DxfLayer layer = (DxfLayer)layers.getByName(grp.getDataAsString(8));
472
					int clr = layer.colorNumber;
473
					Integer integer = new Integer(clr);
474
					String string = integer.toString();
475
					feature.setProp("color", string);
476
				}
477
				x  = grp.getDataAsDouble(10);
478
				y  = grp.getDataAsDouble(20);
479
				if (grp.hasCode(30)) {
480
					z = grp.getDataAsDouble(30);
481
				}
482
				if (grp.hasCode(42)) {
483
					bulge = grp.getDataAsDouble(42);
484
				} else { bulge = 0.0; }
485
				Point3D point_in = new Point3D(x, y, z);
486
				Point3D xtru = new Point3D(xtruX, xtruY, xtruZ);
487
				Point2D point_out = DxfCalXtru.CalculateXtru(point_in, xtru);
488
				x = point_out.getX();
489
				y = point_out.getY();
490
				Point2D pt = proj.createPoint( x, y);
491
				lineString.add(pt);
492
				if (lineString.pointNr() == 1) {
493
					firstPt = pt;
494
				}
495
			} else {
496
				double bulge_aux = 0.0;
497
				
498
				if (grp.hasCode(8))
499
					feature.setProp("layer", grp.getDataAsString(8));
500
				if (grp.hasCode(62)) {
501
					Integer integer = new Integer(grp.getDataAsInt(62));
502
					String string = integer.toString();
503
					feature.setProp("color", string);
504
				} else {
505
					DxfLayer layer = (DxfLayer)layers.getByName(grp.getDataAsString(8));
506
					int clr = layer.colorNumber;
507
					Integer integer = new Integer(clr);
508
					String string = integer.toString();
509
					feature.setProp("color", string);
510
				}
511
				x  = grp.getDataAsDouble(10);
512
				y  = grp.getDataAsDouble(20);
513
				if (grp.hasCode(30)) z = grp.getDataAsDouble(30);
514
				if (grp.hasCode(42)) {
515
					bulge_aux = grp.getDataAsDouble(42);
516
				} else { bulge_aux = 0.0; }
517
				Point3D point_in = new Point3D(x, y, z);
518
				Point3D xtru = new Point3D(xtruX, xtruY, xtruZ);
519
				Point2D point_out = DxfCalXtru.CalculateXtru(point_in, xtru);
520
				x = point_out.getX();
521
				y = point_out.getY();
522
				Point2D pt = proj.createPoint( x, y);
523
				lineString.add(pt);
524
				if (lineString.pointNr() == 1) {
525
					firstPt = pt;
526
				}
527
				int cnt = lineString.pointNr();
528
				Vector arc = createArc((Point2D)(lineString.get(cnt-2)), (Point2D)(lineString.get(cnt-1)), bulge);
529
				lineString.remove(cnt-1);
530
				for (int i=0; i<arc.size(); i++) {
531
					pt = proj.createPoint(((Point2D)arc.get(i)).getX(), ((Point2D)arc.get(i)).getY());
532
					lineString.add(pt);
533
					if (lineString.pointNr() == 1) firstPt = pt;
534
				}
535
				bulge = bulge_aux;
536
			}
537
		}
538
		if (feature.getGeometry() instanceof Polygon) {
539
			Polygon polygon = (Polygon)feature.getGeometry();
540
			if (bulge == 0.0) {
541
				
542
				if (grp.hasCode(8))
543
					feature.setProp("layer", grp.getDataAsString(8));
544
				if (grp.hasCode(62)) {
545
					Integer integer = new Integer(grp.getDataAsInt(62));
546
					String string = integer.toString();
547
					feature.setProp("color", string);
548
				} else {
549
					DxfLayer layer = (DxfLayer)layers.getByName(grp.getDataAsString(8));
550
					int clr = layer.colorNumber;
551
					Integer integer = new Integer(clr);
552
					String string = integer.toString();
553
					feature.setProp("color", string);
554
				}
555
				x  = grp.getDataAsDouble(10);
556
				y  = grp.getDataAsDouble(20);
557
				if (grp.hasCode(30)) z = grp.getDataAsDouble(30);
558
				if (grp.hasCode(42)) {
559
					bulge = grp.getDataAsDouble(42);
560
				} else { bulge = 0.0; }
561
				Point3D point_in = new Point3D(x, y, z);
562
				Point3D xtru = new Point3D(xtruX, xtruY, xtruZ);
563
				Point2D point_out = DxfCalXtru.CalculateXtru(point_in, xtru);
564
				x = point_out.getX();
565
				y = point_out.getY();
566
				Point2D pt = proj.createPoint( x, y);
567
				polygon.add(pt);
568
				if (polygon.pointNr() == 1) {
569
					firstPt = pt;
570
				}
571
			} else {
572
				double bulge_aux = 0.0;
573
				
574
				if (grp.hasCode(8))
575
					feature.setProp("layer", grp.getDataAsString(8));
576
				if (grp.hasCode(62)) {
577
					Integer integer = new Integer(grp.getDataAsInt(62));
578
					String string = integer.toString();
579
					feature.setProp("color", string);
580
				} else {
581
					DxfLayer layer = (DxfLayer)layers.getByName(grp.getDataAsString(8));
582
					int clr = layer.colorNumber;
583
					Integer integer = new Integer(clr);
584
					String string = integer.toString();
585
					feature.setProp("color", string);
586
				}
587
				x  = grp.getDataAsDouble(10);
588
				y  = grp.getDataAsDouble(20);
589
				if (grp.hasCode(30)) z = grp.getDataAsDouble(30);
590
				if (grp.hasCode(42)) {
591
					bulge_aux = grp.getDataAsDouble(42);
592
				} else { bulge_aux = 0.0; }
593
				Point3D point_in = new Point3D(x, y, z);
594
				Point3D xtru = new Point3D(xtruX, xtruY, xtruZ);
595
				Point2D point_out = DxfCalXtru.CalculateXtru(point_in, xtru);
596
				x = point_out.getX();
597
				y = point_out.getY();
598
				Point2D pt = proj.createPoint( x, y);
599
				polygon.add(pt);
600
				if (polygon.pointNr() == 1) {
601
					firstPt = pt;
602
				}
603
				int cnt = polygon.pointNr();
604
				System.out.println("cnt = " + cnt);
605
				Vector arc = createArc((Point2D)(polygon.get(cnt-2)), (Point2D)(polygon.get(cnt-1)), bulge);
606
				polygon.remove(cnt-1);
607
				for (int i=0; i<arc.size(); i++) {
608
					pt = proj.createPoint(((Point2D)arc.get(i)).getX(), ((Point2D)arc.get(i)).getY());
609
					polygon.add(pt);
610
					if (polygon.pointNr() == 1) firstPt = pt;
611
				}
612
				bulge = bulge_aux;
613
			}
614
		}*/
615 389
	}
616 390

  
617 391
	public void createLwPolyline(DxfGroupVector grp) throws Exception {

Also available in: Unified diff