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
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044 #ifndef _PRIMITIVES_DRAWER_H_
00045 #define _PRIMITIVES_DRAWER_H_
00046
00047
00048
00049
00050
00051
00052 #include "Math/Math2d.h"
00053
00054
00055
00056
00057
00058
00059 class CByteImage;
00060 struct Circle2d;
00061 struct Ellipse2d;
00062 struct StraightLine2d;
00063 struct PointPair2d;
00064 struct MyRegion;
00065
00066
00067
00068
00069
00070
00071
00072
00077 namespace PrimitivesDrawer
00078 {
00092 void DrawPoint(CByteImage *pImage, const Vec2d &point, int r = 255, int g = 255, int b = 255);
00093
00108 void DrawPoint(CByteImage *pImage, int x, int y, int r = 255, int g = 255, int b = 255);
00109
00124 void DrawPointBlended(CByteImage *pImage, const Vec2d &point, int r = 255, int g = 255, int b = 255, float blend = 1.0f);
00125
00141 void DrawPointBlended(CByteImage *pImage, int x, int y, int r = 255, int g = 255, int b = 255, float blend = 1.0f);
00142
00156 void DrawPoints(CByteImage *pImage, const CVec2dArray &points, int r = 255, int g = 255, int b = 255);
00157
00172 void DrawRegion(CByteImage *pImage, const MyRegion ®ion, int r = 255, int g = 255, int b = 255, int thickness = 1);
00173
00191 void DrawCircle(CByteImage *pImage, float mx, float my, float radius, int r = 255, int g = 255, int b = 255, int thickness = 1, bool bAntiAlias = false);
00192
00211 void DrawCircle(CByteImage *pImage, const Vec2d ¢er, float radius, int r = 255, int g = 255, int b = 255, int thickness = 1, bool bAntiAlias = false);
00212
00230 void DrawCircle(CByteImage *pImage, const Circle2d &circle, int r = 255, int g = 255, int b = 255, int thickness = 1, bool bAntiAlias = false);
00231
00246 void DrawEllipse(CByteImage *pImage, const Ellipse2d &ellipse, int r = 255, int g = 255, int b = 255, int thickness = 1);
00247
00264 void DrawLine(CByteImage *pImage, const PointPair2d &line, int r = 255, int g = 255, int b = 255, int thickness = 1);
00265
00281 void DrawLine(CByteImage *pImage, const Vec2d &p1, const Vec2d &p2, int r = 255, int g = 255, int b = 255, int thickness = 1);
00282
00304 void DrawLinePolar(CByteImage *pImage, float theta, float r, int color_r, int color_g, int color_b, int thickness = 1);
00305
00326 void DrawLineNormal(CByteImage *pImage, float nx, float ny, float c, int r, int g, int b, int thickness = 1);
00327
00344 void DrawLine(CByteImage *pImage, const StraightLine2d &line, int r, int g, int b, int thickness = 1);
00345
00362 void DrawCross(CByteImage *pImage, const Vec2d &point, int length, int r, int g, int b);
00363
00381 void DrawPolygon(CByteImage *pImage, const Vec2d *pPoints, int nPoints, int r, int g, int b, int thickness = 1);
00382
00401 void DrawPolygon(CByteImage *pImage, const CVec2dArray &points, int r, int g, int b, int thickness = 1);
00402
00417 void DrawRectangle(CByteImage *pImage, const Rectangle2d &rectangle, int r, int g, int b, int thickness = 1);
00418 }
00419
00420
00421
00422 #endif