 IMP Reference Guide  develop.d4bfa488b9,2023/11/29 The Integrative Modeling Platform
IMP::core::XYZ Class Reference

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

#include <IMP/core/XYZ.h> Inheritance diagram for IMP::core::XYZ:

## Detailed Description

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

Using the decorator one can get and set coordinates and modify derivatives.

1 ## \example core/XYZ_Decorator.py
2 # This is a simple example using the XYZ decorator to set the coordinates
3 # of some particles and compute the distance between them.
4
5 import IMP
6 import IMP.core
7 import IMP.algebra
8 import sys
9
10 IMP.setup_from_argv(sys.argv, "XYZ decorator example")
11
12 m = IMP.Model()
14 # add x,y,z coordinates to the particle
17 # add slots for the coordinates, but leave them uninitialized
19 # set the coordinate values
20 d1.set_coordinates(IMP.algebra.Vector3D(3, 4, 5))
21
22 # return the distance between the two points described by the decorated
23 # particles
24 print(IMP.core.get_distance(d0, d1))
XYZR
Examples:
core/simple.cpp.

Definition at line 30 of file XYZ.h.

## Public Member Functions

XYZ (::IMP::Model *m,::IMP::ParticleIndex id)

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 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 (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) Protected Member Functions inherited from IMP::Decorator
Decorator (Model *m, ParticleIndex pi)

## Member Function Documentation

 void IMP::core::XYZ::add_to_derivative ( int i, Float v, DerivativeAccumulator & d )

Add v to the derivative of the ith coordinate, used by various

Definition at line 78 of file XYZ.h. Here is the call graph for this function:

 void IMP::core::XYZ::add_to_derivatives ( const algebra::Vector3D & v, DerivativeAccumulator & d )

Add the vector v to the derivative vector of the x,y,z coordinates.

Definition at line 82 of file XYZ.h. Here is the call graph for this function:

 Float IMP::core::XYZ::get_coordinate ( int i ) const

Get the ith coordinate.

Definition at line 69 of file XYZ.h. Here is the call graph for this function:

 const algebra::Vector3D& IMP::core::XYZ::get_coordinates ( ) const

Convert it to a vector.

Somewhat suspect based on wanting a Point/Vector differentiation but we don't have points

Definition at line 109 of file XYZ.h. Here is the call graph for this function:

 bool IMP::core::XYZ::get_coordinates_are_optimized ( ) const

Get whether the coordinates are optimized.

Returns
true only if all of them are optimized.

Definition at line 89 of file XYZ.h. Here is the call graph for this function:

 Float IMP::core::XYZ::get_derivative ( int i ) const

Get the derivative of the ith coordinate, as accumulated by add_to_derivative()

Definition at line 74 of file XYZ.h.

 algebra::Vector3D IMP::core::XYZ::get_derivatives ( ) const

Get the vector of derivatives accumulated by add_to_derivatives().

Somewhat suspect based on wanting a Point/Vector differentiation but we don't have points

Definition at line 116 of file XYZ.h. Here is the call graph for this function:

 algebra::Vector3D IMP::core::XYZ::get_vector_to ( const XYZ & b ) const

Get the vector from this particle to another.

Definition at line 102 of file XYZ.h. Here is the call graph for this function:

 Float IMP::core::XYZ::get_x ( ) const

returns the value of the x attribute

Definition at line 54 of file XYZ.h.

 static const FloatKeys& IMP::core::XYZ::get_xyz_keys ( )
static

Get a vector containing the keys for x,y,z.

This is quite handy for initializing movers and things.

 Float IMP::core::XYZ::get_y ( ) const

returns the value of the y attribute

Definition at line 55 of file XYZ.h.

 Float IMP::core::XYZ::get_z ( ) const

returns the value of the z attribute

Definition at line 56 of file XYZ.h.

 void IMP::core::XYZ::set_coordinate ( unsigned int i, Float v )

set the ith coordinate

Definition at line 58 of file XYZ.h. Here is the call graph for this function:

 void IMP::core::XYZ::set_coordinates ( const algebra::Vector3D & v )

set all coordinates from a vector

Examples:
core/simple.cpp.

Definition at line 62 of file XYZ.h. Here is the call graph for this function:

 void IMP::core::XYZ::set_coordinates_are_optimized ( bool tf ) const

Set whether the coordinates are optimized.

Definition at line 95 of file XYZ.h. Here is the call graph for this function:

 void IMP::core::XYZ::set_x ( Float t )

sets the value of the x attribute to t

Definition at line 54 of file XYZ.h.

 void IMP::core::XYZ::set_y ( Float t )

sets the value of the y attribute to t

Definition at line 55 of file XYZ.h.

 void IMP::core::XYZ::set_z ( Float t )

sets the value of the z attribute to t

Definition at line 56 of file XYZ.h.

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

Setup the particle with unspecified coordinates.

Returns
a XYZ object that decorates particle pi
Examples:
atom/dope_and_excluded_volume.cpp, and core/simple.cpp.

Definition at line 51 of file XYZ.h.

 static XYZ IMP::core::XYZ::setup_particle ( IMP::ParticleAdaptor pa )
static
Returns
a XYZ object that decorates the particle specified by pa
setup_particle(m, p)

Definition at line 51 of file XYZ.h.

 static XYZ IMP::core::XYZ::setup_particle ( Model * m, ParticleIndex pi, algebra::Vector3D v )
static
Returns
a XYZ object that decorates particle pi

Definition at line 52 of file XYZ.h.

 static XYZ IMP::core::XYZ::setup_particle ( IMP::ParticleAdaptor pa, algebra::Vector3D v )
static
Returns
a XYZ object that decorates the particle specified by pa