1 2 /* 3 A* ------------------------------------------------------------------- 4 B* This file contains source code for the PyMOL computer program 5 C* copyright 1998-2000 by Warren Lyford Delano of DeLano Scientific. 6 D* ------------------------------------------------------------------- 7 E* It is unlawful to modify or remove this copyright notice. 8 F* ------------------------------------------------------------------- 9 G* Please see the accompanying LICENSE file for further information. 10 H* ------------------------------------------------------------------- 11 I* Additional authors of this source file include: 12 -* 13 -* 14 -* 15 Z* ------------------------------------------------------------------- 16 */ 17 #ifndef _H_Sculpt 18 #define _H_Sculpt 19 20 #include"Shaker.h" 21 #include"vla.h" 22 23 #include <memory> 24 25 #define cSculptBond 0x001 26 #define cSculptAngl 0x002 27 #define cSculptPyra 0x004 28 #define cSculptPlan 0x008 29 #define cSculptLine 0x010 30 #define cSculptVDW 0x020 31 #define cSculptVDW14 0x040 32 #define cSculptTors 0x080 33 #define cSculptTri 0x100 34 #define cSculptMin 0x200 35 #define cSculptMax 0x400 36 #define cSculptAvoid 0x800 37 38 struct CSculpt { 39 PyMOLGlobals *G; 40 std::unique_ptr<CShaker> Shaker; 41 ObjectMolecule *Obj; 42 std::vector<int> NBHash; 43 pymol::vla<int> NBList; 44 std::vector<int> EXHash; 45 pymol::vla<int> EXList; 46 pymol::vla<int> Don; 47 pymol::vla<int> Acc; 48 float inverse[256]; 49 CSculpt(PyMOLGlobals * G); 50 }; 51 52 struct ObjectMolecule; 53 54 void SculptMeasureObject(CSculpt * I, ObjectMolecule * obj, int state, int match_state, 55 int match_by_segment); 56 float SculptIterateObject(CSculpt * I, ObjectMolecule * obj, int state, int n_cycle, 57 float *center); 58 59 60 #endif 61