Beispiel #1
0
void draw_test(SDL_Surface* s, Point mid) {
  return;
  Point start = {100.0,100.0};
  Point end = {200.0,200.0};
  Point towards = add_Point(end,mult_Point(0.3,subs_Point(end,start)));

  filledCircleColor(s,(int)start.x, (int) start.y, 5,intColor(c_fuchsia));
  filledCircleColor(s,(int) end.x, (int) end.y, 5,intColor(c_fuchsia));
  filledCircleColor(s,(int)mid.x, (int) mid.y, 5,intColor(c_fuchsia));
  filledCircleColor(s,(int)towards.x, (int) towards.y, 5,intColor(c_fuchsia));

  draw_B_spline(s,
		start, subs_Point(mult_Point(2.0,start),mid),
		end, towards, c_fuchsia);
}
Beispiel #2
0
SDL_Surface*
limit_Selection(SDL_Surface* origin, Selection* select) {
  if(origin && select && select->active) {
    SDL_Rect left = {.x = 0, .y = 0,
                     .w = select->area.x, .h = origin->h};
    SDL_Rect right = {.x = select->area.x + select->area.w, .y=0,
                      .w = origin->w - (select->area.x + select->area.w), .h=origin->h};
    SDL_Rect upper = {.x = select->area.x, .y= 0,
                      .w = select->area.w, .h= select->area.y};
    SDL_Rect lower = {.x = select->area.x, .y= select->area.y + select->area.h,
                      .w = select->area.w, .h= origin->h - (select->area.y + select->area.h)};
    SDL_FillRect(origin, &left, intColor_fmt(c_trans,origin->format));
    SDL_FillRect(origin, &right, intColor_fmt(c_trans,origin->format));
    SDL_FillRect(origin, &upper, intColor_fmt(c_trans,origin->format));
    SDL_FillRect(origin, &lower, intColor_fmt(c_trans,origin->format));
  }
  return origin;
}

void
draw_selection(SDL_Surface* where, Selection* select, Color c){
  rectangleColor(where,select->area.x,select->area.y,
                 select->area.x + select->area.w,
                 select->area.y + select->area.h,intColor(c));
}
Beispiel #3
0
void draw_B_spline(SDL_Surface* s, 
		      Point start, Point startfrom,
		      Point end  , Point endto, Color c) {
  Point p1 = subs_Point(mult_Point(2.0,start),startfrom);
  Point p2;
  if(endto.x == startfrom.x && endto.y == startfrom.y)
    p2 = p1;
  else
    p2 = subs_Point(mult_Point(2.0,end),endto);
  
  float t = 0;
  Point prev = start;
  for(; t<=1.01; t+=0.01) {
    Point cur = add_Point(add_Point(
				    mult_Point(splinefunc0(t),start),mult_Point(splinefunc1(t),p1)),
			  add_Point(
				    mult_Point(splinefunc2(t),p2),mult_Point(splinefunc3(t),end)));
    lineColor(s,prev.x,prev.y,cur.x,cur.y,intColor(c));
    prev = cur;
  }
}
osgOceanScene::osgOceanScene(double offsetp[3], double offsetr[3],
    const osg::Vec2f& windDirection,
    float windSpeed,
    float depth,
    float reflectionDamping,
    float scale,
    bool  isChoppy,
    float choppyFactor,
    float crestFoamHeight,
    bool  useVBO,
    const std::string& terrain_shader_basename)
{
    _sceneType = CLEAR;
    _useVBO = useVBO;

    _cubemapDirs.push_back( "sky_clear" );
    _cubemapDirs.push_back( "sky_dusk" );
    _cubemapDirs.push_back( "sky_fair_cloudy" );

    _fogColors.push_back( intColor( 199,226,255 ) );
    _fogColors.push_back( intColor( 244,228,179 ) );
    _fogColors.push_back( intColor( 172,224,251 ) );

    _waterFogColors.push_back( intColor(27,57,109) );
    _waterFogColors.push_back( intColor(44,69,106 ) );
    _waterFogColors.push_back( intColor(84,135,172 ) );

    _underwaterAttenuations.push_back( osg::Vec3f(0.015f, 0.0075f, 0.005f) );
    _underwaterAttenuations.push_back( osg::Vec3f(0.015f, 0.0075f, 0.005f) );
    _underwaterAttenuations.push_back( osg::Vec3f(0.008f, 0.003f, 0.002f) );

    _underwaterDiffuse.push_back( intColor(27,57,109) );
    _underwaterDiffuse.push_back( intColor(44,69,106) );
    _underwaterDiffuse.push_back( intColor(84,135,172) );

    _lightColors.push_back( intColor( 105,138,174 ) );
    _lightColors.push_back( intColor( 105,138,174 ) );
    _lightColors.push_back( intColor( 105,138,174 ) );

    _sunPositions.push_back( osg::Vec3f(326.573, 1212.99 ,1275.19) );
    _sunPositions.push_back( osg::Vec3f(520.f, 1900.f, 550.f ) );
    _sunPositions.push_back( osg::Vec3f(-1056.89f, -771.886f, 1221.18f ) );

    _sunDiffuse.push_back( intColor( 191, 191, 191 ) );
    _sunDiffuse.push_back( intColor( 251, 251, 161 ) );
    _sunDiffuse.push_back( intColor( 191, 191, 191 ) );

    build(offsetp, offsetr, windDirection, windSpeed, depth, reflectionDamping, scale, isChoppy, choppyFactor, crestFoamHeight, _useVBO, terrain_shader_basename);
}