MercuryDPM  0.10
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PossibleContactList Class Reference

#include <PossibleContactList.h>

Public Member Functions

 PossibleContactList ()
 
void add_PossibleContact (Particle *P1, Particle *P2)
 
void remove_ParticlePosibleContacts (Particle *P)
 
PossibleContactgetFirstPossibleContact ()
 

Private Attributes

PossibleContactFirstPossibleContact
 

Detailed Description

Definition at line 31 of file PossibleContactList.h.

Constructor & Destructor Documentation

PossibleContactList::PossibleContactList ( )
inline

Definition at line 35 of file PossibleContactList.h.

References FirstPossibleContact.

36  {
37 // std::cout<<"Standard constructor"<<std::endl;
39  }
PossibleContact * FirstPossibleContact

Member Function Documentation

void PossibleContactList::add_PossibleContact ( Particle *  P1,
Particle *  P2 
)
inline

Definition at line 41 of file PossibleContactList.h.

References FirstPossibleContact, PossibleContact::get_Next(), PossibleContact::get_Next1(), PossibleContact::get_Next2(), and PossibleContact::set_Prev().

42  {
43 // std::cout<<"Added new contact between particle "<<P1->get_Index()<<" and "<<P2->get_Index()<<std::endl;
44  FirstPossibleContact=new PossibleContact(P1,P2,FirstPossibleContact,P1->get_FirstPossibleContact(),P2->get_FirstPossibleContact());
45  P1->set_FirstPossibleContact(FirstPossibleContact);
46  P2->set_FirstPossibleContact(FirstPossibleContact);
53  }
PossibleContact * get_Next()
PossibleContact * get_Next2()
PossibleContact * get_Next1()
PossibleContact * FirstPossibleContact
void set_Prev(PossibleContact *Prev)
PossibleContact* PossibleContactList::getFirstPossibleContact ( )
inline

Definition at line 104 of file PossibleContactList.h.

References FirstPossibleContact.

104 {return FirstPossibleContact;}
PossibleContact * FirstPossibleContact
void PossibleContactList::remove_ParticlePosibleContacts ( Particle *  P)
inline

Definition at line 72 of file PossibleContactList.h.

References FirstPossibleContact, PossibleContact::get_Next(), PossibleContact::get_OtherParticle(), PossibleContact::get_Prev(), O, PossibleContact::set_Next(), and PossibleContact::set_Prev().

73  {
74  //std::cout<<"Removing all contacts of particle "<<P->get_Index()<<std::endl;
75  Particle* O;
76  PossibleContact* Next;
77  PossibleContact* Curr=P->get_FirstPossibleContact();
78  while(Curr)
79  {
80  //std::cout<<"Removing contacts index="<<Curr->get_Index()<<" between particle "<<Curr->get_P1()->get_Index()<<" and "<<Curr->get_P2()->get_Index()<<std::endl;
81  Next=Curr->get_Next(P);
82  O=Curr->get_OtherParticle(P);
83  if(Curr->get_Next())
84  Curr->get_Next()->set_Prev(Curr->get_Prev());
85 
86  if(Curr->get_Prev())
87  Curr->get_Prev()->set_Next(Curr->get_Next());
88  else
90 
91  if(Curr->get_Next(O))
92  Curr->get_Next(O)->set_Prev(O,Curr->get_Prev(O));
93 
94  if(Curr->get_Prev(O))
95  Curr->get_Prev(O)->set_Next(O,Curr->get_Next(O));
96  else
97  O->set_FirstPossibleContact(Curr->get_Next(O));
98  delete Curr;
99  Curr=Next;
100  }
101  P->set_FirstPossibleContact(0);
102  }
PossibleContact * get_Prev()
Particle * get_OtherParticle(Particle *P)
PossibleContact * get_Next()
PossibleContact * FirstPossibleContact
void set_Prev(PossibleContact *Prev)
void set_Next(PossibleContact *Next)

Member Data Documentation

PossibleContact* PossibleContactList::FirstPossibleContact
private

The documentation for this class was generated from the following file: