1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
/*
A* -------------------------------------------------------------------
B* This file contains source code for the PyMOL computer program
C* copyright 1998-2006 by Warren Lyford Delano of DeLano Scientific.
D* -------------------------------------------------------------------
E* It is unlawful to modify or remove this copyright notice.
F* -------------------------------------------------------------------
G* Please see the accompanying LICENSE file for further information.
H* -------------------------------------------------------------------
I* Additional authors of this source file include:
-*
-*
-*
Z* -------------------------------------------------------------------
*/
#ifndef _H_ObjectAlignment
#define _H_ObjectAlignment
#include"os_python.h"
#include"PyMOLObject.h"
#include"CGO.h"
#include"ObjectMolecule.h"
#include"pymol/memory.h"
struct ObjectAlignmentState {
pymol::vla<int> alignVLA;
WordType guide;
/* not stored */
int valid;
std::unordered_map<int, int> id2tag;
pymol::cache_ptr<CGO> primitiveCGO;
pymol::cache_ptr<CGO> renderCGO;
bool renderCGO_has_cylinders;
bool renderCGO_has_trilines;
};
struct ObjectAlignment : public pymol::CObject {
std::vector<ObjectAlignmentState> State;
int SelectionState = -1;
int ForceState = -1;
ObjectAlignment(PyMOLGlobals* G);
// virtual methods
void update() override;
void render(RenderInfo* info) override;
void invalidate(cRep_t rep, cRepInv_t level, int state) override;
int getNFrame() const override;
pymol::CObject* clone() const override;
};
ObjectAlignment *ObjectAlignmentDefine(PyMOLGlobals * G,
ObjectAlignment * obj,
const pymol::vla<int>& align_vla,
int state,
int merge,
ObjectMolecule * guide, ObjectMolecule * flush);
void ObjectAlignmentRecomputeExtent(ObjectAlignment * I);
PyObject *ObjectAlignmentAsPyList(ObjectAlignment * I);
int ObjectAlignmentNewFromPyList(PyMOLGlobals * G, PyObject * list,
ObjectAlignment ** result, int version);
int ObjectAlignmentAsStrVLA(PyMOLGlobals * G, ObjectAlignment * I, int state, int format,
char **str_vla);
#endif
|