Revision 2326 branches/CqCMSDvp/libraries/libCq CMS for java.old/src/org/cresques/px/dxf/DxfFeatureMaker.java
DxfFeatureMaker.java | ||
---|---|---|
211 | 211 |
LineString3D lineString3D = (LineString3D)feaBordes.getGeometry(); |
212 | 212 |
Polygon3D polygon3D = (Polygon3D)feaFondos.getGeometry(); |
213 | 213 |
lineString3D.add(firstPt); |
214 |
if (bulge!=0) { |
|
215 |
|
|
214 |
if (bulge!=0 && !(lineString3D.get(lineString3D.pointNr()-2).getX()==lineString3D.get(lineString3D.pointNr()-1).getX()) && lineString3D.get(lineString3D.pointNr()-2).getY()==lineString3D.get(lineString3D.pointNr()-1).getY()) { |
|
216 | 215 |
// 041122: Correcci?n del bug en los bulges de FIXT3.DXF |
217 | 216 |
Vector arc = createArc(new Point2D.Double(lineString3D.get(lineString3D.pointNr()-2).getX(), lineString3D.get(lineString3D.pointNr()-2).getY()), new Point2D.Double(lineString3D.get(lineString3D.pointNr()-1).getX(), lineString3D.get(lineString3D.pointNr()-1).getY()), bulge); |
218 | 217 |
lineString3D.remove(lineString3D.pointNr()-1); |
... | ... | |
241 | 240 |
} |
242 | 241 |
} |
243 | 242 |
// 041122 |
244 |
|
|
245 | 243 |
bulge = 0.0; |
246 | 244 |
} |
247 | 245 |
|
... | ... | |
328 | 326 |
if (lastFeaBordes.getGeometry() instanceof LineString3D) { |
329 | 327 |
Feature feaBordes = lastFeaBordes; |
330 | 328 |
LineString3D lineString3D = (LineString3D)feaBordes.getGeometry(); |
331 |
if (bulge!=0) { |
|
332 |
|
|
329 |
if (bulge!=0 && !(lineString3D.get(lineString3D.pointNr()-2).getX()==lineString3D.get(lineString3D.pointNr()-1).getX()) && lineString3D.get(lineString3D.pointNr()-2).getY()==lineString3D.get(lineString3D.pointNr()-1).getY()) { |
|
333 | 330 |
// 041122: Correcci?n del bug en los bulges de FIXT3.DXF |
334 | 331 |
Vector arc = createArc(new Point2D.Double(lineString3D.get(lineString3D.pointNr()-2).getX(), lineString3D.get(lineString3D.pointNr()-2).getY()), new Point2D.Double(lineString3D.get(lineString3D.pointNr()-1).getX(), lineString3D.get(lineString3D.pointNr()-1).getY()), bulge); |
335 | 332 |
lineString3D.remove(lineString3D.pointNr()-1); |
... | ... | |
354 | 351 |
} |
355 | 352 |
} |
356 | 353 |
// 041122 |
357 |
|
|
358 | 354 |
bulge = 0.0; |
359 | 355 |
} |
360 | 356 |
|
... | ... | |
499 | 495 |
bulge_aux = grp.getDataAsDouble(42); |
500 | 496 |
} else { bulge_aux = 0.0; } |
501 | 497 |
//int cnt = lineString.pointNr(); |
502 |
lineString3D.remove(lineString3D.pointNr()-1); |
|
503 |
lineString3D.remove(lineString3D.pointNr()-1); |
|
504 |
polygon3D.remove(polygon3D.pointNr()-1); |
|
505 |
polygon3D.remove(polygon3D.pointNr()-1); |
|
506 |
Vector arc = createArc(ptAnterior, pt, bulge); |
|
507 |
if (bulge>0) { |
|
508 |
for (int i=0; i<arc.size(); i++) { |
|
509 |
Point2D ptAux = new Point2D.Double(); |
|
510 |
ptAux = proj.createPoint(((Point2D)arc.get(i)).getX(), ((Point2D)arc.get(i)).getY()); |
|
511 |
Point3D ptAux3D = new Point3D(ptAux.getX(), ptAux.getY(), z); |
|
512 |
lineString3D.add(ptAux3D); |
|
513 |
polygon3D.add(ptAux3D); |
|
514 |
if (lineString3D.pointNr() == 1) firstPt = ptAux3D; |
|
498 |
if (ptAnterior.getX()==pt.getX() && ptAnterior.getY()==pt.getY()) { |
|
499 |
// no se construye el arco |
|
500 |
} else { |
|
501 |
lineString3D.remove(lineString3D.pointNr()-1); |
|
502 |
lineString3D.remove(lineString3D.pointNr()-1); |
|
503 |
polygon3D.remove(polygon3D.pointNr()-1); |
|
504 |
polygon3D.remove(polygon3D.pointNr()-1); |
|
505 |
Vector arc = createArc(ptAnterior, pt, bulge); |
|
506 |
if (bulge>0) { |
|
507 |
for (int i=0; i<arc.size(); i++) { |
|
508 |
Point2D ptAux = new Point2D.Double(); |
|
509 |
ptAux = proj.createPoint(((Point2D)arc.get(i)).getX(), ((Point2D)arc.get(i)).getY()); |
|
510 |
Point3D ptAux3D = new Point3D(ptAux.getX(), ptAux.getY(), z); |
|
511 |
lineString3D.add(ptAux3D); |
|
512 |
polygon3D.add(ptAux3D); |
|
513 |
if (lineString3D.pointNr() == 1) firstPt = ptAux3D; |
|
514 |
} |
|
515 |
} else { |
|
516 |
for (int i=arc.size()-1; i>=0; i--) { |
|
517 |
Point2D ptAux = new Point2D.Double(); |
|
518 |
ptAux = proj.createPoint(((Point2D)arc.get(i)).getX(), ((Point2D)arc.get(i)).getY()); |
|
519 |
Point3D ptAux3D = new Point3D(ptAux.getX(), ptAux.getY(), z); |
|
520 |
lineString3D.add(ptAux3D); |
|
521 |
polygon3D.add(ptAux3D); |
|
522 |
if (lineString3D.pointNr() == 1 || polygon3D.pointNr() == 1) firstPt = ptAux3D; |
|
523 |
} |
|
515 | 524 |
} |
516 |
} else { |
|
517 |
for (int i=arc.size()-1; i>=0; i--) { |
|
518 |
Point2D ptAux = new Point2D.Double(); |
|
519 |
ptAux = proj.createPoint(((Point2D)arc.get(i)).getX(), ((Point2D)arc.get(i)).getY()); |
|
520 |
Point3D ptAux3D = new Point3D(ptAux.getX(), ptAux.getY(), z); |
|
521 |
lineString3D.add(ptAux3D); |
|
522 |
polygon3D.add(ptAux3D); |
|
523 |
if (lineString3D.pointNr() == 1 || polygon3D.pointNr() == 1) firstPt = ptAux3D; |
|
524 |
} |
|
525 | 525 |
} |
526 | 526 |
bulge = bulge_aux; |
527 | 527 |
} |
... | ... | |
575 | 575 |
if (grp.hasCode(42)) { |
576 | 576 |
bulge_aux = grp.getDataAsDouble(42); |
577 | 577 |
} else { bulge_aux = 0.0; } |
578 |
// Borro los puntos inicio y final del arco. |
|
579 |
lineString3D.remove(lineString3D.pointNr()-1); |
|
580 |
lineString3D.remove(lineString3D.pointNr()-1); |
|
581 |
Vector arc = createArc(ptAnterior, pt, bulge); |
|
582 |
if (bulge>0) { |
|
583 |
for (int i=0; i<arc.size(); i++) { |
|
584 |
Point2D ptAux = new Point2D.Double(); |
|
585 |
ptAux = proj.createPoint(((Point2D)arc.get(i)).getX(), ((Point2D)arc.get(i)).getY()); |
|
586 |
Point3D ptAux3D = new Point3D(ptAux.getX(), ptAux.getY(), z); |
|
587 |
lineString3D.add(ptAux3D); |
|
588 |
if (lineString3D.pointNr() == 1) firstPt = ptAux3D; |
|
578 |
if (ptAnterior.getX()==pt.getX() && ptAnterior.getY()==pt.getY()) { |
|
579 |
// no se construye el arco |
|
580 |
} else { |
|
581 |
// Borro los puntos inicio y final del arco. |
|
582 |
lineString3D.remove(lineString3D.pointNr()-1); |
|
583 |
lineString3D.remove(lineString3D.pointNr()-1); |
|
584 |
Vector arc = createArc(ptAnterior, pt, bulge); |
|
585 |
if (bulge>0) { |
|
586 |
for (int i=0; i<arc.size(); i++) { |
|
587 |
Point2D ptAux = new Point2D.Double(); |
|
588 |
ptAux = proj.createPoint(((Point2D)arc.get(i)).getX(), ((Point2D)arc.get(i)).getY()); |
|
589 |
Point3D ptAux3D = new Point3D(ptAux.getX(), ptAux.getY(), z); |
|
590 |
lineString3D.add(ptAux3D); |
|
591 |
if (lineString3D.pointNr() == 1) firstPt = ptAux3D; |
|
592 |
} |
|
593 |
} else { |
|
594 |
for (int i=arc.size()-1; i>=0; i--) { |
|
595 |
Point2D ptAux = new Point2D.Double(); |
|
596 |
ptAux = proj.createPoint(((Point2D)arc.get(i)).getX(), ((Point2D)arc.get(i)).getY()); |
|
597 |
Point3D ptAux3D = new Point3D(ptAux.getX(), ptAux.getY(), z); |
|
598 |
lineString3D.add(ptAux3D); |
|
599 |
if (lineString3D.pointNr() == 1) firstPt = ptAux3D; |
|
600 |
} |
|
589 | 601 |
} |
590 |
} else { |
|
591 |
for (int i=arc.size()-1; i>=0; i--) { |
|
592 |
Point2D ptAux = new Point2D.Double(); |
|
593 |
ptAux = proj.createPoint(((Point2D)arc.get(i)).getX(), ((Point2D)arc.get(i)).getY()); |
|
594 |
Point3D ptAux3D = new Point3D(ptAux.getX(), ptAux.getY(), z); |
|
595 |
lineString3D.add(ptAux3D); |
|
596 |
if (lineString3D.pointNr() == 1) firstPt = ptAux3D; |
|
597 |
} |
|
598 | 602 |
} |
599 | 603 |
bulge = bulge_aux; |
600 | 604 |
} |
... | ... | |
697 | 701 |
y = ((Double) g.getData()).doubleValue(); |
698 | 702 |
if (hasBulge) { |
699 | 703 |
Point2D finalPoint = new Point2D.Double(x, y); |
700 |
Vector arc = createArc(((LineString3D)lineString3D).get(lineString3D.pointNr()-1), finalPoint, bulgeLwp); |
|
701 |
lineString3D.remove(lineString3D.pointNr()-1); |
|
702 |
if (isDoubleFeatured) polygon3D.remove(polygon3D.pointNr()-1); |
|
703 |
if (bulgeLwp>0) { |
|
704 |
for (int k=0; k<arc.size(); k++) { |
|
705 |
Point2D ptAux = new Point2D.Double(); |
|
706 |
ptAux = proj.createPoint(((Point2D)arc.get(k)).getX(), ((Point2D)arc.get(k)).getY()); |
|
707 |
//System.out.println("createLwPolyline: ptAux = " + ptAux); |
|
708 |
Point3D ptAux3D = new Point3D(ptAux.getX(), ptAux.getY(), elev); |
|
709 |
lineString3D.add(ptAux3D); |
|
710 |
//if (lineString.pointNr() == 1) firstPt = ptAux; |
|
711 |
if (isDoubleFeatured) polygon3D.add(ptAux3D); |
|
712 |
if (lineString3D.pointNr() == 1 || polygon3D.pointNr() == 1) firstPt = ptAux3D; |
|
713 |
} |
|
704 |
if (((LineString3D)lineString3D).get(lineString3D.pointNr()-1).getX()==finalPoint.getX() && ((LineString3D)lineString3D).get(lineString3D.pointNr()-1).getY()==finalPoint.getY()) { |
|
705 |
// no se construye el arco |
|
714 | 706 |
} else { |
715 |
for (int k=arc.size()-1; k>=0; k--) { |
|
716 |
Point2D ptAux = new Point2D.Double(); |
|
717 |
ptAux = proj.createPoint(((Point2D)arc.get(k)).getX(), ((Point2D)arc.get(k)).getY()); |
|
718 |
Point3D ptAux3D = new Point3D(ptAux.getX(), ptAux.getY(), elev); |
|
719 |
lineString3D.add(ptAux3D); |
|
720 |
if (isDoubleFeatured) polygon3D.add(ptAux3D); |
|
721 |
if (lineString3D.pointNr() == 1 || polygon3D.pointNr() == 1) firstPt = ptAux3D; |
|
707 |
Vector arc = createArc(((LineString3D)lineString3D).get(lineString3D.pointNr()-1), finalPoint, bulgeLwp); |
|
708 |
lineString3D.remove(lineString3D.pointNr()-1); |
|
709 |
if (isDoubleFeatured) polygon3D.remove(polygon3D.pointNr()-1); |
|
710 |
if (bulgeLwp>0) { |
|
711 |
for (int k=0; k<arc.size(); k++) { |
|
712 |
Point2D ptAux = new Point2D.Double(); |
|
713 |
ptAux = proj.createPoint(((Point2D)arc.get(k)).getX(), ((Point2D)arc.get(k)).getY()); |
|
714 |
//System.out.println("createLwPolyline: ptAux = " + ptAux); |
|
715 |
Point3D ptAux3D = new Point3D(ptAux.getX(), ptAux.getY(), elev); |
|
716 |
lineString3D.add(ptAux3D); |
|
717 |
//if (lineString.pointNr() == 1) firstPt = ptAux; |
|
718 |
if (isDoubleFeatured) polygon3D.add(ptAux3D); |
|
719 |
if (lineString3D.pointNr() == 1 || polygon3D.pointNr() == 1) firstPt = ptAux3D; |
|
720 |
} |
|
721 |
} else { |
|
722 |
for (int k=arc.size()-1; k>=0; k--) { |
|
723 |
Point2D ptAux = new Point2D.Double(); |
|
724 |
ptAux = proj.createPoint(((Point2D)arc.get(k)).getX(), ((Point2D)arc.get(k)).getY()); |
|
725 |
Point3D ptAux3D = new Point3D(ptAux.getX(), ptAux.getY(), elev); |
|
726 |
lineString3D.add(ptAux3D); |
|
727 |
if (isDoubleFeatured) polygon3D.add(ptAux3D); |
|
728 |
if (lineString3D.pointNr() == 1 || polygon3D.pointNr() == 1) firstPt = ptAux3D; |
|
729 |
} |
|
722 | 730 |
} |
723 | 731 |
} |
724 | 732 |
hasBulge = false; |
Also available in: Unified diff