37 #include "../api_display.h"
41 #include "../Render/graphic_context.h"
42 #include "../../Core/Resources/resource.h"
43 #include "../../Core/Math/cl_math.h"
44 #include "../../Core/Math/origin.h"
45 #include "../../Core/Math/circle.h"
46 #include "../../Core/IOData/virtual_directory.h"
48 class CL_CollisionOutline_Generic;
50 class CL_OutputSourceProvider;
82 std::vector<CL_CollisionPoint>
points;
172 const CL_Contour &get_object_bounding_box()
const;
176 CL_Circlef get_minimum_enclosing_disc()
const;
179 bool get_inside_test()
const;
182 std::vector<CL_Contour> &get_contours();
183 const std::vector<CL_Contour> &get_contours()
const;
192 float get_angle()
const;
195 unsigned int get_width()
const;
198 unsigned int get_height()
const;
201 void get_alignment(
CL_Origin &origin,
float &x,
float &y )
const;
204 void get_rotation_hotspot(
CL_Origin &origin,
float &x,
float &y)
const;
207 const std::vector<CL_CollidingContours> &get_collision_info()
const;
210 void get_collision_info_state(
bool &points,
bool &normals,
bool &metadata,
bool &pendepth)
const;
245 void optimize(
unsigned char check_distance=3,
float corner_angle =
CL_PI / 5.0 );
269 void draw_sub_circles(
283 void draw_smallest_enclosing_disc(
290 void set_alignment(
CL_Origin origin,
float x=0,
float y=0 );
293 void set_rotation_hotspot(
CL_Origin origin,
float x=0,
float y=0 );
296 void set_translation(
float x,
float y );
299 void set_scale(
float x,
float y );
302 void set_angle(
const CL_Angle &angle);
308 void set_inside_test(
bool value );
311 void enable_collision_info(
bool points=
true,
bool normals=
false,
bool metadata=
false,
bool pen_depth=
false);
314 void set_collision_info(
const std::vector<CL_CollidingContours> &colinfo);
317 void clean_collision_info();
320 void calculate_radius();
323 void calculate_sub_circles(
float radius_multiplier=3.5);
326 void calculate_smallest_enclosing_discs();
329 void calculate_convex_hulls();
354 static void calculate_penetration_depth(std::vector<CL_CollidingContours> &collision_info);
359 bool point_inside(
const CL_Pointf &point )
const;
365 CL_SharedPtr<CL_CollisionOutline_Generic> impl;