1 // Aseprite Document Library 2 // Copyright (c) 2001-2018 David Capello 3 // 4 // This file is released under the terms of the MIT license. 5 // Read LICENSE.txt for more information. 6 7 #ifndef DOC_ALGO_H_INCLUDED 8 #define DOC_ALGO_H_INCLUDED 9 #pragma once 10 11 #include "gfx/fwd.h" 12 #include "doc/algorithm/hline.h" 13 14 namespace doc { 15 16 class Image; 17 18 typedef void (*AlgoPixel)(int x, int y, void *data); 19 typedef void (*AlgoLine)(int x1, int y1, int x2, int y2, void *data); 20 21 void algo_line(int x1, int y1, int x2, int y2, void *data, AlgoPixel proc); 22 void algo_ellipse(int x1, int y1, int x2, int y2, void *data, AlgoPixel proc); 23 void algo_ellipsefill(int x1, int y1, int x2, int y2, void *data, AlgoHLine proc); 24 25 void draw_rotated_ellipse(int cx, int cy, int a, int b, double angle, void* data, AlgoPixel proc); 26 void fill_rotated_ellipse(int cx, int cy, int a, int b, double angle, void* data, AlgoHLine proc); 27 28 void algo_spline(double x0, double y0, double x1, double y1, 29 double x2, double y2, double x3, double y3, 30 void *data, AlgoLine proc); 31 double algo_spline_get_y(double x0, double y0, double x1, double y1, 32 double x2, double y2, double x3, double y3, 33 double x); 34 double algo_spline_get_tan(double x0, double y0, double x1, double y1, 35 double x2, double y2, double x3, double y3, 36 double in_x); 37 38 } // namespace doc 39 40 #endif 41