1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

0028315: Data Exchange - Import/Export GD&Ts without semantic

Implement import/export of Dimensions without semantic.
Add new type of dimension for GDTs with presentation and connecting to shapes.
Update test cases.

Small corrections for issue CR28315
This commit is contained in:
ika
2017-01-19 16:05:09 +03:00
committed by apn
parent 465e686173
commit 1209c1b923
49 changed files with 1095 additions and 425 deletions

View File

@@ -1,5 +1,9 @@
RWStepVisual_RWAnnotationCurveOccurrence.cxx
RWStepVisual_RWAnnotationCurveOccurrence.hxx
RWStepVisual_RWAnnotationFillArea.cxx
RWStepVisual_RWAnnotationFillArea.hxx
RWStepVisual_RWAnnotationFillAreaOccurrence.cxx
RWStepVisual_RWAnnotationFillAreaOccurrence.hxx
RWStepVisual_RWAnnotationOccurrence.cxx
RWStepVisual_RWAnnotationOccurrence.hxx
RWStepVisual_RWAnnotationPlane.cxx

View File

@@ -0,0 +1,98 @@
// Created on: 2016-12-28
// Created by: Irina KRYLOVA
// Copyright (c) 2016 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 <Interface_Check.hxx>
#include <Interface_EntityIterator.hxx>
#include <RWStepVisual_RWAnnotationFillArea.hxx>
#include <StepData_StepReaderData.hxx>
#include <StepData_StepWriter.hxx>
#include <StepVisual_AnnotationFillArea.hxx>
#include <StepShape_GeometricSetSelect.hxx>
#include <StepShape_HArray1OfGeometricSetSelect.hxx>
//=======================================================================
//function : RWStepVisual_RWAnnotationFillArea
//purpose :
//=======================================================================
RWStepVisual_RWAnnotationFillArea::RWStepVisual_RWAnnotationFillArea () {}
//=======================================================================
//function : ReadStep
//purpose :
//=======================================================================
void RWStepVisual_RWAnnotationFillArea::ReadStep
(const Handle(StepData_StepReaderData)& data,
const Standard_Integer num,
Handle(Interface_Check)& ach,
const Handle(StepVisual_AnnotationFillArea)& ent) const
{
// Number of Parameter Control
if (!data->CheckNbParams(num, 2, ach, "annotation_fill_area"))
return;
// Inherited field : name
Handle(TCollection_HAsciiString) aName;
data->ReadString(num, 1, "name", ach, aName);
// Own field : boundaries
Handle(StepShape_HArray1OfGeometricSetSelect) aElements;
StepShape_GeometricSetSelect aElementsItem;
Standard_Integer nsub;
if (data->ReadSubList(num, 2, "boundaries", ach, nsub)) {
Standard_Integer nb = data->NbParams(nsub);
aElements = new StepShape_HArray1OfGeometricSetSelect(1, nb);
for (Standard_Integer i = 1; i <= nb; i++) {
if (data->ReadEntity(nsub, i, "boundaries", ach, aElementsItem))
aElements->SetValue(i, aElementsItem);
}
}
//Initialization of the read entity
ent->Init(aName, aElements);
}
//=======================================================================
//function : WriteStep
//purpose :
//=======================================================================
void RWStepVisual_RWAnnotationFillArea::WriteStep
(StepData_StepWriter& SW,
const Handle(StepVisual_AnnotationFillArea)& ent) const
{
// Inherited field : name
SW.Send(ent->Name());
// Own field : elements
SW.OpenSub();
for (Standard_Integer i = 1; i <= ent->NbElements(); i++) {
SW.Send(ent->ElementsValue(i).Value());
}
SW.CloseSub();
}
//=======================================================================
//function : Share
//purpose :
//=======================================================================
void RWStepVisual_RWAnnotationFillArea::Share(const Handle(StepVisual_AnnotationFillArea)& ent, Interface_EntityIterator& iter) const
{
Standard_Integer nbBound = ent->NbElements();
for (Standard_Integer i = 1; i <= nbBound; i++) {
iter.GetOneItem(ent->ElementsValue(i).Value());
}
}

View File

@@ -0,0 +1,49 @@
// Created on: 2016-12-28
// Created by: Irina KRYLOVA
// Copyright (c) 2016 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_RWAnnotationFillArea_HeaderFile
#define _RWStepVisual_RWAnnotationFillArea_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Integer.hxx>
class StepData_StepReaderData;
class Interface_Check;
class StepVisual_AnnotationFillArea;
class StepData_StepWriter;
class Interface_EntityIterator;
//! Read & Write Module for AnnotationFillArea
class RWStepVisual_RWAnnotationFillArea
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT RWStepVisual_RWAnnotationFillArea();
Standard_EXPORT void ReadStep (const Handle(StepData_StepReaderData)& data, const Standard_Integer num, Handle(Interface_Check)& ach, const Handle(StepVisual_AnnotationFillArea)& ent) const;
Standard_EXPORT void WriteStep (StepData_StepWriter& SW, const Handle(StepVisual_AnnotationFillArea)& ent) const;
Standard_EXPORT void Share (const Handle(StepVisual_AnnotationFillArea)& ent, Interface_EntityIterator& iter) const;
};
#endif // _RWStepVisual_RWAnnotationFillArea_HeaderFile

View File

