14428d6195d48cd1257bdd5642670f05c66106e1
[occt.git] / src / AIS / AIS_Selection.lxx
1 // Created on: 1998-06-23
2 // Created by: Robert COUBLANC
3 // Copyright (c) 1998-1999 Matra Datavision
4 // Copyright (c) 1999-2012 OPEN CASCADE SAS
5 //
6 // The content of this file is subject to the Open CASCADE Technology Public
7 // License Version 6.5 (the "License"). You may not use the content of this file
8 // except in compliance with the License. Please obtain a copy of the License
9 // at http://www.opencascade.org and read it completely before using this file.
10 //
11 // The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12 // main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13 //
14 // The Original Code and all software distributed under the License is
15 // distributed on an "AS IS" basis, without warranty of any kind, and the
16 // Initial Developer hereby disclaims all such warranties, including without
17 // limitation, any warranties of merchantability, fitness for a particular
18 // purpose or non-infringement. Please see the License for the specific terms
19 // and conditions governing the rights and limitations under the License.
20
21
22 #define OCC189   //SAV: 18/03/02 array was replaced with list.
23
24 #define USE_MAP    //san : 18/04/03 USE_MAP - additional datamap is used to speed up access 
25 //to certain owners in <myresult> list
26
27 #if !defined( OCC189 ) && !defined( USE_MAP )
28 #include <TColStd_HArray1OfTransient.hxx>
29 #else
30 #include <TColStd_MapOfTransient.hxx>
31 #include <TColStd_MapIteratorOfMapOfTransient.hxx>
32 #endif
33
34
35 #if !defined( OCC189 ) && !defined( USE_MAP )
36 inline const Handle(TColStd_HArray1OfTransient)& AIS_Selection::Objects() const
37 #else
38 inline const AIS_NListTransient& AIS_Selection::Objects() const       
39 #endif
40 {
41   return myresult;
42 }
43
44 inline void AIS_Selection::Init()
45 {
46 #if !defined( OCC189 ) && !defined( USE_MAP )
47   mycuri=1;
48 #else
49   myIterator = AIS_NListTransient::Iterator ( myresult );  
50 #endif
51 }
52
53 inline Standard_Boolean AIS_Selection::More() const 
54 {
55 #if !defined( OCC189 ) && !defined( USE_MAP )  
56   return (myresult.IsNull() ? Standard_False : (mycuri<=myNb));
57 #else
58   return myIterator.More();
59 #endif
60 }
61 inline void AIS_Selection::Next () {
62 #if !defined( OCC189 ) && !defined( USE_MAP )    
63   mycuri++;
64 #else
65   myIterator.Next();
66 #endif
67 }
68 inline const Handle(Standard_Transient)& AIS_Selection::Value() const 
69 {
70 #if !defined( OCC189 ) && !defined( USE_MAP )   
71   return myresult->Value(mycuri);
72 #else
73   return myIterator.Value();  
74 #endif
75 }
76
77 inline Standard_Integer AIS_Selection::NbStored() const
78 {
79 #if !defined( OCC189 ) && !defined( USE_MAP )    
80   return myNb;
81 #else
82   return myresult.Extent();
83 #endif
84 }