// ---------------------------------------------------------------------- void XYZFileElevationTask:: xy_place_scale( shawn::SimulationController& sc, const XYZFile& f, shawn::Vec& bp, shawn::Vec& s ) throw( std::runtime_error ) { double scale = sc.environment().optional_double_param("xy_scale",1.0); bp = Vec( sc.environment().optional_double_param("x1",0.0), sc.environment().optional_double_param("y1",0.0), bp.z() ); s = Vec( sc.environment().optional_double_param("x_scale",scale), sc.environment().optional_double_param("y_scale",scale), s.z() ); }
// ---------------------------------------------------------------------- void rotate_2D( double angle, shawn::Vec& coord, const shawn::Vec& origin ) throw() { double cos_angle = cos( angle ); double sin_angle = sin( angle ); coord = shawn::Vec( ((coord.x() - origin.x()) * cos_angle) - ((coord.y() - origin.y()) * sin_angle) + origin.x(), ((coord.y() - origin.y()) * cos_angle) + ((coord.x() - origin.x()) * sin_angle) + origin.y(), coord.z() ); }