Ejemplo n.º 1
0
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_++;
				}
			}
		}
	}
}
Ejemplo n.º 2
0
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;
}