IMP logo
IMP Reference Guide  2.22.0
The Integrative Modeling Platform
algebra/geometry.py
1 ## \example algebra/geometry.py
2 # IMP.algebra provides a set of geometric primitives and basic operations
3 # on them.
4 
5 import IMP.algebra
6 import sys
7 
8 IMP.setup_from_argv(sys.argv, "geometry")
9 
10 # we can create some spheres
11 s = []
12 for i in range(0, 10):
14  IMP.algebra.get_unit_bounding_box_3d()), .1))
15 
16 # we can compute a sphere which contains them all
18 
19 print(enclosing.get_contains(s[0]))
20 
21 print(IMP.algebra.get_distance(s[0], s[1]))
22 # or between the centers
23 print(IMP.algebra.get_distance(s[0].get_center(), s[1].get_center()))
24 
25 # create a cylinder
27  IMP.algebra.Segment3D(s[0].get_center(), s[1].get_center()), 1)
28 print(c)
29 
30 # manipulate bounding boxes
32 for si in s:
Strings setup_from_argv(const Strings &argv, std::string description, std::string positional_description, int num_positional)
BoundingBoxD< 3 > get_bounding_box(const Geometry &)
Compute the bounding box of any geometric object.
Represent a cylinder in 3D.
Definition: Cylinder3D.h:27
Vector3D get_random_vector_in(const Cylinder3D &c)
Generate a random vector in a cylinder with uniform density.
Simple implementation of segments in 3D.
Definition: Segment3D.h:25
General purpose algebraic and geometric methods that are expected to be used by a wide variety of IMP...
double get_distance(const VectorD< D > &v1, const VectorD< D > &v2)
Compute the distance between two vectors.
Definition: VectorD.h:196
Sphere3D get_enclosing_sphere(const Vector3Ds &ss)
Return a sphere containing the listed vectors.