void HalfEllipsoid::draw( Geovalue &gval, GsTLGridProperty *propTi ) { grid_->select_property( propTi->name() ); double p = gen_(); rmax_ = get_max_radius( p ); rmed_ = get_med_radius( p ); rmin_ = get_min_radius( p ); //Convert angles to radian float strike = get_orientation( p ); float deg_to_rad = -3.14159265/180; if ( strike > 180 ) strike -= 360; if ( strike < -180 ) strike += 360; strike *= deg_to_rad; int node_id = gval.node_id(); std::vector<float> facies_props; std::vector<Geovalue> gbRaster = rasterize( node_id, propTi, strike, facies_props ); rasterizedVol_ = 0; if ( accept_location( facies_props ) ) { std::vector<Geovalue>::iterator gv_itr; for ( gv_itr = gbRaster.begin(); gv_itr != gbRaster.end(); ++gv_itr ) { int cur_index = propTi->get_value( gv_itr->node_id() ); gstl_assert( ( cur_index >= 0 ) && ( cur_index < erosion_rules_.size() ) ); if ( cur_index != geobody_index_ ) { if ( erosion_rules_[cur_index] == 1 ) { //decrease proportion of eroded geobodies? propTi->set_value( geobody_index_, gv_itr->node_id() ); rasterizedVol_++; } } } } }
int check_and_fix(t_ellipse obj) { int err = 0; bool moved = false; bool resized = false; int i=3; while (i>0) { int rmin = get_min_radius(i); // if styles: if (obj.ignore) return 0; // 1-line short // 1-line { multi }. Also adjusted idented between similar lines if (obj.x<0 ) { obj.x=-obj.x; ++err; moved=true; } if (obj.y<0 ) { obj.y=-obj.y; ++err; moved=true; } if (obj.rx<rmin) { obj.rx=1; ++err; resized=true; } if (obj.rx<rmin) { obj.rx=1; ++err; resized=true; } // multi-line if (moved && !resized) { // ... // ... } --i; } return err; }