0028315: Data Exchange - Import/Export GD&Ts without semantic
authorika <ika@opencascade.com>
Thu, 19 Jan 2017 13:05:09 +0000 (16:05 +0300)
committerapn <apn@opencascade.com>
Thu, 19 Jan 2017 13:05:25 +0000 (16:05 +0300)
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

49 files changed:
src/RWStepAP214/RWStepAP214_GeneralModule.cxx
src/RWStepAP214/RWStepAP214_ReadWriteModule.cxx
src/RWStepVisual/FILES
src/RWStepVisual/RWStepVisual_RWAnnotationFillArea.cxx [new file with mode: 0644]
src/RWStepVisual/RWStepVisual_RWAnnotationFillArea.hxx [new file with mode: 0644]
src/RWStepVisual/RWStepVisual_RWAnnotationFillAreaOccurrence.cxx [new file with mode: 0644]
src/RWStepVisual/RWStepVisual_RWAnnotationFillAreaOccurrence.hxx [new file with mode: 0644]
src/STEPCAFControl/STEPCAFControl_Reader.cxx
src/STEPCAFControl/STEPCAFControl_Writer.cxx
src/STEPCAFControl/STEPCAFControl_Writer.hxx
src/StepAP214/StepAP214_Protocol.cxx
src/StepVisual/FILES
src/StepVisual/StepVisual_AnnotationCurveOccurrence.cxx
src/StepVisual/StepVisual_AnnotationCurveOccurrence.hxx
src/StepVisual/StepVisual_AnnotationFillArea.cxx [new file with mode: 0644]
src/StepVisual/StepVisual_AnnotationFillArea.hxx [new file with mode: 0644]
src/StepVisual/StepVisual_AnnotationFillAreaOccurrence.cxx [new file with mode: 0644]
src/StepVisual/StepVisual_AnnotationFillAreaOccurrence.hxx [new file with mode: 0644]
src/StepVisual/StepVisual_DraughtingCalloutElement.cxx
src/StepVisual/StepVisual_DraughtingCalloutElement.hxx
src/XCAFDimTolObjects/XCAFDimTolObjects_DimensionType.hxx
tests/gdt/export/A1
tests/gdt/export/A4
tests/gdt/export/A6
tests/gdt/export/A7
tests/gdt/export/A8
tests/gdt/export/A9
tests/gdt/export/B1
tests/gdt/export/B2
tests/gdt/export/B3
tests/gdt/export/B4
tests/gdt/export/B5
tests/gdt/export/B7 [new file with mode: 0644]
tests/gdt/export/B8 [new file with mode: 0644]
tests/gdt/import/A1
tests/gdt/import/A4
tests/gdt/presentation/A1
tests/gdt/presentation/A3
tests/gdt/presentation/A5
tests/gdt/presentation/A6
tests/gdt/presentation/A7
tests/gdt/presentation/A8
tests/gdt/presentation/A9
tests/gdt/presentation/B1
tests/gdt/presentation/B2
tests/gdt/presentation/B3
tests/gdt/presentation/B4
tests/gdt/presentation/B6 [new file with mode: 0644]
tests/gdt/presentation/B7 [new file with mode: 0644]

index 7cdb5cd..7ddad40 100644 (file)
@@ -1359,6 +1359,10 @@ IMPLEMENT_STANDARD_RTTIEXT(RWStepAP214_GeneralModule,StepData_GeneralModule)
 #include <RWStepRepr_RWCharacterizedRepresentation.hxx>
 #include <StepVisual_CharacterizedObjectAndCharacterizedRepresentationAndDraughtingModelAndRepresentation.hxx>
 #include <RWStepVisual_RWCharacterizedObjectAndCharacterizedRepresentationAndDraughtingModelAndRepresentation.hxx>
+#include <StepVisual_AnnotationFillArea.hxx>
+#include <StepVisual_AnnotationFillAreaOccurrence.hxx>
+#include <RWStepVisual_RWAnnotationFillArea.hxx>
+#include <RWStepVisual_RWAnnotationFillAreaOccurrence.hxx>
 
 static Standard_Integer catsh,catdr,catstr,catdsc,cataux;
 
@@ -1442,6 +1446,20 @@ void RWStepAP214_GeneralModule::FillSharedCase(const Standard_Integer CN,
        tool.Share(anent,iter);
       }
       break;
+    case 5:
+    {
+      DeclareAndCast(StepVisual_AnnotationFillArea, anent, ent);
+      RWStepVisual_RWAnnotationFillArea tool;
+      tool.Share(anent, iter);
+    }
+    break;
+    case 6:
+    {
+      DeclareAndCast(StepVisual_AnnotationFillAreaOccurrence, anent, ent);
+      RWStepVisual_RWAnnotationFillAreaOccurrence tool;
+      tool.Share(anent, iter);
+    }
+    break;
     case 7:
       {
        DeclareAndCast(StepVisual_AnnotationOccurrence,anent,ent);
@@ -5274,6 +5292,12 @@ Standard_Boolean RWStepAP214_GeneralModule::NewVoid
   case 4 : 
     ent = new StepVisual_AnnotationCurveOccurrence;
     break;
+  case 5:
+    ent = new StepVisual_AnnotationFillArea;
+  break;
+  case 6:
+    ent = new StepVisual_AnnotationFillAreaOccurrence;
+  break;
   case 7 : 
     ent = new StepVisual_AnnotationOccurrence;
     break;
index 7b8bde6..0d3edcb 100644 (file)
@@ -1394,6 +1394,10 @@ Handle(atype) result = Handle(atype)::DownCast (start)
 #include <RWStepRepr_RWConstructiveGeometryRepresentationRelationship.hxx>
 #include <StepVisual_CharacterizedObjectAndCharacterizedRepresentationAndDraughtingModelAndRepresentation.hxx>
 #include <RWStepVisual_RWCharacterizedObjectAndCharacterizedRepresentationAndDraughtingModelAndRepresentation.hxx>
+#include <StepVisual_AnnotationFillArea.hxx>
+#include <StepVisual_AnnotationFillAreaOccurrence.hxx>
+#include <RWStepVisual_RWAnnotationFillArea.hxx>
+#include <RWStepVisual_RWAnnotationFillAreaOccurrence.hxx>
 
 
 // -- General Declarations (Recognize, StepType) ---
@@ -4880,6 +4884,20 @@ void RWStepAP214_ReadWriteModule::ReadStep(const Standard_Integer CN,
       tool.ReadStep (data,num,ach,anent);
     }
     break;
+  case 5:
+  {
+    DeclareAndCast(StepVisual_AnnotationFillArea, anent, ent);
+    RWStepVisual_RWAnnotationFillArea tool;
+    tool.ReadStep(data, num, ach, anent);
+  }
+    break;
+  case 6:
+  {
+    DeclareAndCast(StepVisual_AnnotationFillAreaOccurrence, anent, ent);
+    RWStepVisual_RWAnnotationFillAreaOccurrence tool;
+    tool.ReadStep(data, num, ach, anent);
+  }
+    break;
   case 7 : 
     {
       DeclareAndCast(StepVisual_AnnotationOccurrence, anent, ent);
@@ -9418,6 +9436,20 @@ void RWStepAP214_ReadWriteModule::WriteStep(const Standard_Integer CN,
       tool.WriteStep (SW,anent);
     }
     break;
+  case 5:
+  {
+    DeclareAndCast(StepVisual_AnnotationFillArea, anent, ent);
+    RWStepVisual_RWAnnotationFillArea tool;
+    tool.WriteStep(SW, anent);
+  }
+    break;
+  case 6:
+  {
+    DeclareAndCast(StepVisual_AnnotationFillAreaOccurrence, anent, ent);
+    RWStepVisual_RWAnnotationFillAreaOccurrence tool;
+    tool.WriteStep(SW, anent);
+  }
+    break;
   case 7 : 
     {
       DeclareAndCast(StepVisual_AnnotationOccurrence, anent, ent);
index 059401d..f6f964d 100644 (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
diff --git a/src/RWStepVisual/RWStepVisual_RWAnnotationFillArea.cxx b/src/RWStepVisual/RWStepVisual_RWAnnotationFillArea.cxx
new file mode 100644 (file)
index 0000000..fb85f8c
--- /dev/null
@@ -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());
+  }
+}
+
diff --git a/src/RWStepVisual/RWStepVisual_RWAnnotationFillArea.hxx b/src/RWStepVisual/RWStepVisual_RWAnnotationFillArea.hxx
new file mode 100644 (file)
index 0000000..d360bea
--- /dev/null
@@ -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
diff --git a/src/RWStepVisual/RWStepVisual_RWAnnotationFillAreaOccurrence.cxx b/src/RWStepVisual/RWStepVisual_RWAnnotationFillAreaOccurrence.cxx
new file mode 100644 (file)
index 0000000..a2c0ba7
--- /dev/null
@@ -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());
+}
diff --git a/src/RWStepVisual/RWStepVisual_RWAnnotationFillAreaOccurrence.hxx b/src/RWStepVisual/RWStepVisual_RWAnnotationFillAreaOccurrence.hxx
new file mode 100644 (file)
index 0000000..50c20df
--- /dev/null
@@ -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
index 5bbf3de..01e2a50 100644 (file)
 #include <StepShape_Vertex.hxx>
 #include <StepToGeom.hxx>
 #include <StepVisual_AnnotationCurveOccurrence.hxx>
+#include <StepVisual_AnnotationFillArea.hxx>
 #include <StepVisual_AnnotationPlane.hxx>
 #include <StepVisual_DraughtingCallout.hxx>
 #include <StepVisual_DraughtingCalloutElement.hxx>
