Changeset 2043
- Timestamp:
- 08/18/08 11:45:24 (4 months ago)
- Files:
-
- cgm/trunk/geom/OCC/OCCCoEdge.cpp (modified) (1 diff)
- cgm/trunk/geom/OCC/OCCCoEdge.hpp (modified) (2 diffs)
- cgm/trunk/geom/OCC/OCCModifyEngine.cpp (modified) (1 diff)
- cgm/trunk/geom/OCC/OCCQueryEngine.cpp (modified) (2 diffs)
- cgm/trunk/geom/OCC/OCCShell.cpp (modified) (2 diffs)
- cgm/trunk/geom/OCC/OCCSurface.cpp (modified) (2 diffs)
- cgm/trunk/test/modify.cpp (modified) (9 diffs)
- cgm/trunk/test/r_w.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
cgm/trunk/geom/OCC/OCCCoEdge.cpp
r1443 r2043 42 42 OCCCoEdge::OCCCoEdge( Curve *curv_ptr, 43 43 LoopSM *loop_ptr, CubitSense sense ) 44 : my Curve(curv_ptr),44 : myMark(0), myCurve(curv_ptr), 45 45 myLoop(loop_ptr),edgeSense(sense) 46 46 { cgm/trunk/geom/OCC/OCCCoEdge.hpp
r1510 r2043 65 65 inline void set_loop(LoopSM * loop) {myLoop = loop;} 66 66 67 inline int get_mark(){return myMark;} 68 inline void set_mark(int k){myMark = k;} 69 67 70 virtual GeometryQueryEngine* 68 71 get_geometry_query_engine() const; … … 121 124 Curve *myCurve; 122 125 CubitSense edgeSense; 126 int myMark; 123 127 }; 124 128 cgm/trunk/geom/OCC/OCCModifyEngine.cpp
r1927 r2043 3542 3542 TopoDS_Shape new_shape = fuser.Shape(); 3543 3543 3544 //Debug:: check how many faces are there in new_shape.3545 TopExp_Explorer Ex;3546 int count = 0;3547 for (Ex.Init(new_shape, TopAbs_FACE);Ex.More(); Ex.Next())3548 count++;3549 3550 3544 CubitBoolean has_changed; 3551 3545 check_operation(new_shape, first_shape, first_is_volume, has_changed, &fuser); cgm/trunk/geom/OCC/OCCQueryEngine.cpp
r2039 r2043 1422 1422 if(coedge->curve() == curve) 1423 1423 { 1424 coedge->set_mark(1); 1424 1425 exist = CUBIT_TRUE; 1425 1426 coedge->set_sense(sense); … … 1460 1461 loop->coedges(coedges_new); 1461 1462 1463 //remove unused coedges 1464 for(int i = 0; i < coedges_old.size(); i++) 1465 { 1466 OCCCoEdge *coedge = coedges_old.get_and_step(); 1467 if(coedge->get_mark() != 1) 1468 delete coedge; 1469 else 1470 coedge->set_mark(0); 1471 } 1462 1472 return loop; 1463 1473 } cgm/trunk/geom/OCC/OCCShell.cpp
r2039 r2043 233 233 shape); 234 234 } 235 shape.Nullify();236 235 } 237 else 238 shape = shapes.First(); 236 shape = shapes.First(); 239 237 } 240 238 else if(op->IsDeleted(*get_TopoDS_Shell())) … … 295 293 if(shapes.Extent() == 1) 296 294 shape = shapes.First(); 297 else 295 else if(shapes.Extent() > 1) 298 296 { 299 if(shapes.Extent() > 1) 297 TopTools_ListIteratorOfListOfShape it; 298 it.Initialize(shapes); 299 for(it; it.More(); it.Next()) 300 300 { 301 TopTools_ListIteratorOfListOfShape it; 302 it.Initialize(shapes); 303 for(it; it.More(); it.Next()) 304 { 305 shape = it.Value(); 306 OCCQueryEngine::instance()->copy_attributes(face, shape); 307 } 301 shape = it.Value(); 302 OCCQueryEngine::instance()->copy_attributes(face, shape); 308 303 } 304 shape = shapes.First(); 305 } 306 else 309 307 shape.Nullify(); 310 }311 308 if(shapes.Extent() > 0 || (op && op->IsDeleted(face))) 312 309 OCCSurface::update_OCC_entity(face,shape, op, sp); cgm/trunk/geom/OCC/OCCSurface.cpp
r2039 r2043 893 893 for(it; it.More(); it.Next()) 894 894 { 895 shape = it.Value();895 shape_edge = it.Value(); 896 896 OCCQueryEngine::instance()->copy_attributes(edge, shape_edge); 897 897 } … … 920 920 for(it; it.More(); it.Next()) 921 921 { 922 shape = it.Value();922 shape_vertex = it.Value(); 923 923 OCCQueryEngine::instance()->copy_attributes(vertex, shape_vertex); 924 924 } cgm/trunk/test/modify.cpp
r2035 r2043 290 290 free_entities.clean_out(); 291 291 gti->get_free_ref_entities(free_entities); 292 assert(free_entities.size() == 0); 292 293 //there shouldn't be any free_entites. 293 294 … … 381 382 free_entities.clean_out(); 382 383 gti->get_free_ref_entities(free_entities); 384 assert(free_entities.size() == 0); 383 385 //there shouldn't be any free_entites. 384 386 … … 485 487 free_entities.clean_out(); 486 488 gti->get_free_ref_entities(free_entities); 487 489 assert(free_entities.size() == 0); 490 488 491 OCCQueryEngine* oqe = OCCQueryEngine::instance(); 489 492 DLIList <OCCBody* > *occ_bodies = oqe->BodyList; … … 512 515 free_entities.clean_out(); 513 516 gti->get_free_ref_entities(free_entities); 514 517 assert(free_entities.size() == 0); 515 518 //test body-body intersect. 516 519 //1. from body is the commom body, no update … … 561 564 free_entities.clean_out(); 562 565 gti->get_free_ref_entities(free_entities); 566 assert(free_entities.size() == 0); 563 567 564 568 //test chop operation … … 585 589 free_entities.clean_out(); 586 590 gti->get_free_ref_entities(free_entities); 587 591 assert(free_entities.size() == 0); 588 592 //test chop 2 589 593 from_body = gmti->brick(4, 4, 4); … … 608 612 free_entities.clean_out(); 609 613 gti->get_free_ref_entities(free_entities); 614 assert(free_entities.size() == 0); 610 615 611 616 //test unite 1 … … 627 632 free_entities.clean_out(); 628 633 gti->get_free_ref_entities(free_entities); //free_entities.size() = 0 634 assert(free_entities.size() == 0); 629 635 //delete all entities 630 636 gti->delete_Body(bodies); 631 637 free_entities.clean_out(); 632 638 gti->get_free_ref_entities(free_entities); //free_entities.size() = 0 633 639 assert(free_entities.size() == 0); 634 640 //test unite 2 635 641 tool_body = gmti->brick(4, 4,4); … … 651 657 free_entities.clean_out(); 652 658 gti->get_free_ref_entities(free_entities); //free_entities.size() = 0 659 assert(free_entities.size() == 0); 653 660 //delete all entities 654 661 gti->delete_Body(bodies); 655 662 free_entities.clean_out(); 656 663 gti->get_free_ref_entities(free_entities); //free_entities.size() = 0 664 assert(free_entities.size() == 0); 657 665 658 666 //test making thick body. cgm/trunk/test/r_w.cpp
r2035 r2043 173 173 rsl = gmti->subtract(tool_body,from_bodies, new_bodies, 174 174 CUBIT_TRUE, CUBIT_FALSE); 175 //Created volume(s): 21, 22176 //Destroyed volume(s): 18, 20175 //Created volume(s): 5, 6 176 //Destroyed volume(s): 3, 4 177 177 double d = new_bodies.step_and_get()->measure(); 178 178 CubitVector v = new_bodies.get()->center_point(); … … 194 194 gti->delete_Body(bodies); 195 195 196 gti->get_free_ref_entities(free_entities); 197 assert(free_entities.size() ==0); 196 198 return CUBIT_SUCCESS; 197 199 }
