summaryrefslogtreecommitdiff
path: root/inc/IFSelect_SelectPointed.hxx
blob: 2845eb3e005757c738eb2e3305a33fe89dae691e (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
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
146
147
// 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_SelectPointed_HeaderFile
#define _IFSelect_SelectPointed_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_IFSelect_SelectPointed_HeaderFile
#include <Handle_IFSelect_SelectPointed.hxx>
#endif

#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _TColStd_SequenceOfTransient_HeaderFile
#include <TColStd_SequenceOfTransient.hxx>
#endif
#ifndef _IFSelect_SelectBase_HeaderFile
#include <IFSelect_SelectBase.hxx>
#endif
#ifndef _Handle_Standard_Transient_HeaderFile
#include <Handle_Standard_Transient.hxx>
#endif
#ifndef _Handle_TColStd_HSequenceOfTransient_HeaderFile
#include <Handle_TColStd_HSequenceOfTransient.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Handle_Interface_CopyControl_HeaderFile
#include <Handle_Interface_CopyControl.hxx>
#endif
#ifndef _Handle_IFSelect_Transformer_HeaderFile
#include <Handle_IFSelect_Transformer.hxx>
#endif
class Interface_InterfaceError;
class Standard_Transient;
class TColStd_HSequenceOfTransient;
class Interface_CopyControl;
class IFSelect_Transformer;
class Interface_EntityIterator;
class Interface_Graph;
class TCollection_AsciiString;


//! This type of Selection is intended to describe a direct <br>
//!           selection without an explicit criterium, for instance the <br>
//!           result of picking viewed entities on a graphic screen <br>
//! <br>
//!           It can also be used to provide a list as internal alternate <br>
//!           input : this use implies to clear the list once queried <br>
class IFSelect_SelectPointed : public IFSelect_SelectBase {

public:

  //! Creates a SelectPointed <br>
  Standard_EXPORT   IFSelect_SelectPointed();
  //! Clears the list of selected items <br>
//!           Also says the list is unset <br>
//!           All Add* methods and SetList say the list is set <br>
  Standard_EXPORT     void Clear() ;
  //! Tells if the list has been set. Even if empty <br>
  Standard_EXPORT     Standard_Boolean IsSet() const;
  //! As SetList but with only one entity <br>
//!           If <ent> is Null, the list is said as being set but is empty <br>
  Standard_EXPORT     void SetEntity(const Handle(Standard_Transient)& item) ;
  //! Sets a given list to define the list of selected items <br>
//!           <list> can be empty or null : in this case, the list is said <br>
//!           as being set, but it is empty <br>
//! <br>
//!           To use it as an alternate input, one shot : <br>
//!           - SetList or SetEntity to define the input list <br>
//!           - RootResult to get it <br>
//!           - then Clear to drop it <br>
  Standard_EXPORT     void SetList(const Handle(TColStd_HSequenceOfTransient)& list) ;
  //! Adds an item. Returns True if Done, False if <item> is already <br>
//!           in the selected list <br>
  Standard_EXPORT     Standard_Boolean Add(const Handle(Standard_Transient)& item) ;
  //! Removes an item. Returns True if Done, False if <item> was not <br>
//!           in the selected list <br>
  Standard_EXPORT     Standard_Boolean Remove(const Handle(Standard_Transient)& item) ;
  //! Toggles status of an item : adds it if not pointed or removes <br>
//!           it if already pointed. Returns the new status (Pointed or not) <br>
  Standard_EXPORT     Standard_Boolean Toggle(const Handle(Standard_Transient)& item) ;
  //! Adds all the items defined in a list. Returns True if at least <br>
//!           one item has been added, False else <br>
  Standard_EXPORT     Standard_Boolean AddList(const Handle(TColStd_HSequenceOfTransient)& list) ;
  //! Removes all the items defined in a list. Returns True if at <br>
//!           least one item has been removed, False else <br>
  Standard_EXPORT     Standard_Boolean RemoveList(const Handle(TColStd_HSequenceOfTransient)& list) ;
  //! Toggles status of all the items defined in a list : adds it if <br>
//!           not pointed or removes it if already pointed. <br>
  Standard_EXPORT     Standard_Boolean ToggleList(const Handle(TColStd_HSequenceOfTransient)& list) ;
  //! Returns the rank of an item in the selected list, or 0. <br>
  Standard_EXPORT     Standard_Integer Rank(const Handle(Standard_Transient)& item) const;
  //! Returns the count of selected items <br>
  Standard_EXPORT     Standard_Integer NbItems() const;
  //! Returns an item given its rank, or a Null Handle <br>
  Standard_EXPORT     Handle_Standard_Transient Item(const Standard_Integer num) const;
  //! Rebuilds the selected list. Any selected entity which has a <br>
//!           bound result is replaced by this result, else it is removed. <br>
  Standard_EXPORT     void Update(const Handle(Interface_CopyControl)& control) ;
  //! Rebuilds the selected list, by querying a Transformer <br>
//!           (same principle as from a CopyControl) <br>
  Standard_EXPORT     void Update(const Handle(IFSelect_Transformer)& trf) ;
  //! Returns the list of selected items. Only the selected entities <br>
//!           which are present in the graph are given (this result assures <br>
//!           uniqueness). <br>
  Standard_EXPORT     Interface_EntityIterator RootResult(const Interface_Graph& G) const;
  //! Returns a text which identifies the type of selection made. <br>
//!           It is "Pointed Entities" <br>
  Standard_EXPORT     TCollection_AsciiString Label() const;




  DEFINE_STANDARD_RTTI(IFSelect_SelectPointed)

protected:




private: 


Standard_Boolean theset;
TColStd_SequenceOfTransient theitems;


};





// other Inline functions and methods (like "C++: function call" methods)


#endif