mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-29 14:00:49 +03:00
Integration of OCCT 6.5.0 from SVN
This commit is contained in:
62
src/Transfer/Transfer_Iterator.gxx
Executable file
62
src/Transfer/Transfer_Iterator.gxx
Executable file
@@ -0,0 +1,62 @@
|
||||
// Transfer_Iterator.gxx
|
||||
#include <Standard_NoSuchObject.hxx>
|
||||
|
||||
|
||||
// TheStart est suppose Handle(Standard_Transient) ou (Transfer_Finder)
|
||||
// Il a servi a instancier TheList qui est une HSequence
|
||||
|
||||
|
||||
Transfer_Iterator::Transfer_Iterator (const Standard_Boolean withstarts)
|
||||
: Transfer_TransferIterator ()
|
||||
{ if (withstarts) thestarts = new TheList(); }
|
||||
|
||||
|
||||
void Transfer_Iterator::Add
|
||||
(const Handle(Transfer_Binder)& binder)
|
||||
{
|
||||
if (!thestarts.IsNull()) Standard_NoSuchObject::Raise
|
||||
("Transfer_Iterator : Add, Starting Object required not provided");
|
||||
AddItem(binder);
|
||||
}
|
||||
|
||||
void Transfer_Iterator::Add
|
||||
(const Handle(Transfer_Binder)& binder, const TheStart& start)
|
||||
{
|
||||
AddItem(binder);
|
||||
if (!thestarts.IsNull()) thestarts->Append(start);
|
||||
}
|
||||
|
||||
void Transfer_Iterator::Filter
|
||||
(const Handle(TheList)& list, const Standard_Boolean keep)
|
||||
{
|
||||
if (list.IsNull() || thestarts.IsNull()) return;
|
||||
Standard_Integer i, j, nb = thestarts->Length();
|
||||
if (nb == 0) return;
|
||||
Handle(Transfer_Binder) factice;
|
||||
Transfer_TransferMap amap (nb);
|
||||
for (i = 1; i <= nb; i ++) {
|
||||
j = amap.Add (thestarts->Value(i),factice);
|
||||
SelectItem (j,!keep);
|
||||
}
|
||||
|
||||
// Comparaison
|
||||
nb = list->Length();
|
||||
for (i = 1; i <= nb; i ++) {
|
||||
j = amap.FindIndex (list->Value(i));
|
||||
if (j > 0) SelectItem (j,keep);
|
||||
}
|
||||
}
|
||||
|
||||
Standard_Boolean Transfer_Iterator::HasStarting () const
|
||||
{ return (!thestarts.IsNull()); }
|
||||
|
||||
const TheStart& Transfer_Iterator::Starting () const
|
||||
{
|
||||
// if (thecurr == 0 || thecurr > themaxi) Standard_NoSuchObject::Raise
|
||||
// ("TransferIterator : Starting");
|
||||
// if (theselect->Value(thecurr) == 0) Standard_NoSuchObject::Raise
|
||||
// ("TransferIterator : Starting");
|
||||
if (thestarts.IsNull()) Standard_NoSuchObject::Raise
|
||||
("TransferIterator : No Starting defined at all");
|
||||
return thestarts->Value(thecurr);
|
||||
}
|
Reference in New Issue
Block a user