IMP logo
IMP Reference Guide  develop.78018a392b,2024/05/08
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 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 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 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)
 

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 ( IMP::ParticleAdaptor  pa)
static
Returns
a Surface object that decorates the particle specified by pa
See Also
setup_particle(m, p)

Definition at line 45 of file Surface.h.

static Surface IMP::core::Surface::setup_particle ( Model m,
ParticleIndex  pi 
)
static
Returns
a Surface object that decorates particle pi

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.

Returns
a Surface object that decorates particle pi

Definition at line 47 of file Surface.h.

static Surface IMP::core::Surface::setup_particle ( IMP::ParticleAdaptor  pa,
algebra::ReferenceFrame3D  rf 
)
static
Returns
a Surface object that decorates the particle specified by pa
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
Returns
a Surface object that decorates particle pi

Definition at line 48 of file Surface.h.

static Surface IMP::core::Surface::setup_particle ( IMP::ParticleAdaptor  pa,
algebra::Vector3D  center 
)
static
Returns
a Surface object that decorates the particle specified by pa
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
Returns
a Surface object that decorates particle pi

Definition at line 49 of file Surface.h.

static Surface IMP::core::Surface::setup_particle ( IMP::ParticleAdaptor  pa,
algebra::Vector3D  center,
algebra::Vector3D  normal 
)
static
Returns
a Surface object that decorates the particle specified by pa
See Also
setup_particle(m, p, center , normal )

Definition at line 49 of file Surface.h.


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