home
about
news
download
doc
source
systems
tests
bugs
contact
IMP Reference Guide
2.20.0
The Integrative Modeling Platform
IMP Manual
Reference Guide
Tutorial Index
Modules
Classes
Examples
include
IMP
core
version 2.20.0
SurfaceSymmetryConstraint.h
Go to the documentation of this file.
1
/**
2
* \file IMP/core/SurfaceSymmetryConstraint.h
3
* \brief Constrain orientation of surfaces with respect to rigid bodies.
4
*
5
* Copyright 2007-2022 IMP Inventors. All rights reserved.
6
*
7
*/
8
9
#ifndef IMPCORE_SURFACE_SYMMETRY_CONSTRAINT_H
10
#define IMPCORE_SURFACE_SYMMETRY_CONSTRAINT_H
11
12
#include <IMP/core/core_config.h>
13
#include <
IMP/core/Surface.h
>
14
#include <
IMP/core/rigid_bodies.h
>
15
#include <
IMP/algebra/Transformation3D.h
>
16
#include <
IMP/Constraint.h
>
17
#include <
IMP/Particle.h
>
18
#include <
IMP/Object.h
>
19
#include <
IMP/Model.h
>
20
21
IMPCORE_BEGIN_NAMESPACE
22
23
//! Constrain orientation of surfaces with respect to rigid bodies.
24
/** Given two surfaces and two rigid bodies assumed to be identical,
25
constrain the orientation of the first surface relative to the
26
first rigid body to be the same as the orientation of second
27
surface with respect to the second rigid body.
28
29
\note Both RigidBody particles are assumed to be identical copies.
30
This is not enforced.
31
32
\note Derivatives from the first surface are transformed and
33
added to the second surface.
34
*/
35
class
IMPCOREEXPORT
SurfaceSymmetryConstraint
:
public
IMP::Constraint
{
36
ParticleIndexPair
spip_;
37
ParticleIndexPair
rbpip_;
38
39
algebra::Transformation3D
get_transformation()
const
;
40
41
public
:
42
//! Create restraint from particle pairs.
43
/** \param[in] m the Model
44
\param[in] ss pair of Surface particles, where the first surface is
45
constrained
46
\param[in] rbs pair of RigidBody particles, corresponding to
47
the surfaces in `ss`
48
*/
49
SurfaceSymmetryConstraint
(
Model
*m,
50
const
ParticleIndexPair
&ss,
51
const
ParticleIndexPair
&rbs);
52
53
virtual
void
do_update_attributes()
override
;
54
55
virtual
void
do_update_derivatives(
DerivativeAccumulator
*da)
override
;
56
57
virtual
ModelObjectsTemp
do_get_inputs
()
const override
;
58
59
virtual
ModelObjectsTemp
do_get_outputs
()
const override
;
60
61
IMP_OBJECT_METHODS
(
SurfaceSymmetryConstraint
);
62
};
63
64
IMPCORE_END_NAMESPACE
65
66
#endif
/* IMPCORE_SURFACE_SYMMETRY_CONSTRAINT_H */
IMP::algebra::Transformation3D
Simple 3D transformation class.
Definition:
Transformation3D.h:37
IMP::Array< 2, ParticleIndex >
IMP_OBJECT_METHODS
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition:
object_macros.h:25
Model.h
Storage of a model, its restraints, constraints and particles.
IMP::core::SurfaceSymmetryConstraint
Constrain orientation of surfaces with respect to rigid bodies.
Definition:
SurfaceSymmetryConstraint.h:35
IMP::Vector
A more IMP-like version of the std::vector.
Definition:
Vector.h:42
IMP::Constraint
Implement a constraint on the Model.
Definition:
Constraint.h:49
IMP::Model
Class for storing model, its restraints, constraints, and particles.
Definition:
Model.h:86
Surface.h
Simple surface decorator.
rigid_bodies.h
functionality for defining rigid bodies
Constraint.h
A base class for constraints.
Transformation3D.h
Simple 3D transformation class.
Particle.h
Classes to handle individual model particles. (Note that implementation of inline functions is in int...
IMP::ModelObject::do_get_outputs
virtual ModelObjectsTemp do_get_outputs() const =0
Object.h
A shared base class to help in debugging and things.
IMP::ModelObject::do_get_inputs
virtual ModelObjectsTemp do_get_inputs() const =0
IMP::DerivativeAccumulator
Class for adding derivatives from restraints to the model.
Definition:
DerivativeAccumulator.h:24