@@ -0,0 +1,113 @@
// Created on: 2016-12-28
// Created by: Irina KRYLOVA
// Copyright (c) 2016 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 <Interface_Check.hxx>
#include <Interface_EntityIterator.hxx>
#include <RWStepVisual_RWAnnotationFillAreaOccurrence.hxx>
#include <StepData_StepReaderData.hxx>
#include <StepData_StepWriter.hxx>
#include <StepGeom_GeometricRepresentationItem.hxx>
#include <StepVisual_HArray1OfPresentationStyleAssignment.hxx>
#include <StepVisual_PresentationStyleAssignment.hxx>
#include <StepVisual_AnnotationFillAreaOccurrence.hxx>
//=======================================================================
//function : RWStepVisual_RWAnnotationFillAreaOccurrence
//purpose :
//=======================================================================
RWStepVisual_RWAnnotationFillAreaOccurrence::RWStepVisual_RWAnnotationFillAreaOccurrence () {}
//=======================================================================
//function : ReadStep
//purpose :
//=======================================================================
void RWStepVisual_RWAnnotationFillAreaOccurrence::ReadStep
(const Handle(StepData_StepReaderData)& data,
const Standard_Integer num,
Handle(Interface_Check)& ach,
const Handle(StepVisual_AnnotationFillAreaOccurrence)& ent) const
{
// Number of Parameter Control
if (!data->CheckNbParams(num, 4, ach, "annotation_fill_area_occurrence")) return;
// Inherited field : name
Handle(TCollection_HAsciiString) aName;
data->ReadString(num, 1, "name", ach, aName);
// Inherited field : styles
Handle(StepVisual_HArray1OfPresentationStyleAssignment) aStyles;
Handle(StepVisual_PresentationStyleAssignment) anent;
Standard_Integer nsub;
if (data->ReadSubList(num, 2, "styles", ach, nsub)) {
Standard_Integer nb = data->NbParams(nsub);
aStyles = new StepVisual_HArray1OfPresentationStyleAssignment(1, nb);
for (Standard_Integer i = 1; i <= nb; i++) {
if (data->ReadEntity(nsub, i, "presentation_style_assignment", ach,
STANDARD_TYPE(StepVisual_PresentationStyleAssignment), anent))
aStyles->SetValue(i, anent);
}
}
// Inherited field : item
Handle(MMgt_TShared) aItem;
data->ReadEntity(num, 3, "item", ach, STANDARD_TYPE(MMgt_TShared), aItem);
// Own field : fill_style_target
Handle(StepGeom_GeometricRepresentationItem) aFillStyleTarget;
data->ReadEntity(num, 4, "item", ach, STANDARD_TYPE(StepGeom_GeometricRepresentationItem), aFillStyleTarget);
// Initialisation of the read entity
ent->Init(aName, aStyles, aItem, aFillStyleTarget);
}
//=======================================================================
//function : WriteStep
//purpose :
//=======================================================================
void RWStepVisual_RWAnnotationFillAreaOccurrence::WriteStep
(StepData_StepWriter& SW,
const Handle(StepVisual_AnnotationFillAreaOccurrence)& ent) const
{
// Inherited field : name
SW.Send(ent->Name());
// Inherited field : styles
SW.OpenSub();
for (Standard_Integer i = 1; i <= ent->NbStyles(); i++) {
SW.Send(ent->StylesValue(i));
}
SW.CloseSub();
// Inherited field : item
SW.Send(ent->Item());
// Own field: fill_area_target
SW.Send(ent->FillStyleTarget());
}
//=======================================================================
//function : Share
//purpose :
//=======================================================================
void RWStepVisual_RWAnnotationFillAreaOccurrence::Share(const Handle(StepVisual_AnnotationFillAreaOccurrence)& ent, Interface_EntityIterator& iter) const
{
Standard_Integer nbElem1 = ent->NbStyles();
for (Standard_Integer i = 1; i <= nbElem1; i++) {
iter.GetOneItem(ent->StylesValue(i));
}
iter.GetOneItem(ent->Item());
iter.GetOneItem(ent->FillStyleTarget());
}

View File

@@ -0,0 +1,45 @@
// Created on: 2016-12-28
// Created by: Irina KRYLOVA
// Copyright (c) 2016 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_RWAnnotationFillAreaOccurrence_HeaderFile
#define _RWStepVisual_RWAnnotationFillAreaOccurrence_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Integer.hxx>
class StepData_StepReaderData;
class Interface_Check;
class StepVisual_AnnotationFillAreaOccurrence;
class StepData_StepWriter;
class Interface_EntityIterator;
//! Read & Write Module for AnnotationFillAreaOccurrence
class RWStepVisual_RWAnnotationFillAreaOccurrence
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT RWStepVisual_RWAnnotationFillAreaOccurrence();
Standard_EXPORT void ReadStep (const Handle(StepData_StepReaderData)& data, const Standard_Integer num, Handle(Interface_Check)& ach, const Handle(StepVisual_AnnotationFillAreaOccurrence)& ent) const;
Standard_EXPORT void WriteStep (StepData_StepWriter& SW, const Handle(StepVisual_AnnotationFillAreaOccurrence)& ent) const;
Standard_EXPORT void Share (const Handle(StepVisual_AnnotationFillAreaOccurrence)& ent, Interface_EntityIterator& iter) const;
};
#endif // _RWStepVisual_RWAnnotationFillAreaOccurrence_HeaderFile