diff --git a/src/TNaming/TNaming_NamedShape.cxx b/src/TNaming/TNaming_NamedShape.cxx index 97ab710632..b57ccbfb6a 100755 --- a/src/TNaming/TNaming_NamedShape.cxx +++ b/src/TNaming/TNaming_NamedShape.cxx @@ -833,7 +833,28 @@ void TNaming_Builder::Modify(const TopoDS_Shape& oldShape, } //======================================================================= -static TopoDS_Vertex theDummyVertex (BRepBuilderAPI_MakeVertex(gp_Pnt(0.,0.,0.)).Vertex()); +//function : DummyShapeToStoreOrientation +//======================================================================= +static const TopoDS_Shape& DummyShapeToStoreOrientation (const TopAbs_Orientation Or) +{ + gp_Pnt aPnt(0,0,0); + static TopoDS_Vertex aVForward, aVRev; + switch(Or) { + case TopAbs_FORWARD: + if(aVForward.IsNull()) { + aVForward = BRepBuilderAPI_MakeVertex (aPnt).Vertex(); + aVForward.Orientation(TopAbs_FORWARD); + } + return aVForward; + case TopAbs_REVERSED: + if(aVRev.IsNull()) { + aVRev = BRepBuilderAPI_MakeVertex (aPnt).Vertex(); + aVRev.Orientation(TopAbs_REVERSED); + } + return aVRev; + } + return aVForward; +} //======================================================================= //function : Select @@ -849,15 +870,15 @@ void TNaming_Builder::Select (const TopoDS_Shape& S, } TNaming_RefShape* pos; - if(S.ShapeType() != TopAbs_VERTEX) { - TopoDS_Shape aV = theDummyVertex; - aV.Orientation (S.Orientation()); + + if(S.ShapeType() != TopAbs_VERTEX && + (S.Orientation() == TopAbs_FORWARD || S.Orientation() == TopAbs_REVERSED)) { + const TopoDS_Shape& aV = DummyShapeToStoreOrientation (S.Orientation()); if (!myShapes->myMap.IsBound(aV)) { pos = new TNaming_RefShape(aV); myShapes->myMap.Bind(aV,pos); - } - else - pos = myShapes->myMap.ChangeFind(aV); + } else + pos = myShapes->myMap.ChangeFind(aV); } else { if (!myShapes->myMap.IsBound(InS)) { pos = new TNaming_RefShape(InS); diff --git a/tests/caf/driver/A1 b/tests/caf/driver/A1 index 3b87819754..8f13d7954d 100755 --- a/tests/caf/driver/A1 +++ b/tests/caf/driver/A1 @@ -1,5 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" - #1 - create box using more flexible set of commands NewCommand D set B2 [AddObject D]; ## add object diff --git a/tests/caf/driver/A2 b/tests/caf/driver/A2 index 6594debcbd..a2ca503912 100755 --- a/tests/caf/driver/A2 +++ b/tests/caf/driver/A2 @@ -1,5 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" - #Drivers' nick-names: #Box|Sph|Cyl|Cut|Fuse|Prism|Revol|PTxyz|PTALine|PRLine|PMirr|Fillet|Attach|XAttach # order of functions recomputation should be defined out of the tool (by end user) diff --git a/tests/caf/driver/A3 b/tests/caf/driver/A3 index ae737e02d3..4055a0908a 100755 --- a/tests/caf/driver/A3 +++ b/tests/caf/driver/A3 @@ -1,5 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" - AddDriver D Box Cyl Sph Attach XAttach PTxyz PTALine PRLine PMirr Cut Fuse Prism FulRevol SecRevol Fillet #1 Box creation NewCommand D diff --git a/tests/caf/driver/A4 b/tests/caf/driver/A4 index 6dc78b729e..16464455e0 100755 --- a/tests/caf/driver/A4 +++ b/tests/caf/driver/A4 @@ -1,5 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" - AddDriver D Box Cyl Sph Attach XAttach PTxyz PTALine PRLine PMirr Cut Fuse Prism FulRevol SecRevol Fillet #1 Create Box diff --git a/tests/caf/driver/A5 b/tests/caf/driver/A5 index 61b8deb39a..8b5aca2946 100755 --- a/tests/caf/driver/A5 +++ b/tests/caf/driver/A5 @@ -1,4 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" AddDriver D Box Cyl Sph Attach XAttach PTxyz PTALine PRLine PMirr Cut Fuse Prism FulRevol SecRevol Fillet #1 Create Box diff --git a/tests/caf/driver/A6 b/tests/caf/driver/A6 index 127e7cde67..24c08bd551 100755 --- a/tests/caf/driver/A6 +++ b/tests/caf/driver/A6 @@ -1,4 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" #1 - create Box using short-cut NewCommand D AddDriver D Box; ## add box driver to driver table diff --git a/tests/caf/driver/A7 b/tests/caf/driver/A7 index a9dd32d151..231b303d86 100755 --- a/tests/caf/driver/A7 +++ b/tests/caf/driver/A7 @@ -1,5 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" - #Drivers' nick-names: #Box|Sph|Cyl|Cut|Fuse|Prism|SecRevol|FulRevol|PTxyz|PTALine|PRLine|PMirr|Fillet|Attach|XAttach # order of functions recomputation should be defined out of the tool (by end user) diff --git a/tests/caf/driver/A8 b/tests/caf/driver/A8 index 8cd203cf6c..99b93cf306 100755 --- a/tests/caf/driver/A8 +++ b/tests/caf/driver/A8 @@ -1,5 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" - #Drivers' nick-names: #Box|Sph|Cyl|Cut|Fuse|Prism|SecRevol|FulRevol|PTxyz|PTALine|PRLine|PMirr|Fillet|Attach|XAttach # order of functions recomputation should be defined out of the tool (by end user) diff --git a/tests/caf/driver/A9 b/tests/caf/driver/A9 index 96603c1413..d886efac6f 100755 --- a/tests/caf/driver/A9 +++ b/tests/caf/driver/A9 @@ -1,5 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" - #1 - create Box using short-cut NewCommand D AddDriver D Box; ## add box driver to driver table diff --git a/tests/caf/driver/B1 b/tests/caf/driver/B1 index d97f1c2646..39427fdcdc 100755 --- a/tests/caf/driver/B1 +++ b/tests/caf/driver/B1 @@ -1,4 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" AddDriver D Box Cyl Sph Attach XAttach PTxyz PTALine PRLine PMirr Cut Fuse Prism FulRevol SecRevol Fillet #1 Create Box diff --git a/tests/caf/driver/B2 b/tests/caf/driver/B2 index 87dde28621..c2e5f9507a 100755 --- a/tests/caf/driver/B2 +++ b/tests/caf/driver/B2 @@ -1,4 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" #1 - create Box using short-cut NewCommand D AddDriver D Box; ## add box driver to driver table diff --git a/tests/caf/driver/B3 b/tests/caf/driver/B3 index 66151e80e5..a939afa561 100755 --- a/tests/caf/driver/B3 +++ b/tests/caf/driver/B3 @@ -1,5 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" - #1 - create Box using short-cut NewCommand D AddDriver D Box; ## add box driver to driver table diff --git a/tests/caf/driver/B4 b/tests/caf/driver/B4 index fcd3fa1f0b..bbc49bd626 100755 --- a/tests/caf/driver/B4 +++ b/tests/caf/driver/B4 @@ -1,5 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" - #Drivers' nick-names: #Box|Sph|Cyl|Cut|Fuse|Prism|SecRevol|FulRevol|PTxyz|PTALine|PRLine|PMirr|Fillet|Attach|XAttach # order of functions recomputation should be defined out of the tool (by end user) diff --git a/tests/caf/driver/B5 b/tests/caf/driver/B5 index a1ba23cc29..078ce1a05b 100755 --- a/tests/caf/driver/B5 +++ b/tests/caf/driver/B5 @@ -1,4 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" #1 - create 4 Pnts NewCommand D AddDriver D PntXYZ PntRLT Line3D Attach; diff --git a/tests/caf/driver/B6 b/tests/caf/driver/B6 index bc2e30fa0c..7087686b5d 100755 --- a/tests/caf/driver/B6 +++ b/tests/caf/driver/B6 @@ -1,5 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" -puts "TODO ?CR23788 ALL: DNaming_SolveFlatFrom: Driver failed" #1 - create 4 Pnts NewCommand D AddDriver D PntXYZ PntRLT Line3D Attach; diff --git a/tests/caf/driver/B7 b/tests/caf/driver/B7 index 658fef3dfa..2210375b28 100755 --- a/tests/caf/driver/B7 +++ b/tests/caf/driver/B7 @@ -1,4 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" #1 - create 4 Pnts NewCommand D AddDriver D PntXYZ PntRLT Line3D Attach; diff --git a/tests/caf/named_shape/E1 b/tests/caf/named_shape/E1 index 2729ae6672..c36b93e0f5 100755 --- a/tests/caf/named_shape/E1 +++ b/tests/caf/named_shape/E1 @@ -1,5 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" - # ============= OCAF ============================ # Naming # diff --git a/tests/caf/named_shape/E2 b/tests/caf/named_shape/E2 index 0fa9ef8841..30691cd6e0 100755 --- a/tests/caf/named_shape/E2 +++ b/tests/caf/named_shape/E2 @@ -1,5 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" - # =================== OCAF ====================== # Naming # diff --git a/tests/caf/named_shape/E3 b/tests/caf/named_shape/E3 index 47f94a6963..c752b15efc 100755 --- a/tests/caf/named_shape/E3 +++ b/tests/caf/named_shape/E3 @@ -1,5 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" - # =================== OCAF ====================== # Naming # diff --git a/tests/caf/named_shape/E4 b/tests/caf/named_shape/E4 index c25cf38595..ee82d1a9cc 100755 --- a/tests/caf/named_shape/E4 +++ b/tests/caf/named_shape/E4 @@ -1,5 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" - # =================== OCAF ====================== # Naming # diff --git a/tests/caf/named_shape/E5 b/tests/caf/named_shape/E5 index ff39ced69b..62b506a7ca 100755 --- a/tests/caf/named_shape/E5 +++ b/tests/caf/named_shape/E5 @@ -1,5 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" - # =================== OCAF ====================== # Naming # diff --git a/tests/caf/named_shape/E6 b/tests/caf/named_shape/E6 index eb4a661d91..ec81f8981e 100755 --- a/tests/caf/named_shape/E6 +++ b/tests/caf/named_shape/E6 @@ -1,5 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" - # =================== OCAF ====================== # Naming # diff --git a/tests/caf/named_shape/E7 b/tests/caf/named_shape/E7 index 4bbb313438..7a0e2ac99f 100755 --- a/tests/caf/named_shape/E7 +++ b/tests/caf/named_shape/E7 @@ -1,5 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" - # =================== OCAF ====================== # Naming # diff --git a/tests/caf/named_shape/E8 b/tests/caf/named_shape/E8 index 3f276eec39..a8d6864fe2 100755 --- a/tests/caf/named_shape/E8 +++ b/tests/caf/named_shape/E8 @@ -1,5 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" - # =================== OCAF ====================== # Naming # diff --git a/tests/caf/named_shape/E9 b/tests/caf/named_shape/E9 index 1dffcfebe8..1223e9d578 100755 --- a/tests/caf/named_shape/E9 +++ b/tests/caf/named_shape/E9 @@ -1,5 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" - # ============= OCAF ============================ # Naming # diff --git a/tests/caf/named_shape/F1 b/tests/caf/named_shape/F1 index 5add70d973..aced514bb1 100755 --- a/tests/caf/named_shape/F1 +++ b/tests/caf/named_shape/F1 @@ -1,5 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" - # ============= OCAF ============================ # Naming # diff --git a/tests/caf/named_shape/F2 b/tests/caf/named_shape/F2 index 831631d5dc..d38957ad4d 100755 --- a/tests/caf/named_shape/F2 +++ b/tests/caf/named_shape/F2 @@ -1,5 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" - # ============= OCAF ============================ # Naming # diff --git a/tests/caf/named_shape/F3 b/tests/caf/named_shape/F3 index ec21d6b350..74733f9783 100755 --- a/tests/caf/named_shape/F3 +++ b/tests/caf/named_shape/F3 @@ -1,5 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" - # ============= OCAF ============================ # Naming # diff --git a/tests/caf/named_shape/F4 b/tests/caf/named_shape/F4 index 2c55479673..8f39e59b87 100755 --- a/tests/caf/named_shape/F4 +++ b/tests/caf/named_shape/F4 @@ -1,5 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" - # =================== OCAF ====================== # Naming # diff --git a/tests/caf/named_shape/F5 b/tests/caf/named_shape/F5 index d3cb14a425..347a550c8c 100755 --- a/tests/caf/named_shape/F5 +++ b/tests/caf/named_shape/F5 @@ -1,5 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" - # =================== OCAF ====================== # Naming # diff --git a/tests/caf/named_shape/F6 b/tests/caf/named_shape/F6 index c52ccef8f7..1e3c83d3b1 100755 --- a/tests/caf/named_shape/F6 +++ b/tests/caf/named_shape/F6 @@ -1,5 +1,3 @@ -puts "TODO ?CR23788 ALL: Failed units" - # =================== OCAF ====================== # Naming #