template inline P polar_x( const P center, const P radius, T angle ) { return (((static_cast(radius) * Cos8(angle)) >> 8) + center); } template inline P polar_y( const P center, const P radius, T angle ) { return (((static_cast(radius) * Sin8(angle)) >> 8) + center); } static inline pixel_t polar_x_fast( pixel_t center, pixel_t radius, unsigned char angle ) { return (((static_cast(radius) * CosTable8[angle]) >> 8) + center); } static inline pixel_t polar_y_fast( pixel_t center, pixel_t radius, unsigned char angle ) { return (((static_cast(radius) * SinTable8[angle]) >> 8) + center); } #define polar_by_offset(center, radius, table, offset) ( \ (static_cast(radius) * *reinterpret_cast( \ reinterpret_cast(table) + offset \ ) >> 8) + center \ ) static inline pixel_t polar_x_fast_unsafe( pixel_t center, pixel_t &radius, uint16_t table_offset ) { return polar_by_offset(center, radius, CosTable8, table_offset); } static inline pixel_t polar_y_fast_unsafe( pixel_t center, pixel_t &radius, uint16_t table_offset ) { return polar_by_offset(center, radius, SinTable8, table_offset); }