summaryrefslogtreecommitdiff
path: root/src/IGESDimen/IGESDimen_NewDimensionedGeometry.cxx
blob: d2889a2122e1f3223ce5aa3e4b7766daf8727f4a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
//--------------------------------------------------------------------
//
//  File Name : IGESDimen_NewDimensionedGeometry.cxx
//  Date      :
//  Author    : CKY / Contract Toubro-Larsen
//  Copyright : MATRA-DATAVISION 1993
//
//--------------------------------------------------------------------

#include <IGESDimen_NewDimensionedGeometry.ixx>
#include <IGESData_TransfEntity.hxx>
#include <gp_GTrsf.hxx>


    IGESDimen_NewDimensionedGeometry::IGESDimen_NewDimensionedGeometry ()   { }


    void  IGESDimen_NewDimensionedGeometry::Init
  (const Standard_Integer nbDimens,
   const Handle(IGESData_IGESEntity)& aDimen,
   const Standard_Integer anOrientation, const Standard_Real anAngle,
   const Handle(IGESData_HArray1OfIGESEntity)& allEntities,
   const Handle(TColStd_HArray1OfInteger)& allLocations,
   const Handle(TColgp_HArray1OfXYZ)& allPoints)
{
  Standard_Integer num = allEntities->Length();
  if (allEntities->Lower()  != 1 ||
      allLocations->Lower() != 1 || allLocations->Length() != num ||
      allPoints->Lower()    != 1 || allPoints->Length()    != num )
    Standard_DimensionMismatch::Raise
      ("IGESDimen_NewDimensionedGeometry: Init");
  theNbDimensions             = nbDimens;
  theDimensionEntity          = aDimen;
  theDimensionOrientationFlag = anOrientation;
  theAngleValue               = anAngle;
  theGeometryEntities         = allEntities;
  theDimensionLocationFlags   = allLocations;
  thePoints                   = allPoints;
  InitTypeAndForm(402,21);
}


    Standard_Integer  IGESDimen_NewDimensionedGeometry::NbDimensions () const
{
  return theNbDimensions;
}

    Standard_Integer  IGESDimen_NewDimensionedGeometry::NbGeometries () const
{
  return theGeometryEntities->Length();
}

    Handle(IGESData_IGESEntity)  IGESDimen_NewDimensionedGeometry::DimensionEntity
  ()const
{
  return theDimensionEntity;
}

    Standard_Integer  IGESDimen_NewDimensionedGeometry::DimensionOrientationFlag
  () const
{
  return theDimensionOrientationFlag;
}

    Standard_Real  IGESDimen_NewDimensionedGeometry::AngleValue () const
{
  return theAngleValue;
}

    Handle(IGESData_IGESEntity)  IGESDimen_NewDimensionedGeometry::GeometryEntity
  (const Standard_Integer Index) const
{
  return theGeometryEntities->Value(Index);
}

    Standard_Integer  IGESDimen_NewDimensionedGeometry::DimensionLocationFlag
  (const Standard_Integer Index) const
{
  return theDimensionLocationFlags->Value(Index);
}

    gp_Pnt  IGESDimen_NewDimensionedGeometry::Point
  (const Standard_Integer Index) const
{
  return gp_Pnt(thePoints->Value(Index));
}

    gp_Pnt  IGESDimen_NewDimensionedGeometry::TransformedPoint
  (const Standard_Integer Index) const
{
  gp_XYZ point = thePoints->Value(Index);
  if (HasTransf()) Location().Transforms(point);
  return gp_Pnt(point);
}