- Timestamp:
- 07/26/16 18:52:32 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
cpp/frams/model/geometry/meshbuilder.cpp
r540 r541 594 594 { 595 595 GeometryUtils::getNextEllipseSegmentationPoint(d, edge.z, edge.x, area.z, area.x); 596 596 597 597 if ((area.z > limit.z) || (area.y > limit.y * sqrt(1.0 - (area.z*area.z) / (scale.z*scale.z)))) 598 598 { 599 599 GeometryUtils::getNextEllipseSegmentationPoint(d, scale.y, scale.x, edge.y, edge.x); 600 edge.z = scale.z * sqrt(1.0 - (edge.y*edge.y) / (scale.y*scale.y));601 double denom=sqrt(edge.x*edge.x + edge.z*edge.z);602 limit.z = denom==0 ? 99999999 : edge.z*edge.z / denom; //temporary fix FIXME http://www.framsticks.com/trac/framsticks/ticket/42603 area = Pt3D(edge.x, edge.y, 0.0);604 605 600 if (edge.y > limit.y) 606 601 { 607 602 initializePhase(Phase(phase+1)); 603 } 604 605 else 606 { 607 edge.z = scale.z * sqrt(1.0 - (edge.y * edge.y) / (scale.y * scale.y)); 608 limit.z = edge.z * edge.z / sqrt(edge.x * edge.x + edge.z * edge.z); 609 area = Pt3D(edge.x, edge.y, 0.0); 608 610 } 609 611 } … … 804 806 edge.setDensity(density); 805 807 edge.initialize(lowerBoundary, lowerBoundary + length); 806 808 809 Pt3D dummy_point; 810 edge.tryGetNext(dummy_point); //increment iterator to start from the second point 811 807 812 area.setDensity(density); 808 813 area.initialize(lowerBoundary, lowerBoundary + width);
Note: See TracChangeset
for help on using the changeset viewer.