A decorator for a particle that represents a surface, its coordinates, and orientation.  
 More...
A decorator for a particle that represents a surface, its coordinates, and orientation. 
- See Also
 - XYZ 
 
- 
Direction 
 
Definition at line 35 of file Surface.h.
 | 
| 
  | Surface (::IMP::Model *m,::IMP::ParticleIndex id) | 
|   | 
| 
  | Surface (const IMP::ParticleAdaptor &d) | 
|   | 
| void  | add_to_normal_derivative (int i, Float v, DerivativeAccumulator &d) | 
|   | Add v to the derivative of the ith coordinate of the normal.  More...
  | 
|   | 
| void  | add_to_normal_derivatives (const algebra::Vector3D &v, DerivativeAccumulator &d) | 
|   | Add v to the derivatives of the x,y,z coordinates of the normal.  More...
  | 
|   | 
| double  | get_depth (const algebra::Vector3D &v) const  | 
|   | Get depth of point below surface.  More...
  | 
|   | 
| double  | get_distance_to (const algebra::Vector3D &v) const  | 
|   | Get distance from point to surface.  More...
  | 
|   | 
| double  | get_distance_to_center (const algebra::Vector3D &v) const  | 
|   | Get distance from point to center of surface.  More...
  | 
|   | 
| double  | get_height (const algebra::Vector3D &v) const  | 
|   | Get height of point above surface.  More...
  | 
|   | 
| algebra::Vector3D  | get_normal () const  | 
|   | Get unit vector normal to surface.  More...
  | 
|   | 
| Float  | get_normal_derivative (int i) const  | 
|   | Get the vector of derivatives added to the surface normal.  More...
  | 
|   | 
| algebra::Vector3D  | get_normal_derivatives () const  | 
|   | Get the vector of derivatives added to the surface normal.  More...
  | 
|   | 
| bool  | get_normal_is_optimized () const  | 
|   | Get whether surface normal is optimized.  More...
  | 
|   | 
| Float  | get_normal_x () const  | 
|   | 
| Float  | get_normal_y () const  | 
|   | 
| Float  | get_normal_z () const  | 
|   | 
| algebra::Plane3D  | get_plane () const  | 
|   | Get a plane that lies along the surface.  More...
  | 
|   | 
| algebra::ReferenceFrame3D  | get_reference_frame () const  | 
|   | Get surface orientation as a reference frame.  More...
  | 
|   | 
| void  | reflect () | 
|   | Flip surface so normal is reversed.  More...
  | 
|   | 
| void  | set_normal (const algebra::Vector3D &normal) | 
|   | Set surface normal.  More...
  | 
|   | 
| void  | set_normal_is_optimized (bool tf) const  | 
|   | Set whether surface normal is optimized.  More...
  | 
|   | 
| void  | set_normal_x (Float t) | 
|   | 
| void  | set_normal_y (Float t) | 
|   | 
| void  | set_normal_z (Float t) | 
|   | 
| void  | set_reference_frame (const algebra::ReferenceFrame3D &rf) | 
|   | Set coordinates and normal from a reference frame.  More...
  | 
|   | 
| 
void  | show (std::ostream &out=std::cout) const  | 
|   | 
| 
  | XYZ (::IMP::Model *m,::IMP::ParticleIndex id) | 
|   | 
| 
  | XYZ (const IMP::ParticleAdaptor &d) | 
|   | 
| void  | add_to_derivative (int i, Float v, DerivativeAccumulator &d) | 
|   | 
| void  | add_to_derivatives (const algebra::Vector3D &v, DerivativeAccumulator &d) | 
|   | Add the vector v to the derivative vector of the x,y,z coordinates.  More...
  | 
|   | 
| Float  | get_coordinate (int i) const  | 
|   | Get the ith coordinate.  More...
  | 
|   | 
| const algebra::Vector3D &  | get_coordinates () const  | 
|   | Convert it to a vector.  More...
  | 
|   | 
| bool  | get_coordinates_are_optimized () const  | 
|   | Get whether the coordinates are optimized.  More...
  | 
|   | 
| Float  | get_derivative (int i) const  | 
|   | 
| algebra::Vector3D  | get_derivatives () const  | 
|   | Get the vector of derivatives accumulated by add_to_derivatives().  More...
  | 
