IMP  2.0.0
The Integrative Modeling Platform
IMP::core::XYZR Class Reference

A decorator for a particle with x,y,z coordinates and a radius. More...

#include <IMP/core/XYZR.h>

+ Inheritance diagram for IMP::core::XYZR:

Public Member Functions

 XYZR (Model *m, ParticleIndex id)
 
 XYZR (::IMP::kernel::Particle *p)
 
void add_to_radius_derivative (double v, DerivativeAccumulator &d)
 
double get_radius () const
 
const algebra::Sphere3Dget_sphere () const
 Return a sphere object.
 
void set_radius (double r) const
 
void set_sphere (const algebra::Sphere3D &s)
 Set the attributes from a sphere.
 
void show (std::ostream &out=std::cout) const
 
- Public Member Functions inherited from IMP::core::XYZ
 XYZ (Model *m, ParticleIndex id)
 
 XYZ (::IMP::kernel::Particle *p)
 
void add_to_derivative (int i, Float v, DerivativeAccumulator &d)
 Add something to the derivative of the ith coordinate.
 
void add_to_derivatives (const algebra::Vector3D &v, DerivativeAccumulator &d)
 Add something to the derivative of the coordinates.
 
Float get_coordinate (int i) const
 Get the ith coordinate.
 
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
 Get the ith coordinate derivative.
 
algebra::Vector3D get_derivatives () const
 Get the vector of derivatives. More...
 
algebra::Vector3D get_vector_to (const XYZ &b) const
 Get the vector from this particle to another.
 
Float get_x () const
 
Float get_y () const
 
Float get_z () const
 
void set_coordinate (unsigned int i, Float v)
 set the ith coordinate
 
void set_coordinates (const algebra::Vector3D &v)
 set all coordinates from a vector
 
void set_coordinates_are_optimized (bool tf) const
 Set whether the coordinates are optimized.
 
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::kernel::Decorator
ParticleIndex get_particle_index () const
 
Particleget_particle () const
 
Modelget_model () const
 Returns the Model containing the particle.
 
 Decorator (Particle *p)
 
 Decorator ()
 

Static Public Member Functions

static XYZR decorate_particle (::IMP::kernel::Particle *p)
 
static FloatKey get_radius_key ()
 Get the default radius key.
 
static bool particle_is_instance (Particle *p)
 Check if the particle has the required attributes.
 
static XYZR setup_particle (Particle *p)
 
static XYZR setup_particle (Particle *p, Float radius)
 
static XYZR setup_particle (Particle *p, const algebra::Sphere3D s)
 
static XYZR setup_particle (Model *m, ParticleIndex pi, const algebra::Sphere3D s)
 
- Static Public Member Functions inherited from IMP::core::XYZ
static XYZ decorate_particle (::IMP::kernel::Particle *p)
 
static FloatKey get_coordinate_key (unsigned int i)
 
static const FloatKeysget_xyz_keys ()
 Get a vector containing the keys for x,y,z. More...
 
static bool particle_is_instance (Particle *p)
 
static bool particle_is_instance (Model *m, ParticleIndex pi)
 
static XYZ setup_particle (Model *m, ParticleIndex pi, const algebra::Vector3D v=algebra::Vector3D(0, 0, 0))
 
static XYZ setup_particle (Particle *p, const algebra::Vector3D v=algebra::Vector3D(0, 0, 0))
 
- Static Public Member Functions inherited from IMP::kernel::Decorator
static bool particle_is_instance (Particle *p)
 Return true if the particle can be cast to the decorator. More...
 

Related Functions

(Note that these are not member functions.)

XYZRs create_xyzr_particles (Model *m, unsigned int num, Float radius, Float box_side=10)
 Create a set of particles with random coordinates. More...
 
double get_distance (XYZR a, XYZR b)
 Compute the distance between a pair of particles.
 
algebra::Sphere3D get_enclosing_sphere (const XYZs &v)
 Get a sphere enclosing the set of XYZRs. More...
 
void set_enclosing_radius (XYZR b, const XYZs &v)
 Set the radius of the first to enclose the list. More...
 
void set_enclosing_sphere (XYZR b, const XYZs &v, double slack=0)
 Set the coordinates and radius of the first to enclose the list. More...
 

Additional Inherited Members

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

Detailed Description

A simple example illustrating some of the functionality.

1 ## \example core/XYZR_Decorator.py
2 ## This is a simple example using the XYZRDecorator to set the coordinates and radius of a particle and compute distances between the resulting spheres.
3 
4 import IMP
5 import IMP.core
6 import IMP.algebra
7 
8 m= IMP.Model()
9 p0= IMP.Particle(m)
11  1.0))
12 p1= IMP.Particle(m)
14 d1.set_coordinates(IMP.algebra.Vector3D(3,4,5))
15 d1.set_radius(2.0)
16 
17 print IMP.core.get_distance(d0, d1)
18 
19 # use them as XYZ particles
22 
23 # distance without radii
24 print IMP.core.get_distance(xd0, xd1)

Definition at line 27 of file XYZR.h.

Member Function Documentation

static XYZR IMP::core::XYZR::setup_particle ( Particle p)
static

Create a decorator using radius_key to store the FloatKey.

Parameters
[in]pThe particle to wrap.

Definition at line 36 of file XYZR.h.

+ Here is the call graph for this function:

static XYZR IMP::core::XYZR::setup_particle ( Particle p,
Float  radius 
)
static

Create a decorator using radius_key to store the FloatKey. The particle should already be an XYZ particle.

Parameters
[in]pThe particle to wrap.
[in]radiusThe radius to set initially

Definition at line 50 of file XYZR.h.

static XYZR IMP::core::XYZR::setup_particle ( Particle p,
const algebra::Sphere3D  s 
)
static

Create a decorator using radius_key to store the FloatKey.

Parameters
[in]pThe particle to wrap.
[in]sThe sphere to use to set the position and radius

Definition at line 60 of file XYZR.h.

+ Here is the call graph for this function:

static XYZR IMP::core::XYZR::setup_particle ( Model m,
ParticleIndex  pi,
const algebra::Sphere3D  s 
)
static

Add the coordinates and radius from the sphere to the particle.

Definition at line 70 of file XYZR.h.

+ Here is the call graph for this function:

Friends And Related Function Documentation

XYZRs create_xyzr_particles ( Model m,
unsigned int  num,
Float  radius,
Float  box_side = 10 
)
related

This function is mostly to be used to keep demo code brief.

Parameters
[in]mThe model to add them to.
[in]numThe number of particles to create.
[in]radiusThe radius to give them.
[in]box_sideThe particles have coordinates from -box_side to box_side.

The particles coordinates are optimized.

algebra::Sphere3D get_enclosing_sphere ( const XYZs &  v)
related
Parameters
[in]vThe one whose radius should be set Any particle which does not have the attribute b.get_radius() is assumed to have a radius of 0.
void set_enclosing_radius ( XYZR  b,
const XYZs &  v 
)
related
Parameters
[in]vThe vector of XYZ or XYZR particles to enclose
[out]bThe one whose radius should be set Any particle which does not have the attribute b.get_radius() is assumed to have a radius of 0.
void set_enclosing_sphere ( XYZR  b,
const XYZs &  v,
double  slack = 0 
)
related
Parameters
[in]vThe vector of XYZ or XYZR particles to enclose
[out]bThe one whose values should be set
[in]slackAn amount to add to the radius. Any particle which does not have the attribute b.get_radius() is assumed to have a radius of 0.
Note
This function produces tighter bounds if the CGAL library is available.

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