def something(): #MyPaint.init() # Create a brush, load from disk brush = MyPaint.Brush() brush_def = open("brushes/classic/brush.myb").read() brush.from_string(brush_def) # List all settings # TODO: Is there a better way to list all enums with GI? settings = [getattr(MyPaint.BrushSetting, attr) for attr in dir(MyPaint.BrushSetting) if attr.startswith("SETTING_")] print "Available settings: %s\n" % str(settings) # Get info about a given setting setting = MyPaint.BrushSetting.SETTING_RADIUS_LOGARITHMIC info = MyPaint.brush_setting_info(setting) # TODO: rename "def_" to "default" print "Setting: %s\n\t Max: %f \n\t Default: %f \n\t Min: %f" % (info.cname, info.max, info.def_, info.min) print "\t Name: %s\n\t Tooltip: '%s'\n" % (info.get_name(), info.get_tooltip()) # Use the getters so that i18n works # TODO: should be MyPaint.BrushSetting.from_cname # Same with MyPaint.Brush.input_from_cname assert (MyPaint.Brush.setting_from_cname(info.cname) == setting) # Get/Set current base value for the given setting print "Base value is: %f" % brush.get_base_value(setting) brush.set_base_value(setting, 2.0) assert brush.get_base_value(setting) == 2.0 # Get dynamics for given setting inputs = [getattr(MyPaint.BrushInput, a) for a in dir(MyPaint.BrushInput) if a.startswith('INPUT_')] if not brush.is_constant(setting): for input in inputs: mapping_points = brush.get_mapping_n(setting, input) if mapping_points > 1: # If 0, no dynamics for this input points = [brush.get_mapping_point(setting, input, i) for i in range(mapping_points)] print "Has dynamics for input %s:\n%s" % (input, str(points)) # Create a surface to paint on Gegl.init(0, "") surface = MyPaintGegl.TiledSurface() s = surface.interface() print surface.get_buffer() for x, y in [(0.0, 0.0), (100.0, 100.0), (100.0, 200.0)]: dtime = 0.1 # XXX: Important to set correctly for speed calculations s.begin_atomic() brush.stroke_to(s, x, y, pressure=1.0, xtilt=0.0, ytilt=0.0, dtime=dtime) rect = s.end_atomic() print rect.x, rect.y, rect.width, rect.height Gegl.exit()
self.assertFalse(crop_rect.equal(trans_node.get_bounding_box())) trans_rect = crop_rect.dup() trans_rect.x += 10 self.assertTrue(trans_rect.equal(trans_node.get_bounding_box())) class TestGeglXml(unittest.TestCase): def test_load_xml(self): graph = Gegl.Node.new_from_xml(invert_crop_xml, "") children = graph.get_children() self.assertEqual(len(children), 2) self.assertEqual(children[0].get_operation(), "gegl:crop") self.assertEqual(children[1].get_operation(), "gegl:invert-linear") def test_load_save_roundtrip(self): graph = Gegl.Node.new_from_xml(invert_crop_xml, "") output = graph.to_xml("") self.assertEqual(output, invert_crop_xml) if __name__ == '__main__': Gegl.init(None) unittest.main() Gegl.exit()
self.assertFalse(crop_rect.equal(trans_node.get_bounding_box())) trans_rect = crop_rect.dup() trans_rect.x += 10 self.assertTrue(trans_rect.equal(trans_node.get_bounding_box())) class TestGeglXml(unittest.TestCase): def test_load_xml(self): graph = Gegl.Node.new_from_xml(invert_crop_xml, "") children = graph.get_children() self.assertEqual(len(children), 2) self.assertEqual(children[0].get_operation(), "gegl:crop") self.assertEqual(children[1].get_operation(), "gegl:invert-linear") def test_load_save_roundtrip(self): graph = Gegl.Node.new_from_xml(invert_crop_xml, "") output = graph.to_xml("") self.assertEqual(output, invert_crop_xml) if __name__ == '__main__': Gegl.init(None); unittest.main() Gegl.exit()
def test_init_exit(self): Gegl.init(0, "") Gegl.exit()
def test_300_exit(self): Gegl.exit()
def something(): #MyPaint.init() # Create a brush, load from disk brush = MyPaint.Brush() brush_def = open("brushes/classic/brush.myb").read() brush.from_string(brush_def) # List all settings # TODO: Is there a better way to list all enums with GI? settings = [ getattr(MyPaint.BrushSetting, attr) for attr in dir(MyPaint.BrushSetting) if attr.startswith("SETTING_") ] print "Available settings: %s\n" % str(settings) # Get info about a given setting setting = MyPaint.BrushSetting.SETTING_RADIUS_LOGARITHMIC info = MyPaint.brush_setting_info(setting) # TODO: rename "def_" to "default" print "Setting: %s\n\t Max: %f \n\t Default: %f \n\t Min: %f" % ( info.cname, info.max, info.def_, info.min) print "\t Name: %s\n\t Tooltip: '%s'\n" % ( info.get_name(), info.get_tooltip() ) # Use the getters so that i18n works # TODO: should be MyPaint.BrushSetting.from_cname # Same with MyPaint.Brush.input_from_cname assert (MyPaint.Brush.setting_from_cname(info.cname) == setting) # Get/Set current base value for the given setting print "Base value is: %f" % brush.get_base_value(setting) brush.set_base_value(setting, 2.0) assert brush.get_base_value(setting) == 2.0 # Get dynamics for given setting inputs = [ getattr(MyPaint.BrushInput, a) for a in dir(MyPaint.BrushInput) if a.startswith('INPUT_') ] if not brush.is_constant(setting): for input in inputs: mapping_points = brush.get_mapping_n(setting, input) if mapping_points > 1: # If 0, no dynamics for this input points = [ brush.get_mapping_point(setting, input, i) for i in range(mapping_points) ] print "Has dynamics for input %s:\n%s" % (input, str(points)) # Create a surface to paint on Gegl.init(0, "") surface = MyPaintGegl.TiledSurface() s = surface.interface() print surface.get_buffer() for x, y in [(0.0, 0.0), (100.0, 100.0), (100.0, 200.0)]: dtime = 0.1 # XXX: Important to set correctly for speed calculations s.begin_atomic() brush.stroke_to(s, x, y, pressure=1.0, xtilt=0.0, ytilt=0.0, dtime=dtime) rect = s.end_atomic() print rect.x, rect.y, rect.width, rect.height Gegl.exit()