Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

AdaptiveRepulsionData Class Reference

#include <AdaptiveRepulsionData.h>

Inheritance diagram for AdaptiveRepulsionData:

Inheritance graph
[legend]
Collaboration diagram for AdaptiveRepulsionData:

Collaboration graph
[legend]
List of all members.

Detailed Description

AdaptiveRepulsionData contains the parameters r, dr, and D along with constants which are needed to implement the Witkin-Heckbert model of adaptive particle repulsion.

It is normally used by the ParticleRepulsion and ParticleFate behaviors to that effect.

Definition at line 19 of file AdaptiveRepulsionData.h.

Public Member Functions

 MAKE_PARTICLESTUFF_NAME ()
int qlen ()
 Returns length of particle stuff parameters.

void getq (double *q)
 Get the parameters.

void setq (double *q)
 Set particle stuff parameters.

void qname (char **qn)
 Get the names of the parameters.

int qlenpp ()
 # of parameters per particle

void getqpp (double *q, int i)
 Get the per-particle parameters.

void setqpp (double *q, int i)
 Set per-particle parameters.

void qnamepp (char **qn)
 Get the names of the per-particle parameters.

 AdaptiveRepulsionData (Particles *ps=NULL, std::string name=std::string("AdaptiveRepulsionData"))
 Attach to a particle system.

virtual void setParticleSystem (Particles *)
 Sets the particle system for which the AdaptiveRepulsionData applies.

void clear ()
void integrate (double dt)
 Integrate data over one time step.

virtual void particleRemoved (unsigned int i)
 Callback for particle removal.

virtual void particleAdded (unsigned int i)
 Callback for particle addition.

char * qtip (int i)
 Returns a tool-tip for the parameter i.

char * tip ()
 Returns a tool-tip for the ParticleStuff.


Public Attributes

double sigma_hat
 Desired repulsion radius.

double sigma_max
 Maximum repulsion radius.

double diameter
 Surface diameter.

double alpha
 Repulsion amplitude.

double Ehat
 Desired energy.

double sdmul
 # of std.

std::vector< double > r
 Repulsion radii.

std::vector< double > dr
 Change in repulsion radii.

std::vector< double > D
 Particle energies.


Constructor & Destructor Documentation

AdaptiveRepulsionData::AdaptiveRepulsionData Particles ps = NULL,
std::string  name = std::string("AdaptiveRepulsionData")
 

Attach to a particle system.

Sets default constant values and initializes particle data.

Parameters:
ps The owning particle system.
name The name of this attribute.

Definition at line 96 of file AdaptiveRepulsionData.cpp.

References alpha, Ehat, sdmul, and WH_ALPHA.


Member Function Documentation

void AdaptiveRepulsionData::clear  )  [virtual]
 

Reimplemented from ParticleAttribute.

Definition at line 138 of file AdaptiveRepulsionData.cpp.

References D, dr, and r.

void AdaptiveRepulsionData::getq double *  q  )  [virtual]
 

Get the parameters.

Defaults to no parameters.

Reimplemented from ParticleStuff.

Definition at line 16 of file AdaptiveRepulsionData.cpp.

References alpha, diameter, Ehat, sdmul, sigma_hat, and sigma_max.

void AdaptiveRepulsionData::getqpp double *  q,
int  i
[virtual]
 

Get the per-particle parameters.

Defaults to no parameters. Second parameter is the particle index

Reimplemented from ParticleStuff.

Definition at line 51 of file AdaptiveRepulsionData.cpp.

References D, dr, and r.

void AdaptiveRepulsionData::integrate double  dt  ) 
 

Integrate data over one time step.

Parameters:
dt Change in time to apply.

Definition at line 145 of file AdaptiveRepulsionData.cpp.

References dr, and r.

Referenced by ParticleRepulsion::integrate().

AdaptiveRepulsionData::MAKE_PARTICLESTUFF_NAME  ) 
 

void AdaptiveRepulsionData::particleAdded unsigned int  i  )  [virtual]
 

Callback for particle addition.

Parameters:
i Index of the particle that has been added.

Reimplemented from ParticleStuff.

Definition at line 129 of file AdaptiveRepulsionData.cpp.

References D, dr, and r.

void AdaptiveRepulsionData::particleRemoved unsigned int  i  )  [virtual]
 

Callback for particle removal.

Parameters:
i Index of particle to be removed.
See also:
ParticleAttribute::particleRemoved

Reimplemented from ParticleStuff.

Definition at line 110 of file AdaptiveRepulsionData.cpp.

References D, dr, and r.

int AdaptiveRepulsionData::qlen  )  [virtual]
 

Returns length of particle stuff parameters.

Defaults to no parameters.

Reimplemented from ParticleStuff.

Definition at line 14 of file AdaptiveRepulsionData.cpp.

int AdaptiveRepulsionData::qlenpp  )  [virtual]
 

# of parameters per particle

Reimplemented from ParticleStuff.

Definition at line 46 of file AdaptiveRepulsionData.cpp.

void AdaptiveRepulsionData::qname char **  qn  )  [virtual]
 

Get the names of the parameters.

Defaults to no parameters.

Reimplemented from ParticleStuff.

Definition at line 36 of file AdaptiveRepulsionData.cpp.

void AdaptiveRepulsionData::qnamepp char **  qn  )  [virtual]
 

