#include <IGESToBRep.hxx>
#include <IGESToBRep_AlgoContainer.hxx>
#include <IGESToBRep_ToolContainer.hxx>
+#include <BRepBuilderAPI_Transform.hxx>
//=======================================================================
//function : IGESToBRep_TopoCurve
}
IGESToBRep_BasicCurve BC(*this);
-
// 14.05.2009 skl for OCC21131
BC.SetModeTransfer(Standard_False);
-
Handle(Geom_Curve) C = BC.TransferBasicCurve(start);
if (C.IsNull()) {
// BRep_Builder B;
// B.UpdateVertex (V1, epsgeom);
// B.UpdateVertex (V2, epsgeom);
-
-/* 14.05.2009 skl for OCC21131
- if (start->HasTransf()) {
+ // 14.05.2009 skl for OCC21131
+ // 15.03.2011 emv for OCC22294 begin
+ Standard_Boolean bIsNeedTransf = start->IsKind(STANDARD_TYPE(IGESGeom_SplineCurve));
+ if (start->HasTransf() && bIsNeedTransf) {
gp_Trsf T;
SetEpsilon(1.E-04);
if (IGESData_ToolLocation::ConvertLocation
- (GetEpsilon(),start->CompoundLocation(),T, GetUnitFactor())) {
- TopLoc_Location L(T);
- myshape.Move(L);
+ (GetEpsilon(),start->CompoundLocation(),T, GetUnitFactor())) {
+ //TopLoc_Location L(T);
+ BRepBuilderAPI_Transform trf(T);
+ trf.Perform(myshape);
+ if (trf.IsDone()){
+ myshape = trf.Shape();
+ }
+ //myshape.Move(L);
}
else {
Message_Msg Msg1035("IGES_1035");
}
//AddWarning(start, "Transformation skipped (not a similarity)");
}
-*/
+ //15.03.2011 emv for OCC22294 end
// debug mjm du 26/07/96 en attendant developpement meilleur
// sur traitement des Wire et non des Edge dans les programmes appelant