X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fmodules%2Fmod_geometry%2Fcheckerboard.cpp;h=30bbf8e779ccbcb3c2fba63d08ddd328d0280c9f;hb=9459638ad6797b8139f1e9f0715c96076dbf0890;hp=c90ae9c3be853ff203dda006c574ac6ea303acbc;hpb=e3f4437fedbdd74aebbf1675723978853dac8a8b;p=synfig.git diff --git a/synfig-core/trunk/src/modules/mod_geometry/checkerboard.cpp b/synfig-core/trunk/src/modules/mod_geometry/checkerboard.cpp index c90ae9c..30bbf8e 100644 --- a/synfig-core/trunk/src/modules/mod_geometry/checkerboard.cpp +++ b/synfig-core/trunk/src/modules/mod_geometry/checkerboard.cpp @@ -6,7 +6,7 @@ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley -** Copyright (c) 2007 Chris Moore +** Copyright (c) 2007, 2008 Chris Moore ** ** This package is free software; you can redistribute it and/or ** modify it under the terms of the GNU General Public License as @@ -66,7 +66,7 @@ SYNFIG_LAYER_SET_CVS_ID(CheckerBoard,"$Id$"); CheckerBoard::CheckerBoard(): Layer_Composite (1.0,Color::BLEND_STRAIGHT), color (Color::black()), - pos (Point(0.125,0.125)), + origin (Point(0.125,0.125)), size (Point(0.25,0.25)) { @@ -76,10 +76,10 @@ CheckerBoard::CheckerBoard(): inline bool CheckerBoard::point_test(const synfig::Point& getpos)const { - int val=((int)((getpos[0]-pos[0])/size[0])+(int)((getpos[1]-pos[1])/size[1])); - if(getpos[0]-pos[0] < 0.0) + int val=((int)((getpos[0]-origin[0])/size[0])+(int)((getpos[1]-origin[1])/size[1])); + if(getpos[0]-origin[0] < 0.0) val++; - if(getpos[1]-pos[1] < 0.0) + if(getpos[1]-origin[1] < 0.0) val++; return val&1; } @@ -87,12 +87,16 @@ CheckerBoard::point_test(const synfig::Point& getpos)const bool CheckerBoard::set_param(const String ¶m, const ValueBase &value) { - IMPORT(color); - IMPORT(pos); - IMPORT(pos[0]); - IMPORT(pos[1]); + IMPORT_PLUS(color, { if (color.get_a() == 0) { if (converted_blend_) { + set_blend_method(Color::BLEND_ALPHA_OVER); + color.set_a(1); } else transparent_color_ = true; } }); + IMPORT(origin); IMPORT(size); + IMPORT_AS(origin,"pos"); + IMPORT_AS(origin[0],"pos[0]"); + IMPORT_AS(origin[1],"pos[1]"); + return Layer_Composite::set_param(param,value); } @@ -100,9 +104,7 @@ ValueBase CheckerBoard::get_param(const String ¶m)const { EXPORT(color); - EXPORT(pos); - EXPORT(pos[0]); - EXPORT(pos[1]); + EXPORT(origin); EXPORT(size); EXPORT_NAME(); EXPORT_VERSION(); @@ -119,13 +121,13 @@ CheckerBoard::get_param_vocab()const .set_local_name(_("Color")) .set_description(_("Color of checkers")) ); - ret.push_back(ParamDesc("pos") - .set_local_name(_("Offset")) + ret.push_back(ParamDesc("origin") + .set_local_name(_("Origin")) ); ret.push_back(ParamDesc("size") .set_local_name(_("Size")) .set_description(_("Size of checkers")) - .set_origin("pos") + .set_origin("origin") ); return ret; @@ -158,7 +160,7 @@ CheckerBoard::get_color(Context context, const Point &getpos)const return Color::blend(color,context.get_color(getpos),get_amount(),get_blend_method()); } else - return context.get_color(getpos); + return Color::blend(Color::alpha(),context.get_color(getpos),get_amount(),get_blend_method()); } bool