/[xmakemol]/xmakemol/draw.c
ViewVC logotype

Diff of /xmakemol/draw.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.57 by MPHodges, Wed Nov 27 22:46:50 2002 UTC revision 1.58 by MPHodges, Tue Apr 1 22:00:41 2003 UTC
# Line 181  draw_bond(int si, int sj) Line 181  draw_bond(int si, int sj)
181  {  {
182    
183    double get_atom_radius(int);    double get_atom_radius(int);
184    void update_canvas_bond_points(int, int, Boolean);    void update_canvas_bond_points(int, int, Boolean, double);
185        
186        
187    XPoint bond_points[5];    XPoint bond_points[5];
188        
189    update_canvas_bond_points(si, sj, 0);    update_canvas_bond_points(si, sj, 0, 0.0);
190            
191    gcv.line_width=0;    gcv.line_width=0;
192    gcv.foreground=atoms[si].pixel;    gcv.foreground=atoms[si].pixel;
# Line 775  get_atom_radius(int i) Line 775  get_atom_radius(int i)
775     is covered using the Boolean variable ps_corr */     is covered using the Boolean variable ps_corr */
776    
777  void  void
778  update_canvas_bond_points(int si, int sj, Boolean ps_corr)  update_canvas_bond_points(int si, int sj, Boolean ps_corr, double offset)
779  {  {
780    
781    void convert_to_canvas_coords(double *, double *, Boolean);    void convert_to_canvas_coords(double *, double *, Boolean);
# Line 835  update_canvas_bond_points(int si, int sj Line 835  update_canvas_bond_points(int si, int sj
835        
836    for(i=0; i < 3; i++)    for(i=0; i < 3; i++)
837      {      {
838        l[i] = a[i] + (atoms[si].cov_rad * local_at_scale * r[i]);        if (local_at_scale != 0)
839        m[i] = a[i] + a_prop * mod_r * r[i];          {
840              l[i] = a[i] +
841                ((atoms[si].cov_rad + (2.0 * offset)) * local_at_scale * r[i]);
842            }
843          else
844            {
845              l[i] = a[i] + (offset * r[i]);
846            }
847    
848          m[i] = a[i] + a_prop * (mod_r - offset) * r[i];
849        n[i] = b[i] - (atoms[sj].cov_rad * local_at_scale * r[i]);        n[i] = b[i] - (atoms[sj].cov_rad * local_at_scale * r[i]);
850      }      }
851    
# Line 848  update_canvas_bond_points(int si, int sj Line 857  update_canvas_bond_points(int si, int sj
857        
858    for(i = 0; i < 3; i++)    for(i = 0; i < 3; i++)
859      {      {
860                if ((i == 0) || (i == 1))
861        half_bond_width = (sb_wid * p[i] / 2.0);          {
862              half_bond_width = ((sb_wid - (2.0 * offset)) * p[i] / 2.0);
863            }
864          else
865            {
866              half_bond_width = (sb_wid * p[i] / 2.0);
867            }
868    
869        cartesian_bond_points[0][i] = l[i] - half_bond_width;        cartesian_bond_points[0][i] = l[i] - half_bond_width;
870        cartesian_bond_points[1][i] = m[i] - half_bond_width;        cartesian_bond_points[1][i] = m[i] - half_bond_width;

Legend:
Removed from v.1.57  
changed lines
  Added in v.1.58

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26