File: IFSelect_SelectAnyList.hxx

package info (click to toggle)
oce 0.18.3-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 301,548 kB
  • sloc: cpp: 1,190,609; ansic: 67,225; sh: 11,630; tcl: 7,954; cs: 5,221; python: 2,867; java: 1,522; makefile: 342; xml: 292; perl: 37
file content (145 lines) | stat: -rw-r--r-- 5,481 bytes parent folder | download | duplicates (5)
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _IFSelect_SelectAnyList_HeaderFile
#define _IFSelect_SelectAnyList_HeaderFile

#include <Standard.hxx>
#include <Standard_DefineHandle.hxx>
#include <Handle_IFSelect_SelectAnyList.hxx>

#include <Handle_IFSelect_IntParam.hxx>
#include <IFSelect_SelectDeduct.hxx>
#include <Standard_Integer.hxx>
#include <Handle_Standard_Transient.hxx>
#include <Standard_Boolean.hxx>
class IFSelect_IntParam;
class Standard_OutOfRange;
class Interface_InterfaceError;
class Interface_EntityIterator;
class Standard_Transient;
class Interface_Graph;
class TCollection_AsciiString;


//! A SelectAnyList kind Selection selects a List of an Entity, as
//! well as this Entity contains some. A List contains sub-entities
//! as one per Item, or several (for instance if an Entity binds
//! couples of sub-entities, each item is one of these couples).
//! Remark that only Entities are taken into account (neither
//! Reals, nor Strings, etc...)
//!
//! To define the list on which to work, SelectAnyList has two
//! deferred methods : NbItems (which gives the length of the
//! list), FillResult (which fills an EntityIterator). They are
//! intended to get a List in an Entity of the required Type (and
//! consider that list is empty if Entity has not required Type)
//!
//! In addition, remark that some types of Entity define more than
//! one list in each instance : a given sub-class of SelectAnyList
//! must be attached to one list
//!
//! SelectAnyList keeps or rejects a sub-set of the list,
//! that is the Items of which rank in the list is in a given
//! range (for instance form 2nd to 6th, etc...)
//! Range is defined by two Integer values. In order to allow
//! external control of them, these values are not directly
//! defined as fields, but accessed through IntParams, that is,
//! referenced as Transient (Handle) objects
//!
//! Warning : the Input can be any kind of Selection, BUT its
//! RootResult must have zero (empty) or one Entity maximum
class IFSelect_SelectAnyList : public IFSelect_SelectDeduct
{

public:

  
  //! Keeps Input Entity, as having required type. It works by
  //! keeping in <iter>, only suitable Entities (SelectType can be
  //! used). Called by RootResult (which waits for ONE ENTITY MAX)
  Standard_EXPORT virtual   void KeepInputEntity (Interface_EntityIterator& iter)  const = 0;
  
  //! Returns count of Items in the list in the Entity <ent>
  //! If <ent> has not required type, returned value must be Zero
  Standard_EXPORT virtual   Standard_Integer NbItems (const Handle(Standard_Transient)& ent)  const = 0;
  
  //! Sets a Range for numbers, with a lower and a upper limits
  Standard_EXPORT   void SetRange (const Handle(IFSelect_IntParam)& rankfrom, const Handle(IFSelect_IntParam)& rankto) ;
  
  //! Sets a unique number (only one Entity will be sorted as True)
  Standard_EXPORT   void SetOne (const Handle(IFSelect_IntParam)& rank) ;
  
  //! Sets a Lower limit but no upper limit
  Standard_EXPORT   void SetFrom (const Handle(IFSelect_IntParam)& rankfrom) ;
  
  //! Sets an Upper limit but no lower limit (equivalent to lower 1)
  Standard_EXPORT   void SetUntil (const Handle(IFSelect_IntParam)& rankto) ;
  
  //! Returns True if a Lower limit is defined
  Standard_EXPORT   Standard_Boolean HasLower()  const;
  
  //! Returns Lower limit (if there is; else, value is senseless)
  Standard_EXPORT   Handle(IFSelect_IntParam) Lower()  const;
  
  //! Returns Integer Value of Lower Limit (0 if none)
  Standard_EXPORT   Standard_Integer LowerValue()  const;
  
  //! Returns True if a Lower limit is defined
  Standard_EXPORT   Standard_Boolean HasUpper()  const;
  
  //! Returns Upper limit (if there is; else, value is senseless)
  Standard_EXPORT   Handle(IFSelect_IntParam) Upper()  const;
  
  //! Returns Integer Value of Upper Limit (0 if none)
  Standard_EXPORT   Standard_Integer UpperValue()  const;
  
  //! Returns the list of selected entities (list of entities
  //! complying with rank criterium)
  //! Error if the input list has more than one Item
  Standard_EXPORT   Interface_EntityIterator RootResult (const Interface_Graph& G)  const;
  
  //! Puts into <res>, the sub-entities of the list, from n1 to
  //! n2 included. Remark that adequation with Entity's type and
  //! length of list has already been made at this stage
  //! Called by RootResult
  Standard_EXPORT virtual   void FillResult (const Standard_Integer n1, const Standard_Integer n2, const Handle(Standard_Transient)& ent, Interface_EntityIterator& res)  const = 0;
  
  //! Returns a text defining the criterium : "Componants of List "
  //! then Specific List Label, then, following cases :
  //! " From .. Until .." or "From .." or "Until .." or "Rank no .."
  //! Specific type is given by deferred method ListLabel
  Standard_EXPORT   TCollection_AsciiString Label()  const;
  
  //! Returns the specific label for the list, which is included as
  //! a part of Label
  Standard_EXPORT virtual   TCollection_AsciiString ListLabel()  const = 0;




  DEFINE_STANDARD_RTTI(IFSelect_SelectAnyList)

protected:




private: 


  Handle(IFSelect_IntParam) thelower;
  Handle(IFSelect_IntParam) theupper;


};







#endif // _IFSelect_SelectAnyList_HeaderFile