AtomInfo.h (pymol-open-source-2.2.0) | : | AtomInfo.h (pymol-open-source-2.3.0) | ||
---|---|---|---|---|
/** | ||||
* @file | ||||
*/ | ||||
/* | /* | |||
A* ------------------------------------------------------------------- | A* ------------------------------------------------------------------- | |||
B* This file contains source code for the PyMOL computer program | B* This file contains source code for the PyMOL computer program | |||
C* copyright 1998-2000 by Warren Lyford Delano of DeLano Scientific. | C* copyright 1998-2000 by Warren Lyford Delano of DeLano Scientific. | |||
D* ------------------------------------------------------------------- | D* ------------------------------------------------------------------- | |||
E* It is unlawful to modify or remove this copyright notice. | E* It is unlawful to modify or remove this copyright notice. | |||
F* ------------------------------------------------------------------- | F* ------------------------------------------------------------------- | |||
G* Please see the accompanying LICENSE file for further information. | G* Please see the accompanying LICENSE file for further information. | |||
H* ------------------------------------------------------------------- | H* ------------------------------------------------------------------- | |||
I* Additional authors of this source file include: | I* Additional authors of this source file include: | |||
skipping to change at line 217 | skipping to change at line 219 | |||
#ifdef _PYMOL_IP_EXTRAS | #ifdef _PYMOL_IP_EXTRAS | |||
int oldid; | int oldid; | |||
#endif | #endif | |||
signed char order; // 0-4 | signed char order; // 0-4 | |||
signed char temp1; // bool? where used? | signed char temp1; // bool? where used? | |||
signed char stereo; // 0-6 Only for SDF (MOL) format in/out | signed char stereo; // 0-6 Only for SDF (MOL) format in/out | |||
bool has_setting; /* setting based on unique_id */ | bool has_setting; /* setting based on unique_id */ | |||
} BondType; | } BondType; | |||
typedef struct AtomInfoType { | typedef struct AtomInfoType { | |||
union { | float * anisou; // only allocate with get_anisou | |||
float * anisou; // only allocate with get_anisou | ||||
int64_t dummyanisou; | ||||
}; | ||||
lexidx_t segi; | lexidx_t segi; | |||
lexidx_t chain; | lexidx_t chain; | |||
lexidx_t resn; | lexidx_t resn; | |||
lexidx_t name; | lexidx_t name; | |||
lexidx_t textType; | lexidx_t textType; | |||
lexidx_t custom; | lexidx_t custom; | |||
lexidx_t label; | lexidx_t label; | |||
int resv; | int resv; | |||
skipping to change at line 403 | skipping to change at line 402 | |||
int AtomInfoCheckUniqueBondID(PyMOLGlobals * G, BondType * bi); | int AtomInfoCheckUniqueBondID(PyMOLGlobals * G, BondType * bi); | |||
void AtomInfoPurgeBond(PyMOLGlobals * G, BondType * bi); | void AtomInfoPurgeBond(PyMOLGlobals * G, BondType * bi); | |||
void AtomInfoBracketResidue(PyMOLGlobals * G, const AtomInfoType * ai0, int n0, | void AtomInfoBracketResidue(PyMOLGlobals * G, const AtomInfoType * ai0, int n0, | |||
const AtomInfoType * ai, int *st, int *nd); | const AtomInfoType * ai, int *st, int *nd); | |||
void AtomInfoBracketResidueFast(PyMOLGlobals * G, const AtomInfoType * ai0, int n0, int cur, | void AtomInfoBracketResidueFast(PyMOLGlobals * G, const AtomInfoType * ai0, int n0, int cur, | |||
int *st, int *nd); | int *st, int *nd); | |||
int AtomInfoUniquefyNames(PyMOLGlobals * G, const AtomInfoType * atInfo0, int n0 , | int AtomInfoUniquefyNames(PyMOLGlobals * G, const AtomInfoType * atInfo0, int n0 , | |||
AtomInfoType * atInfo1, int *flag1, int n1); | AtomInfoType * atInfo1, int *flag1, int n1); | |||
int AtomInfoGetCarbColor(PyMOLGlobals * G); | ||||
bool AtomResiFromResv(char *resi, size_t size, int resv, char inscode); | bool AtomResiFromResv(char *resi, size_t size, int resv, char inscode); | |||
inline bool AtomResiFromResv(char *resi, size_t size, const AtomInfoType * ai) { | inline bool AtomResiFromResv(char *resi, size_t size, const AtomInfoType * ai) { | |||
return AtomResiFromResv(resi, size, ai->resv, ai->inscode); | return AtomResiFromResv(resi, size, ai->resv, ai->inscode); | |||
} | } | |||
int AtomInfoKnownWaterResName(PyMOLGlobals * G, const char *resn); | int AtomInfoKnownWaterResName(PyMOLGlobals * G, const char *resn); | |||
int AtomInfoKnownPolymerResName(const char *resn); | int AtomInfoKnownPolymerResName(const char *resn); | |||
int AtomInfoKnownProteinResName(const char *resn); | int AtomInfoKnownProteinResName(const char *resn); | |||
int AtomInfoKnownNucleicResName(const char *resn); | int AtomInfoKnownNucleicResName(const char *resn); | |||
void AtomInfoGetPDB3LetHydroName(PyMOLGlobals * G, const char *resn, const char *iname, char *oname); | void AtomInfoGetPDB3LetHydroName(PyMOLGlobals * G, const char *resn, const char *iname, char *oname); | |||
skipping to change at line 433 | skipping to change at line 431 | |||
#define cAIC_state 0x0200 | #define cAIC_state 0x0200 | |||
#define cAIC_rank 0x0400 | #define cAIC_rank 0x0400 | |||
#define cAIC_custom 0x0800 | #define cAIC_custom 0x0800 | |||
#define cAIC_IDMask (cAIC_id|cAIC_rank) | #define cAIC_IDMask (cAIC_id|cAIC_rank) | |||
#define cAIC_PDBMask (cAIC_b|cAIC_q|cAIC_id|cAIC_rank) | #define cAIC_PDBMask (cAIC_b|cAIC_q|cAIC_id|cAIC_rank) | |||
#define cAIC_MMDMask (cAIC_pc|cAIC_ct|cAIC_id|cAIC_rank) | #define cAIC_MMDMask (cAIC_pc|cAIC_ct|cAIC_id|cAIC_rank) | |||
#define cAIC_MOLMask (cAIC_fc|cAIC_id|cAIC_rank) | #define cAIC_MOLMask (cAIC_fc|cAIC_id|cAIC_rank) | |||
#define cAIC_AllMask 0xFFFF | #define cAIC_AllMask 0xFFFF | |||
void AtomInfoCombine(PyMOLGlobals * G, AtomInfoType * dst, AtomInfoType * src, i nt mask); | void AtomInfoCombine(PyMOLGlobals * G, AtomInfoType * dst, AtomInfoType&& src, i nt mask); | |||
int AtomInfoNameOrder(PyMOLGlobals * G, const AtomInfoType * at1, const AtomInfo Type * at2); | int AtomInfoNameOrder(PyMOLGlobals * G, const AtomInfoType * at1, const AtomInfo Type * at2); | |||
int AtomInfoUpdateAutoColor(PyMOLGlobals * G); | int AtomInfoUpdateAutoColor(PyMOLGlobals * G); | |||
typedef struct { | typedef struct { | |||
int resv1, resv2; | int resv1, resv2; | |||
char inscode1, inscode2; | char inscode1, inscode2; | |||
unsigned char chain1, chain2; | unsigned char chain1, chain2; | |||
unsigned char type; | unsigned char type; | |||
int next; | int next; | |||
} SSEntry; | } SSEntry; | |||
skipping to change at line 466 | skipping to change at line 464 | |||
} | } | |||
#define AtomInfoCheckBondSetting AtomInfoCheckSetting | #define AtomInfoCheckBondSetting AtomInfoCheckSetting | |||
template <typename V, typename T> void SettingSet(PyMOLGlobals * G, int index, V value, T * ai) { | template <typename V, typename T> void SettingSet(PyMOLGlobals * G, int index, V value, T * ai) { | |||
AtomInfoCheckUniqueID(G, ai); | AtomInfoCheckUniqueID(G, ai); | |||
ai->has_setting = true; | ai->has_setting = true; | |||
SettingUniqueSet(G, ai->unique_id, index, value); | SettingUniqueSet(G, ai->unique_id, index, value); | |||
} | } | |||
/* | /** | |||
* Return true if `item` has the requested setting defined and the | * Return true if `item` has the requested setting defined and the | |||
* value could be assigned to `out`. | * value could be assigned to `out`. | |||
*/ | */ | |||
template <typename V, typename T> | template <typename V, typename T> | |||
bool AtomSettingGetIfDefined(PyMOLGlobals * G, T * item, int index, V * out) { | bool AtomSettingGetIfDefined(PyMOLGlobals * G, T * item, int index, V * out) { | |||
return item->has_setting && | return item->has_setting && | |||
SettingUniqueGetIfDefined<V>(G, item->unique_id, index, out); | SettingUniqueGetIfDefined<V>(G, item->unique_id, index, out); | |||
} | } | |||
/* | /** | |||
* Return the `item`-level setting value or `default_`, if `index` is not | * Return the `item`-level setting value or `default_`, if `index` is not | |||
* defined for `item`. | * defined for `item`. | |||
*/ | */ | |||
template <typename V, typename T> | template <typename V, typename T> | |||
V AtomSettingGetWD(PyMOLGlobals * G, T * item, int index, V default_) { | V AtomSettingGetWD(PyMOLGlobals * G, T * item, int index, V default_) { | |||
V out; | V out; | |||
if (AtomSettingGetIfDefined<V, T>(G, item, index, &out)) | if (AtomSettingGetIfDefined<V, T>(G, item, index, &out)) | |||
return out; | return out; | |||
return default_; | return default_; | |||
} | } | |||
End of changes. 6 change blocks. | ||||
9 lines changed or deleted | 7 lines changed or added |