Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00031
00032 #pragma once
00033
00034 #include "../api_display.h"
00035 #include <vector>
00036
00037 class CL_Pointf;
00038 class CL_OutlineCircle;
00039
00044 class CL_OutlineMath
00045 {
00048
00049 public:
00053 static CL_OutlineCircle minimum_enclosing_disc(
00054 const std::vector<CL_Pointf> &points);
00055 static void minimum_enclosing_disc(
00056 CL_OutlineCircle &smalldisc,
00057 const std::vector<CL_Pointf> &points);
00058
00059 private:
00060 static void minimum_disc_with_1point(
00061 CL_OutlineCircle &smalldisc,
00062 const std::vector<CL_Pointf> &points,
00063 unsigned int i);
00064 static void minimum_disc_with_2points(
00065 CL_OutlineCircle &smalldisc,
00066 const std::vector<CL_Pointf> &points ,
00067 unsigned int i,
00068 unsigned int j);
00069 static void minimum_disc_with_3points(
00070 CL_OutlineCircle &smalldisc,
00071 const std::vector<CL_Pointf> &points ,
00072 unsigned int i,
00073 unsigned int j,
00074 unsigned int k);
00075
00076 public:
00077 static void minimum_enclosing_sub_circle(
00078 CL_OutlineCircle &smalldisc,
00079 const std::vector<CL_Pointf> &points,
00080 float maxradius);
00081 private:
00082 static void minimum_enclosing_sub_circle_with_1point(
00083 CL_OutlineCircle &smalldisc,
00084 const std::vector<CL_Pointf> &points);
00085 static void minimum_enclosing_sub_circle_with_2points(
00086 CL_OutlineCircle &smalldisc,
00087 const std::vector<CL_Pointf> &points,
00088 unsigned int j);
00090 };
00091