@@ -1396,6 +1397,8 @@ Standard_Boolean STEPCAFControl_Reader::ReadLayers (const Handle(XSControl_WorkS
     if ( ! enti->IsKind ( tSVPLA ) ) continue;
     Handle(StepVisual_PresentationLayerAssignment) SVPLA = 
       Handle(StepVisual_PresentationLayerAssignment)::DownCast(enti);
+    if (SVPLA->AssignedItems().IsNull())
+      continue;
     
     Handle(TCollection_HAsciiString) descr = SVPLA->Description();
     Handle(TCollection_HAsciiString) hName = SVPLA->Name();
@@ -1767,6 +1770,7 @@ static Standard_Boolean GetMassConversionFactor(Handle(StepBasic_NamedUnit)& NU,
   }
   return Standard_True;
 }
+
 //=======================================================================
 //function : readPMIPresentation
 //purpose  : read polyline or tessellated presentation for 
@@ -1782,25 +1786,26 @@ Standard_Boolean readPMIPresentation(const Handle(Standard_Transient)& thePresen
   if (thePresentEntity.IsNull())
     return Standard_False;
   Handle(Transfer_TransientProcess) aTP = theTR->TransientProcess();
-  Handle(StepVisual_AnnotationCurveOccurrence) anACO;
+  Handle(StepVisual_AnnotationOccurrence) anAO;
   NCollection_Vector<Handle(StepVisual_StyledItem)> anAnnotations;
-  if (thePresentEntity->IsKind(STANDARD_TYPE(StepVisual_AnnotationCurveOccurrence)))
+  if (thePresentEntity->IsKind(STANDARD_TYPE(StepVisual_AnnotationOccurrence)))
   {
-    anACO = Handle(StepVisual_AnnotationCurveOccurrence)::DownCast(thePresentEntity);
-    thePresentName = anACO->Name();
-    if (!anACO.IsNull())
-      anAnnotations.Append(anACO);
+    anAO = Handle(StepVisual_AnnotationOccurrence)::DownCast(thePresentEntity);
+    if (!anAO.IsNull()) {
+      thePresentName = anAO->Name();
+      anAnnotations.Append(anAO);
+    }
   }
   else if (thePresentEntity->IsKind(STANDARD_TYPE(StepVisual_DraughtingCallout)))
   {
     Handle(StepVisual_DraughtingCallout) aDCallout =
       Handle(StepVisual_DraughtingCallout)::DownCast(thePresentEntity);
     thePresentName = aDCallout->Name();
-    for (Standard_Integer i = 1; i <= aDCallout->NbContents() && anACO.IsNull(); i++) {
-      anACO = aDCallout->ContentsValue(i).AnnotationCurveOccurrence();
-      if (!anACO.IsNull())
+    for (Standard_Integer i = 1; i <= aDCallout->NbContents() && anAO.IsNull(); i++) {
+      anAO = Handle(StepVisual_AnnotationOccurrence)::DownCast(aDCallout->ContentsValue(i).Value());
+      if (!anAO.IsNull())
       {
-        anAnnotations.Append(anACO);
+        anAnnotations.Append(anAO);
         continue;
       }
       Handle(StepVisual_TessellatedAnnotationOccurrence) aTesselation =
@@ -1824,11 +1829,11 @@ Standard_Boolean readPMIPresentation(const Handle(Standard_Transient)& thePresen
   for (; i < anAnnotations.Length(); i++)
   {
     Handle(StepVisual_StyledItem) anItem = anAnnotations(i);
-    anACO = Handle(StepVisual_AnnotationCurveOccurrence)::DownCast(anItem);
+    anAO = Handle(StepVisual_AnnotationOccurrence)::DownCast(anItem);
     TopoDS_Shape anAnnotationShape;
-    if (!anACO.IsNull())
+    if (!anAO.IsNull())
     {
-      Handle(StepRepr_RepresentationItem) aCurveItem = anACO->Item();
+      Handle(StepRepr_RepresentationItem) aCurveItem = anAO->Item();
       anAnnotationShape = STEPConstruct::FindShape(aTP, aCurveItem);
       if (anAnnotationShape.IsNull())
       {
@@ -2384,8 +2389,8 @@ static Standard_Boolean setDatumToXCAF(const Handle(StepDimTol_Datum)& theDat,
       Handle(StepAP242_GeometricItemSpecificUsage) aGISU = Handle(StepAP242_GeometricItemSpecificUsage)::DownCast(anIter.Value());
       if (aGISU.IsNull())
         continue;
-      for (Standard_Integer i = 1; i <= aGISU->NbIdentifiedItem(); i++) {
-        TDF_Label aShapeL = getShapeLabel(aGISU->IdentifiedItemValue(i), theWS, aSTool);
+      for (Standard_Integer j = 1; j <= aGISU->NbIdentifiedItem(); j++) {
+        TDF_Label aShapeL = getShapeLabel(aGISU->IdentifiedItemValue(j), theWS, aSTool);
         if (!aShapeL.IsNull())
           aShapeLabels.Append(aShapeL);
       }
@@ -2398,19 +2403,19 @@ static Standard_Boolean setDatumToXCAF(const Handle(StepDimTol_Datum)& theDat,
     Handle(StepDimTol_PlacedDatumTargetFeature) aDT = Handle(StepDimTol_PlacedDatumTargetFeature)::DownCast(aSAs.Value(i));
     if (aDT.IsNull())
       continue;
-    Handle(XCAFDimTolObjects_DatumObject) aDatObj = new XCAFDimTolObjects_DatumObject();
+    Handle(XCAFDimTolObjects_DatumObject) aDatTargetObj = new XCAFDimTolObjects_DatumObject();
     XCAFDimTolObjects_DatumTargetType aType;
     if (!STEPCAFControl_GDTProperty::GetDatumTargetType(aDT->Description(), aType))
       continue;
-    aDatObj->SetDatumTargetType(aType);
+    aDatTargetObj->SetDatumTargetType(aType);
     Standard_Boolean isValidDT = Standard_False;
 
     // Feature for datum target
     TDF_LabelSequence aDTShapeLabels;
-    Interface_EntityIterator anIter = aGraph.Sharings(aDT);
+    Interface_EntityIterator aDTIter = aGraph.Sharings(aDT);
     Handle(StepRepr_FeatureForDatumTargetRelationship) aRelationship;
-    for (; anIter.More() && aRelationship.IsNull(); anIter.Next()) {
-      aRelationship = Handle(StepRepr_FeatureForDatumTargetRelationship)::DownCast(anIter.Value());
+    for (; aDTIter.More() && aRelationship.IsNull(); aDTIter.Next()) {
+      aRelationship = Handle(StepRepr_FeatureForDatumTargetRelationship)::DownCast(aDTIter.Value());
     }
     if (!aRelationship.IsNull()) {
       Handle(StepRepr_ShapeAspect) aSA = aRelationship->RelatingShapeAspect();
@@ -2419,8 +2424,8 @@ static Standard_Boolean setDatumToXCAF(const Handle(StepDimTol_Datum)& theDat,
         Handle(StepAP242_GeometricItemSpecificUsage) aGISU = Handle(StepAP242_GeometricItemSpecificUsage)::DownCast(aSAIter.Value());
         if (aGISU.IsNull())
           continue;
-        for (Standard_Integer i = 1; i <= aGISU->NbIdentifiedItem(); i++) {
-          TDF_Label aShapeL = getShapeLabel(aGISU->IdentifiedItemValue(i), theWS, aSTool);
+        for (Standard_Integer j = 1; j <= aGISU->NbIdentifiedItem(); j++) {
+          TDF_Label aShapeL = getShapeLabel(aGISU->IdentifiedItemValue(j), theWS, aSTool);
           if (!aShapeL.IsNull()) {
             aDTShapeLabels.Append(aShapeL);
             isValidDT = Standard_True;
@@ -2431,12 +2436,12 @@ static Standard_Boolean setDatumToXCAF(const Handle(StepDimTol_Datum)& theDat,
 
     if (aType != XCAFDimTolObjects_DatumTargetType_Area && !isValidDT) {
       // Try another way of feature connection
-      for (anIter.Start(); anIter.More(); anIter.Next()) {
-        Handle(StepAP242_GeometricItemSpecificUsage) aGISU = Handle(StepAP242_GeometricItemSpecificUsage)::DownCast(anIter.Value());
+      for (aDTIter.Start(); aDTIter.More(); aDTIter.Next()) {
+        Handle(StepAP242_GeometricItemSpecificUsage) aGISU = Handle(StepAP242_GeometricItemSpecificUsage)::DownCast(aDTIter.Value());
         if (aGISU.IsNull())
           continue;
-        for (Standard_Integer i = 1; i <= aGISU->NbIdentifiedItem(); i++) {
-          TDF_Label aShapeL = getShapeLabel(aGISU->IdentifiedItemValue(i), theWS, aSTool);
+        for (Standard_Integer j = 1; j <= aGISU->NbIdentifiedItem(); j++) {
+          TDF_Label aShapeL = getShapeLabel(aGISU->IdentifiedItemValue(j), theWS, aSTool);
           if (!aShapeL.IsNull()) {
             aDTShapeLabels.Append(aShapeL);
             isValidDT = Standard_True;
@@ -2461,7 +2466,7 @@ static Standard_Boolean setDatumToXCAF(const Handle(StepDimTol_Datum)& theDat,
       if (anItemIndex > 0) {
         Handle(Transfer_Binder) aBinder = aTP->MapItem(anItemIndex);
         TopoDS_Shape anItemShape = TransferBRep::ShapeResult(aBinder);
-        aDatObj->SetDatumTarget(anItemShape);
+        aDatTargetObj->SetDatumTarget(anItemShape);
         isValidDT = Standard_True;
       }
     }
@@ -2484,21 +2489,21 @@ static Standard_Boolean setDatumToXCAF(const Handle(StepDimTol_Datum)& theDat,
           if (!aSRWP.IsNull()) {
             isValidDT = Standard_True;
             // Collect parameters of datum target
-            for (Standard_Integer i = aSRWP->Items()->Lower(); i <= aSRWP->Items()->Upper(); i++)
+            for (Standard_Integer j = aSRWP->Items()->Lower(); j <= aSRWP->Items()->Upper(); j++)
             {
-              if (aSRWP->ItemsValue(i).IsNull())
+              if (aSRWP->ItemsValue(j).IsNull())
                 continue;
-              if (aSRWP->ItemsValue(i)->IsKind(STANDARD_TYPE(StepGeom_Axis2Placement3d)))
+              if (aSRWP->ItemsValue(j)->IsKind(STANDARD_TYPE(StepGeom_Axis2Placement3d)))
               {
                 Handle(StepGeom_Axis2Placement3d) anAx
-                  = Handle(StepGeom_Axis2Placement3d)::DownCast(aSRWP->ItemsValue(i));
+                  = Handle(StepGeom_Axis2Placement3d)::DownCast(aSRWP->ItemsValue(j));
                 Handle(Geom_Axis2Placement) anAxis = StepToGeom::MakeAxis2Placement(anAx);
-                aDatObj->SetDatumTargetAxis(anAxis->Ax2());
+                aDatTargetObj->SetDatumTargetAxis(anAxis->Ax2());
               }
-              else if (aSRWP->ItemsValue(i)->IsKind(STANDARD_TYPE(StepRepr_ReprItemAndLengthMeasureWithUnit)))
+              else if (aSRWP->ItemsValue(j)->IsKind(STANDARD_TYPE(StepRepr_ReprItemAndLengthMeasureWithUnit)))
               {
                 Handle(StepRepr_ReprItemAndLengthMeasureWithUnit) aM =
-                  Handle(StepRepr_ReprItemAndLengthMeasureWithUnit)::DownCast(aSRWP->ItemsValue(i));
+                  Handle(StepRepr_ReprItemAndLengthMeasureWithUnit)::DownCast(aSRWP->ItemsValue(j));
                 Standard_Real aVal = aM->GetMeasureWithUnit()->ValueComponent();
                 StepBasic_Unit anUnit = aM->GetMeasureWithUnit()->UnitComponent();
                 Standard_Real aFact = 1.;
@@ -2511,9 +2516,9 @@ static Standard_Boolean setDatumToXCAF(const Handle(StepDimTol_Datum)& theDat,
                   aVal = aVal * aFact;
                 if (aM->Name()->String().IsEqual("target length") ||
                   aM->Name()->String().IsEqual("target diameter"))
-                  aDatObj->SetDatumTargetLength(aVal);
+                  aDatTargetObj->SetDatumTargetLength(aVal);
                 else
-                  aDatObj->SetDatumTargetWidth(aVal);
+                  aDatTargetObj->SetDatumTargetWidth(aVal);
               }
             }
           }
@@ -2526,17 +2531,17 @@ static Standard_Boolean setDatumToXCAF(const Handle(StepDimTol_Datum)& theDat,
       TDF_Label aDatL = aDGTTool->AddDatum();
       aDat = XCAFDoc_Datum::Set(aDatL);
       aDGTTool->SetDatum(aDTShapeLabels, aDatL);
-      aDatObj->SetName(theDat->Identification());
-      aDatObj->SetPosition(thePositionCounter);
+      aDatTargetObj->SetName(theDat->Identification());
+      aDatTargetObj->SetPosition(thePositionCounter);
       if (!theXCAFModifiers.IsEmpty())
-        aDatObj->SetModifiers(theXCAFModifiers);
+        aDatTargetObj->SetModifiers(theXCAFModifiers);
       if (theXCAFModifWithVal != XCAFDimTolObjects_DatumModifWithValue_None)
-        aDatObj->SetModifierWithValue(theXCAFModifWithVal, theModifValue);
+        aDatTargetObj->SetModifierWithValue(theXCAFModifWithVal, theModifValue);
       aDGTTool->SetDatumToGeomTol(aDatL, theGDTL);
-      aDatObj->IsDatumTarget(Standard_True);
-      aDatObj->SetDatumTargetNumber(aDT->TargetId()->IntegerValue());
-      readAnnotation(aTR, aDT, aDatObj);
-      aDat->SetObject(aDatObj);
+      aDatTargetObj->IsDatumTarget(Standard_True);
+      aDatTargetObj->SetDatumTargetNumber(aDT->TargetId()->IntegerValue());
+      readAnnotation(aTR, aDT, aDatTargetObj);
+      aDat->SetObject(aDatTargetObj);
       isExistDatumTarget = Standard_True;
     }
   }
@@ -3814,51 +3819,123 @@ Standard_Boolean STEPCAFControl_Reader::ReadGDTs(const Handle(XSControl_WorkSess
       }
     }
     else if (anEnt->IsKind(STANDARD_TYPE(StepVisual_DraughtingCallout)) ||
-      anEnt->IsKind(STANDARD_TYPE(StepVisual_AnnotationCurveOccurrence)))
+      anEnt->IsKind(STANDARD_TYPE(StepVisual_AnnotationOccurrence)))
     {
-      // read common PMIs: presentation, which is not connected to any PMI.
-      Handle(StepVisual_AnnotationPlane) anAnPlane;
-      Handle(StepAP242_DraughtingModelItemAssociation) aDMIA;
-      Standard_Boolean isCommonLabel = Standard_True;
-      for (Interface_EntityIterator anIter = aGraph.Sharings(anEnt); anIter.More(); anIter.Next())
-      {
-        if (anIter.Value()->IsKind(STANDARD_TYPE(StepVisual_AnnotationPlane)))
-          anAnPlane = Handle(StepVisual_AnnotationPlane)::DownCast(anIter.Value());
-        else
-          isCommonLabel = Standard_False;
+      // Protection against import presentation twice
+      Handle(StepVisual_DraughtingCallout) aDC;
+      for (Interface_EntityIterator anIter = aGraph.Sharings(anEnt); anIter.More() && aDC.IsNull(); anIter.Next()) {
+        aDC = Handle(StepVisual_DraughtingCallout)::DownCast(anIter.Value());
       }
-      if (!isCommonLabel)
+      if (!aDC.IsNull())
         continue;
-      // create empty Dimension
-      TDF_Label aGDTL = aDGTTool->AddDimension();
-      Handle(XCAFDoc_Dimension) aDim = XCAFDoc_Dimension::Set(aGDTL);
-      TCollection_AsciiString aStr("DGT:Common_label");
-      TDataStd_Name::Set(aGDTL, aStr);
-      TDF_LabelSequence anEmptySeq1, anEmptySeq2;
-      aDGTTool->SetDimension(anEmptySeq1, anEmptySeq2, aGDTL);
-      Handle(XCAFDimTolObjects_DimensionObject) aDimObj = new XCAFDimTolObjects_DimensionObject();
-      // read annotations
-      Standard_Real aFact = 1.0;
-      if (!anAnPlane.IsNull())
-      {
-        Handle(StepVisual_DraughtingModel) aDModel;
-        for (Interface_EntityIterator anIter = aGraph.Sharings(anAnPlane); anIter.More() && aDModel.IsNull(); anIter.Next())
-        {
-          if (anIter.Value()->IsKind(STANDARD_TYPE(StepVisual_DraughtingModel)))
-            aDModel = Handle(StepVisual_DraughtingModel)::DownCast(anIter.Value());
+      // Read presentations for PMIs without semantic data.
+      Handle(StepAP242_DraughtingModelItemAssociation) aDMIA;
+      TDF_LabelSequence aShapesL;
+      for (Interface_EntityIterator anIter = aGraph.Sharings(anEnt); anIter.More() && aDMIA.IsNull(); anIter.Next()) {
+        aDMIA = Handle(StepAP242_DraughtingModelItemAssociation)::DownCast(anIter.Value());
+      }
+      if (!aDMIA.IsNull()) {
+        // Check entity, skip all, attached to GDTs
+        Handle(StepRepr_ShapeAspect) aDefinition = aDMIA->Definition().ShapeAspect();
+        if (!aDefinition.IsNull()) {
+          Standard_Boolean isConnectedToGDT = Standard_False;
+          // Skip if definition is a datum
+          if (aDefinition->IsKind(STANDARD_TYPE(StepDimTol_Datum)) ||
+            aDefinition->IsKind(STANDARD_TYPE(StepDimTol_DatumTarget)) ||
+            aDefinition->IsKind(STANDARD_TYPE(StepDimTol_DatumFeature)) ||
+            aDefinition->IsKind(STANDARD_TYPE(StepRepr_CompShAspAndDatumFeatAndShAsp))) {
+            isConnectedToGDT = Standard_True;
+          }
+          // Skip if any GDT is applied to definition
+          for (Interface_EntityIterator anIter = aGraph.Sharings(aDefinition); anIter.More() && !isConnectedToGDT; anIter.Next()) {
+            if (anIter.Value()->IsKind(STANDARD_TYPE(StepShape_DimensionalSize)) ||
+              anIter.Value()->IsKind(STANDARD_TYPE(StepShape_DimensionalLocation)) ||
+              anIter.Value()->IsKind(STANDARD_TYPE(StepDimTol_GeometricTolerance))) {
+              isConnectedToGDT = Standard_True;
+              continue;
+            }
+            Handle(StepRepr_ShapeAspectRelationship) aSAR = Handle(StepRepr_ShapeAspectRelationship)::DownCast(anIter.Value());
+            if (!aSAR.IsNull()) {
+              Handle(StepRepr_ShapeAspect) aSA = aSAR->RelatedShapeAspect();
+              if (!aSA.IsNull()) {
+                if (aSA->IsKind(STANDARD_TYPE(StepDimTol_Datum)) ||
+                  aSA->IsKind(STANDARD_TYPE(StepDimTol_DatumTarget)) ||
+                  aSA->IsKind(STANDARD_TYPE(StepDimTol_DatumFeature)) ||
+                  aSA->IsKind(STANDARD_TYPE(StepRepr_CompShAspAndDatumFeatAndShAsp))) {
+                  isConnectedToGDT = Standard_True;
+                }
+                for (Interface_EntityIterator aDimIter = aGraph.Sharings(aSA); aDimIter.More() && !isConnectedToGDT; aDimIter.Next()) {
+                  if (aDimIter.Value()->IsKind(STANDARD_TYPE(StepShape_DimensionalSize)) ||
+                    aDimIter.Value()->IsKind(STANDARD_TYPE(StepShape_DimensionalLocation)) ||
+                    aDimIter.Value()->IsKind(STANDARD_TYPE(StepDimTol_GeometricTolerance))) {
+                    isConnectedToGDT = Standard_True;
+                    continue;
+                  }
+                }
+              }
+            }
+          }
+          if (isConnectedToGDT)
+            continue;
+        }
+        else if (aDMIA->Definition().PropertyDefinition().IsNull())
+          continue;
+
+        // Get shapes
+        NCollection_Sequence<Handle(StepRepr_ShapeAspect)> aSAs;
+        collectShapeAspect(aDefinition, theWS, aSAs);
+        for (Standard_Integer aSAIt = 1; aSAIt <= aSAs.Length(); aSAIt++) {
+          Handle(StepAP242_GeometricItemSpecificUsage) aGISU;
+          for (Interface_EntityIterator anIter = aGraph.Sharings(aSAs.Value(aSAIt)); anIter.More() && aGISU.IsNull(); anIter.Next())
+            aGISU = Handle(StepAP242_GeometricItemSpecificUsage)::DownCast(anIter.Value());
+          if (aGISU.IsNull())
+            continue;
+          for (Standard_Integer anItemIt = 1; anItemIt <= aGISU->NbIdentifiedItem(); anItemIt++) {
+            TDF_Label aLabel = getShapeLabel(aGISU->IdentifiedItemValue(anItemIt), theWS, XCAFDoc_DocumentTool::ShapeTool(theDoc->Main()));
+            if (!aLabel.IsNull())
+              aShapesL.Append(aLabel);
+          }
         }
-        if (!aDModel.IsNull())
-          GetLengthConversionFactorFromContext(aDModel->ContextOfItems(), aFact);
       }
-      gp_Ax2 aPlaneAxes;
-      readAnnotationPlane(anAnPlane, aFact, aPlaneAxes);
+      Standard_Boolean isCommonLabel = (aShapesL.Length() == 0);
+
+      // Calculate unit
+      Standard_Real aFact = 1.0;
+      if (!aDMIA.IsNull() && !aDMIA->UsedRepresentation().IsNull())
+        GetLengthConversionFactorFromContext(aDMIA->UsedRepresentation()->ContextOfItems(), aFact);
+
+      // Presentation
       TopoDS_Shape aPresentation;
       Handle(TCollection_HAsciiString) aPresentName;
       Bnd_Box aBox;
-      readPMIPresentation(anEnt, aTR, aFact, aPresentation, aPresentName, aBox);
-      // populate Dimension
-      aDimObj->SetType(XCAFDimTolObjects_DimensionType_CommonLabel);
-      aDimObj->SetPlane(aPlaneAxes);
+      if (!readPMIPresentation(anEnt, aTR, aFact, aPresentation, aPresentName, aBox))
+        continue;
+      // Annotation plane
+      Handle(StepVisual_AnnotationPlane) anAnPlane;
+      for (Interface_EntityIterator anIter = aGraph.Sharings(anEnt); anIter.More() && anAnPlane.IsNull(); anIter.Next())
+        anAnPlane = Handle(StepVisual_AnnotationPlane)::DownCast(anIter.Value());
+      
+      // Set object to XCAF
+      TDF_Label aGDTL = aDGTTool->AddDimension();
+      Handle(XCAFDimTolObjects_DimensionObject) aDimObj = new XCAFDimTolObjects_DimensionObject();
+      Handle(XCAFDoc_Dimension) aDim = XCAFDoc_Dimension::Set(aGDTL);
+      TCollection_AsciiString aStr("DGT:");
+      if (isCommonLabel) {
+        aStr.AssignCat("Common_label");
+        aDimObj->SetType(XCAFDimTolObjects_DimensionType_CommonLabel);
+      }
+      else {
+        aStr.AssignCat("Dimension");
+        aDimObj->SetType(XCAFDimTolObjects_DimensionType_DimensionPresentation);
+      }
+      TDataStd_Name::Set(aGDTL, aStr);
+      TDF_LabelSequence anEmptySeq2;
+      aDGTTool->SetDimension(aShapesL, anEmptySeq2, aGDTL);
+      gp_Ax2 aPlaneAxes;
+      if (!anAnPlane.IsNull()) {
+        if (readAnnotationPlane(anAnPlane, aFact, aPlaneAxes))
+          aDimObj->SetPlane(aPlaneAxes);
+      }
       aDimObj->SetPresentation(aPresentation, aPresentName);
       aDim->SetObject(aDimObj);
     }
index cd134fe..5cf87cc 100644 (file)
 #include <XSControl_TransferWriter.hxx>
 #include <XSControl_WorkSession.hxx>
 
-static NCollection_Vector<Handle(StepVisual_AnnotationPlane)> gdtAnnotationPlanes;
-static Handle(StepVisual_DraughtingModel) gdtPresentationDM;
-static Handle(StepVisual_HArray1OfPresentationStyleAssignment) gdtPrsCurveStyle;
-static Handle(StepRepr_ProductDefinitionShape) gdtCommonPDS;
-
 // added by skl 15.01.2004 for D&GT writing
 //#include <StepRepr_CompoundItemDefinition.hxx>
 //#include <StepRepr_CompoundItemDefinitionMember.hxx>
@@ -319,6 +314,8 @@ void STEPCAFControl_Writer::Init (const Handle(XSControl_WorkSession)& WS,
   myFiles.Clear();
   myLabEF.Clear();
   myLabels.Clear();
+  myGDTPresentationDM = new StepVisual_DraughtingModel();
+  myGDTPrsCurveStyle = new StepVisual_HArray1OfPresentationStyleAssignment(1, 1);
 }
 
 
@@ -2285,11 +2282,11 @@ static Handle(StepRepr_ReprItemAndMeasureWithUnit) CreateDimValue(const Standard
 //purpose  : auxiliary (write Shape_Aspect entity for given shape)
 //=======================================================================
 
-static Handle(StepRepr_ShapeAspect) WriteShapeAspect (const Handle(XSControl_WorkSession) &WS,
-                                                      const TDF_Label theLabel,
-                                                      const TopoDS_Shape theShape,
-                                                      Handle(StepRepr_RepresentationContext)& theRC,
-                                                      Handle(StepAP242_GeometricItemSpecificUsage)& theGISU)
+Handle(StepRepr_ShapeAspect) STEPCAFControl_Writer::WriteShapeAspect (const Handle(XSControl_WorkSession) &WS,
+                                                                      const TDF_Label theLabel,
+                                                                      const TopoDS_Shape theShape,
+                                                                      Handle(StepRepr_RepresentationContext)& theRC,
+                                                                      Handle(StepAP242_GeometricItemSpecificUsage)& theGISU)
 {
   // Get working data
   const Handle(Interface_InterfaceModel) &Model = WS->Model();
@@ -2359,12 +2356,14 @@ static Handle(StepRepr_ShapeAspect) WriteShapeAspect (const Handle(XSControl_Wor
 //function : WritePresentation
 //purpose  : auxiliary (write annotation plane and presentation)
 //======================================================================
-static void WritePresentation(const Handle(XSControl_WorkSession) &WS,
-                              const TopoDS_Shape thePresentation,
-                              const Handle(TCollection_HAsciiString)& thePrsName,
-                              const gp_Ax2 theAnnotationPlane,
-                              const gp_Pnt theTextPosition,
-                              const Handle(Standard_Transient) theDimension)
+void STEPCAFControl_Writer::WritePresentation(const Handle(XSControl_WorkSession) &WS,
+                                              const TopoDS_Shape thePresentation,
+                                              const Handle(TCollection_HAsciiString)& thePrsName,
+                                              const Standard_Boolean hasSemantic,
+                                              const Standard_Boolean hasPlane,
+                                              const gp_Ax2 theAnnotationPlane,
+                                              const gp_Pnt theTextPosition,
+                                              const Handle(Standard_Transient) theDimension)
 {
   if (thePresentation.IsNull())
     return;
@@ -2374,7 +2373,7 @@ static void WritePresentation(const Handle(XSControl_WorkSession) &WS,
   // Presentation
   Handle(StepVisual_TessellatedGeometricSet) aGeomSet = STEPCAFControl_GDTProperty::GetTessellation(thePresentation);
   Handle(StepVisual_TessellatedAnnotationOccurrence) aTAO = new StepVisual_TessellatedAnnotationOccurrence();
-  aTAO->Init(new TCollection_HAsciiString(), gdtPrsCurveStyle, aGeomSet);
+  aTAO->Init(new TCollection_HAsciiString(), myGDTPrsCurveStyle, aGeomSet);
   StepVisual_DraughtingCalloutElement aDCElement;
   aDCElement.SetValue(aTAO);
   Handle(StepVisual_HArray1OfDraughtingCalloutElement) aTAOs = new StepVisual_HArray1OfDraughtingCalloutElement(1, 1);
@@ -2384,14 +2383,22 @@ static void WritePresentation(const Handle(XSControl_WorkSession) &WS,
   aDCallout->Init(aPrsName, aTAOs);
   Handle(StepRepr_HArray1OfRepresentationItem) aDCsForDMIA = new StepRepr_HArray1OfRepresentationItem(1, 1);
   aDCsForDMIA->SetValue(1, aDCallout);
+  myGDTAnnotations.Append(aDCallout);
   StepAP242_ItemIdentifiedRepresentationUsageDefinition aDimension;
   aDimension.SetValue(theDimension);
+  Handle(TCollection_HAsciiString) aDMIAName;
+  if (hasSemantic)
+    aDMIAName = new TCollection_HAsciiString("PMI representation to presentation link");
+  else
+    aDMIAName = new TCollection_HAsciiString();
   Handle(StepAP242_DraughtingModelItemAssociation) aDMIA =
     new StepAP242_DraughtingModelItemAssociation();
-  aDMIA->Init(new TCollection_HAsciiString("PMI representation to presentation link"),
-      new TCollection_HAsciiString(), aDimension, gdtPresentationDM, aDCsForDMIA);
+  aDMIA->Init(aDMIAName, new TCollection_HAsciiString(), aDimension, myGDTPresentationDM, aDCsForDMIA);
   aModel->AddWithRefs(aDMIA);
 
+  if (!hasPlane)
+    return;
+
   // Annotation plane
   // Presentation Style
   Handle(StepVisual_NullStyleMember) aNullStyle = new StepVisual_NullStyleMember();
@@ -2402,7 +2409,7 @@ static void WritePresentation(const Handle(XSControl_WorkSession) &WS,
   aStyles->SetValue(1, aStyleItem);
   Handle(StepVisual_PresentationStyleAssignment) aPrsStyle = new StepVisual_PresentationStyleAssignment();
   aPrsStyle->Init(aStyles);
-  Handle(StepVisual_HArray1OfPresentationStyleAssignment) aPrsStyles = 
+  Handle(StepVisual_HArray1OfPresentationStyleAssignment) aPrsStyles =
     new StepVisual_HArray1OfPresentationStyleAssignment(1, 1);
   aPrsStyles->SetValue(1, aPrsStyle);
   // Plane
@@ -2424,63 +2431,7 @@ static void WritePresentation(const Handle(XSControl_WorkSession) &WS,
   // Init AnnotationPlane entity
   Handle(StepVisual_AnnotationPlane) anAnnPlane = new StepVisual_AnnotationPlane();
   anAnnPlane->Init(new TCollection_HAsciiString(), aPrsStyles, aPlane, aDCsForAnnPln);
-  gdtAnnotationPlanes.Append(anAnnPlane);
-  aModel->AddWithRefs(anAnnPlane);
-}
-
-//======================================================================
-//function : WritePresentation
-//purpose  : auxiliary (write annotation plane and presentation for common labels)
-//======================================================================
-static void WritePresentation(const Handle(XSControl_WorkSession) &WS,
-                              const TopoDS_Shape thePresentation,
-                              const Handle(TCollection_HAsciiString)& thePrsName,
-                              const gp_Ax2 theAnnotationPlane)
-{
-  if (thePresentation.IsNull())
-    return;
-  // Get working data
-  const Handle(Interface_InterfaceModel) &aModel = WS->Model();
-
-  // Presentation
-  Handle(StepVisual_TessellatedGeometricSet) aGeomSet = STEPCAFControl_GDTProperty::GetTessellation(thePresentation);
-  Handle(StepVisual_TessellatedAnnotationOccurrence) aTAO = new StepVisual_TessellatedAnnotationOccurrence();
-  aTAO->Init(new TCollection_HAsciiString(), gdtPrsCurveStyle, aGeomSet);
-  StepVisual_DraughtingCalloutElement aDCElement;
-  aDCElement.SetValue(aTAO);
-  Handle(StepVisual_HArray1OfDraughtingCalloutElement) aTAOs = new StepVisual_HArray1OfDraughtingCalloutElement(1, 1);
-  aTAOs->SetValue(1, aDCElement);
-  Handle(StepVisual_DraughtingCallout) aDCallout = new StepVisual_DraughtingCallout();
-  Handle(TCollection_HAsciiString) aPrsName = thePrsName.IsNull() ? new TCollection_HAsciiString() : thePrsName;
-  aDCallout->Init(aPrsName, aTAOs);
-  aModel->AddWithRefs(aDCallout);
-
-  // Annotation plane
-  // Presentation Style
-  Handle(StepVisual_NullStyleMember) aNullStyle = new StepVisual_NullStyleMember();
-  aNullStyle->SetEnumText(0, ".NULL.");
-  StepVisual_PresentationStyleSelect aStyleItem;
-  aStyleItem.SetValue(aNullStyle);
-  Handle(StepVisual_HArray1OfPresentationStyleSelect) aStyles = new StepVisual_HArray1OfPresentationStyleSelect(1, 1);
-  aStyles->SetValue(1, aStyleItem);
-  Handle(StepVisual_PresentationStyleAssignment) aPrsStyle = new StepVisual_PresentationStyleAssignment();
-  aPrsStyle->Init(aStyles);
-  Handle(StepVisual_HArray1OfPresentationStyleAssignment) aPrsStyles =
-    new StepVisual_HArray1OfPresentationStyleAssignment(1, 1);
-  aPrsStyles->SetValue(1, aPrsStyle);
-  // Plane
-  Handle(StepGeom_Plane) aPlane = new StepGeom_Plane();
-  Handle(StepGeom_Axis2Placement3d) anAxis = STEPCAFControl_GDTProperty::GetAxis2Placement3D(theAnnotationPlane);
-  aPlane->Init(new TCollection_HAsciiString(), anAxis);
-  // Annotation plane element
-  StepVisual_AnnotationPlaneElement aPlaneElement;
-  aPlaneElement.SetValue(aDCallout);
-  Handle(StepVisual_HArray1OfAnnotationPlaneElement) aDCsForAnnPln = new StepVisual_HArray1OfAnnotationPlaneElement(1, 1);
-  aDCsForAnnPln->SetValue(1, aPlaneElement);
-  // Init AnnotationPlane entity
-  Handle(StepVisual_AnnotationPlane) anAnnPlane = new StepVisual_AnnotationPlane();
-  anAnnPlane->Init(new TCollection_HAsciiString(), aPrsStyles, aPlane, aDCsForAnnPln);
-  gdtAnnotationPlanes.Append(anAnnPlane);
+  myGDTAnnotations.Append(anAnnPlane);
   aModel->AddWithRefs(anAnnPlane);
 }
 
@@ -2490,11 +2441,11 @@ static void WritePresentation(const Handle(XSControl_WorkSession) &WS,
 //           necessary entities and link them to already written datum 
 //           in case of multiple features association)
 //=======================================================================
-static Handle(StepDimTol_Datum) WriteDatumAP242(const Handle(XSControl_WorkSession) &WS,
-                                                const TDF_LabelSequence theShapeL,
-                                                const TDF_Label theDatumL,
-                                                const Standard_Boolean isFirstDTarget,
-                                                const Handle(StepDimTol_Datum) theWrittenDatum)
+Handle(StepDimTol_Datum) STEPCAFControl_Writer::WriteDatumAP242(const Handle(XSControl_WorkSession) &WS,
+                                                                const TDF_LabelSequence theShapeL,
+                                                                const TDF_Label theDatumL,
+                                                                const Standard_Boolean isFirstDTarget,
+                                                                const Handle(StepDimTol_Datum) theWrittenDatum)
 {
   // Get working data
   const Handle(Interface_InterfaceModel) &Model = WS->Model();
@@ -2538,7 +2489,7 @@ static Handle(StepDimTol_Datum) WriteDatumAP242(const Handle(XSControl_WorkSessi
   }
   if (aPDS.IsNull()) {
     // Workaround for datums without shape
-    aPDS = gdtCommonPDS;
+    aPDS = myGDTCommonPDS;
     Interface_EntityIterator aSDRIt = aGraph.Sharings(aPDS);
     Handle(StepShape_ShapeDefinitionRepresentation) aSDR;
     for (aSDRIt.Start(); aSDRIt.More() && aSDR.IsNull(); aSDRIt.Next())
@@ -2719,7 +2670,8 @@ static Handle(StepDimTol_Datum) WriteDatumAP242(const Handle(XSControl_WorkSessi
   }
 
   //Annotation plane and Presentation
-  WritePresentation(WS, anObject->GetPresentation(), anObject->GetPresentationName(), anObject->GetPlane(), anObject->GetPointTextAttach(), aSA);
+  WritePresentation(WS, anObject->GetPresentation(), anObject->GetPresentationName(), Standard_True, anObject->HasPlane(),
+    anObject->GetPlane(), anObject->GetPointTextAttach(), aSA);
 
   return aDatum;
 }
@@ -3163,10 +3115,10 @@ static Handle(StepDimTol_HArray1OfDatumSystemOrReference) WriteDatumSystem(const
 //function : WriteToleranceZone
 //purpose  : auxiliary (write tolerace zones)
 //=======================================================================
-static void WriteToleranceZone (const Handle(XSControl_WorkSession) &WS,
-                                const Handle(XCAFDimTolObjects_GeomToleranceObject)& theObject,
-                                const Handle(StepDimTol_GeometricTolerance)& theEntity,
-                                const Handle(StepRepr_RepresentationContext)& theRC)
+void STEPCAFControl_Writer::WriteToleranceZone (const Handle(XSControl_WorkSession) &WS,
+                                                const Handle(XCAFDimTolObjects_GeomToleranceObject)& theObject,
+                                                const Handle(StepDimTol_GeometricTolerance)& theEntity,
+                                                const Handle(StepRepr_RepresentationContext)& theRC)
 {
   // Get working data
   const Handle(Interface_InterfaceModel) &Model = WS->Model();
@@ -3212,11 +3164,11 @@ static void WriteToleranceZone (const Handle(XSControl_WorkSession) &WS,
 //purpose  : auxiliary (write Geometric_Tolerance entity for given shapes,
 //           label and datum system)
 //======================================================================
-static void WriteGeomTolerance (const Handle(XSControl_WorkSession) &WS,
-                                const TDF_LabelSequence theShapeSeqL,
-                                const TDF_Label theGeomTolL,
-                                const Handle(StepDimTol_HArray1OfDatumSystemOrReference)& theDatumSystem,
-                                const Handle(StepRepr_RepresentationContext)& theRC)
+void STEPCAFControl_Writer::WriteGeomTolerance (const Handle(XSControl_WorkSession) &WS,
+                                                const TDF_LabelSequence theShapeSeqL,
+                                                const TDF_Label theGeomTolL,
+                                                const Handle(StepDimTol_HArray1OfDatumSystemOrReference)& theDatumSystem,
+                                                const Handle(StepRepr_RepresentationContext)& theRC)
 {
   // Get working data
   const Handle(Interface_InterfaceModel) &Model = WS->Model();
@@ -3385,7 +3337,8 @@ static void WriteGeomTolerance (const Handle(XSControl_WorkSession) &WS,
   Model->AddWithRefs(aGeomTol);
   WriteToleranceZone(WS, anObject, aGeomTol, theRC);
   //Annotation plane and Presentation
-  WritePresentation(WS, anObject->GetPresentation(), anObject->GetPresentationName(), anObject->GetPlane(), anObject->GetPointTextAttach(), aGeomTol);
+  WritePresentation(WS, anObject->GetPresentation(), anObject->GetPresentationName(), Standard_True, anObject->HasPlane(),
+    anObject->GetPlane(), anObject->GetPointTextAttach(), aGeomTol);
 }
 
 //=======================================================================
@@ -3752,7 +3705,7 @@ Standard_Boolean STEPCAFControl_Writer::WriteDGTs (const Handle(XSControl_WorkSe
 //=======================================================================
 
 Standard_Boolean STEPCAFControl_Writer::WriteDGTsAP242 (const Handle(XSControl_WorkSession) &WS,
-                                                        const TDF_LabelSequence  &labels ) const
+                                                        const TDF_LabelSequence  &labels )
 {
   // Get working data
   const Handle(Interface_InterfaceModel) &aModel = WS->Model();
@@ -3767,15 +3720,13 @@ Standard_Boolean STEPCAFControl_Writer::WriteDGTsAP242 (const Handle(XSControl_W
     return Standard_False;
 
   // Common entities for presentation
-  gdtPresentationDM = new StepVisual_DraughtingModel();
   STEPConstruct_Styles aStyles (WS);
   Handle(StepVisual_Colour) aCurvColor = aStyles.EncodeColor(Quantity_NOC_WHITE);
   Handle(StepRepr_RepresentationItem) anItem = NULL;
-  gdtPrsCurveStyle = new StepVisual_HArray1OfPresentationStyleAssignment(1, 1);
-  gdtPrsCurveStyle->SetValue(1, aStyles.MakeColorPSA(anItem, aCurvColor, aCurvColor));
+  myGDTPrsCurveStyle->SetValue(1, aStyles.MakeColorPSA(anItem, aCurvColor, aCurvColor));
   Interface_EntityIterator aModelIter = aModel->Entities();
-  for (; aModelIter.More() && gdtCommonPDS.IsNull(); aModelIter.Next())
-    gdtCommonPDS = Handle(StepRepr_ProductDefinitionShape)::DownCast(aModelIter.Value());
+  for (; aModelIter.More() && myGDTCommonPDS.IsNull(); aModelIter.Next())
+    myGDTCommonPDS = Handle(StepRepr_ProductDefinitionShape)::DownCast(aModelIter.Value());
 
   TDF_LabelSequence aDGTLabels;
   STEPConstruct_DataMapOfAsciiStringTransient aDatumMap;
@@ -3830,7 +3781,11 @@ Standard_Boolean STEPCAFControl_Writer::WriteDGTsAP242 (const Handle(XSControl_W
       continue;
     if (anObject->GetType() == XCAFDimTolObjects_DimensionType_CommonLabel)
     {
-      WritePresentation(WS, anObject->GetPresentation(), anObject->GetPresentationName(), anObject->GetPlane());
+      Handle(StepRepr_ShapeAspect) aSA = new StepRepr_ShapeAspect();
+      aSA->Init(new TCollection_HAsciiString(), new TCollection_HAsciiString(), myGDTCommonPDS, StepData_LTrue);
+      aModel->AddWithRefs(aSA);
+      WritePresentation(WS, anObject->GetPresentation(), anObject->GetPresentationName(), anObject->HasPlane(),
+        Standard_False, anObject->GetPlane(), anObject->GetPointTextAttach(), aSA);
     }
 
     if (!DGTTool->GetRefShapeLabel(aDimensionL, aFirstShapeL, aSecondShapeL))
@@ -3889,6 +3844,13 @@ Standard_Boolean STEPCAFControl_Writer::WriteDGTsAP242 (const Handle(XSControl_W
       aSecondSA = aCSA;
     }
 
+    if (anObject->GetType() == XCAFDimTolObjects_DimensionType_DimensionPresentation)
+    {
+      WritePresentation(WS, anObject->GetPresentation(), anObject->GetPresentationName(), anObject->HasPlane(),
+        Standard_False, anObject->GetPlane(), anObject->GetPointTextAttach(), aFirstSA);
+      continue;
+    }
+
     // Write dimensions
     StepShape_DimensionalCharacteristic aDimension;
     if (anObject->HasPoint() || anObject->HasPoint2())
@@ -3958,7 +3920,8 @@ Standard_Boolean STEPCAFControl_Writer::WriteDGTsAP242 (const Handle(XSControl_W
     // Write values
     WriteDimValues(WS, anObject, aRC, aDimension);
     //Annotation plane and Presentation
-    WritePresentation(WS, anObject->GetPresentation(), anObject->GetPresentationName(), anObject->GetPlane(), anObject->GetPointTextAttach(), aDimension.Value());
+    WritePresentation(WS, anObject->GetPresentation(), anObject->GetPresentationName(), Standard_True, anObject->HasPlane(),
+      anObject->GetPlane(), anObject->GetPointTextAttach(), aDimension.Value());
   }
   // Write Derived geometry
   if (aConnectionPnts.Length() > 0) {
@@ -3989,16 +3952,16 @@ Standard_Boolean STEPCAFControl_Writer::WriteDGTsAP242 (const Handle(XSControl_W
   }
 
   // Write Draughting model for Annotation Planes
-  if (gdtAnnotationPlanes.Length() == 0)
+  if (myGDTAnnotations.Length() == 0)
     return Standard_True;
 
   Handle(StepRepr_HArray1OfRepresentationItem) aItems =
-    new StepRepr_HArray1OfRepresentationItem(1, gdtAnnotationPlanes.Length());
+    new StepRepr_HArray1OfRepresentationItem(1, myGDTAnnotations.Length());
   for (Standard_Integer i = 1; i <= aItems->Length(); i++) {
-    aItems->SetValue(i, gdtAnnotationPlanes.Value(i - 1));
+    aItems->SetValue(i, myGDTAnnotations.Value(i - 1));
   }
-  gdtPresentationDM->Init(new TCollection_HAsciiString(), aItems, aRC);
-  aModel->AddWithRefs(gdtPresentationDM);
+  myGDTPresentationDM->Init(new TCollection_HAsciiString(), aItems, aRC);
+  aModel->AddWithRefs(myGDTPresentationDM);
 
   return Standard_True;
 }
index 9a1db4d..34fcc83 100644 (file)
 #include <Standard_CString.hxx>
 #include <STEPControl_StepModelType.hxx>
 #include <TDF_LabelSequence.hxx>
+#include <StepAP242_GeometricItemSpecificUsage.hxx>
+#include <StepDimTol_Datum.hxx>
+#include <StepDimTol_GeometricTolerance.hxx>
+#include <StepDimTol_HArray1OfDatumSystemOrReference.hxx>
+#include <StepRepr_ProductDefinitionShape.hxx>
+#include <StepVisual_DraughtingModel.hxx>
+#include <StepVisual_HArray1OfPresentationStyleAssignment.hxx>
+#include <XCAFDimTolObjects_GeomToleranceObject.hxx>
+
 class XSControl_WorkSession;
 class TDocStd_Document;
 class TDF_Label;
@@ -174,7 +183,7 @@ protected:
   Standard_EXPORT Standard_Boolean WriteDGTs (const Handle(XSControl_WorkSession)& WS, const TDF_LabelSequence& labels) const;
   
    //! Write D&GTs assigned to specified labels, to STEP model, according AP242
-  Standard_EXPORT Standard_Boolean WriteDGTsAP242 (const Handle(XSControl_WorkSession)& WS, const TDF_LabelSequence& labels) const;
+  Standard_EXPORT Standard_Boolean WriteDGTsAP242 (const Handle(XSControl_WorkSession)& WS, const TDF_LabelSequence& labels);
 
   //! Write materials assigned to specified labels, to STEP model
   Standard_EXPORT Standard_Boolean WriteMaterials (const Handle(XSControl_WorkSession)& WS, const TDF_LabelSequence& labels) const;
@@ -192,6 +201,23 @@ protected:
   
 
 private:
+  Standard_EXPORT Handle(StepRepr_ShapeAspect) WriteShapeAspect(const Handle(XSControl_WorkSession) &WS,
+    const TDF_Label theLabel, const TopoDS_Shape theShape, Handle(StepRepr_RepresentationContext)& theRC,
+    Handle(StepAP242_GeometricItemSpecificUsage)& theGISU);
+
+  Standard_EXPORT void WritePresentation(const Handle(XSControl_WorkSession) &WS, const TopoDS_Shape thePresentation,
+    const Handle(TCollection_HAsciiString)& thePrsName, const Standard_Boolean hasSemantic, const Standard_Boolean hasPlane,
+    const gp_Ax2 theAnnotationPlane, const gp_Pnt theTextPosition, const Handle(Standard_Transient) theDimension);
+
+  Standard_EXPORT Handle(StepDimTol_Datum) WriteDatumAP242(const Handle(XSControl_WorkSession) &WS, const TDF_LabelSequence theShapeL,
+    const TDF_Label theDatumL, const Standard_Boolean isFirstDTarget, const Handle(StepDimTol_Datum) theWrittenDatum);
+
+  Standard_EXPORT void WriteToleranceZone(const Handle(XSControl_WorkSession) &WS, const Handle(XCAFDimTolObjects_GeomToleranceObject)& theObject,
+    const Handle(StepDimTol_GeometricTolerance)& theEntity, const Handle(StepRepr_RepresentationContext)& theRC);
+
+  Standard_EXPORT void WriteGeomTolerance(const Handle(XSControl_WorkSession) &WS, const TDF_LabelSequence theShapeSeqL,
+    const TDF_Label theGeomTolL, const Handle(StepDimTol_HArray1OfDatumSystemOrReference)& theDatumSystem,
+    const Handle(StepRepr_RepresentationContext)& theRC);
 
 
 
@@ -207,7 +233,10 @@ private:
   MoniTool_DataMapOfShapeTransient myMapCompMDGPR;
   Standard_Boolean myDGTMode;
   Standard_Boolean myMatMode;
-
+  NCollection_Vector<Handle(StepRepr_RepresentationItem)> myGDTAnnotations;
+  Handle(StepVisual_DraughtingModel) myGDTPresentationDM;
+  Handle(StepVisual_HArray1OfPresentationStyleAssignment) myGDTPrsCurveStyle;
+  Handle(StepRepr_ProductDefinitionShape) myGDTCommonPDS;
 
 };
 
index da1074c..df010c1 100644 (file)
@@ -743,6 +743,8 @@ static Standard_CString schemaAP242DIS = "AP242_MANAGED_MODEL_BASED_3D_ENGINEERI
 #include <StepRepr_ConstructiveGeometryRepresentation.hxx>
 #include <StepRepr_ConstructiveGeometryRepresentationRelationship.hxx>
 #include <StepVisual_CharacterizedObjectAndCharacterizedRepresentationAndDraughtingModelAndRepresentation.hxx>
+#include <StepVisual_AnnotationFillArea.hxx>
+#include <StepVisual_AnnotationFillAreaOccurrence.hxx>
 
 static int init = 0;
 static Interface_DataMapOfTransientInteger types(800);
@@ -761,8 +763,8 @@ StepAP214_Protocol::StepAP214_Protocol ()
   types.Bind (STANDARD_TYPE(StepShape_AdvancedBrepShapeRepresentation), 2);
   types.Bind (STANDARD_TYPE(StepShape_AdvancedFace), 3);
   types.Bind (STANDARD_TYPE(StepVisual_AnnotationCurveOccurrence), 4);
-//  types.Bind (STANDARD_TYPE(StepVisual_AnnotationFillArea), 5);
-//  types.Bind (STANDARD_TYPE(StepVisual_AnnotationFillAreaOccurrence), 6);
+  types.Bind (STANDARD_TYPE(StepVisual_AnnotationFillArea), 5);
+  types.Bind (STANDARD_TYPE(StepVisual_AnnotationFillAreaOccurrence), 6);
   types.Bind (STANDARD_TYPE(StepVisual_AnnotationOccurrence), 7);
 //  types.Bind (STANDARD_TYPE(StepVisual_AnnotationSubfigureOccurrence), 8);
 //  types.Bind (STANDARD_TYPE(StepVisual_AnnotationSymbol), 9);
index 9de4246..641d3fc 100644 (file)
@@ -1,5 +1,9 @@
 StepVisual_AnnotationCurveOccurrence.cxx
 StepVisual_AnnotationCurveOccurrence.hxx
+StepVisual_AnnotationFillArea.cxx
+StepVisual_AnnotationFillArea.hxx
+StepVisual_AnnotationFillAreaOccurrence.cxx
+StepVisual_AnnotationFillAreaOccurrence.hxx
 StepVisual_AnnotationOccurrence.cxx
 StepVisual_AnnotationOccurrence.hxx
 StepVisual_AnnotationPlane.cxx
index 79428a8..b4a61da 100644 (file)
@@ -16,6 +16,6 @@
 #include <Standard_Type.hxx>
 #include <StepVisual_AnnotationCurveOccurrence.hxx>
 
-IMPLEMENT_STANDARD_RTTIEXT(StepVisual_AnnotationCurveOccurrence,StepVisual_StyledItem)
+IMPLEMENT_STANDARD_RTTIEXT(StepVisual_AnnotationCurveOccurrence,StepVisual_AnnotationOccurrence)
 
 StepVisual_AnnotationCurveOccurrence::StepVisual_AnnotationCurveOccurrence ()  {}
index 3223156..2cf5f86 100644 (file)
 #include <Standard.hxx>
 #include <Standard_Type.hxx>
 
-#include <StepVisual_StyledItem.hxx>
+#include <StepVisual_AnnotationOccurrence.hxx>
 
 class StepVisual_AnnotationCurveOccurrence;
-DEFINE_STANDARD_HANDLE(StepVisual_AnnotationCurveOccurrence, StepVisual_StyledItem)
+DEFINE_STANDARD_HANDLE(StepVisual_AnnotationCurveOccurrence, StepVisual_AnnotationOccurrence)
 
-class StepVisual_AnnotationCurveOccurrence : public StepVisual_StyledItem
+class StepVisual_AnnotationCurveOccurrence : public StepVisual_AnnotationOccurrence
 {
 public:
 
   //! Returns a AnnotationCurveOccurrence
   Standard_EXPORT StepVisual_AnnotationCurveOccurrence();
 
-  DEFINE_STANDARD_RTTIEXT(StepVisual_AnnotationCurveOccurrence,StepVisual_StyledItem)
+  DEFINE_STANDARD_RTTIEXT(StepVisual_AnnotationCurveOccurrence,StepVisual_AnnotationOccurrence)
 };
 #endif // _StepVisual_AnnotationCurveOccurrence_HeaderFile
diff --git a/src/StepVisual/StepVisual_AnnotationFillArea.cxx b/src/StepVisual/StepVisual_AnnotationFillArea.cxx
new file mode 100644 (file)
index 0000000..c325d3a
--- /dev/null
@@ -0,0 +1,26 @@
+// 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 <Standard_Type.hxx>
+#include <StepVisual_AnnotationFillArea.hxx>
+
+IMPLEMENT_STANDARD_RTTIEXT(StepVisual_AnnotationFillArea, StepShape_GeometricCurveSet)
+
+//=======================================================================
+//function : StepVisual_AnnotationFillArea
+//purpose  : 
+//=======================================================================
+StepVisual_AnnotationFillArea::StepVisual_AnnotationFillArea ()  {}
diff --git a/src/StepVisual/StepVisual_AnnotationFillArea.hxx b/src/StepVisual/StepVisual_AnnotationFillArea.hxx
new file mode 100644 (file)
index 0000000..2b770da
--- /dev/null
@@ -0,0 +1,40 @@
+// 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 _StepVisual_AnnotationFillArea_HeaderFile
+#define _StepVisual_AnnotationFillArea_HeaderFile
+
+#include <Standard.hxx>
+#include <Standard_Type.hxx>
+
+#include <StepRepr_HArray1OfRepresentationItem.hxx>
+#include <StepShape_GeometricCurveSet.hxx>
+#include <Standard_Integer.hxx>
+class TCollection_HAsciiString;
+
+class StepVisual_AnnotationFillArea;
+DEFINE_STANDARD_HANDLE(StepVisual_AnnotationFillArea, StepShape_GeometricCurveSet)
+
+
+class StepVisual_AnnotationFillArea : public StepShape_GeometricCurveSet
+{
+
+public:  
+  //! Returns a AnnotationFillArea
+  Standard_EXPORT StepVisual_AnnotationFillArea();
+
+  DEFINE_STANDARD_RTTIEXT(StepVisual_AnnotationFillArea, StepShape_GeometricCurveSet)
+};
+#endif // _StepVisual_AnnotationFillArea_HeaderFile
diff --git a/src/StepVisual/StepVisual_AnnotationFillAreaOccurrence.cxx b/src/StepVisual/StepVisual_AnnotationFillAreaOccurrence.cxx
new file mode 100644 (file)
index 0000000..7703719
--- /dev/null
@@ -0,0 +1,38 @@
+// 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 <Standard_Type.hxx>
+#include <StepVisual_AnnotationFillAreaOccurrence.hxx>
+
+IMPLEMENT_STANDARD_RTTIEXT(StepVisual_AnnotationFillAreaOccurrence, StepVisual_AnnotationOccurrence)
+
+//=======================================================================
+//function : StepVisual_AnnotationFillAreaOccurrence
+//purpose  : 
+//=======================================================================
+StepVisual_AnnotationFillAreaOccurrence::StepVisual_AnnotationFillAreaOccurrence ()  {}
+
+//=======================================================================
+//function : Init
+//purpose  : 
+//=======================================================================
+void StepVisual_AnnotationFillAreaOccurrence::Init(const Handle(TCollection_HAsciiString)& theName,
+  const Handle(StepVisual_HArray1OfPresentationStyleAssignment)& theStyles,
+  const Handle(MMgt_TShared)& theItem,
+  const Handle(StepGeom_GeometricRepresentationItem)& theFillStyleTarget)
+{
+  StepVisual_AnnotationOccurrence::Init(theName, theStyles, theItem);
+  myFillStyleTarget = theFillStyleTarget;
+}
diff --git a/src/StepVisual/StepVisual_AnnotationFillAreaOccurrence.hxx b/src/StepVisual/StepVisual_AnnotationFillAreaOccurrence.hxx
new file mode 100644 (file)
index 0000000..46bed0d
--- /dev/null
@@ -0,0 +1,57 @@
+// 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 _StepVisual_AnnotationFillAreaOccurrence_HeaderFile
+#define _StepVisual_AnnotationFillAreaOccurrence_HeaderFile
+
+#include <Standard.hxx>
+#include <Standard_Type.hxx>
+
+#include <StepVisual_AnnotationOccurrence.hxx>
+
+class StepVisual_AnnotationFillAreaOccurrence;
+DEFINE_STANDARD_HANDLE(StepVisual_AnnotationFillAreaOccurrence, StepVisual_AnnotationOccurrence)
+
+class StepVisual_AnnotationFillAreaOccurrence : public StepVisual_AnnotationOccurrence
+{
+public:
+
+  //! Returns a AnnotationFillAreaOccurrence
+  Standard_EXPORT StepVisual_AnnotationFillAreaOccurrence();
+  
+  //! Initialize all fields (own and inherited)
+  Standard_EXPORT void Init (const Handle(TCollection_HAsciiString)& theName,
+                             const Handle(StepVisual_HArray1OfPresentationStyleAssignment)& theStyles,
+                             const Handle(MMgt_TShared)& theItem,
+                             const Handle(StepGeom_GeometricRepresentationItem)& theFillStyleTarget);
+  
+  //! Returns field fill_style_target
+  Standard_EXPORT Handle(StepGeom_GeometricRepresentationItem) FillStyleTarget() const
+  {
+    return myFillStyleTarget;
+  }
+  
+  //! Set field fill_style_target
+  Standard_EXPORT void SetFillStyleTarget (const Handle(StepGeom_GeometricRepresentationItem)& theTarget)
+  {
+    myFillStyleTarget = theTarget;
+  }
+
+  DEFINE_STANDARD_RTTIEXT(StepVisual_AnnotationFillAreaOccurrence, StepVisual_AnnotationOccurrence)
+  
+private:
+  Handle(StepGeom_GeometricRepresentationItem) myFillStyleTarget;
+};
+#endif // _StepVisual_AnnotationFillAreaOccurrence_HeaderFile
index 23aebbe..e7f8c2c 100644 (file)
@@ -16,6 +16,7 @@
 #include <StepVisual_DraughtingCalloutElement.hxx>
 #include <Interface_Macros.hxx>
 #include <StepVisual_AnnotationCurveOccurrence.hxx>
+#include <StepVisual_AnnotationFillAreaOccurrence.hxx>
 #include <StepVisual_AnnotationTextOccurrence.hxx>
 #include <StepVisual_TessellatedAnnotationOccurrence.hxx>
 
@@ -37,6 +38,7 @@ Standard_Integer StepVisual_DraughtingCalloutElement::CaseNum(const Handle(Stand
   if (ent->IsKind(STANDARD_TYPE(StepVisual_AnnotationCurveOccurrence))) return 1;
   if (ent->IsKind(STANDARD_TYPE(StepVisual_AnnotationTextOccurrence))) return 2;
   if (ent->IsKind(STANDARD_TYPE(StepVisual_TessellatedAnnotationOccurrence))) return 3;
+  if (ent->IsKind(STANDARD_TYPE(StepVisual_AnnotationFillAreaOccurrence))) return 4;
   return 0;
 }
 
@@ -47,4 +49,7 @@ Handle(StepVisual_TessellatedAnnotationOccurrence) StepVisual_DraughtingCalloutE
 {  return GetCasted(StepVisual_TessellatedAnnotationOccurrence,Value()); } 
 
 Handle(StepVisual_AnnotationTextOccurrence) StepVisual_DraughtingCalloutElement::AnnotationTextOccurrence()  const
-{  return GetCasted(StepVisual_AnnotationTextOccurrence, Value()); } 
+{  return GetCasted(StepVisual_AnnotationTextOccurrence, Value()); }
+
+Handle(StepVisual_AnnotationFillAreaOccurrence) StepVisual_DraughtingCalloutElement::AnnotationFillAreaOccurrence()  const
+{ return GetCasted(StepVisual_AnnotationFillAreaOccurrence, Value()); }
index d3eb981..56c9d57 100644 (file)
@@ -24,6 +24,7 @@
 #include <Standard_Integer.hxx>
 class Standard_Transient;
 class StepVisual_AnnotationCurveOccurrence;
+class StepVisual_AnnotationFillAreaOccurrence;
 class StepVisual_AnnotationTextOccurrence;
 class StepVisual_TessellatedAnnotationOccurrence;
 
@@ -40,6 +41,7 @@ public:
   //! 1 -> AnnotationCurveOccurrence
   //! 2 -> AnnotationTextOccurrence
   //! 3 -> TessellatedAnnotationOccurrence
+  //! 4 -> AnnotationFillAreaOccurrence
   //! 0 else
   Standard_EXPORT Standard_Integer CaseNum (const Handle(Standard_Transient)& ent)  const;
   
@@ -51,5 +53,8 @@ public:
 
   //! returns Value as a TessellatedAnnotationOccurrence
   Standard_EXPORT Handle(StepVisual_TessellatedAnnotationOccurrence) TessellatedAnnotationOccurrence()  const;
+
+  //! returns Value as a AnnotationFillAreaOccurrence
+  Standard_EXPORT Handle(StepVisual_AnnotationFillAreaOccurrence) AnnotationFillAreaOccurrence()  const;
 };
 #endif // StepVisual_DraughtingCalloutElement
index e4eae44..1e0889c 100644 (file)
@@ -50,7 +50,8 @@ XCAFDimTolObjects_DimensionType_Size_ToroidalLowMajorRadius,
 XCAFDimTolObjects_DimensionType_Size_Thickness,
 XCAFDimTolObjects_DimensionType_Size_Angular,
 XCAFDimTolObjects_DimensionType_Size_WithPath,
-XCAFDimTolObjects_DimensionType_CommonLabel
+XCAFDimTolObjects_DimensionType_CommonLabel,
+XCAFDimTolObjects_DimensionType_DimensionPresentation
 };
 
 #endif // _XCAFDimTolObjects_DimensionType_HeaderFile
index 37856f2..96406ba 100644 (file)
@@ -3,12 +3,12 @@ set filename bug26689_nist_ctc_01_asme1_ap242.stp
 
 set ref_data {
 
- NbOfDimensions          : 8
+ NbOfDimensions          : 12
   NbOfDimensionalSize    : 7
   NbOfDimensionalLocation: 1
   NbOfAngular            : 1
   NbOfWithPath           : 0
-  NbOfCommonLabels       : 0
+  NbOfCommonLabels       : 2
  NbOfTolerances          : 6
   NbOfGTWithModifiers    : 0
   NbOfGTWithMaxTolerance : 0
index 929b8a7..a84cb9f 100644 (file)
@@ -3,12 +3,12 @@ set filename bug26689_nist_ctc_04_asme1_ap242.stp
 
 set ref_data {
 
- NbOfDimensions          : 9
+ NbOfDimensions          : 12
   NbOfDimensionalSize    : 6
   NbOfDimensionalLocation: 3
   NbOfAngular            : 1
   NbOfWithPath           : 0
-  NbOfCommonLabels       : 0
+  NbOfCommonLabels       : 3
  NbOfTolerances          : 6
   NbOfGTWithModifiers    : 0
   NbOfGTWithMaxTolerance : 0
index d1fd5d0..49d3cf8 100644 (file)
@@ -3,12 +3,12 @@ set filename bug27645_nist_ftc_06_asme1_cr3000_rd.prt.stp
 
 set ref_data {
 
- NbOfDimensions          : 21
+ NbOfDimensions          : 24
   NbOfDimensionalSize    : 19
   NbOfDimensionalLocation: 2
   NbOfAngular            : 0
   NbOfWithPath           : 0
-  NbOfCommonLabels       : 0
+  NbOfCommonLabels       : 2
  NbOfTolerances          : 27
   NbOfGTWithModifiers    : 4
   NbOfGTWithMaxTolerance : 0
index d083a03..0f03c6a 100644 (file)
@@ -3,12 +3,12 @@ set filename bug27808_nist_ftc_06_asme1_ct5240_rd.stp
 
 set ref_data {
 
- NbOfDimensions          : 22
+ NbOfDimensions          : 25
   NbOfDimensionalSize    : 12
   NbOfDimensionalLocation: 10
   NbOfAngular            : 0
   NbOfWithPath           : 0
-  NbOfCommonLabels       : 0
+  NbOfCommonLabels       : 2
  NbOfTolerances          : 27
   NbOfGTWithModifiers    : 4
   NbOfGTWithMaxTolerance : 0
index 078d2bd..b0c12d5 100644 (file)
@@ -3,12 +3,12 @@ set filename bug27645_nist_ftc_06_asme1_ct5240_rd-1.stp
 
 set ref_data {
 
- NbOfDimensions          : 22
+ NbOfDimensions          : 24
   NbOfDimensionalSize    : 14
   NbOfDimensionalLocation: 8
   NbOfAngular            : 0
   NbOfWithPath           : 0
-  NbOfCommonLabels       : 0
+  NbOfCommonLabels       : 1
  NbOfTolerances          : 27
   NbOfGTWithModifiers    : 4
   NbOfGTWithMaxTolerance : 0
index 30869f5..41213bd 100644 (file)
@@ -3,12 +3,12 @@ set filename bug27645_nist_ftc_08_asme1_cr3000_rc.prt.stp
 
 set ref_data {
 
- NbOfDimensions          : 10
+ NbOfDimensions          : 13
   NbOfDimensionalSize    : 10
   NbOfDimensionalLocation: 0
   NbOfAngular            : 0
   NbOfWithPath           : 0
-  NbOfCommonLabels       : 0
+  NbOfCommonLabels       : 1
  NbOfTolerances          : 30
   NbOfGTWithModifiers    : 14
   NbOfGTWithMaxTolerance : 0
index 330f0df..23183b6 100644 (file)
@@ -3,12 +3,12 @@ set filename bug27808_nist_ftc_08_asme1_ct5240_rc.stp
 
 set ref_data {
 
- NbOfDimensions          : 10
+ NbOfDimensions          : 14
   NbOfDimensionalSize    : 9
   NbOfDimensionalLocation: 1
   NbOfAngular            : 0
   NbOfWithPath           : 0
-  NbOfCommonLabels       : 0
+  NbOfCommonLabels       : 2
  NbOfTolerances          : 33
   NbOfGTWithModifiers    : 17
   NbOfGTWithMaxTolerance : 0
index 62df7f0..e9c34a2 100644 (file)
@@ -3,12 +3,12 @@ set filename bug27645_nist_ftc_08_asme1_ct5240_rc-1.stp
 
 set ref_data {
 
- NbOfDimensions          : 10
+ NbOfDimensions          : 13
   NbOfDimensionalSize    : 9
   NbOfDimensionalLocation: 1
   NbOfAngular            : 0
   NbOfWithPath           : 0
-  NbOfCommonLabels       : 0
+  NbOfCommonLabels       : 1
  NbOfTolerances          : 33
   NbOfGTWithModifiers    : 17
   NbOfGTWithMaxTolerance : 0
index 04fcce1..49eea9e 100644 (file)
@@ -3,12 +3,12 @@ set filename bug27645_nist_ftc_09_asme1_cr3000_rd.prt.stp
 
 set ref_data {
 
- NbOfDimensions          : 21
+ NbOfDimensions          : 27
   NbOfDimensionalSize    : 19
   NbOfDimensionalLocation: 2
   NbOfAngular            : 0
   NbOfWithPath           : 0
-  NbOfCommonLabels       : 0
+  NbOfCommonLabels       : 1
  NbOfTolerances          : 29
   NbOfGTWithModifiers    : 6
   NbOfGTWithMaxTolerance : 0
index 0dbf18d..298f002 100644 (file)
@@ -3,12 +3,12 @@ set filename bug27808_nist_ftc_09_asme1_ct5240_rd.stp
 
 set ref_data {
 
- NbOfDimensions          : 23
+ NbOfDimensions          : 27
   NbOfDimensionalSize    : 16
   NbOfDimensionalLocation: 7
   NbOfAngular            : 0
   NbOfWithPath           : 0
-  NbOfCommonLabels       : 0
+  NbOfCommonLabels       : 1
  NbOfTolerances          : 31
   NbOfGTWithModifiers    : 6
   NbOfGTWithMaxTolerance : 0
index 0ba40d2..4810100 100644 (file)
@@ -3,12 +3,12 @@ set filename bug27645_nist_ftc_09_asme1_ct5240_rd-1.stp
 
 set ref_data {
 
- NbOfDimensions          : 23
+ NbOfDimensions          : 27
   NbOfDimensionalSize    : 16
   NbOfDimensionalLocation: 7
   NbOfAngular            : 0
   NbOfWithPath           : 0
-  NbOfCommonLabels       : 0
+  NbOfCommonLabels       : 1
  NbOfTolerances          : 31
   NbOfGTWithModifiers    : 6
   NbOfGTWithMaxTolerance : 0
diff --git a/tests/gdt/export/B7 b/tests/gdt/export/B7
new file mode 100644 (file)
index 0000000..e94a9b2
--- /dev/null
@@ -0,0 +1,19 @@
+# !!!! This file is generated automatically, do not edit manually! See end script
+set filename bug28315_part_step-pmi.stp
+
+set ref_data {
+
+ NbOfDimensions          : 13
+  NbOfDimensionalSize    : 0
+  NbOfDimensionalLocation: 0
+  NbOfAngular            : 0
+  NbOfWithPath           : 0
+  NbOfCommonLabels       : 3
+ NbOfTolerances          : 0
+  NbOfGTWithModifiers    : 0
+  NbOfGTWithMaxTolerance : 0
+  NbOfGTWithDatums       : 0
+ NbOfDatumFeature        : 0
+ NbOfAttachedDatum       : 0
+ NbOfDatumTarget         : 0
+}
diff --git a/tests/gdt/export/B8 b/tests/gdt/export/B8
new file mode 100644 (file)
index 0000000..230aeb0
--- /dev/null
@@ -0,0 +1,19 @@
+# !!!! This file is generated automatically, do not edit manually! See end script
+set filename bug28315_rev_part_neu_01_ap214_is.stp
+
+set ref_data {
+
+ NbOfDimensions          : 51
+  NbOfDimensionalSize    : 0
+  NbOfDimensionalLocation: 0
+  NbOfAngular            : 0
+  NbOfWithPath           : 0
+  NbOfCommonLabels       : 39
+ NbOfTolerances          : 0
+  NbOfGTWithModifiers    : 0
+  NbOfGTWithMaxTolerance : 0
+  NbOfGTWithDatums       : 0
+ NbOfDatumFeature        : 0
+ NbOfAttachedDatum       : 0
+ NbOfDatumTarget         : 0
+}
index c3ff618..a7b9cae 100644 (file)
@@ -3,7 +3,7 @@ set filename bug26689_nist_ctc_01_asme1_ap242.stp
 
 set ref_data {
 
- NbOfDimensions          : 8
+ NbOfDimensions          : 12
  NbOfTolerances          : 6
  NbOfDatumFeature        : 5
  NbOfAttachedDatum       : 17
@@ -94,4 +94,8 @@ set ref_data {
         0:1:4:25 Dimension.30.1 ( T 15, V 25, VL 0.14999999999999999, VU 0.14999999999999999, P 0 )
  0:1:1:1:30 Shape.31
         0:1:4:25 Dimension.31.1 ( T 15, V 25, VL 0.14999999999999999, VU 0.14999999999999999, P 0 )
+ 0:1:1:1:31 Shape.32
+        0:1:4:28 Dimension.32.1 ( T 31, V 0, P 0 )
+ 0:1:1:1:32 Shape.33
+        0:1:4:29 Dimension.33.1 ( T 31, V 0, P 0 )
 }
index b529dfa..121d8ef 100644 (file)
@@ -3,14 +3,14 @@ set filename bug26689_nist_ctc_04_asme1_ap242.stp
 
 set ref_data {
 
- NbOfDimensions          : 9
+ NbOfDimensions          : 12
  NbOfTolerances          : 6
  NbOfDatumFeature        : 10
  NbOfAttachedDatum       : 19
  NbOfDatumTarget         : 0
 
  0:1:1:2:1 Shape.4
-        0:1:4:22 Dimension.4.1 ( T 15, V 6.6500000000000004, VL 0.12, VU 0.12, P 0 )
+        0:1:4:24 Dimension.4.1 ( T 15, V 6.6500000000000004, VL 0.12, VU 0.12, P 0 )
         0:1:4:1 GeomTolerance.4.1 ( T 10 TV 1, V 1.5 )
                 0:1:4:2 Datum.4.1.1 ( )
                 0:1:4:3 Datum.4.1.2 ( )
@@ -19,7 +19,7 @@ set ref_data {
                 0:1:4:6 Datum.4.2.1 ( )
                 0:1:4:7 Datum.4.2.2 ( )
  0:1:1:2:2 Shape.5
-        0:1:4:22 Dimension.5.1 ( T 15, V 6.6500000000000004, VL 0.12, VU 0.12, P 0 )
+        0:1:4:24 Dimension.5.1 ( T 15, V 6.6500000000000004, VL 0.12, VU 0.12, P 0 )
         0:1:4:1 GeomTolerance.5.1 ( T 10 TV 1, V 1.5 )
                 0:1:4:2 Datum.5.1.1 ( )
                 0:1:4:3 Datum.5.1.2 ( )
@@ -28,7 +28,7 @@ set ref_data {
                 0:1:4:6 Datum.5.2.1 ( )
                 0:1:4:7 Datum.5.2.2 ( )
  0:1:1:2:3 Shape.6
-        0:1:4:22 Dimension.6.1 ( T 15, V 6.6500000000000004, VL 0.12, VU 0.12, P 0 )
+        0:1:4:24 Dimension.6.1 ( T 15, V 6.6500000000000004, VL 0.12, VU 0.12, P 0 )
         0:1:4:1 GeomTolerance.6.1 ( T 10 TV 1, V 1.5 )
                 0:1:4:2 Datum.6.1.1 ( )
                 0:1:4:3 Datum.6.1.2 ( )
@@ -37,7 +37,7 @@ set ref_data {
                 0:1:4:6 Datum.6.2.1 ( )
                 0:1:4:7 Datum.6.2.2 ( )
  0:1:1:2:4 Shape.7
-        0:1:4:22 Dimension.7.1 ( T 15, V 6.6500000000000004, VL 0.12, VU 0.12, P 0 )
+        0:1:4:24 Dimension.7.1 ( T 15, V 6.6500000000000004, VL 0.12, VU 0.12, P 0 )
         0:1:4:1 GeomTolerance.7.1 ( T 10 TV 1, V 1.5 )
                 0:1:4:2 Datum.7.1.1 ( )
                 0:1:4:3 Datum.7.1.2 ( )
@@ -46,7 +46,7 @@ set ref_data {
                 0:1:4:6 Datum.7.2.1 ( )
                 0:1:4:7 Datum.7.2.2 ( )
  0:1:1:2:5 Shape.8
-        0:1:4:22 Dimension.8.1 ( T 15, V 6.6500000000000004, VL 0.12, VU 0.12, P 0 )
+        0:1:4:24 Dimension.8.1 ( T 15, V 6.6500000000000004, VL 0.12, VU 0.12, P 0 )
         0:1:4:1 GeomTolerance.8.1 ( T 10 TV 1, V 1.5 )
                 0:1:4:2 Datum.8.1.1 ( )
                 0:1:4:3 Datum.8.1.2 ( )
@@ -55,7 +55,7 @@ set ref_data {
                 0:1:4:6 Datum.8.2.1 ( )
                 0:1:4:7 Datum.8.2.2 ( )
  0:1:1:2:6 Shape.9
-        0:1:4:22 Dimension.9.1 ( T 15, V 6.6500000000000004, VL 0.12, VU 0.12, P 0 )
+        0:1:4:24 Dimension.9.1 ( T 15, V 6.6500000000000004, VL 0.12, VU 0.12, P 0 )
         0:1:4:1 GeomTolerance.9.1 ( T 10 TV 1, V 1.5 )
                 0:1:4:2 Datum.9.1.1 ( )
                 0:1:4:3 Datum.9.1.2 ( )
@@ -64,7 +64,7 @@ set ref_data {
                 0:1:4:6 Datum.9.2.1 ( )
                 0:1:4:7 Datum.9.2.2 ( )
  0:1:1:2:7 Shape.10
-        0:1:4:22 Dimension.10.1 ( T 15, V 6.6500000000000004, VL 0.12, VU 0.12, P 0 )
+        0:1:4:24 Dimension.10.1 ( T 15, V 6.6500000000000004, VL 0.12, VU 0.12, P 0 )
         0:1:4:1 GeomTolerance.10.1 ( T 10 TV 1, V 1.5 )
                 0:1:4:2 Datum.10.1.1 ( )
                 0:1:4:3 Datum.10.1.2 ( )
@@ -73,7 +73,7 @@ set ref_data {
                 0:1:4:6 Datum.10.2.1 ( )
                 0:1:4:7 Datum.10.2.2 ( )
  0:1:1:2:8 Shape.11
-        0:1:4:22 Dimension.11.1 ( T 15, V 6.6500000000000004, VL 0.12, VU 0.12, P 0 )
+        0:1:4:24 Dimension.11.1 ( T 15, V 6.6500000000000004, VL 0.12, VU 0.12, P 0 )
         0:1:4:1 GeomTolerance.11.1 ( T 10 TV 1, V 1.5 )
                 0:1:4:2 Datum.11.1.1 ( )
                 0:1:4:3 Datum.11.1.2 ( )
@@ -82,7 +82,7 @@ set ref_data {
                 0:1:4:6 Datum.11.2.1 ( )
                 0:1:4:7 Datum.11.2.2 ( )
  0:1:1:2:9 Shape.12
-        0:1:4:22 Dimension.12.1 ( T 15, V 6.6500000000000004, VL 0.12, VU 0.12, P 0 )
+        0:1:4:24 Dimension.12.1 ( T 15, V 6.6500000000000004, VL 0.12, VU 0.12, P 0 )
         0:1:4:1 GeomTolerance.12.1 ( T 10 TV 1, V 1.5 )
                 0:1:4:2 Datum.12.1.1 ( )
                 0:1:4:3 Datum.12.1.2 ( )
@@ -91,7 +91,7 @@ set ref_data {
                 0:1:4:6 Datum.12.2.1 ( )
                 0:1:4:7 Datum.12.2.2 ( )
  0:1:1:2:10 Shape.13
-        0:1:4:22 Dimension.13.1 ( T 15, V 6.6500000000000004, VL 0.12, VU 0.12, P 0 )
+        0:1:4:24 Dimension.13.1 ( T 15, V 6.6500000000000004, VL 0.12, VU 0.12, P 0 )
         0:1:4:1 GeomTolerance.13.1 ( T 10 TV 1, V 1.5 )
                 0:1:4:2 Datum.13.1.1 ( )
                 0:1:4:3 Datum.13.1.2 ( )
@@ -100,7 +100,7 @@ set ref_data {
                 0:1:4:6 Datum.13.2.1 ( )
                 0:1:4:7 Datum.13.2.2 ( )
  0:1:1:2:11 Shape.14
-        0:1:4:22 Dimension.14.1 ( T 15, V 6.6500000000000004, VL 0.12, VU 0.12, P 0 )
+        0:1:4:24 Dimension.14.1 ( T 15, V 6.6500000000000004, VL 0.12, VU 0.12, P 0 )
         0:1:4:1 GeomTolerance.14.1 ( T 10 TV 1, V 1.5 )
                 0:1:4:2 Datum.14.1.1 ( )
                 0:1:4:3 Datum.14.1.2 ( )
@@ -109,7 +109,7 @@ set ref_data {
                 0:1:4:6 Datum.14.2.1 ( )
                 0:1:4:7 Datum.14.2.2 ( )
  0:1:1:2:12 Shape.15
-        0:1:4:22 Dimension.15.1 ( T 15, V 6.6500000000000004, VL 0.12, VU 0.12, P 0 )
+        0:1:4:24 Dimension.15.1 ( T 15, V 6.6500000000000004, VL 0.12, VU 0.12, P 0 )
         0:1:4:1 GeomTolerance.15.1 ( T 10 TV 1, V 1.5 )
                 0:1:4:2 Datum.15.1.1 ( )
                 0:1:4:3 Datum.15.1.2 ( )
@@ -118,308 +118,308 @@ set ref_data {
                 0:1:4:6 Datum.15.2.1 ( )
                 0:1:4:7 Datum.15.2.2 ( )
  0:1:1:2:16 Shape.19
-        0:1:4:23 Dimension.19.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
-        0:1:4:8 GeomTolerance.19.1 ( T 10 TV 1, V 0.34999999999999998 )
-                0:1:4:9 Datum.19.1.1 ( )
-                0:1:4:10 Datum.19.1.2 ( )
-                0:1:4:11 Datum.19.1.3 ( )
+        0:1:4:25 Dimension.19.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:9 GeomTolerance.19.1 ( T 10 TV 1, V 0.34999999999999998 )
+                0:1:4:10 Datum.19.1.1 ( )
+                0:1:4:11 Datum.19.1.2 ( )
+                0:1:4:12 Datum.19.1.3 ( )
  0:1:1:2:17 Shape.20
-        0:1:4:23 Dimension.20.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
-        0:1:4:8 GeomTolerance.20.1 ( T 10 TV 1, V 0.34999999999999998 )
-                0:1:4:9 Datum.20.1.1 ( )
-                0:1:4:10 Datum.20.1.2 ( )
-                0:1:4:11 Datum.20.1.3 ( )
+        0:1:4:25 Dimension.20.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:9 GeomTolerance.20.1 ( T 10 TV 1, V 0.34999999999999998 )
+                0:1:4:10 Datum.20.1.1 ( )
+                0:1:4:11 Datum.20.1.2 ( )
+                0:1:4:12 Datum.20.1.3 ( )
  0:1:1:2:23 Shape.26
-        0:1:4:12 GeomTolerance.26.1 ( T 12 TV 0, V 2 )
-                0:1:4:13 Datum.26.1.1 ( )
-                0:1:4:14 Datum.26.1.2 ( )
-                0:1:4:15 Datum.26.1.3 ( )
-        0:1:4:16 GeomTolerance.26.2 ( T 12 TV 0, V 0.20000000000000001 )
-                0:1:4:17 Datum.26.2.1 ( )
+        0:1:4:13 GeomTolerance.26.1 ( T 12 TV 0, V 2 )
+                0:1:4:14 Datum.26.1.1 ( )
+                0:1:4:15 Datum.26.1.2 ( )
+                0:1:4:16 Datum.26.1.3 ( )
+        0:1:4:17 GeomTolerance.26.2 ( T 12 TV 0, V 0.20000000000000001 )
+                0:1:4:18 Datum.26.2.1 ( )
  0:1:1:2:24 Shape.27
-        0:1:4:12 GeomTolerance.27.1 ( T 12 TV 0, V 2 )
-                0:1:4:13 Datum.27.1.1 ( )
-                0:1:4:14 Datum.27.1.2 ( )
-                0:1:4:15 Datum.27.1.3 ( )
-        0:1:4:16 GeomTolerance.27.2 ( T 12 TV 0, V 0.20000000000000001 )
-                0:1:4:17 Datum.27.2.1 ( )
+        0:1:4:13 GeomTolerance.27.1 ( T 12 TV 0, V 2 )
+                0:1:4:14 Datum.27.1.1 ( )
+                0:1:4:15 Datum.27.1.2 ( )
+                0:1:4:16 Datum.27.1.3 ( )
+        0:1:4:17 GeomTolerance.27.2 ( T 12 TV 0, V 0.20000000000000001 )
+                0:1:4:18 Datum.27.2.1 ( )
  0:1:1:2:27 Shape.30
-        0:1:4:18 GeomTolerance.30.1 ( T 12 TV 0, V 0.5 )
-                0:1:4:19 Datum.30.1.1 ( )
-                0:1:4:20 Datum.30.1.2 ( )
-                0:1:4:21 Datum.30.1.3 ( )
+        0:1:4:19 GeomTolerance.30.1 ( T 12 TV 0, V 0.5 )
+                0:1:4:20 Datum.30.1.1 ( )
+                0:1:4:21 Datum.30.1.2 ( )
+                0:1:4:22 Datum.30.1.3 ( )
  0:1:1:2:28 Shape.31
-        0:1:4:23 Dimension.31.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.31.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:29 Shape.32
-        0:1:4:23 Dimension.32.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.32.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:30 Shape.33
-        0:1:4:23 Dimension.33.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.33.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:31 Shape.34
-        0:1:4:23 Dimension.34.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.34.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:32 Shape.35
-        0:1:4:23 Dimension.35.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.35.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:33 Shape.36
-        0:1:4:23 Dimension.36.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.36.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:34 Shape.37
-        0:1:4:23 Dimension.37.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.37.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:35 Shape.38
-        0:1:4:23 Dimension.38.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.38.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:36 Shape.39
-        0:1:4:23 Dimension.39.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.39.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:37 Shape.40
-        0:1:4:23 Dimension.40.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.40.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:38 Shape.41
-        0:1:4:23 Dimension.41.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.41.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:39 Shape.42
-        0:1:4:23 Dimension.42.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.42.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:40 Shape.43
-        0:1:4:23 Dimension.43.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
-        0:1:4:25 Dimension.43.2 ( T 2, V 75, P 0 )
+        0:1:4:25 Dimension.43.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:27 Dimension.43.2 ( T 2, V 75, P 0 )
  0:1:1:2:41 Shape.44
-        0:1:4:23 Dimension.44.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
-        0:1:4:25 Dimension.44.2 ( T 2, V 75, P 0 )
+        0:1:4:25 Dimension.44.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:27 Dimension.44.2 ( T 2, V 75, P 0 )
  0:1:1:2:42 Shape.45
-        0:1:4:23 Dimension.45.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
-        0:1:4:25 Dimension.45.2 ( T 2, V 75, P 0 )
+        0:1:4:25 Dimension.45.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:27 Dimension.45.2 ( T 2, V 75, P 0 )
  0:1:1:2:43 Shape.46
-        0:1:4:23 Dimension.46.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
-        0:1:4:25 Dimension.46.2 ( T 2, V 75, P 0 )
+        0:1:4:25 Dimension.46.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:27 Dimension.46.2 ( T 2, V 75, P 0 )
  0:1:1:2:44 Shape.47
-        0:1:4:23 Dimension.47.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.47.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:45 Shape.48
-        0:1:4:23 Dimension.48.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.48.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:46 Shape.49
-        0:1:4:23 Dimension.49.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.49.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:47 Shape.50
-        0:1:4:23 Dimension.50.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.50.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:48 Shape.51
-        0:1:4:23 Dimension.51.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.51.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:49 Shape.52
-        0:1:4:23 Dimension.52.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.52.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:50 Shape.53
-        0:1:4:23 Dimension.53.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.53.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:51 Shape.54
-        0:1:4:23 Dimension.54.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.54.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:52 Shape.55
-        0:1:4:23 Dimension.55.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.55.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:53 Shape.56
-        0:1:4:23 Dimension.56.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.56.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:54 Shape.57
-        0:1:4:23 Dimension.57.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.57.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:55 Shape.58
-        0:1:4:23 Dimension.58.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.58.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:56 Shape.59
-        0:1:4:23 Dimension.59.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.59.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:57 Shape.60
-        0:1:4:23 Dimension.60.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.60.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:58 Shape.61
-        0:1:4:23 Dimension.61.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.61.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:59 Shape.62
-        0:1:4:23 Dimension.62.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.62.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:60 Shape.63
-        0:1:4:23 Dimension.63.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.63.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:61 Shape.64
-        0:1:4:23 Dimension.64.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.64.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:62 Shape.65
-        0:1:4:23 Dimension.65.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.65.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:63 Shape.66
-        0:1:4:23 Dimension.66.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.66.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:64 Shape.67
-        0:1:4:23 Dimension.67.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.67.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:65 Shape.68
-        0:1:4:23 Dimension.68.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.68.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:66 Shape.69
-        0:1:4:23 Dimension.69.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.69.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:67 Shape.70
-        0:1:4:23 Dimension.70.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.70.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:68 Shape.71
-        0:1:4:23 Dimension.71.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.71.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:69 Shape.72
-        0:1:4:23 Dimension.72.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.72.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:70 Shape.73
-        0:1:4:23 Dimension.73.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.73.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:71 Shape.74
-        0:1:4:23 Dimension.74.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.74.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:72 Shape.75
-        0:1:4:23 Dimension.75.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.75.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:73 Shape.76
-        0:1:4:23 Dimension.76.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.76.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:74 Shape.77
-        0:1:4:23 Dimension.77.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.77.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:75 Shape.78
-        0:1:4:23 Dimension.78.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.78.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:76 Shape.79
-        0:1:4:23 Dimension.79.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.79.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:77 Shape.80
-        0:1:4:23 Dimension.80.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.80.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:78 Shape.81
-        0:1:4:23 Dimension.81.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.81.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:79 Shape.82
-        0:1:4:23 Dimension.82.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.82.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:80 Shape.83
-        0:1:4:23 Dimension.83.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.83.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:81 Shape.84
-        0:1:4:23 Dimension.84.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.84.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:82 Shape.85
-        0:1:4:23 Dimension.85.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.85.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:83 Shape.86
-        0:1:4:23 Dimension.86.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.86.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:84 Shape.87
-        0:1:4:23 Dimension.87.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.87.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:85 Shape.88
-        0:1:4:23 Dimension.88.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
+        0:1:4:25 Dimension.88.1 ( T 15, V 14, VL 0.10000000000000001, VU 0.10000000000000001, P 0 )
  0:1:1:2:86 Shape.89
-        0:1:4:24 Dimension.89.1 ( T 15, V 10, P 0 )
+        0:1:4:26 Dimension.89.1 ( T 15, V 10, P 0 )
  0:1:1:2:87 Shape.90
-        0:1:4:24 Dimension.90.1 ( T 15, V 10, P 0 )
+        0:1:4:26 Dimension.90.1 ( T 15, V 10, P 0 )
  0:1:1:2:88 Shape.91
-        0:1:4:26 Dimension.91.1 ( T 15, V 20, VL 0.20000000000000001, VU 0.20000000000000001, P 0 )
+        0:1:4:29 Dimension.91.1 ( T 15, V 20, VL 0.20000000000000001, VU 0.20000000000000001, P 0 )
  0:1:1:2:89 Shape.92
-        0:1:4:26 Dimension.92.1 ( T 15, V 20, VL 0.20000000000000001, VU 0.20000000000000001, P 0 )
+        0:1:4:29 Dimension.92.1 ( T 15, V 20, VL 0.20000000000000001, VU 0.20000000000000001, P 0 )
  0:1:1:2:90 Shape.93
-        0:1:4:26 Dimension.93.1 ( T 15, V 20, VL 0.20000000000000001, VU 0.20000000000000001, P 0 )
+        0:1:4:29 Dimension.93.1 ( T 15, V 20, VL 0.20000000000000001, VU 0.20000000000000001, P 0 )
  0:1:1:2:91 Shape.94
-        0:1:4:26 Dimension.94.1 ( T 15, V 20, VL 0.20000000000000001, VU 0.20000000000000001, P 0 )
+        0:1:4:29 Dimension.94.1 ( T 15, V 20, VL 0.20000000000000001, VU 0.20000000000000001, P 0 )
  0:1:1:2:92 Shape.95
-        0:1:4:26 Dimension.95.1 ( T 15, V 20, VL 0.20000000000000001, VU 0.20000000000000001, P 0 )
+        0:1:4:29 Dimension.95.1 ( T 15, V 20, VL 0.20000000000000001, VU 0.20000000000000001, P 0 )
  0:1:1:2:93 Shape.96
-        0:1:4:26 Dimension.96.1 ( T 15, V 20, VL 0.20000000000000001, VU 0.20000000000000001, P 0 )
+        0:1:4:29 Dimension.96.1 ( T 15, V 20, VL 0.20000000000000001, VU 0.20000000000000001, P 0 )
  0:1:1:2:94 Shape.97
-        0:1:4:26 Dimension.97.1 ( T 15, V 20, VL 0.20000000000000001, VU 0.20000000000000001, P 0 )
+        0:1:4:29 Dimension.97.1 ( T 15, V 20, VL 0.20000000000000001, VU 0.20000000000000001, P 0 )
  0:1:1:2:95 Shape.98
-        0:1:4:26 Dimension.98.1 ( T 15, V 20, VL 0.20000000000000001, VU 0.20000000000000001, P 0 )
+        0:1:4:29 Dimension.98.1 ( T 15, V 20, VL 0.20000000000000001, VU 0.20000000000000001, P 0 )
  0:1:1:2:96 Shape.99
-        0:1:4:27 Dimension.99.1 ( T 2, V 20, VL 0.20000000000000001, VU 0.20000000000000001, P 0 )
+        0:1:4:30 Dimension.99.1 ( T 2, V 20, VL 0.20000000000000001, VU 0.20000000000000001, P 0 )
  0:1:1:2:97 Shape.100
-        0:1:4:28 Dimension.100.1 ( T 14, V 25, VL 0.25, VU 0.25, P 0 )
-        0:1:4:27 Dimension.100.2 ( T 2, V 20, VL 0.20000000000000001, VU 0.20000000000000001, P 0 )
+        0:1:4:31 Dimension.100.1 ( T 14, V 25, VL 0.25, VU 0.25, P 0 )
+        0:1:4:30 Dimension.100.2 ( T 2, V 20, VL 0.20000000000000001, VU 0.20000000000000001, P 0 )
  0:1:1:2:98 Shape.101
-        0:1:4:29 Dimension.101.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.101.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:99 Shape.102
-        0:1:4:29 Dimension.102.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.102.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:100 Shape.103
-        0:1:4:29 Dimension.103.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.103.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:101 Shape.104
-        0:1:4:29 Dimension.104.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.104.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:102 Shape.105
-        0:1:4:29 Dimension.105.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.105.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:103 Shape.106
-        0:1:4:29 Dimension.106.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.106.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:104 Shape.107
-        0:1:4:29 Dimension.107.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.107.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:105 Shape.108
-        0:1:4:29 Dimension.108.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.108.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:106 Shape.109
-        0:1:4:29 Dimension.109.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.109.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:107 Shape.110
-        0:1:4:29 Dimension.110.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.110.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:108 Shape.111
-        0:1:4:29 Dimension.111.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.111.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:109 Shape.112
-        0:1:4:29 Dimension.112.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.112.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:110 Shape.113
-        0:1:4:29 Dimension.113.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.113.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:111 Shape.114
-        0:1:4:29 Dimension.114.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.114.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:112 Shape.115
-        0:1:4:29 Dimension.115.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.115.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:113 Shape.116
-        0:1:4:29 Dimension.116.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.116.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:114 Shape.117
-        0:1:4:29 Dimension.117.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.117.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:115 Shape.118
-        0:1:4:29 Dimension.118.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.118.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:116 Shape.119
-        0:1:4:29 Dimension.119.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.119.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:117 Shape.120
-        0:1:4:29 Dimension.120.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.120.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:118 Shape.121
-        0:1:4:29 Dimension.121.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.121.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:119 Shape.122
-        0:1:4:29 Dimension.122.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.122.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:120 Shape.123
-        0:1:4:29 Dimension.123.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.123.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:121 Shape.124
-        0:1:4:29 Dimension.124.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.124.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:122 Shape.125
-        0:1:4:29 Dimension.125.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.125.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:123 Shape.126
-        0:1:4:29 Dimension.126.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.126.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:124 Shape.127
-        0:1:4:29 Dimension.127.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.127.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:125 Shape.128
-        0:1:4:29 Dimension.128.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.128.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:126 Shape.129
-        0:1:4:29 Dimension.129.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.129.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:127 Shape.130
-        0:1:4:29 Dimension.130.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.130.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:128 Shape.131
-        0:1:4:29 Dimension.131.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.131.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:129 Shape.132
-        0:1:4:29 Dimension.132.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.132.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:130 Shape.133
-        0:1:4:29 Dimension.133.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.133.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:131 Shape.134
-        0:1:4:29 Dimension.134.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.134.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:132 Shape.135
-        0:1:4:29 Dimension.135.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.135.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:133 Shape.136
-        0:1:4:29 Dimension.136.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.136.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:134 Shape.137
-        0:1:4:29 Dimension.137.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.137.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:135 Shape.138
-        0:1:4:29 Dimension.138.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.138.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:136 Shape.139
-        0:1:4:29 Dimension.139.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.139.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:137 Shape.140
-        0:1:4:29 Dimension.140.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.140.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:138 Shape.141
-        0:1:4:29 Dimension.141.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.141.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:139 Shape.142
-        0:1:4:29 Dimension.142.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.142.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:140 Shape.143
-        0:1:4:29 Dimension.143.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.143.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:141 Shape.144
-        0:1:4:29 Dimension.144.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.144.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:142 Shape.145
-        0:1:4:29 Dimension.145.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.145.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:143 Shape.146
-        0:1:4:29 Dimension.146.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.146.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:144 Shape.147
-        0:1:4:29 Dimension.147.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.147.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:145 Shape.148
-        0:1:4:29 Dimension.148.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.148.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:146 Shape.149
-        0:1:4:29 Dimension.149.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.149.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:147 Shape.150
-        0:1:4:29 Dimension.150.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.150.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:148 Shape.151
-        0:1:4:29 Dimension.151.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.151.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:149 Shape.152
-        0:1:4:29 Dimension.152.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.152.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:150 Shape.153
-        0:1:4:29 Dimension.153.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.153.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:151 Shape.154
-        0:1:4:29 Dimension.154.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.154.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:152 Shape.155
-        0:1:4:29 Dimension.155.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.155.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:153 Shape.156
-        0:1:4:29 Dimension.156.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.156.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:154 Shape.157
-        0:1:4:29 Dimension.157.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.157.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:155 Shape.158
-        0:1:4:29 Dimension.158.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.158.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:156 Shape.159
-        0:1:4:29 Dimension.159.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.159.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:157 Shape.160
-        0:1:4:29 Dimension.160.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
+        0:1:4:32 Dimension.160.1 ( T 15, V 20, VL 0.29999999999999999, VU 0.29999999999999999, P 0 )
  0:1:1:2:158 Shape.161
-        0:1:4:30 Dimension.161.1 ( T 11, V 89.999999999776747, VL 1, VU 1, Q 3, P 0 )
+        0:1:4:33 Dimension.161.1 ( T 11, V 89.999999999776747, VL 1, VU 1, Q 3, P 0 )
  0:1:1:2:159 Shape.162
-        0:1:4:30 Dimension.162.1 ( T 11, V 89.999999999776747, VL 1, VU 1, Q 3, P 0 )
+        0:1:4:33 Dimension.162.1 ( T 11, V 89.999999999776747, VL 1, VU 1, Q 3, P 0 )
  0:1:1:3:1 Shape.163
-        0:1:4:18 GeomTolerance.163.1 ( T 12 TV 0, V 0.5 )
-                0:1:4:19 Datum.163.1.1 ( )
-                0:1:4:20 Datum.163.1.2 ( )
-                0:1:4:21 Datum.163.1.3 ( )
+        0:1:4:19 GeomTolerance.163.1 ( T 12 TV 0, V 0.5 )
+                0:1:4:20 Datum.163.1.1 ( )
+                0:1:4:21 Datum.163.1.2 ( )
+                0:1:4:22 Datum.163.1.3 ( )
 }
index b89fc18..3173b48 100644 (file)
@@ -2,7 +2,7 @@
 set filename bug26689_nist_ctc_01_asme1_ap242.stp
 
 set ref_data {
-Centre of mass: 29.546801037335253 -82.783066220874005 -19.99554027028211
-Mass: 13738.80582018411
+Centre of mass: 56.624452876720184 -79.756321087256879 -19.453607025633545
+Mass: 15180.104935593114
 
 }
index d8546f9..f6e1d72 100644 (file)
@@ -2,7 +2,7 @@
 set filename bug26689_nist_ctc_04_asme1_ap242.stp
 
 set ref_data {
-Centre of mass: -24.252221154276793 414.27122809865392 -67.499648752527435
-Mass: 16181.056829161265
+Centre of mass: -38.158786810985518 394.05735693263932 -73.721980763012184
+Mass: 18090.902430013277
 
 }
index 4b1dc0d..b5692d7 100644 (file)
@@ -2,7 +2,7 @@
 set filename bug27645_nist_ftc_06_asme1_cr3000_rd.prt.stp
 
 set ref_data {
-Centre of mass: 353.0342262077636 2195.7131569185326 -1984.1595092335315
-Mass: 652240.08849643217
+Centre of mass: 117582.80050896495 404113.50809473585 -141.38021108117269
+Mass: 9543968.3389828727
 
 }
index 149d988..a584ff9 100644 (file)
@@ -2,7 +2,7 @@
 set filename bug27808_nist_ftc_06_asme1_ct5240_rd.stp
 
 set ref_data {
-Centre of mass: -0.74274946098869621 58.97231577066983 -68.214139931277799
-Mass: 27143.62735625666
+Centre of mass: 27.008960295654042 68.408288943978818 -34.710916438175147
+Mass: 32252.329299725821
 
 }
index 49c6bc3..60c8e45 100644 (file)
@@ -2,7 +2,7 @@
 set filename bug27645_nist_ftc_06_asme1_ct5240_rd-1.stp
 
 set ref_data {
-Centre of mass: -18.865504732887754 1497.8967671908645 -1732.6395748131215
-Mass: 689448.13901608682
+Centre of mass: 648.39775917026395 1736.2007258497454 -916.83469970653425
+Mass: 813710.40605434508
 
 }
index 300486b..ef213f8 100644 (file)
@@ -2,7 +2,7 @@
 set filename bug27645_nist_ftc_08_asme1_cr3000_rc.prt.stp
 
 set ref_data {
-Centre of mass: 1104.9937982009856 239.05520712068363 1053.1493316328786
-Mass: 707651.56598301406
+Centre of mass: 78193.389530004177 353724.772080219 57.599844680013724
+Mass: 13014345.200333809
 
 }
index 141b7e4..3670f71 100644 (file)
@@ -2,7 +2,7 @@
 set filename bug27808_nist_ftc_08_asme1_ct5240_rc.stp
 
 set ref_data {
-Centre of mass: 45.592058840520288 57.746342213198673 29.009867037491144
-Mass: 27993.933359111707
+Centre of mass: 1.3071106775992589 73.040263297460385 21.248083630291937
+Mass: 33665.714280575579
 
 }
index 10d9ed0..8495dfd 100644 (file)
@@ -2,7 +2,7 @@
 set filename bug27645_nist_ftc_08_asme1_ct5240_rc-1.stp
 
 set ref_data {
-Centre of mass: 1158.0392758487928 1466.7572922614359 736.8506424687256
-Mass: 711045.84939578606
+Centre of mass: 71.521755715858959 1840.0456646995601 546.24924167276765
+Mass: 849591.18184121803
 
 }
index 2dd9597..3baffc9 100644 (file)
@@ -2,7 +2,7 @@
 set filename bug27645_nist_ftc_09_asme1_cr3000_rd.prt.stp
 
 set ref_data {
-Centre of mass: 502.07157406480525 128.63296443659232 -279.83117556867592
-Mass: 480992.45347041014
+Centre of mass: 62898.392879497689 391979.2269043132 -17.451724752730449
+Mass: 10257920.98641446
 
 }
index e8724d6..d2dd868 100644 (file)
@@ -2,7 +2,7 @@
 set filename bug27808_nist_ftc_09_asme1_ct5240_rd.stp
 
 set ref_data {
-Centre of mass: -36.599786468681039 7.7614827642946826 1.7474609105557635
-Mass: 29481.508138690682
+Centre of mass: -40.148168442038951 12.662743709548829 -20.675422904248919
+Mass: 33730.842652736828
 
 }
index 0c41ca1..1e968e6 100644 (file)
@@ -2,7 +2,7 @@
 set filename bug27645_nist_ftc_09_asme1_ct5240_rd-1.stp
 
 set ref_data {
-Centre of mass: -929.63433298181099 197.14165173802976 44.385591909492049
-Mass: 748830.1046596528
+Centre of mass: -1019.7633667828792 321.63378807296516 -525.15615589604056
+Mass: 856763.26313637081
 
 }
diff --git a/tests/gdt/presentation/B6 b/tests/gdt/presentation/B6
new file mode 100644 (file)
index 0000000..d65434b
--- /dev/null
@@ -0,0 +1,8 @@
+# !!!! This file is generated automatically, do not edit manually! See end script
+set filename bug28315_part_step-pmi.stp
+
+set ref_data {
+Centre of mass: -32.061608109140749 -17.085829657462373 4.1559554100512006
+Mass: 2012.3193680858712
+
+}
diff --git a/tests/gdt/presentation/B7 b/tests/gdt/presentation/B7
new file mode 100644 (file)
index 0000000..ed6b028
--- /dev/null
@@ -0,0 +1,8 @@
+# !!!! This file is generated automatically, do not edit manually! See end script
+set filename bug28315_rev_part_neu_01_ap214_is.stp
+
+set ref_data {
+Centre of mass: 86.52519717047501 308.35080213107915 -1.7796634256195836
+Mass: 49812.246382466234
+
+}