Get the names of the per-particle parameters.

Defaults to no parameters.

Reimplemented from ParticleStuff.

Definition at line 65 of file AdaptiveRepulsionData.cpp.

char* AdaptiveRepulsionData::qtip int  i  )  [inline, virtual]
 

Returns a tool-tip for the parameter i.

Reimplemented from ParticleStuff.

Definition at line 77 of file AdaptiveRepulsionData.h.

void AdaptiveRepulsionData::setParticleSystem Particles new_ps  )  [virtual]
 

Sets the particle system for which the AdaptiveRepulsionData applies.

If new_ps is not NULL, then the lengths of internal arrays of particle data are set to the size of the the particle system.

Reimplemented from ParticleStuff.

Definition at line 78 of file AdaptiveRepulsionData.cpp.

References D, dr, ParticleStuff::ps, r, ParticleStuff::setParticleSystem(), and Particles::size().

void AdaptiveRepulsionData::setq double *  q  )  [virtual]
 

Set particle stuff parameters.

Defaults to no parameters.

Reimplemented from ParticleStuff.

Definition at line 26 of file AdaptiveRepulsionData.cpp.

References alpha, diameter, Ehat, sdmul, sigma_hat, and sigma_max.

void AdaptiveRepulsionData::setqpp double *  q,
int  i
[virtual]
 

Set per-particle parameters.

Defaults to no parameters. Second parameter is the particle index

Reimplemented from ParticleStuff.

Definition at line 58 of file AdaptiveRepulsionData.cpp.

References D, dr, and r.

char* AdaptiveRepulsionData::tip  )  [inline, virtual]
 

Returns a tool-tip for the ParticleStuff.

Reimplemented from ParticleStuff.

Definition at line 91 of file AdaptiveRepulsionData.h.


Member Data Documentation

double AdaptiveRepulsionData::alpha
 

Repulsion amplitude.

Definition at line 30 of file AdaptiveRepulsionData.h.

Referenced by AdaptiveRepulsionData(), ParticleRepulsion::applyForce(), getq(), SingularityRepulsion::repelTarget(), and setq().

std::vector<double> AdaptiveRepulsionData::D
 

Particle energies.

Definition at line 52 of file AdaptiveRepulsionData.h.

Referenced by ParticleRepulsion::applyForce(), ParticleFate::cleanup(), clear(), getqpp(), particleAdded(), particleRemoved(), setParticleSystem(), and setqpp().

double AdaptiveRepulsionData::diameter
 

Surface diameter.

Definition at line 28 of file AdaptiveRepulsionData.h.

Referenced by ParticleFate::attachAttributes(), getq(), ParticleFate::setDesiredRadius(), setq(), SilhouetteFate::setSurfaceDiameter(), and ParticleFate::setSurfaceDiameter().

std::vector<double> AdaptiveRepulsionData::dr
 

Change in repulsion radii.

Definition at line 49 of file AdaptiveRepulsionData.h.

Referenced by ParticleRepulsion::applyForce(), clear(), getqpp(), integrate(), particleAdded(), particleRemoved(), setParticleSystem(), and setqpp().

double AdaptiveRepulsionData::Ehat
 

Desired energy.

Definition at line 31 of file AdaptiveRepulsionData.h.

Referenced by AdaptiveRepulsionData(), ParticleRepulsion::applyForce(), ParticleFate::cleanup(), getq(), and setq().

std::vector<double> AdaptiveRepulsionData::r
 

Repulsion radii.

Definition at line 46 of file AdaptiveRepulsionData.h.

Referenced by ParticleRepulsion::applyForce(), SilhouetteFate::cleanup(), ParticleFate::cleanup(), clear(), ParticleShaderDisk::drawShape(), getqpp(), integrate(), particleAdded(), particleRemoved(), ParticleRendererGL::render(), SingularityRepulsion::repelTarget(), setParticleSystem(), and setqpp().

double AdaptiveRepulsionData::sdmul
 

# of std.

dev.'s away that we expect repulsion to be zero Defaults to 3 standard deviations.

Definition at line 36 of file AdaptiveRepulsionData.h.

Referenced by AdaptiveRepulsionData(), ParticleRepulsion::applyForce(), getq(), SingularityRepulsion::repelTarget(), and setq().

double AdaptiveRepulsionData::sigma_hat
 

Desired repulsion radius.

Definition at line 26 of file AdaptiveRepulsionData.h.

Referenced by ParticleFate::attachAttributes(), SilhouetteFate::cleanup(), ParticleFate::cleanup(), getq(), ParticleFate::setDesiredRadius(), setq(), SilhouetteFate::setSurfaceDiameter(), and ParticleFate::setSurfaceDiameter().

double AdaptiveRepulsionData::sigma_max
 

Maximum repulsion radius.

Definition at line 27 of file AdaptiveRepulsionData.h.

Referenced by ParticleRepulsion::applyForce(), ParticleFate::attachAttributes(), SilhouetteFate::cleanup(), ParticleFate::cleanup(), getq(), ParticleFate::setDesiredRadius(), setq(), SilhouetteFate::setSurfaceDiameter(), and ParticleFate::setSurfaceDiameter().


The documentation for this class was generated from the following files:
Generated on Mon Jun 28 15:01:55 2004 for Advanced Surface Library by doxygen 1.3.4