diff --git a/modules/mol/base/doc/mol.rst b/modules/mol/base/doc/mol.rst index a16b21f541edbec24a14ea8f96c9183adc9cf4f3..9959e58996950e89302053d6c2d7fbb45f7296aa 100644 --- a/modules/mol/base/doc/mol.rst +++ b/modules/mol/base/doc/mol.rst @@ -11,4 +11,5 @@ The mol module implement data structure to work with molecular datasets. At its entity editors - query \ No newline at end of file + query + surface \ No newline at end of file diff --git a/modules/mol/base/doc/surface.rst b/modules/mol/base/doc/surface.rst new file mode 100644 index 0000000000000000000000000000000000000000..1520054f9772b163514ea5e10af05eb3687c617e --- /dev/null +++ b/modules/mol/base/doc/surface.rst @@ -0,0 +1,144 @@ +Surfaces +================================================================================ + +.. currentmodule:: ost.mol + +.. class:: SurfaceHandle + + TODO + + .. method:: Attach(entity, cutoff) + + Attach an :class:`EntityHandle` or :class:`EntityView` to a molecular + surface. For each vertex of the surface, the atom which is closest to this + vertex and within the cutoff distance is attached. Like this, the atom and + its properties can be retrieved efficiently, which is e.g. used for coloring + a surface according to the underlying entity (see + :meth:`gfx.Surface.ColorBy`). + + Be aware that increasing the cutoff distance will significantly increase the + time needed to attach an entity to the surface. + + :param entity: entity to be attached to the surface + :type entity: :class:`EntityHandle`, :class:`EntityView` + :param cutoff: distance cutoff + :type cutoff: float + :rtype: None + + .. method:: FindWithin(position, cutoff) + + Returns all :class:`surface vertices<SurfaceVertex>` within a certain cutoff + distance of a specified position. + + :param position: position + :type position: :class:`~ost.geom.Vec3` + :param cutoff: distance cutoff + :type cutoff: float + :rtype: :class:`SurfaceVertexList` + + .. method:: GetTriIDList() + + Returns a list containing all IDs of all triangles of a surface. + + :rtype: list of ints + + .. method:: GetVertex(id) + + Returns a :class:`SurfaceVertex` with the specified ID. + + :param id: vertex id + :type id: int + :rtype: :class:`SurfaceVertex` + + .. method:: GetVertexIDList() + + Returns a list containing all IDs of all vertices of a surface. + + :rtype: list of ints + + .. method:: Invert() + + Does an in place inversion of all vertex normal vectors. + + :rtype: None + +.. class:: SurfaceVertex + + TODO + + .. method:: SurfaceVertex() + SurfaceVertex(pos, norm, type, atom) + + Creates a new SurfaceVertex. + + :param pos: vertex position + :type pos: :class:`geom.Vec3` + :param norm: vertex normal vector + :type norm: :class:`geom.Vec3` + :param type: vertex type + :type type: int + :param atom: attached atom + :type atom: :class:`AtomHandle` + + .. attribute:: Atom + + :class:`AtomHandle` attached to the surface vertex. + + The AtomHandle is invalid, if no :class:`~ost.mol.EntityHandle` has been + attached or if no atom was found within the cutoff distance. + + See :meth:`SurfaceHandle.Attach` for further details. + + :type: :class:`AtomHandle` + + .. attribute:: Normal + + Normal vector of the surface vertex. + + :type: :class:`~ost.geom.Vec3` + + .. attribute:: Position + + Spatial position of the surface vertex. + + :type: :class:`~ost.geom.Vec3` + +.. class:: SurfaceVertexList + + .. method:: append(vertex) + + Add a single surface vertex. + + :param vertex: surface vertex + :type vertex: :class:`SurfaceVertex` + :rtype: None + + .. method:: extend(list) + + Add a list of surface vertices. + + :param list: list of surface vertices + :type list: :class:`SurfaceVertexList` + :rtype: None + +.. class:: SurfaceTriIDList + + .. method:: append(id) + + Add a single triangle ID. + + :param id: trinangle vertex id + :type id: int + :rtype: None + + .. method:: extend(list) + + Add a list of triangle IDs. + + :param list: list of triangle vertex ids + :type list: list of ints + :rtype: None + + + +