cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
svlDraw.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /* ex: set filetype=cpp softtabstop=4 shiftwidth=4 tabstop=4 cindent expandtab: */
3 
4 /*
5 
6  Author(s): Balazs Vagvolgyi
7  Created on: 2010
8 
9  (C) Copyright 2006-2010 Johns Hopkins University (JHU), All Rights
10  Reserved.
11 
12 --- begin cisst license - do not edit ---
13 
14 This software is provided "as is" under an open source license, with
15 no warranty. The complete license can be found in license.txt and
16 http://www.cisst.org/cisst/license.txt.
17 
18 --- end cisst license ---
19 
20 */
21 
22 #ifndef _svlDraw_h
23 #define _svlDraw_h
24 
27 
28 // Always include last!
30 
31 
32 // Forward declarations
33 class svlDrawInternals;
34 
35 
36 namespace svlDraw
37 {
39  {
40  public:
41  Internals();
42  ~Internals();
43  svlDrawInternals* Get();
44  void Set(svlDrawInternals* ib);
45  void Release();
46  private:
47  svlDrawInternals* Ptr;
48  };
49 
50 
51  // RGB
52  void CISST_EXPORT Pixel(svlSampleImage* image, unsigned int videoch, svlPoint2D pos, svlRGB color);
53  void CISST_EXPORT Pixel(svlSampleImage* image, unsigned int videoch, int x, int y, unsigned char r, unsigned char g, unsigned char b);
54 
55  // RGB
56  void CISST_EXPORT Rectangle(svlSampleImage* image, unsigned int videoch, svlRect rect, svlRGB color, bool fill = true);
57  void CISST_EXPORT Rectangle(svlSampleImage* image, unsigned int videoch, int left, int top, int right, int bottom, unsigned char r, unsigned char g, unsigned char b, bool fill = true);
58 
59  // RGB
60  void CISST_EXPORT Line(svlSampleImage* image, unsigned int videoch, svlPoint2D from, svlPoint2D to, svlRGB color);
61  void CISST_EXPORT Line(svlSampleImage* image, unsigned int videoch, int from_x, int from_y, int to_x, int to_y, unsigned char r, unsigned char g, unsigned char b);
62 
63  // Mono8
64  void CISST_EXPORT Triangle(svlSampleImage* image, unsigned int videoch, svlTriangle & tri, unsigned char value, svlDraw::Internals& internals);
65  void CISST_EXPORT Triangle(svlSampleImage* image, unsigned int videoch, svlPoint2D corner1, svlPoint2D corner2, svlPoint2D corner3, unsigned char value, svlDraw::Internals& internals);
66  void CISST_EXPORT Triangle(svlSampleImage* image, unsigned int videoch, int x1, int y1, int x2, int y2, int x3, int y3, unsigned char value, svlDraw::Internals& internals);
67  // RGB
68  void CISST_EXPORT Triangle(svlSampleImage* image, unsigned int videoch, svlTriangle & tri, svlRGB color, svlDraw::Internals& internals);
69  void CISST_EXPORT Triangle(svlSampleImage* image, unsigned int videoch, svlPoint2D corner1, svlPoint2D corner2, svlPoint2D corner3, svlRGB color, svlDraw::Internals& internals);
70  void CISST_EXPORT Triangle(svlSampleImage* image, unsigned int videoch, int x1, int y1, int x2, int y2, int x3, int y3, svlRGB color, svlDraw::Internals& internals);
71 
72  // Mono8
73  void CISST_EXPORT Quad(svlSampleImage* image, unsigned int videoch, svlQuad & quad, unsigned char value, svlDraw::Internals& internals);
74  void CISST_EXPORT Quad(svlSampleImage* image, unsigned int videoch, svlPoint2D corner1, svlPoint2D corner2, svlPoint2D corner3, svlPoint2D corner4, unsigned char value, svlDraw::Internals& internals);
75  void CISST_EXPORT Quad(svlSampleImage* image, unsigned int videoch, int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, unsigned char value, svlDraw::Internals& internals);
76  // RGB
77  void CISST_EXPORT Quad(svlSampleImage* image, unsigned int videoch, svlQuad & quad, svlRGB color, svlDraw::Internals& internals);
78  void CISST_EXPORT Quad(svlSampleImage* image, unsigned int videoch, svlPoint2D corner1, svlPoint2D corner2, svlPoint2D corner3, svlPoint2D corner4, svlRGB color, svlDraw::Internals& internals);
79  void CISST_EXPORT Quad(svlSampleImage* image, unsigned int videoch, int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, svlRGB color, svlDraw::Internals& internals);
80 
81  // RGB
82  void CISST_EXPORT Poly(svlSampleImage* image, unsigned int videoch, const vctDynamicVectorRef<svlPoint2D> points, svlRGB color, unsigned int thickness, unsigned int start);
83 
84  // RGB
85  void CISST_EXPORT Ellipse(svlSampleImage* image, unsigned int videoch, int cx, int cy, int rx, int ry, unsigned char r, unsigned char g, unsigned char b, double angle = 0.0, double from_angle = 0.0, double to_angle = 2.0*cmnPI, int thickness = 1);
86  void CISST_EXPORT Ellipse(svlSampleImage* image, unsigned int videoch, int cx, int cy, int rx, int ry, svlRGB color, double angle = 0.0, double from_angle = 0.0, double to_angle = 2.0*cmnPI, int thickness = 1);
87  void CISST_EXPORT Ellipse(svlSampleImage* image, unsigned int videoch, const svlEllipse & ellipse, svlRGB color, double from_angle = 0.0, double to_angle = 2.0*cmnPI, int thickness = 1);
88  void CISST_EXPORT Ellipse(svlSampleImage* image, unsigned int videoch, const svlEllipse & ellipse, unsigned char r, unsigned char g, unsigned char b, double from_angle = 0.0, double to_angle = 2.0*cmnPI, int thickness = 1);
89 
90  // RGB
91  void CISST_EXPORT Crosshair(svlSampleImage* image, unsigned int videoch, svlPoint2D pos, svlRGB color, unsigned int radius = 5, unsigned int thickness = 2);
92  void CISST_EXPORT Crosshair(svlSampleImage* image, unsigned int videoch, int x, int y, unsigned char r, unsigned char g, unsigned char b, unsigned int radius = 5, unsigned int thickness = 2);
93 
94  // RGB
95  void CISST_EXPORT Text(svlSampleImage* image, unsigned int videoch, svlPoint2D pos, const std::string & text, double fontsize, svlRGB color);
96  void CISST_EXPORT Text(svlSampleImage* image, unsigned int videoch, int x, int y, const std::string & text, double fontsize, unsigned char r, unsigned char g, unsigned char b);
97 
98  // Mono8 and RGB
99  void CISST_EXPORT WarpTriangle(svlSampleImage* in_img, unsigned int in_vch, svlTriangle & in_tri,
100  svlSampleImage* out_img, unsigned int out_vch, svlTriangle & out_tri,
101  svlDraw::Internals& internals,
102  unsigned int alpha = 256);
103  void CISST_EXPORT WarpQuad(svlSampleImage* in_img, unsigned int in_vch, svlQuad & in_quad,
104  svlSampleImage* out_img, unsigned int out_vch, svlQuad & out_quad,
105  svlDraw::Internals& internals,
106  unsigned int alpha = 256);
107 
109  {
110  public:
111  WarpMT(unsigned int thread_count);
112  void SetThreadCount(unsigned int thread_count);
113 
114  void WarpTriangle(unsigned int thread_id,
115  svlSampleImage* in_img, unsigned int in_vch, svlTriangle & in_tri,
116  svlSampleImage* out_img, unsigned int out_vch, svlTriangle & out_tri,
117  unsigned int alpha = 256);
118  void WarpQuad(unsigned int thread_id,
119  svlSampleImage* in_img, unsigned int in_vch, svlQuad & in_quad,
120  svlSampleImage* out_img, unsigned int out_vch, svlQuad & out_quad,
121  unsigned int alpha = 256);
122 
123  private:
124  WarpMT(const WarpMT & other);
126  };
127 };
128 
129 #endif // _svlDraw_h
130 
#define CISST_EXPORT
Definition: cmnExportMacros.h:50
Definition: svlTypes.h:255
void CISST_EXPORT Pixel(svlSampleImage *image, unsigned int videoch, svlPoint2D pos, svlRGB color)
Definition: svlDraw.h:38
void CISST_EXPORT Text(svlSampleImage *image, unsigned int videoch, svlPoint2D pos, const std::string &text, double fontsize, svlRGB color)
void CISST_EXPORT WarpTriangle(svlSampleImage *in_img, unsigned int in_vch, svlTriangle &in_tri, svlSampleImage *out_img, unsigned int out_vch, svlTriangle &out_tri, svlDraw::Internals &internals, unsigned int alpha=256)
Definition: svlTypes.h:298
Dynamic vector referencing existing memory.
Definition: vctDynamicVectorRef.h:77
Definition: svlTypes.h:235
void CISST_EXPORT Quad(svlSampleImage *image, unsigned int videoch, svlQuad &quad, unsigned char value, svlDraw::Internals &internals)
Declaration of various constants.
Definition: svlTypes.h:279
void CISST_EXPORT Rectangle(svlSampleImage *image, unsigned int videoch, svlRect rect, svlRGB color, bool fill=true)
void CISST_EXPORT Line(svlSampleImage *image, unsigned int videoch, svlPoint2D from, svlPoint2D to, svlRGB color)
void CISST_EXPORT Crosshair(svlSampleImage *image, unsigned int videoch, svlPoint2D pos, svlRGB color, unsigned int radius=5, unsigned int thickness=2)
Definition: svlSampleImage.h:35
Macros to export the symbols of cisstStereoVision (in a Dll).
Definition: svlTypes.h:215
void CISST_EXPORT Triangle(svlSampleImage *image, unsigned int videoch, svlTriangle &tri, unsigned char value, svlDraw::Internals &internals)
Definition: svlDraw.h:108
void CISST_EXPORT Poly(svlSampleImage *image, unsigned int videoch, const vctDynamicVectorRef< svlPoint2D > points, svlRGB color, unsigned int thickness, unsigned int start)
Definition: svlTypes.h:118
void CISST_EXPORT Ellipse(svlSampleImage *image, unsigned int videoch, int cx, int cy, int rx, int ry, unsigned char r, unsigned char g, unsigned char b, double angle=0.0, double from_angle=0.0, double to_angle=2.0 *cmnPI, int thickness=1)
const double cmnPI
Definition: cmnConstants.h:38
void CISST_EXPORT WarpQuad(svlSampleImage *in_img, unsigned int in_vch, svlQuad &in_quad, svlSampleImage *out_img, unsigned int out_vch, svlQuad &out_quad, svlDraw::Internals &internals, unsigned int alpha=256)