mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-03 17:56:21 +03:00
0032731: Data Exchange, Step Import - Incorrect PMI text location
Added new complex Entity for representation of PMI Added moving the presentation with new entity
This commit is contained in:
parent
0b6a0adb3a
commit
e1f5ac2c9b
@ -529,6 +529,8 @@
|
||||
#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>
|
||||
@ -1088,6 +1090,8 @@
|
||||
#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>
|
||||
@ -5890,7 +5894,13 @@ void RWStepAP214_GeneralModule::FillSharedCase(const Standard_Integer CN,
|
||||
tool.Share(anent, iter);
|
||||
}
|
||||
break;
|
||||
|
||||
case 802:
|
||||
{
|
||||
DeclareAndCast(StepVisual_RepositionedTessellatedGeometricSet, anEnt, ent);
|
||||
RWStepVisual_RWRepositionedTessellatedGeometricSet aTool;
|
||||
aTool.Share(anEnt, iter);
|
||||
break;
|
||||
}
|
||||
default : break;
|
||||
}
|
||||
}
|
||||
@ -8146,6 +8156,12 @@ Standard_Boolean RWStepAP214_GeneralModule::NewVoid
|
||||
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;
|
||||
@ -8826,6 +8842,8 @@ Standard_Integer RWStepAP214_GeneralModule::CategoryNumber
|
||||
case 798: return cataux;
|
||||
case 800: return catsh;
|
||||
case 801: return cataux;
|
||||
case 802: return cataux;
|
||||
case 803: return cataux;
|
||||
default : break;
|
||||
}
|
||||
return 0;
|
||||
|
@ -258,6 +258,8 @@ IMPLEMENT_STANDARD_RTTIEXT(RWStepAP214_ReadWriteModule,StepData_ReadWriteModule)
|
||||
#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>
|
||||
@ -654,6 +656,8 @@ IMPLEMENT_STANDARD_RTTIEXT(RWStepAP214_ReadWriteModule,StepData_ReadWriteModule)
|
||||
#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>
|
||||
@ -2205,6 +2209,8 @@ static TCollection_AsciiString Reco_AnnotationPlane("ANNOTATION_PLANE");
|
||||
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");
|
||||
@ -3035,6 +3041,7 @@ RWStepAP214_ReadWriteModule::RWStepAP214_ReadWriteModule ()
|
||||
typenums.Bind(Reco_LinearFlexibleLinkRepresentation, 798);
|
||||
typenums.Bind(Reco_KinematicPair, 799);
|
||||
typenums.Bind(Reco_MechanismStateRepresentation, 801);
|
||||
typenums.Bind(Reco_RepositionedTessellatedItem, 803);
|
||||
|
||||
|
||||
// SHORT NAMES
|
||||
@ -3827,13 +3834,22 @@ Standard_Integer RWStepAP214_ReadWriteModule::CaseStep
|
||||
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))) &&
|
||||
@ -4903,6 +4919,7 @@ const TCollection_AsciiString& RWStepAP214_ReadWriteModule::StepType
|
||||
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;
|
||||
@ -4996,7 +5013,7 @@ const TCollection_AsciiString& RWStepAP214_ReadWriteModule::StepType
|
||||
case 798: return Reco_LinearFlexibleLinkRepresentation;
|
||||
case 799: return Reco_KinematicPair;
|
||||
case 801: return Reco_MechanismStateRepresentation;
|
||||
|
||||
case 803: return Reco_RepositionedTessellatedItem;
|
||||
default : return PasReco;
|
||||
}
|
||||
}
|
||||
@ -5327,6 +5344,13 @@ Standard_Boolean RWStepAP214_ReadWriteModule::ComplexType(const Standard_Integer
|
||||
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;
|
||||
@ -10473,6 +10497,20 @@ void RWStepAP214_ReadWriteModule::ReadStep(const Standard_Integer CN,
|
||||
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");
|
||||
@ -15896,7 +15934,20 @@ void RWStepAP214_ReadWriteModule::WriteStep(const Standard_Integer CN,
|
||||
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;
|
||||
}
|
||||
|
@ -106,6 +106,10 @@ RWStepVisual_RWPresentationView.cxx
|
||||
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
|
||||
|
@ -0,0 +1,99 @@
|
||||
// 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());
|
||||
}
|
@ -0,0 +1,50 @@
|
||||
// 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
|
@ -0,0 +1,58 @@
|
||||
// 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());
|
||||
}
|
@ -0,0 +1,46 @@
|
||||
// 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
|
@ -204,6 +204,7 @@
|
||||
#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>
|
||||
@ -1868,6 +1869,25 @@ Standard_Boolean readPMIPresentation(const Handle(Standard_Transient)& thePresen
|
||||
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;
|
||||
@ -1913,7 +1933,7 @@ Standard_Boolean readPMIPresentation(const Handle(Standard_Transient)& thePresen
|
||||
}
|
||||
aB.Add(aComp, aCurW);
|
||||
}
|
||||
anAnnotationShape = aComp;
|
||||
anAnnotationShape = aComp.Moved(aTransf);
|
||||
}
|
||||
if (!anAnnotationShape.IsNull())
|
||||
{
|
||||
|
@ -738,6 +738,8 @@ static Standard_CString schemaAP242DIS = "AP242_MANAGED_MODEL_BASED_3D_ENGINEERI
|
||||
#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>
|
||||
@ -1626,6 +1628,8 @@ StepAP214_Protocol::StepAP214_Protocol ()
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -197,6 +197,10 @@ StepVisual_PresentedItemRepresentation.cxx
|
||||
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
|
||||
|
@ -0,0 +1,30 @@
|
||||
// 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;
|
||||
}
|
@ -0,0 +1,50 @@
|
||||
// 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
|
29
src/StepVisual/StepVisual_RepositionedTessellatedItem.cxx
Normal file
29
src/StepVisual/StepVisual_RepositionedTessellatedItem.cxx
Normal file
@ -0,0 +1,29 @@
|
||||
// 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;
|
||||
}
|
49
src/StepVisual/StepVisual_RepositionedTessellatedItem.hxx
Normal file
49
src/StepVisual/StepVisual_RepositionedTessellatedItem.hxx
Normal file
@ -0,0 +1,49 @@
|
||||
// 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
|
17
tests/bugs/step/bug32731
Normal file
17
tests/bugs/step/bug32731
Normal file
@ -0,0 +1,17 @@
|
||||
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
|
Loading…
x
Reference in New Issue
Block a user