- const TopTools_ListOfShape& aLS1=myTransform1->Modified(aS);
- const TopoDS_Shape& aS1=aLS1.First();
- //
- const TopTools_ListOfShape& aLS1B=myBuilder->Generated(aS1);
- aItLS.Initialize(aLS1B);
- for (; aItLS.More(); aItLS.Next()) {
- const TopoDS_Shape& aS1B=aItLS.Value();
- const TopTools_ListOfShape& aLS2B=myTransform2->Modified(aS1B);
- const TopoDS_Shape& aS2B=aLS2B.First();
- pHistShapes->Append(aS2B);
+ if (myToTransform) { //pkv ft
+ const TopTools_ListOfShape& aLS1=myTransform1->Modified(aS);
+ const TopoDS_Shape& aS1=aLS1.First();
+ //
+ const TopTools_ListOfShape& aLS1B=myBuilder->Generated(aS1);
+ if (aLS1B.IsEmpty()) { //pkv ft
+ const TopTools_ListOfShape& aLS2B=myTransform2->Modified(aS1);
+ const TopoDS_Shape& aS2B=aLS2B.First();
+ pHistShapes->Append(aS2B);
+ }
+ else {
+ aItLS.Initialize(aLS1B);
+ for (; aItLS.More(); aItLS.Next()) {
+ const TopoDS_Shape& aS1B=aItLS.Value();
+ const TopTools_ListOfShape& aLS2B=myTransform2->Modified(aS1B);
+ const TopoDS_Shape& aS2B=aLS2B.First();
+ pHistShapes->Append(aS2B);
+ }
+ }
+ }
+ else {
+ const TopTools_ListOfShape& aLS1B=myBuilder->Generated(aS);
+ aItLS.Initialize(aLS1B);
+ for (; aItLS.More(); aItLS.Next()) {
+ const TopoDS_Shape& aS1B=aItLS.Value();
+ pHistShapes->Append(aS1B);
+ }