#include <RWStepVisual_RWPresentationStyleByContext.hxx>
#include <RWStepVisual_RWPresentationView.hxx>
#include <RWStepVisual_RWPresentedItemRepresentation.hxx>
+#include <RWStepVisual_RWRepositionedTessellatedGeometricSet.hxx>
+#include <RWStepVisual_RWRepositionedTessellatedItem.hxx>
#include <RWStepVisual_RWStyledItem.hxx>
#include <RWStepVisual_RWSurfaceSideStyle.hxx>
#include <RWStepVisual_RWSurfaceStyleBoundary.hxx>
#include <StepVisual_PresentationStyleByContext.hxx>
#include <StepVisual_PresentationView.hxx>
#include <StepVisual_PresentedItemRepresentation.hxx>
+#include <StepVisual_RepositionedTessellatedGeometricSet.hxx>
+#include <StepVisual_RepositionedTessellatedItem.hxx>
#include <StepVisual_StyledItem.hxx>
#include <StepVisual_SurfaceSideStyle.hxx>
#include <StepVisual_SurfaceStyleBoundary.hxx>
tool.Share(anent, iter);
}
break;
-
+ case 802:
+ {
+ DeclareAndCast(StepVisual_RepositionedTessellatedGeometricSet, anEnt, ent);
+ RWStepVisual_RWRepositionedTessellatedGeometricSet aTool;
+ aTool.Share(anEnt, iter);
+ break;
+ }
default : break;
}
}
case 801:
ent = new StepKinematics_MechanismStateRepresentation;
break;
+ case 802:
+ ent = new StepVisual_RepositionedTessellatedGeometricSet;
+ break;
+ case 803:
+ ent = new StepVisual_RepositionedTessellatedItem;
+ break;
default:
return Standard_False;
case 798: return cataux;
case 800: return catsh;
case 801: return cataux;
+ case 802: return cataux;
+ case 803: return cataux;
default : break;
}
return 0;
#include <StepVisual_PresentationStyleAssignment.hxx>
#include <StepVisual_PresentationStyleByContext.hxx>
#include <StepVisual_PresentationView.hxx>
+#include <StepVisual_RepositionedTessellatedGeometricSet.hxx>
+#include <StepVisual_RepositionedTessellatedItem.hxx>
#include <StepBasic_Product.hxx>
#include <StepBasic_ProductCategory.hxx>
#include <StepBasic_ProductContext.hxx>
#include <RWStepVisual_RWPresentationStyleAssignment.hxx>
#include <RWStepVisual_RWPresentationStyleByContext.hxx>
#include <RWStepVisual_RWPresentationView.hxx>
+#include <RWStepVisual_RWRepositionedTessellatedGeometricSet.hxx>
+#include <RWStepVisual_RWRepositionedTessellatedItem.hxx>
#include <RWStepBasic_RWProduct.hxx>
#include <RWStepBasic_RWProductCategory.hxx>
#include <RWStepBasic_RWProductContext.hxx>
static TCollection_AsciiString Reco_TessellatedAnnotationOccurrence("TESSELLATED_ANNOTATION_OCCURRENCE");
static TCollection_AsciiString Reco_TessellatedGeometricSet("TESSELLATED_GEOMETRIC_SET");
static TCollection_AsciiString Reco_TessellatedCurveSet("TESSELLATED_CURVE_SET");
+static TCollection_AsciiString Reco_TessellatedItem("TESSELLATED_ITEM");
+static TCollection_AsciiString Reco_RepositionedTessellatedItem("REPOSITIONED_TESSELLATED_ITEM");
static TCollection_AsciiString Reco_CoordinatesList("COORDINATES_LIST");
static TCollection_AsciiString Reco_ConstructiveGeometryRepresentation("CONSTRUCTIVE_GEOMETRY_REPRESENTATION");
static TCollection_AsciiString Reco_ConstructiveGeometryRepresentationRelationship("CONSTRUCTIVE_GEOMETRY_REPRESENTATION_RELATIONSHIP");
typenums.Bind(Reco_LinearFlexibleLinkRepresentation, 798);
typenums.Bind(Reco_KinematicPair, 799);
typenums.Bind(Reco_MechanismStateRepresentation, 801);
+ typenums.Bind(Reco_RepositionedTessellatedItem, 803);
// SHORT NAMES
types(5).IsEqual(StepType(624))))) {
return 705;
}
- if ((types(1).IsEqual(StepType(4))) &&
+ else if ((types(1).IsEqual(StepType(4))) &&
(types(2).IsEqual(StepType(7))) &&
(types(3).IsEqual(StepType(144))) &&
(types(4).IsEqual(StepType(247))) &&
- (types(5).IsEqual(StepType(270)))) {
+ (types(5).IsEqual(StepType(270))))
+ {
return 719;
}
+ else if ((types(1).IsEqual(StepType(144))) &&
+ (types(2).IsEqual(StepType(803))) &&
+ (types(3).IsEqual(StepType(247))) &&
+ (types(4).IsEqual(StepType(709))) &&
+ (types(5).IsEqual(StepType(708))))
+ {
+ return 802;
+ }
}
else if (NbComp == 4) {
if ((types(1).IsEqual(StepType(161))) &&
case 704: return Reco_AnnotationPlane;
case 707 : return Reco_TessellatedAnnotationOccurrence;
+ case 708 : return Reco_TessellatedItem;
case 709 : return Reco_TessellatedGeometricSet;
case 710 : return Reco_TessellatedCurveSet;
case 798: return Reco_LinearFlexibleLinkRepresentation;
case 799: return Reco_KinematicPair;
case 801: return Reco_MechanismStateRepresentation;
-
+ case 803: return Reco_RepositionedTessellatedItem;
default : return PasReco;
}
}
types.Append(StepType(759));
types.Append(StepType(247));
break;
+ case 802:
+ types.Append(StepType(144));
+ types.Append(StepType(803));
+ types.Append(StepType(247));
+ types.Append(StepType(709));
+ types.Append(StepType(708));
+ break;
default: return Standard_False;
}
return Standard_True;
tool.ReadStep(data, num, ach, anent);
}
break;
+ case 802:
+ {
+ DeclareAndCast(StepVisual_RepositionedTessellatedGeometricSet, anEnt, ent);
+ RWStepVisual_RWRepositionedTessellatedGeometricSet aTool;
+ aTool.ReadStep(data, num, ach, anEnt);
+ break;
+ }
+ case 803:
+ {
+ DeclareAndCast(StepVisual_RepositionedTessellatedItem, anEnt, ent);
+ RWStepVisual_RWRepositionedTessellatedItem aTool;
+ aTool.ReadStep(data, num, ach, anEnt);
+ break;
+ }
default:
ach->AddFail("Type Mismatch when reading - Entity");
tool.WriteStep(SW, anent);
}
break;
-
+ case 802:
+ {
+ DeclareAndCast(StepVisual_RepositionedTessellatedGeometricSet, anEnt, ent);
+ RWStepVisual_RWRepositionedTessellatedGeometricSet aTool;
+ aTool.WriteStep(SW, anEnt);
+ break;
+ }
+ case 803:
+ {
+ DeclareAndCast(StepVisual_RepositionedTessellatedItem, anEnt, ent);
+ RWStepVisual_RWRepositionedTessellatedItem aTool;
+ aTool.WriteStep(SW, anEnt);
+ break;
+ }
default:
return;
}
RWStepVisual_RWPresentationView.hxx
RWStepVisual_RWPresentedItemRepresentation.cxx
RWStepVisual_RWPresentedItemRepresentation.hxx
+RWStepVisual_RWRepositionedTessellatedGeometricSet.cxx
+RWStepVisual_RWRepositionedTessellatedGeometricSet.hxx
+RWStepVisual_RWRepositionedTessellatedItem.cxx
+RWStepVisual_RWRepositionedTessellatedItem.hxx
RWStepVisual_RWStyledItem.cxx
RWStepVisual_RWStyledItem.hxx
RWStepVisual_RWSurfaceSideStyle.cxx
--- /dev/null
+// Copyright (c) 2022 OPEN CASCADE SAS
+//
+// This file is part of Open CASCADE Technology software library.
+//
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License version 2.1 as published
+// by the Free Software Foundation, with special exception defined in the file
+// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
+// distribution for complete text of the license and disclaimer of any warranty.
+//
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
+
+#include <RWStepVisual_RWRepositionedTessellatedGeometricSet.hxx>
+
+#include <Interface_Check.hxx>
+#include <Interface_EntityIterator.hxx>
+#include <StepData_StepReaderData.hxx>
+#include <StepData_StepWriter.hxx>
+#include <StepRepr_RepresentationItem.hxx>
+#include <StepVisual_HArray1OfPresentationStyleAssignment.hxx>
+#include <StepVisual_PresentationStyleAssignment.hxx>
+#include <StepVisual_RepositionedTessellatedGeometricSet.hxx>
+#include <StepGeom_Axis2Placement3d.hxx>
+
+//=======================================================================
+//function : ReadStep
+//purpose :
+//=======================================================================
+void RWStepVisual_RWRepositionedTessellatedGeometricSet::ReadStep
+ (const Handle(StepData_StepReaderData)& theData,
+ const Standard_Integer theNum,
+ Handle(Interface_Check)& theAch,
+ const Handle(StepVisual_RepositionedTessellatedGeometricSet)& theEnt) const
+{
+ Standard_Integer aNum = 0;
+ theData->NamedForComplex("REPOSITIONED_TESSELLATED_ITEM", theNum, aNum, theAch);
+ if (!theData->CheckNbParams(aNum, 1, theAch, "location"))
+ return;
+ Handle(StepGeom_Axis2Placement3d) aLocation;
+ theData->ReadEntity(aNum,1,"location",theAch,STANDARD_TYPE(StepGeom_Axis2Placement3d), aLocation);
+
+ theData->NamedForComplex("REPRESENTATION_ITEM", theNum, aNum, theAch);
+ if (!theData->CheckNbParams(aNum, 1, theAch, "name"))
+ return;
+ Handle(TCollection_HAsciiString) aName;
+ theData->ReadString (aNum, 1, "name", theAch, aName);
+
+ theData->NamedForComplex("TESSELLATED_GEOMETRIC_SET", theNum, aNum, theAch);
+ NCollection_Handle<StepVisual_Array1OfTessellatedItem> anItems;
+ Standard_Integer aNSub2;
+ if (theData->ReadSubList (aNum,1,"items",theAch,aNSub2)) {
+ Standard_Integer aNb2 = theData->NbParams(aNSub2);
+ anItems = new StepVisual_Array1OfTessellatedItem(1, aNb2);
+ for (Standard_Integer i2 = 1; i2 <= aNb2; i2 ++) {
+ Handle(StepVisual_TessellatedItem) anItem;
+ if (theData->ReadEntity (aNSub2,i2,"item",theAch,STANDARD_TYPE(StepVisual_TessellatedItem), anItem))
+ anItems->SetValue(i2,anItem);
+ }
+ }
+ theEnt->Init(aName, anItems, aLocation);
+}
+
+//=======================================================================
+//function : WriteStep
+//purpose :
+//=======================================================================
+void RWStepVisual_RWRepositionedTessellatedGeometricSet::WriteStep
+ (StepData_StepWriter& theSW,
+ const Handle(StepVisual_RepositionedTessellatedGeometricSet)& theEnt) const
+{
+ theSW.StartEntity("GEOMETRIC_REPRESENTATION_ITEM");
+ theSW.StartEntity("REPOSITIONED_TESSELLATED_ITEM");
+ theSW.Send(theEnt->Location());
+ theSW.StartEntity("REPRESENTATION_ITEM");
+ theSW.Send(theEnt->Name());
+ theSW.StartEntity("TESSELLATED_GEOMETRIC_SET");
+ theSW.OpenSub();
+ for(StepVisual_Array1OfTessellatedItem::Iterator anIter(*theEnt->Items());
+ anIter.More(); anIter.Next())
+ {
+ theSW.Send(anIter.Value());
+ }
+ theSW.CloseSub();
+ theSW.StartEntity("TESSELLATED_ITEM");
+}
+
+//=======================================================================
+//function : Share
+//purpose :
+//=======================================================================
+void RWStepVisual_RWRepositionedTessellatedGeometricSet::Share(const Handle(StepVisual_RepositionedTessellatedGeometricSet)& theEnt,
+ Interface_EntityIterator& theIter) const
+{
+ // Own field : children
+ for (Standard_Integer i = 1; i <= theEnt->Items()->Length(); i++)
+ theIter.AddItem(theEnt->Items()->Value(i));
+ theIter.AddItem(theEnt->Location());
+}
--- /dev/null
+// Copyright (c) 2022 OPEN CASCADE SAS
+//
+// This file is part of Open CASCADE Technology software library.
+//
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License version 2.1 as published
+// by the Free Software Foundation, with special exception defined in the file
+// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
+// distribution for complete text of the license and disclaimer of any warranty.
+//
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
+
+#ifndef _RWStepVisual_RWRepositionedTessellatedGeometricSet_HeaderFile
+#define _RWStepVisual_RWRepositionedTessellatedGeometricSet_HeaderFile
+
+#include <Standard_DefineAlloc.hxx>
+#include <Standard_Handle.hxx>
+
+class StepData_StepReaderData;
+class Interface_Check;
+class StepVisual_RepositionedTessellatedGeometricSet;
+class StepData_StepWriter;
+class Interface_EntityIterator;
+
+//! Read & Write tool for complex RepositionedTessellatedGeometricSet
+class RWStepVisual_RWRepositionedTessellatedGeometricSet
+{
+public:
+
+ DEFINE_STANDARD_ALLOC
+
+ //! Empty constructor
+ RWStepVisual_RWRepositionedTessellatedGeometricSet() {};
+
+ //! Reads RepositionedTessellatedGeometricSet
+ Standard_EXPORT void ReadStep (const Handle(StepData_StepReaderData)& theData,
+ const Standard_Integer theNum,
+ Handle(Interface_Check)& theAch,
+ const Handle(StepVisual_RepositionedTessellatedGeometricSet)& theEnt) const;
+
+ //! Writes RepositionedTessellatedGeometricSet
+ Standard_EXPORT void WriteStep (StepData_StepWriter& theSW,
+ const Handle(StepVisual_RepositionedTessellatedGeometricSet)& theEnt) const;
+
+ //! Fills data for graph (shared items)
+ Standard_EXPORT void Share (const Handle(StepVisual_RepositionedTessellatedGeometricSet)& theEnt,
+ Interface_EntityIterator& theIter) const;
+};
+#endif // _RWStepVisual_RWRepositionedTessellatedGeometricSet_HeaderFile
--- /dev/null
+// Copyright (c) 2022 OPEN CASCADE SAS
+//
+// This file is part of Open CASCADE Technology software library.
+//
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License version 2.1 as published
+// by the Free Software Foundation, with special exception defined in the file
+// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
+// distribution for complete text of the license and disclaimer of any warranty.
+//
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
+
+#include <RWStepVisual_RWRepositionedTessellatedItem.hxx>
+
+#include <Interface_Check.hxx>
+#include <StepData_StepReaderData.hxx>
+#include <StepData_StepWriter.hxx>
+#include <StepVisual_RepositionedTessellatedItem.hxx>
+#include <StepGeom_Axis2Placement3d.hxx>
+
+//=======================================================================
+//function : ReadStep
+//purpose :
+//=======================================================================
+void RWStepVisual_RWRepositionedTessellatedItem::ReadStep
+ (const Handle(StepData_StepReaderData)& theData,
+ const Standard_Integer theNum,
+ Handle(Interface_Check)& theAch,
+ const Handle(StepVisual_RepositionedTessellatedItem)& theEnt) const
+{
+ // --- Number of Parameter Control ---
+ if (!theData->CheckNbParams(theNum,2,theAch,"tessellated_item"))
+ return;
+
+ // --- inherited field : name ---
+ Handle(TCollection_HAsciiString) aName;
+ theData->ReadString (theNum,1,"name",theAch,aName);
+ // --- inherited field : location ---
+ Handle(StepGeom_Axis2Placement3d) aLocation;
+ theData->ReadEntity(theNum,2,"location", theAch, STANDARD_TYPE(StepGeom_Axis2Placement3d),aLocation);
+
+ //--- Initialisation of the read entity ---
+ theEnt->Init(aName, aLocation);
+}
+
+//=======================================================================
+//function : WriteStep
+//purpose :
+//=======================================================================
+void RWStepVisual_RWRepositionedTessellatedItem::WriteStep
+ (StepData_StepWriter& theSW,
+ const Handle(StepVisual_RepositionedTessellatedItem)& theEnt) const
+{
+ // --- inherited field name ---
+ theSW.Send(theEnt->Name());
+ theSW.Send(theEnt->Location());
+}
--- /dev/null
+// Copyright (c) 2022 OPEN CASCADE SAS
+//
+// This file is part of Open CASCADE Technology software library.
+//
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License version 2.1 as published
+// by the Free Software Foundation, with special exception defined in the file
+// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
+// distribution for complete text of the license and disclaimer of any warranty.
+//
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
+
+#ifndef _RWStepVisual_RWRepositionedTessellatedItem_HeaderFile
+#define _RWStepVisual_RWRepositionedTessellatedItem_HeaderFile
+
+#include <Standard.hxx>
+#include <Standard_DefineAlloc.hxx>
+#include <Standard_Handle.hxx>
+
+class StepData_StepReaderData;
+class Interface_Check;
+class StepVisual_RepositionedTessellatedItem;
+class StepData_StepWriter;
+
+//! Read & Write tool for RepositionedTessellatedItem
+class RWStepVisual_RWRepositionedTessellatedItem
+{
+public:
+
+ DEFINE_STANDARD_ALLOC
+
+ //! Empty constructor
+ RWStepVisual_RWRepositionedTessellatedItem() {};
+
+ //! Reads RepositionedTessellatedItem
+ Standard_EXPORT void ReadStep (const Handle(StepData_StepReaderData)& theData,
+ const Standard_Integer theNum,
+ Handle(Interface_Check)& theAch,
+ const Handle(StepVisual_RepositionedTessellatedItem)& theEnt) const;
+
+ //! Writes RepositionedTessellatedItem
+ Standard_EXPORT void WriteStep (StepData_StepWriter& theSW,
+ const Handle(StepVisual_RepositionedTessellatedItem)& theEnt) const;
+};
+#endif // _RWStepVisual_RWRepositionedTessellatedItem_HeaderFile
#include <StepVisual_PlanarBox.hxx>
#include <StepVisual_PresentationLayerAssignment.hxx>
#include <StepVisual_PresentationStyleByContext.hxx>
+#include <StepVisual_RepositionedTessellatedGeometricSet.hxx>
#include <StepVisual_StyleContextSelect.hxx>
#include <StepVisual_StyledItem.hxx>
#include <StepVisual_ViewVolume.hxx>
Handle(StepVisual_TessellatedGeometricSet) aTessSet = Handle(StepVisual_TessellatedGeometricSet)::DownCast(aTessItem);
if (aTessSet.IsNull())
continue;
+ gp_Trsf aTransf;
+ if (aTessSet->IsKind(STANDARD_TYPE(StepVisual_RepositionedTessellatedGeometricSet)))
+ {
+ Handle(StepVisual_RepositionedTessellatedGeometricSet) aRTGS =
+ Handle(StepVisual_RepositionedTessellatedGeometricSet)::DownCast(aTessSet);
+ Handle(Geom_Axis2Placement) aLocation = StepToGeom::MakeAxis2Placement(aRTGS->Location());
+ if (!aLocation.IsNull())
+ {
+ const gp_Ax3 anAx3Orig = gp::XOY();
+ const gp_Ax3 anAx3Targ(aLocation->Ax2());
+ if (anAx3Targ.Location().SquareDistance(anAx3Orig.Location()) >= Precision::SquareConfusion() ||
+ !anAx3Targ.Direction().IsEqual(anAx3Orig.Direction(), Precision::Angular()) ||
+ !anAx3Targ.XDirection().IsEqual(anAx3Orig.XDirection(), Precision::Angular()) ||
+ !anAx3Targ.YDirection().IsEqual(anAx3Orig.YDirection(), Precision::Angular()))
+ {
+ aTransf.SetTransformation(anAx3Targ, anAx3Orig);
+ }
+ }
+ }
NCollection_Handle<StepVisual_Array1OfTessellatedItem> aListItems = aTessSet->Items();
Standard_Integer nb = aListItems.IsNull() ? 0 : aListItems->Length();
Handle(StepVisual_TessellatedCurveSet) aTessCurve;
}
aB.Add(aComp, aCurW);
}
- anAnnotationShape = aComp;
+ anAnnotationShape = aComp.Moved(aTransf);
}
if (!anAnnotationShape.IsNull())
{
#include <StepVisual_TessellatedItem.hxx>
#include <StepVisual_TessellatedGeometricSet.hxx>
#include <StepVisual_TessellatedCurveSet.hxx>
+#include <StepVisual_RepositionedTessellatedGeometricSet.hxx>
+#include <StepVisual_RepositionedTessellatedItem.hxx>
#include <StepVisual_CoordinatesList.hxx>
#include <StepRepr_CharacterizedRepresentation.hxx>
#include <StepRepr_ConstructiveGeometryRepresentation.hxx>
types.Bind(STANDARD_TYPE(StepKinematics_LinearFlexibleLinkRepresentation), 798);
types.Bind(STANDARD_TYPE(StepKinematics_ActuatedKinPairAndOrderKinPair), 800);
types.Bind(STANDARD_TYPE(StepKinematics_MechanismStateRepresentation), 801);
+ types.Bind(STANDARD_TYPE(StepVisual_RepositionedTessellatedGeometricSet), 802);
+ types.Bind(STANDARD_TYPE(StepVisual_RepositionedTessellatedItem), 803);
}
StepVisual_PresentedItemRepresentation.hxx
StepVisual_RenderingPropertiesSelect.cxx
StepVisual_RenderingPropertiesSelect.hxx
+StepVisual_RepositionedTessellatedGeometricSet.hxx
+StepVisual_RepositionedTessellatedGeometricSet.cxx
+StepVisual_RepositionedTessellatedItem.hxx
+StepVisual_RepositionedTessellatedItem.cxx
StepVisual_ShadingSurfaceMethod.hxx
StepVisual_StyleContextSelect.cxx
StepVisual_StyleContextSelect.hxx
--- /dev/null
+// Copyright (c) 2022 OPEN CASCADE SAS
+//
+// This file is part of Open CASCADE Technology software library.
+//
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License version 2.1 as published
+// by the Free Software Foundation, with special exception defined in the file
+// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
+// distribution for complete text of the license and disclaimer of any warranty.
+//
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
+
+#include <StepVisual_RepositionedTessellatedGeometricSet.hxx>
+
+#include <StepGeom_Axis2Placement3d.hxx>
+
+IMPLEMENT_STANDARD_RTTIEXT(StepVisual_RepositionedTessellatedGeometricSet, StepVisual_TessellatedGeometricSet)
+
+//=======================================================================
+//function : Init
+//purpose :
+//=======================================================================
+void StepVisual_RepositionedTessellatedGeometricSet::Init(const Handle(TCollection_HAsciiString)& theName,
+ const NCollection_Handle<StepVisual_Array1OfTessellatedItem>& theItems,
+ const Handle(StepGeom_Axis2Placement3d)& theLocation)
+{
+ StepVisual_TessellatedGeometricSet::Init(theName, theItems);
+ myLocation = theLocation;
+}
--- /dev/null
+// Copyright (c) 2022 OPEN CASCADE SAS
+//
+// This file is part of Open CASCADE Technology software library.
+//
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License version 2.1 as published
+// by the Free Software Foundation, with special exception defined in the file
+// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
+// distribution for complete text of the license and disclaimer of any warranty.
+//
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
+
+#ifndef _StepVisual_RepositionedTessellatedGeometricSet_HeaderFile
+#define _StepVisual_RepositionedTessellatedGeometricSet_HeaderFile
+
+#include <StepVisual_TessellatedGeometricSet.hxx>
+
+class StepGeom_Axis2Placement3d;
+
+DEFINE_STANDARD_HANDLE(StepVisual_RepositionedTessellatedGeometricSet, StepVisual_TessellatedGeometricSet)
+
+//! Representation of complex STEP entity RepositionedTessellatedGeometricSet
+class StepVisual_RepositionedTessellatedGeometricSet : public StepVisual_TessellatedGeometricSet
+{
+public:
+
+ DEFINE_STANDARD_ALLOC
+
+ DEFINE_STANDARD_RTTIEXT(StepVisual_RepositionedTessellatedGeometricSet, StepVisual_TessellatedGeometricSet)
+
+ //! Default constructor
+ StepVisual_RepositionedTessellatedGeometricSet() {};
+
+ //! Initialize all fields (own and inherited)
+ Standard_EXPORT void Init(const Handle(TCollection_HAsciiString)& theName,
+ const NCollection_Handle<StepVisual_Array1OfTessellatedItem>& theItems,
+ const Handle(StepGeom_Axis2Placement3d)& theLocation);
+
+ //! Returns location
+ Handle(StepGeom_Axis2Placement3d) Location() const { return myLocation; }
+
+ //! Sets location
+ void SetLocation(const Handle(StepGeom_Axis2Placement3d)& theLocation) { myLocation = theLocation; }
+
+private:
+
+ Handle(StepGeom_Axis2Placement3d) myLocation;
+};
+#endif // StepVisual_RepositionedTessellatedGeometricSet_HeaderFile
--- /dev/null
+// Copyright (c) 2022 OPEN CASCADE SAS
+//
+// This file is part of Open CASCADE Technology software library.
+//
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License version 2.1 as published
+// by the Free Software Foundation, with special exception defined in the file
+// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
+// distribution for complete text of the license and disclaimer of any warranty.
+//
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
+
+#include <StepVisual_RepositionedTessellatedItem.hxx>
+
+#include <StepGeom_Axis2Placement3d.hxx>
+
+IMPLEMENT_STANDARD_RTTIEXT(StepVisual_RepositionedTessellatedItem, StepVisual_TessellatedItem)
+
+//=======================================================================
+//function : Init
+//purpose :
+//=======================================================================
+void StepVisual_RepositionedTessellatedItem::Init(const Handle(TCollection_HAsciiString)& theName,
+ const Handle(StepGeom_Axis2Placement3d)& theLocation)
+{
+ StepVisual_TessellatedItem::Init(theName);
+ myLocation = theLocation;
+}
--- /dev/null
+// Copyright (c) 2022 OPEN CASCADE SAS
+//
+// This file is part of Open CASCADE Technology software library.
+//
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License version 2.1 as published
+// by the Free Software Foundation, with special exception defined in the file
+// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
+// distribution for complete text of the license and disclaimer of any warranty.
+//
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
+
+#ifndef _StepVisual_RepositionedTessellatedItem_HeaderFile
+#define _StepVisual_RepositionedTessellatedItem_HeaderFile
+
+#include <StepVisual_TessellatedItem.hxx>
+
+class StepGeom_Axis2Placement3d;
+
+DEFINE_STANDARD_HANDLE(StepVisual_RepositionedTessellatedItem, StepVisual_TessellatedItem)
+
+//! Representation of STEP entity RepositionedTessellatedItem
+class StepVisual_RepositionedTessellatedItem : public StepVisual_TessellatedItem
+{
+public:
+
+ DEFINE_STANDARD_RTTIEXT(StepVisual_RepositionedTessellatedItem, StepVisual_TessellatedItem)
+
+ DEFINE_STANDARD_ALLOC
+
+ //! Default constructor
+ StepVisual_RepositionedTessellatedItem() {};
+
+ //! Initialize all fields (own and inherited)
+ Standard_EXPORT void Init(const Handle(TCollection_HAsciiString)& theName,
+ const Handle(StepGeom_Axis2Placement3d)& theLocation);
+
+ //! Returns location
+ Handle(StepGeom_Axis2Placement3d) Location() const { return myLocation; }
+
+ //! Sets location
+ void SetLocation(const Handle(StepGeom_Axis2Placement3d)& theLocation) { myLocation = theLocation; }
+
+private:
+
+ Handle(StepGeom_Axis2Placement3d) myLocation;
+};
+#endif // StepVisual_RepositionedTessellatedItem_HeaderFile
--- /dev/null
+puts "======="
+puts "0032731: Data Exchange, Step Import - Incorrect PMI text location"
+puts "======="
+
+pload OCAF
+
+Close D -silent
+
+# Read file
+ReadStep D [locate_data_file bug32731_A5E46910589A.stp]
+
+#Checking
+XGetShape repr0 D 0:1:4:106:16
+checkgravitycenter repr0 -l -109.847 153.679 0 1e-7
+
+XGetShape repr1 D 0:1:4:56:16
+checkgravitycenter repr1 -l -68.7 123.272 -18.5624 1e-7