summaryrefslogtreecommitdiff
path: root/src/TopoDS/TopoDS_Iterator.cxx
blob: 519c3ce1ae9aba869c287c9aabe4889e321914b9 (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
// File:	TopoDS_Iterator.cxx
// Created:	Thu Jan 21 09:11:16 1993
// Author:	Remi LEQUETTE

#define No_Standard_NoSuchObject

#include <TopoDS_Iterator.ixx>


//=======================================================================
//function : Initialize
//purpose  : 
//=======================================================================

void TopoDS_Iterator::Initialize(const TopoDS_Shape& S,
                                 const Standard_Boolean cumOri,
                                 const Standard_Boolean cumLoc)
{
  if (cumLoc)
    myLocation = S.Location();
  else
    myLocation.Identity();
  if (cumOri)
    myOrientation = S.Orientation();
  else
    myOrientation = TopAbs_FORWARD;
  myShapes.Initialize(S.TShape()->Shapes());
  if (More()) {
    myShape = myShapes.Value();
    myShape.Orientation(TopAbs::Compose(myOrientation,myShape.Orientation()));
    //modified by NIZNHY-PKV Fri Jan 16 07:42:30 2009f
    if (!myLocation.IsIdentity())
    //modified by NIZNHY-PKV Fri Jan 16 07:42:37 2009t
      myShape.Move(myLocation);
  }
}

//=======================================================================
//function : Next
//purpose  : 
//=======================================================================

void TopoDS_Iterator::Next()
{
  myShapes.Next();
  if (More()) {
    myShape = myShapes.Value();
    myShape.Orientation(TopAbs::Compose(myOrientation,myShape.Orientation()));
    //modified by NIZNHY-PKV Fri Jan 16 07:42:30 2009f
    if (!myLocation.IsIdentity())
    //modified by NIZNHY-PKV Fri Jan 16 07:42:37 2009t
      myShape.Move(myLocation);
  }
}