#![allow(missing_docs)]
use graphics::{Drawable, Transformable, Texture, IntRect, FloatRect, Color};
use system::Vector2f;
pub trait ShapeImpl {
fn get_point_count(&self) -> u32;
fn get_point(&self, point: u32) -> Vector2f;
}
pub trait Shape<'s>: Drawable + Transformable {
fn set_texture(&mut self,
texture: &'s Texture,
reset_rect: bool);
fn disable_texture(&mut self);
fn set_texture_rect(&mut self, rect: &IntRect);
fn set_fill_color(&mut self, color: &Color);
fn set_outline_color(&mut self, color: &Color);
fn set_outline_thickness(&mut self, thickness: f32);
fn get_texture(&self) -> Option<&'s Texture>;
fn get_texture_rect(&self) -> IntRect;
fn get_fill_color(&self) -> Color;
fn get_outline_color(&self) -> Color;
fn get_outline_thickness(&self) -> f32;
fn get_point_count(&self) -> u32;
fn get_point(&self, index: u32) -> Vector2f;
fn get_local_bounds(&self) -> FloatRect;
fn get_global_bounds(&self) -> FloatRect;
}