|   | 
| algebra::Vector3D  | get_vector_to (const XYZ &b) const  | 
|   | Get the vector from this particle to another.  More...
  | 
|   | 
| Float  | get_x () const  | 
|   | 
| Float  | get_y () const  | 
|   | 
| Float  | get_z () const  | 
|   | 
| void  | set_coordinate (unsigned int i, Float v) | 
|   | set the ith coordinate  More...
  | 
|   | 
| void  | set_coordinates (const algebra::Vector3D &v) | 
|   | set all coordinates from a vector  More...
  | 
|   | 
| void  | set_coordinates_are_optimized (bool tf) const  | 
|   | Set whether the coordinates are optimized.  More...
  | 
|   | 
| void  | set_x (Float t) | 
|   | 
| void  | set_y (Float t) | 
|   | 
| void  | set_z (Float t) | 
|   | 
| 
void  | show (std::ostream &out=std::cout) const  | 
|   | 
| bool  | get_is_valid () const  | 
|   | Returns true if constructed with a non-default constructor.  More...
  | 
|   | 
| Model *  | get_model () const  | 
|   | Returns the Model containing the particle.  More...
  | 
|   | 
| Particle *  | get_particle () const  | 
|   | Returns the particle decorated by this decorator.  More...
  | 
|   | 
| ParticleIndex  | get_particle_index () const  | 
|   | Returns the particle index decorated by this decorator.  More...
  | 
|   | 
| 
  | operator Particle * () const  | 
|   | 
| 
  | operator ParticleIndex () const  | 
|   | 
| 
Particle *  | operator-> () const  | 
|   | 
 | 
| 
static void  | do_setup_particle (Model *m, ParticleIndex pi, const algebra::Vector3D ¢er=algebra::Vector3D(0, 0, 0), const algebra::Vector3D &normal=algebra::Vector3D(0, 0, 1)) | 
|   | 
| 
static void  | do_setup_particle (Model *m, ParticleIndex pi, const algebra::ReferenceFrame3D &rf) | 
|   | 
| 
static bool  | get_is_setup (const IMP::ParticleAdaptor &p) | 
|   | 
| static bool  | get_is_setup (Model *m, ParticleIndex pi) | 
|   | Check if particle is setup as a surface.  More...
  | 
|   | 
| 
static FloatKey  | get_normal_key (unsigned int i) | 
|   | 
| static Surface  | setup_particle (Model *m, ParticleIndex pi) | 
|   | 
| static Surface  | setup_particle (IMP::ParticleAdaptor pa) | 
|   | 
| static Surface  | setup_particle (IMP::ParticleAdaptor pa, algebra::ReferenceFrame3D rf) | 
|   | 
| static Surface  | setup_particle (Model *m, ParticleIndex pi, algebra::ReferenceFrame3D rf) | 
|   | Set up the surface to align with the reference frame.  More...
  | 
|   | 
| static Surface  | setup_particle (IMP::ParticleAdaptor pa, algebra::Vector3D center) | 
|   | 
| static Surface  | setup_particle (Model *m, ParticleIndex pi, algebra::Vector3D center) | 
|   | 
| static Surface  | setup_particle (IMP::ParticleAdaptor pa, algebra::Vector3D center, algebra::Vector3D normal) | 
|   | 
| static Surface  | setup_particle (Model *m, ParticleIndex pi, algebra::Vector3D center, algebra::Vector3D normal) | 
|   | 
| 
static FloatKey  | get_coordinate_key (unsigned int i) | 
|   | 
| 
static bool  | get_is_setup (const IMP::ParticleAdaptor &p) | 
|   | 
| 
static bool  | get_is_setup (Model *m, ParticleIndex pi) | 
|   | 
| static const FloatKeys &  | get_xyz_keys () | 
|   | Get a vector containing the keys for x,y,z.  More...
  | 
|   | 
| static XYZ  | setup_particle (IMP::ParticleAdaptor pa) | 
|   | 
| static XYZ  | setup_particle (Model *m, ParticleIndex pi) | 
|   | 
| static XYZ  | setup_particle (IMP::ParticleAdaptor pa, algebra::Vector3D v) | 
|   | 
| static XYZ  | setup_particle (Model *m, ParticleIndex pi, algebra::Vector3D v) | 
|   |