16 #ifndef INCLUDED_core_scoring_packstat_LeeRichards_hh
17 #define INCLUDED_core_scoring_packstat_LeeRichards_hh
27 #include <numeric/xyzVector.hh>
31 #include <utility/pointer/ReferenceCount.hh>
32 #include <utility/pointer/owning_ptr.hh>
34 #include <numeric/constants.hh>
39 #include <utility/vector1.hh>
62 typedef std::pair< core::id::AtomID,Real >
Arc;
97 for(
Size i = 1; i <= spheres.size(); ++i )
atom_map_.resize(i,1);
114 LR_MP_AtomData() :
area(
N_PROBES,0.0),
dx(
N_PROBES,0.0),
dy(
N_PROBES,0.0),
barea(
N_PROBES,0.0),
bdx(
N_PROBES,0.0),
bdy(
N_PROBES,0.0) {}
135 void show( std::ostream & out );
147 for(
Size i = 1; i <= pd->spheres.size(); ++i )
atom_map_.resize(i,1);
165 void show( std::ostream & out ) {
168 out <<
"ATOM_DAT " << i <<
" " <<
pd_->spheres[i].radius <<
" ";
173 out <<
" " << std::endl;
175 for(
core::Size j = 1; j <= 31; ++j ) std::cerr << j <<
" " << tot[j] << std::endl;
217 return sqrt((
x-other->
x)*(
x-other->
x) + (
y-other->
y)*(
y-other->
y)) <
r + other->
r;
226 return (
x-_x)*(
x-_x) + (
y-_y)*(
y-_y) <=
r*
r;
275 if(
x == other->
x )
return 0;
276 if( x < other->
x )
return -1;
337 if(
angle==0.0 )
angle = 2*numeric::constants::d::pi;
420 for(
CircleIter i = items.begin(); i != items.end(); ++i ){
422 if( item->
r > mxr_ ) mxr_ = item->
r;
423 if( item->
x > mxx_ ) mxx_ = item->
x;
425 if( item->
y > mxy_ ) mxy_ = item->
y;
426 if( item->
y < mny_ ) mny_ = item->
y;
433 for(
CircleIter i = items.begin(); i != items.end(); ++i ){
436 for(
CircleIter j = cube.begin(); j != cube.end(); ++j ) {
438 if( item->
x == item2->
x && item->
y == item2->
y && item->
r == item2->
r )
goto SKIPCIRC;
440 cube.push_back(item);
457 for(
int i2 = std::max(I2-
extend,0); i2 <= std::min(I2+
extend,(
int)
Xdim_); ++i2 ) {
458 for(
int j2 = std::max(J2-
extend,0); j2 <= std::min(J2+
extend,(
int)
Ydim_); ++j2 ) {
461 if( circle == exclude1 || circle == exclude2 )
continue;
520 if( end - beg < 5 ) {
551 Real & buried_area_out,