ObjectMesh.cpp (pymol-v1.8.6.0.tar.bz2) | : | ObjectMesh.cpp (pymol-v2.1.0.tar.bz2) | ||
---|---|---|---|---|
skipping to change at line 281 | skipping to change at line 281 | |||
int a; | int a; | |||
PRINTFB(I->Obj.G, FB_ObjectMesh, FB_Errors) | PRINTFB(I->Obj.G, FB_ObjectMesh, FB_Errors) | |||
"ObjectMesh-Warning: map has been deleted, saving as CGO.\n" | "ObjectMesh-Warning: map has been deleted, saving as CGO.\n" | |||
ENDFB(I->Obj.G); | ENDFB(I->Obj.G); | |||
for(a = 0; a < I->NState; a++) { | for(a = 0; a < I->NState; a++) { | |||
CGO *cgo = ObjectMeshRenderImpl(I, 0, 1, a); | CGO *cgo = ObjectMeshRenderImpl(I, 0, 1, a); | |||
retObjectCGO = ObjectCGOFromCGO(I->Obj.G, retObjectCGO, cgo, a); | retObjectCGO = ObjectCGOFromCGO(I->Obj.G, retObjectCGO, cgo, a); | |||
} | } | |||
ObjectSetRepVis(&retObjectCGO->Obj, cRepMesh, 0); | ObjectSetRepVisMask(&retObjectCGO->Obj, cRepCGOBit, cVis_AS); | |||
ObjectSetRepVis(&retObjectCGO->Obj, cRepCGO, 1); | ||||
result = ObjectCGOAsPyList(retObjectCGO); | result = ObjectCGOAsPyList(retObjectCGO); | |||
ObjectCGOFree(retObjectCGO); | ObjectCGOFree(retObjectCGO); | |||
} | } | |||
return (PConvAutoNone(result)); | return (PConvAutoNone(result)); | |||
} | } | |||
static void ObjectMeshStateFree(ObjectMeshState * ms) | static void ObjectMeshStatePurge(ObjectMeshState * ms) | |||
{ | { | |||
ObjectStatePurge(&ms->State); | ObjectStatePurge(&ms->State); | |||
if(ms->Field) { | if(ms->Field) { | |||
IsosurfFieldFree(ms->State.G, ms->Field); | IsosurfFieldFree(ms->State.G, ms->Field); | |||
ms->Field = NULL; | ms->Field = NULL; | |||
} | } | |||
VLAFreeP(ms->N); | ||||
VLAFreeP(ms->V); | ||||
FreeP(ms->VC); | ||||
FreeP(ms->RC); | ||||
VLAFreeP(ms->AtomVertex); | VLAFreeP(ms->AtomVertex); | |||
CGOFree(ms->shaderCGO); | CGOFree(ms->shaderCGO); | |||
CGOFree(ms->shaderUnitCellCGO); | CGOFree(ms->shaderUnitCellCGO); | |||
CGOFree(ms->UnitCellCGO); | CGOFree(ms->UnitCellCGO); | |||
ms->Active = false; | ms->Active = false; | |||
} | } | |||
static void ObjectMeshStateFree(ObjectMeshState * ms) | ||||
{ | ||||
ObjectMeshStatePurge(ms); | ||||
VLAFreeP(ms->N); | ||||
VLAFreeP(ms->V); | ||||
FreeP(ms->VC); | ||||
FreeP(ms->RC); | ||||
} | ||||
static void ObjectMeshFree(ObjectMesh * I) | static void ObjectMeshFree(ObjectMesh * I) | |||
{ | { | |||
int a; | int a; | |||
for(a = 0; a < I->NState; a++) { | for(a = 0; a < I->NState; a++) { | |||
if(I->State[a].Active) | if(I->State[a].Active) | |||
ObjectMeshStateFree(I->State + a); | ObjectMeshStateFree(I->State + a); | |||
} | } | |||
VLAFreeP(I->State); | VLAFreeP(I->State); | |||
ObjectPurge(&I->Obj); | ObjectPurge(&I->Obj); | |||
skipping to change at line 1135 | skipping to change at line 1139 | |||
ok &= ObjectMeshStateRenderShader(ms, I, info, mesh_as_cylinders , mesh_width); | ok &= ObjectMeshStateRenderShader(ms, I, info, mesh_as_cylinders , mesh_width); | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
if (!ok){ | if (!ok){ | |||
I->Obj.fInvalidate(&I->Obj, cRepMesh, cRepInvPurge, -1); | I->Obj.fInvalidate(&I->Obj, cRepMesh, cRepInvPurge, -1); | |||
I->Obj.fInvalidate(&I->Obj, cRepCGO, cRepInvPurge, -1); | I->Obj.fInvalidate(&I->Obj, cRepCGO, cRepInvPurge, -1); | |||
ObjectSetRepVis(&I->Obj, cRepMesh, 0); | ObjectSetRepVisMask(&I->Obj, 0, cVis_AS); | |||
ObjectSetRepVis(&I->Obj, cRepCGO, 0); | ||||
} | } | |||
return NULL; | return NULL; | |||
} | } | |||
/*========================================================================*/ | /*========================================================================*/ | |||
static int ObjectMeshGetNStates(ObjectMesh * I) | static int ObjectMeshGetNStates(ObjectMesh * I) | |||
{ | { | |||
return (I->NState); | return (I->NState); | |||
skipping to change at line 1184 | skipping to change at line 1187 | |||
I = NULL; | I = NULL; | |||
} | } | |||
/* I->Obj.fGetCaption = (char *(*)(CObject *))ObjectMeshGetCaption; */ | /* I->Obj.fGetCaption = (char *(*)(CObject *))ObjectMeshGetCaption; */ | |||
return (I); | return (I); | |||
} | } | |||
/*========================================================================*/ | /*========================================================================*/ | |||
void ObjectMeshStateInit(PyMOLGlobals * G, ObjectMeshState * ms) | void ObjectMeshStateInit(PyMOLGlobals * G, ObjectMeshState * ms) | |||
{ | { | |||
if(ms->Active) | if(ms->Active) | |||
ObjectStatePurge(&ms->State); | ObjectMeshStatePurge(ms); | |||
if(ms->Field) { | ||||
IsosurfFieldFree(ms->State.G, ms->Field); | ||||
ms->Field = NULL; | ||||
} | ||||
ObjectStateInit(G, &ms->State); | ObjectStateInit(G, &ms->State); | |||
if(!ms->V) { | if(!ms->V) { | |||
ms->V = VLAlloc(float, 10000); | ms->V = VLAlloc(float, 10000); | |||
} | } | |||
if(!ms->N) { | if(!ms->N) { | |||
ms->N = VLAlloc(int, 10000); | ms->N = VLAlloc(int, 10000); | |||
} | } | |||
if(ms->AtomVertex) { | ||||
VLAFreeP(ms->AtomVertex); | ||||
} | ||||
ms->N[0] = 0; | ms->N[0] = 0; | |||
ms->Active = true; | ms->Active = true; | |||
ms->ResurfaceFlag = true; | ms->ResurfaceFlag = true; | |||
ms->RecolorFlag = false; | ms->RecolorFlag = false; | |||
ms->ExtentFlag = false; | ms->ExtentFlag = false; | |||
ms->CarveFlag = false; | ms->CarveFlag = false; | |||
ms->quiet = true; | ms->quiet = true; | |||
ms->CarveBuffer = 0.0; | ms->CarveBuffer = 0.0; | |||
ms->AtomVertex = NULL; | ms->AtomVertex = NULL; | |||
ms->UnitCellCGO = NULL; | ms->UnitCellCGO = NULL; | |||
End of changes. 7 change blocks. | ||||
17 lines changed or deleted | 13 lines changed or added |