"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "layer2/ObjectMap.cpp" between
pymol-open-source-2.2.0.tar.gz and pymol-open-source-2.3.0.tar.gz

About: PyMOL is a Python-enhanced molecular graphics tool. It excels at 3D visualization of proteins, small molecules, density, surfaces, and trajectories. It also includes molecular editing, ray tracing, and movies. Open Source version.

ObjectMap.cpp  (pymol-open-source-2.2.0):ObjectMap.cpp  (pymol-open-source-2.3.0)
skipping to change at line 1570 skipping to change at line 1570
PyList_SetItem(result, 0, ObjectAsPyList(&I->Obj)); PyList_SetItem(result, 0, ObjectAsPyList(&I->Obj));
PyList_SetItem(result, 1, PyInt_FromLong(I->NState)); PyList_SetItem(result, 1, PyInt_FromLong(I->NState));
PyList_SetItem(result, 2, ObjectMapAllStatesAsPyList(I)); PyList_SetItem(result, 2, ObjectMapAllStatesAsPyList(I));
return (PConvAutoNone(result)); return (PConvAutoNone(result));
} }
int ObjectMapNewFromPyList(PyMOLGlobals * G, PyObject * list, ObjectMap ** resul t) int ObjectMapNewFromPyList(PyMOLGlobals * G, PyObject * list, ObjectMap ** resul t)
{ {
int ok = true; int ok = true;
int ll;
ObjectMap *I = NULL; ObjectMap *I = NULL;
(*result) = NULL; (*result) = NULL;
if(ok) if(ok)
ok = (list != NULL); ok = (list != NULL);
if(ok) if(ok)
ok = PyList_Check(list); ok = PyList_Check(list);
if(ok)
ll = PyList_Size(list);
/* TO SUPPORT BACKWARDS COMPATIBILITY... /* TO SUPPORT BACKWARDS COMPATIBILITY...
Always check ll when adding new PyList_GetItem's */ Always check ll when adding new PyList_GetItem's */
I = ObjectMapNew(G); I = ObjectMapNew(G);
if(ok) if(ok)
ok = (I != NULL); ok = (I != NULL);
if(ok) if(ok)
ok = ObjectFromPyList(G, PyList_GetItem(list, 0), &I->Obj); ok = ObjectFromPyList(G, PyList_GetItem(list, 0), &I->Obj);
if(ok) if(ok)
ok = PConvPyIntToInt(PyList_GetItem(list, 1), &I->NState); ok = PConvPyIntToInt(PyList_GetItem(list, 1), &I->NState);
skipping to change at line 1908 skipping to change at line 1905
shaderCGO->use_shader = true; shaderCGO->use_shader = true;
return shaderCGO; return shaderCGO;
} }
static void ObjectMapRender(ObjectMap * I, RenderInfo * info) static void ObjectMapRender(ObjectMap * I, RenderInfo * info)
{ {
PyMOLGlobals *G = I->Obj.G; PyMOLGlobals *G = I->Obj.G;
int state = info->state; int state = info->state;
CRay *ray = info->ray; CRay *ray = info->ray;
Picking **pick = info->pick; auto pick = info->pick;
int pass = info->pass; int pass = info->pass;
ObjectMapState *ms = NULL; ObjectMapState *ms = NULL;
if(pass) if(pass)
return; return;
for(StateIterator iter(G, I->Obj.Setting, state, I->NState); for(StateIterator iter(G, I->Obj.Setting, state, I->NState);
iter.next();) { iter.next();) {
state = iter.state; state = iter.state;
if(I->State[state].Active) if(I->State[state].Active)
skipping to change at line 2527 skipping to change at line 2524
} }
// AMIN, AMAX, AMEAN // AMIN, AMAX, AMEAN
mind = *(float *) (i++); mind = *(float *) (i++);
maxd = *(float *) (i++); maxd = *(float *) (i++);
mean = *(float *) (i++); mean = *(float *) (i++);
ispg = *(i++); ispg = *(i++);
sym_skip = *(i++); sym_skip = *(i++);
// CCP4 Format:
// 25-37 skew transformation
// 38-52 future use "Storage space sometimes used by specific programs (defaul
t = 0)"
// MRC 2000 Format:
// 25-49 "Extra, user defined storage space (default = 0)"
// 50-52 ORIGIN
{ {
int skew = *(i++); int skew = *(i++);
if(skew) { if(skew) {
double matrix[16]; double matrix[16];
auto i_float = (const float *) i; auto i_float = (const float *) i;
// SKWMAT Skew matrix S (in order S11, S12, S13, S21 etc) // SKWMAT Skew matrix S (in order S11, S12, S13, S21 etc)
copy33f44d(i_float, matrix); copy33f44d(i_float, matrix);
xx_matrix_invert(matrix, matrix, 4); xx_matrix_invert(matrix, matrix, 4);
skipping to change at line 2556 skipping to change at line 2561
PRINTFB(I->Obj.G, FB_ObjectMap, FB_Details) PRINTFB(I->Obj.G, FB_ObjectMap, FB_Details)
" ObjectMapCCP4: Applied skew transformation\n" " ObjectMapCCP4: Applied skew transformation\n"
ENDFB(I->Obj.G); ENDFB(I->Obj.G);
} }
} }
// XORIGIN, YORIGIN, ZORIGIN (50 - 52) // XORIGIN, YORIGIN, ZORIGIN (50 - 52)
// TODO See "Origin Conventions" in http://situs.biomachina.org/fmap.pdf // TODO See "Origin Conventions" in http://situs.biomachina.org/fmap.pdf
float * mrc2000origin = (float *)(i + 49 - 25); float * mrc2000origin = (float *)(i + 49 - 25);
if (lengthsq3f(mrc2000origin) > R_SMALL4) { if (lengthsq3f(mrc2000origin) > R_SMALL4) {
double matrix[] = {
1., 0., 0., mrc2000origin[0],
0., 1., 0., mrc2000origin[1],
0., 0., 1., mrc2000origin[2],
0., 0., 0., 1.};
ObjectStateSetMatrix(&ms->State, matrix);
if (!quiet) { if (!quiet) {
PRINTFB(I->Obj.G, FB_ObjectMap, FB_Warnings) PRINTFB(I->Obj.G, FB_ObjectMap, FB_Details)
" ObjectMapCCP4: MRC 2000 ORIGIN %.2f %.2f %.2f (unused)\n", " ObjectMapCCP4: Applied MRC 2000 ORIGIN %.2f %.2f %.2f\n",
mrc2000origin[0], mrc2000origin[1], mrc2000origin[2] mrc2000origin[0], mrc2000origin[1], mrc2000origin[2]
ENDFB(I->Obj.G); ENDFB(I->Obj.G);
} }
} }
i += 54 - 25; i += 54 - 25;
stdev = *(float *) (i++); stdev = *(float *) (i++);
if(!quiet) { if(!quiet) {
PRINTFB(I->Obj.G, FB_ObjectMap, FB_Blather) PRINTFB(I->Obj.G, FB_ObjectMap, FB_Blather)
skipping to change at line 5623 skipping to change at line 5636
#ifdef _PYMOL_NUMPY #ifdef _PYMOL_NUMPY
ptr = PyArray_GETPTR3(pao, a, b, c); ptr = PyArray_GETPTR3(pao, a, b, c);
switch(itemsize) { switch(itemsize) {
case sizeof(double): case sizeof(double):
dens = (float) *((double*)ptr); dens = (float) *((double*)ptr);
break; break;
case sizeof(float): case sizeof(float):
dens = *((float*)ptr); dens = *((float*)ptr);
break; break;
default: default:
dens = 0.0;
printf("no itemsize match\n"); printf("no itemsize match\n");
} }
#else #else
dens = 0.0; dens = 0.0;
#endif #endif
F3(ms->Field->data, a, b, c) = dens; F3(ms->Field->data, a, b, c) = dens;
if(maxd < dens) if(maxd < dens)
maxd = dens; maxd = dens;
if(mind > dens) if(mind > dens)
mind = dens; mind = dens;
 End of changes. 7 change blocks. 
6 lines changed or deleted 21 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)