[MOAB-dev] r4773 - in MOAB/trunk: MeshFiles/unittest src src/moab test
iulian at mcs.anl.gov
iulian at mcs.anl.gov
Sat Apr 23 00:04:46 CDT 2011
Author: iulian
Date: 2011-04-23 00:04:45 -0500 (Sat, 23 Apr 2011)
New Revision: 4773
Modified:
MOAB/trunk/MeshFiles/unittest/polyPB.txt
MOAB/trunk/src/FBEngine.cpp
MOAB/trunk/src/SmoothCurve.cpp
MOAB/trunk/src/SmoothCurve.hpp
MOAB/trunk/src/moab/FBEngine.hpp
MOAB/trunk/test/mbfacet_test.cpp
Log:
add test for splitting a face along a "grounding" line
add closest point method for smooth curve; use Newton iteration; robustness
needs to be tested
add method to split an FBedge at an existing node
still to do:
intersection of a smooth face too sensitive to tolerance at the boundary
remove or update the OBB before writing to a file
method to split an FBEdge at an arbitrary point
modified the test file with polyline definition due to robustness issues
it may fail on different precision computers; need to make it more robust
Modified: MOAB/trunk/MeshFiles/unittest/polyPB.txt
===================================================================
--- MOAB/trunk/MeshFiles/unittest/polyPB.txt 2011-04-22 19:29:26 UTC (rev 4772)
+++ MOAB/trunk/MeshFiles/unittest/polyPB.txt 2011-04-23 05:04:45 UTC (rev 4773)
@@ -1,5 +1,5 @@
0. 0. 1. 10.
537200 7680200 -2000.
537800 7680100 -2000.
-537700 7680950 -2000.
+537700 7680980 -2000.
537100 7680900 -2000.
Modified: MOAB/trunk/src/FBEngine.cpp
===================================================================
--- MOAB/trunk/src/FBEngine.cpp 2011-04-22 19:29:26 UTC (rev 4772)
+++ MOAB/trunk/src/FBEngine.cpp 2011-04-23 05:04:45 UTC (rev 4773)
@@ -559,12 +559,14 @@
if (type == 0) {
rval = getVtxCoord(this_gent, on_x, on_y, on_z);
MBERRORR(rval, "Failed to get vertex coordinates.");
- } else if (type == 1) {
- // just copy over the coordinates
- // should be modified
+ } else if (_smooth && type == 1) {
*on_x = near_x;
*on_y = near_y;
*on_z = near_z;
+ SmoothCurve * smthcurve = _edges[this_gent];
+ // call the new method from smooth edge
+ smthcurve->move_to_curve( *on_x, *on_y, *on_z);
+
} else if (type == 2 || type == 3) {
double point[3] = { near_x, near_y, near_z };
double point_out[3];
@@ -1077,7 +1079,7 @@
}
ErrorCode FBEngine::split_surface_with_direction(EntityHandle face, std::vector<double> & xyz,
- double * direction, EntityHandle & newFace)
+ double * direction, EntityHandle & newFace, int closed)
{
// first of all, find all intersection points (piercing in the face along the direction)
@@ -1129,7 +1131,7 @@
// starting from 2 points on 2 triangles, and having the direction, get more intersection points
// between the plane formed by direction and those 2 points, and edges from triangulation (the triangles
// involved will be part of the same gentity , original face ( moab set)
- int closed = 1;// closed = 0 if the polyline is not closed
+ //int closed = 1;// closed = 0 if the polyline is not closed
CartVect Dir(direction);
More information about the moab-dev
mailing list