ObjectGadgetRamp.cpp (pymol-v2.1.0.tar.bz2) | : | ObjectGadgetRamp.cpp (pymol-open-source-2.2.0) | ||
---|---|---|---|---|
skipping to change at line 525 | skipping to change at line 525 | |||
if(I->Level && I->NLevel) { | if(I->Level && I->NLevel) { | |||
cutoff = I->Level[I->NLevel - 1]; | cutoff = I->Level[I->NLevel - 1]; | |||
if(I->Level[0] < 0.0F) { | if(I->Level[0] < 0.0F) { | |||
sub_vdw = true; | sub_vdw = true; | |||
cutoff += MAX_VDW; | cutoff += MAX_VDW; | |||
} | } | |||
} | } | |||
if(ok) | if(ok) | |||
ok = (I->Mol != NULL); | ok = (I->Mol != NULL); | |||
if(ok) { | if(ok) { | |||
if (I->Mol->NCSet==1) // if only one state, then set state to 0 | ||||
state = 0; | ||||
if(SettingGet_b | if(SettingGet_b | |||
(I->Gadget.Obj.G, I->Gadget.Obj.Setting, NULL, | (I->Gadget.Obj.G, I->Gadget.Obj.Setting, NULL, | |||
cSetting_ramp_blend_nearby_colors)) { | cSetting_ramp_blend_nearby_colors)) { | |||
float atomic[3]; | float atomic[3]; | |||
int index = | int index = | |||
ObjectMoleculeGetNearestBlendedColor(I->Mol, pos, cutoff, state, &di st, | ObjectMoleculeGetNearestBlendedColor(I->Mol, pos, cutoff, state, &di st, | |||
atomic, sub_vdw); | atomic, sub_vdw); | |||
if(index >= 0) { | if(index >= 0) { | |||
float *object = ColorGetRaw(I->Gadget.Obj.G, I->Mol->Obj.Color); | const float *object = ColorGetRaw(I->Gadget.Obj.G, I->Mol->Obj.Color ); | |||
if(!ObjectGadgetRampInterpolateWithSpecial(I, dist, color, atomic, | if(!ObjectGadgetRampInterpolateWithSpecial(I, dist, color, atomic, | |||
object, pos, state, false )) { | object, pos, state, false )) { | |||
copy3f(I->Color, color); | copy3f(I->Color, color); | |||
} | } | |||
} else { | } else { | |||
float white[3] = { 1.0F, 1.0F, 1.0F }; | float white[3] = { 1.0F, 1.0F, 1.0F }; | |||
if(!ObjectGadgetRampInterpolateWithSpecial(I, cutoff + 1.0F, color, white, | if(!ObjectGadgetRampInterpolateWithSpecial(I, cutoff + 1.0F, color, white, | |||
white, pos, state, false) ) { | white, pos, state, false) ) { | |||
copy3f(I->Color, color); | copy3f(I->Color, color); | |||
} | } | |||
} | } | |||
} else { | } else { | |||
int index = | int index = | |||
ObjectMoleculeGetNearestAtomIndex(I->Mol, pos, cutoff, state, &dist) ; | ObjectMoleculeGetNearestAtomIndex(I->Mol, pos, cutoff, state, &dist) ; | |||
if(index >= 0) { | if(index >= 0) { | |||
float *atomic = ColorGetRaw(I->Gadget.Obj.G, I->Mol->AtomInfo[index] | const float *atomic = ColorGetRaw(I->Gadget.Obj.G, I->Mol->AtomInfo[ | |||
.color); | index].color); | |||
float *object = ColorGetRaw(I->Gadget.Obj.G, I->Mol->Obj.Color); | const float *object = ColorGetRaw(I->Gadget.Obj.G, I->Mol->Obj.Color | |||
); | ||||
if(sub_vdw) { | if(sub_vdw) { | |||
dist -= I->Mol->AtomInfo[index].vdw; | dist -= I->Mol->AtomInfo[index].vdw; | |||
if(dist < 0.0F) | if(dist < 0.0F) | |||
dist = 0.0F; | dist = 0.0F; | |||
} | } | |||
if(!ObjectGadgetRampInterpolateWithSpecial(I, dist, color, atomic, | if(!ObjectGadgetRampInterpolateWithSpecial(I, dist, color, atomic, | |||
object, pos, state, false )) { | object, pos, state, false )) { | |||
copy3f(I->Color, color); | copy3f(I->Color, color); | |||
skipping to change at line 616 | skipping to change at line 618 | |||
CGOBegin(cgo, GL_TRIANGLE_STRIP); | CGOBegin(cgo, GL_TRIANGLE_STRIP); | |||
CGOColor(cgo, 0.05F, 0.05F, 0.05F); | CGOColor(cgo, 0.05F, 0.05F, 0.05F); | |||
CGONormal(cgo, 0.f, 0.f, 1.f); // normal 2 | CGONormal(cgo, 0.f, 0.f, 1.f); // normal 2 | |||
CGOVertex(cgo, I->border, -(I->border + I->bar_height), I->border); // 9 | CGOVertex(cgo, I->border, -(I->border + I->bar_height), I->border); // 9 | |||
CGOVertex(cgo, I->border, -(I->height + I->border), I->border); // 7 | CGOVertex(cgo, I->border, -(I->height + I->border), I->border); // 7 | |||
CGOVertex(cgo, I->width + I->border, -(I->border + I->bar_height), I->border); // 10 | CGOVertex(cgo, I->width + I->border, -(I->border + I->bar_height), I->border); // 10 | |||
CGOVertex(cgo, I->width + I->border, -(I->height + I->border), I->border); // 8 | CGOVertex(cgo, I->width + I->border, -(I->height + I->border), I->border); // 8 | |||
CGOEnd(cgo); | CGOEnd(cgo); | |||
CGOColor(cgo, 1.0F, 1.0F, 1.0F); | CGOColor(cgo, 1.0F, 1.0F, 1.0F); | |||
CGONormal(cgo, 0.f, 0.f, 1.f); // text/characters need z-normal to include nor mals in vbo | ||||
if(I->Level && I->NLevel) { | if(I->Level && I->NLevel) { | |||
float exindent = (n_color > 0) ? I->bar_height : 0.f; | float exindent = (n_color > 0) ? I->bar_height : 0.f; | |||
float pos[] = { I->border + I->text_border + exindent, | float pos[] = { I->border + I->text_border + exindent, | |||
I->text_border - (I->border + I->height), | I->text_border - (I->border + I->height), | |||
I->border + I->text_raise }; | I->border + I->text_raise }; | |||
float scale[] = { I->text_scale_h, I->text_scale_v }; | float scale[] = { I->text_scale_h, I->text_scale_v }; | |||
float axes[] = { 1.0F, 0.0F, 0.0F, | float axes[] = { 1.0F, 0.0F, 0.0F, | |||
0.0F, 1.0F, 0.0F, | 0.0F, 1.0F, 0.0F, | |||
0.0F, 0.0F, 1.0F }; | 0.0F, 0.0F, 1.0F }; | |||
float color[] = { 1.f, 1.f, 1.f }; | ||||
/* left text for ramp */ | /* left text for ramp */ | |||
sprintf(buffer, "%0.3f", I->Level[0]); | sprintf(buffer, "%0.3f", I->Level[0]); | |||
VFontWriteToCGO(I->Gadget.Obj.G, font_id, cgo, buffer, pos, scale, axes); | VFontWriteToCGO(I->Gadget.Obj.G, font_id, cgo, buffer, pos, scale, axes, col or); | |||
/* right text, right justified for ramp */ | /* right text, right justified for ramp */ | |||
pos[0] = I->width + I->border - exindent; | pos[0] = I->width + I->border - exindent; | |||
pos[1] = I->text_border - (I->border + I->height); | pos[1] = I->text_border - (I->border + I->height); | |||
pos[2] = I->border + I->text_raise ; | pos[2] = I->border + I->text_raise ; | |||
sprintf(buffer, "%0.3f", I->Level[I->NLevel - 1]); | sprintf(buffer, "%0.3f", I->Level[I->NLevel - 1]); | |||
/* indent for right justification */ | /* indent for right justification */ | |||
VFontIndent(I->Gadget.Obj.G, font_id, buffer, pos, scale, axes, -1.f); | VFontIndent(I->Gadget.Obj.G, font_id, buffer, pos, scale, axes, -1.f); | |||
VFontWriteToCGO(I->Gadget.Obj.G, font_id, cgo, buffer, pos, scale, axes); | VFontWriteToCGO(I->Gadget.Obj.G, font_id, cgo, buffer, pos, scale, axes, col or); | |||
} | } | |||
/* center */ | /* center */ | |||
CGOBegin(cgo, GL_TRIANGLE_STRIP); | CGOBegin(cgo, GL_TRIANGLE_STRIP); | |||
CGONormal(cgo, 0.f, 0.f, 1.f); // normal 2 | CGONormal(cgo, 0.f, 0.f, 1.f); // normal 2 | |||
if(n_color > 0) { | if(n_color > 0) { | |||
const float *i_level = ObjectGadgetRampGetLevel(I); | const float *i_level = ObjectGadgetRampGetLevel(I); | |||
const float *src = I->Color; | const float *src = I->Color; | |||
float stack_color[6], stack_level[2] = {0.f, 1.f}; | float stack_color[6], stack_level[2] = {0.f, 1.f}; | |||
End of changes. 7 change blocks. | ||||
6 lines changed or deleted | 11 lines changed or added |