IMP logo
IMP Reference Guide  develop.d247202c1c,2019/10/23
The Integrative Modeling Platform
IMP::core::Surface Class Reference

A decorator for a particle that represents a surface, its coordinates, and orientation. More...

#include <IMP/core/Surface.h>

+ Inheritance diagram for IMP::core::Surface:

Detailed Description

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.

Public Member Functions

 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
 
- Public Member Functions inherited from IMP::core::XYZ
 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::Vector3Dget_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
 
- Public Member Functions inherited from IMP::Decorator
bool get_is_valid () const
 Returns true if constructed with a non-default constructor. More...
 
Modelget_model () const
 Returns the Model containing the particle. More...
 
Particleget_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
 
Particleoperator-> () const
 

Static Public Member Functions

static void do_setup_particle (Model *m, ParticleIndex pi, const algebra::Vector3D &center=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 decorator)
 
static Surface setup_particle (IMP::ParticleAdaptor decorator, 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 decorator, algebra::Vector3D center)
 
static Surface setup_particle (Model *m, ParticleIndex pi, algebra::Vector3D center)
 
static Surface setup_particle (IMP::ParticleAdaptor decorator, algebra::Vector3D center, algebra::Vector3D normal)
 
static Surface setup_particle (Model *m, ParticleIndex pi, algebra::Vector3D center, algebra::Vector3D normal)
 
- Static Public Member Functions inherited from IMP::core::XYZ
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 FloatKeysget_xyz_keys ()
 Get a vector containing the keys for x,y,z. More...
 
static XYZ setup_particle (IMP::ParticleAdaptor decorator)
 
static XYZ setup_particle (Model *m, ParticleIndex pi)
 
static XYZ setup_particle (IMP::ParticleAdaptor decorator, algebra::Vector3D v)
 
static XYZ setup_particle (Model *m, ParticleIndex pi, algebra::Vector3D v)
 

Additional Inherited Members

- Protected Member Functions inherited from IMP::Decorator
 Decorator (Model *m, ParticleIndex pi)
 
 Decorator (ParticleAdaptor p)
 

Member Function Documentation

void IMP::core::Surface::add_to_normal_derivative ( int  i,
Float  v,
DerivativeAccumulator d 
)

Add v to the derivative of the ith coordinate of the normal.

Definition at line 68 of file Surface.h.

+ Here is the call graph for this function:

void IMP::core::Surface::add_to_normal_derivatives ( const algebra::Vector3D v,
DerivativeAccumulator d 
)

Add v to the derivatives of the x,y,z coordinates of the normal.

double IMP::core::Surface::get_depth ( const algebra::Vector3D v) const

Get depth of point below surface.

Note
If point is above surface, value is negative.
double IMP::core::Surface::get_distance_to ( const algebra::Vector3D v) const

Get distance from point to surface.

double IMP::core::Surface::get_distance_to_center ( const algebra::Vector3D v) const

Get distance from point to center of surface.

double IMP::core::Surface::get_height ( const algebra::Vector3D v) const

Get height of point above surface.

Note
If point is below surface, value is negative.
static bool IMP::core::Surface::get_is_setup ( Model m,
ParticleIndex  pi 
)
static

Check if particle is setup as a surface.

algebra::Vector3D IMP::core::Surface::get_normal ( ) const

Get unit vector normal to surface.

Float IMP::core::Surface::get_normal_derivative ( int  i) const

Get the vector of derivatives added to the surface normal.

Definition at line 60 of file Surface.h.

+ Here is the call graph for this function:

algebra::Vector3D IMP::core::Surface::get_normal_derivatives ( ) const

Get the vector of derivatives added to the surface normal.

bool IMP::core::Surface::get_normal_is_optimized ( ) const

Get whether surface normal is optimized.

Float IMP::core::Surface::get_normal_x ( ) const

returns the value of the normal_x attribute

Definition at line 50 of file Surface.h.

Float IMP::core::Surface::get_normal_y ( ) const

returns the value of the normal_y attribute

Definition at line 51 of file Surface.h.

Float IMP::core::Surface::get_normal_z ( ) const

returns the value of the normal_z attribute

Definition at line 52 of file Surface.h.

algebra::Plane3D IMP::core::Surface::get_plane ( ) const

Get a plane that lies along the surface.

Definition at line 117 of file Surface.h.

+ Here is the call graph for this function:

algebra::ReferenceFrame3D IMP::core::Surface::get_reference_frame ( ) const

Get surface orientation as a reference frame.

void IMP::core::Surface::reflect ( )

Flip surface so normal is reversed.

Definition at line 89 of file Surface.h.

void IMP::core::Surface::set_normal ( const algebra::Vector3D normal)

Set surface normal.

void IMP::core::Surface::set_normal_is_optimized ( bool  tf) const

Set whether surface normal is optimized.

void IMP::core::Surface::set_normal_x ( Float  t)

sets the value of the normal_x attribute to t

Definition at line 50 of file Surface.h.

void IMP::core::Surface::set_normal_y ( Float  t)

sets the value of the normal_y attribute to t

Definition at line 51 of file Surface.h.

void IMP::core::Surface::set_normal_z ( Float  t)

sets the value of the normal_z attribute to t

Definition at line 52 of file Surface.h.

void IMP::core::Surface::set_reference_frame ( const algebra::ReferenceFrame3D rf)

Set coordinates and normal from a reference frame.

Definition at line 106 of file Surface.h.

+ Here is the call graph for this function:

static Surface IMP::core::Surface::setup_particle ( Model m,
ParticleIndex  pi 
)
static

Setup the particle so it can be used with this decorator.

Definition at line 45 of file Surface.h.

static Surface IMP::core::Surface::setup_particle ( Model m,
ParticleIndex  pi,
algebra::ReferenceFrame3D  rf 
)
static

Set up the surface to align with the reference frame.

Setup the particle so that it can be used with this decorator

Definition at line 47 of file Surface.h.

static Surface IMP::core::Surface::setup_particle ( IMP::ParticleAdaptor  decorator,
algebra::ReferenceFrame3D  rf 
)
static
See Also
setup_particle(m, pi, rf )

Definition at line 47 of file Surface.h.

static Surface IMP::core::Surface::setup_particle ( Model m,
ParticleIndex  pi,
algebra::Vector3D  center 
)
static

Setup the particle so that it can be used with this decorator

Definition at line 48 of file Surface.h.

static Surface IMP::core::Surface::setup_particle ( IMP::ParticleAdaptor  decorator,
algebra::Vector3D  center 
)
static
See Also
setup_particle(m, pi, center )

Definition at line 48 of file Surface.h.

static Surface IMP::core::Surface::setup_particle ( Model m,
ParticleIndex  pi,
algebra::Vector3D  center,
algebra::Vector3D  normal 
)
static

Setup the particle so it can be used with this decorator.

Definition at line 49 of file Surface.h.


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