rays 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.doc/ext/rays/bitmap.cpp +76 -53
- data/.doc/ext/rays/font.cpp +31 -27
- data/.doc/ext/rays/image.cpp +44 -37
- data/.doc/ext/rays/native.cpp +6 -0
- data/.doc/ext/rays/painter.cpp +276 -160
- data/.doc/ext/rays/rays.cpp +8 -9
- data/.doc/ext/rays/texture.cpp +50 -28
- data/.gitignore +14 -0
- data/Rakefile +5 -30
- data/VERSION +1 -1
- data/ext/rays/bitmap.cpp +77 -53
- data/ext/rays/bounds.cpp +426 -0
- data/ext/rays/color.cpp +199 -0
- data/ext/rays/defs.h +1 -18
- data/ext/rays/extconf.rb +10 -8
- data/ext/rays/font.cpp +31 -27
- data/ext/rays/image.cpp +44 -37
- data/ext/rays/matrix.cpp +154 -0
- data/ext/rays/native.cpp +6 -0
- data/ext/rays/painter.cpp +288 -163
- data/ext/rays/point.cpp +175 -0
- data/ext/rays/rays.cpp +8 -9
- data/ext/rays/texture.cpp +52 -28
- data/include/rays.h +1 -2
- data/include/rays/bitmap.h +5 -3
- data/include/rays/bounds.h +94 -0
- data/include/rays/color.h +53 -0
- data/include/rays/colorspace.h +2 -2
- data/include/rays/exception.h +1 -1
- data/include/rays/font.h +7 -3
- data/include/rays/image.h +6 -2
- data/include/rays/matrix.h +63 -0
- data/include/rays/opengl.h +1 -1
- data/include/rays/painter.h +138 -39
- data/include/rays/point.h +39 -0
- data/include/rays/ruby.h +3 -0
- data/include/rays/ruby/bitmap.h +5 -3
- data/include/rays/ruby/bounds.h +41 -0
- data/include/rays/ruby/color.h +41 -0
- data/include/rays/ruby/font.h +5 -3
- data/include/rays/ruby/image.h +5 -3
- data/include/rays/ruby/matrix.h +41 -0
- data/include/rays/ruby/painter.h +5 -3
- data/include/rays/ruby/point.h +41 -0
- data/include/rays/ruby/texture.h +5 -3
- data/include/rays/texture.h +6 -2
- data/lib/rays.rb +3 -0
- data/lib/rays/autoinit.rb +1 -1
- data/lib/rays/bitmap.rb +15 -1
- data/lib/rays/bounds.rb +138 -0
- data/lib/rays/color.rb +52 -0
- data/lib/rays/ext.rb +4 -0
- data/lib/rays/image.rb +1 -1
- data/lib/rays/module.rb +9 -2
- data/lib/rays/painter.rb +40 -41
- data/lib/rays/point.rb +82 -0
- data/lib/rays/texture.rb +1 -1
- data/rays.gemspec +16 -37
- data/src/bounds.cpp +234 -0
- data/src/cocoa/bitmap.mm +4 -4
- data/src/cocoa/font.mm +35 -30
- data/src/cocoa/rays.mm +2 -0
- data/src/color.cpp +77 -0
- data/src/colorspace.cpp +3 -3
- data/src/exception.cpp +3 -18
- data/src/image.cpp +9 -2
- data/src/matrix.cpp +103 -0
- data/src/painter.cpp +475 -224
- data/src/point.cpp +52 -0
- data/src/texture.cpp +14 -2
- data/src/win32/bitmap.cpp +2 -2
- data/src/win32/gdi.cpp +22 -13
- data/src/win32/gdi.h +7 -7
- data/test/helpers.rb +1 -5
- data/test/test_bitmap.rb +9 -0
- data/test/test_bounds.rb +246 -0
- data/test/test_color.rb +88 -0
- data/test/test_font.rb +28 -0
- data/test/test_image.rb +9 -0
- data/test/test_painter.rb +1 -3
- data/test/test_point.rb +121 -0
- data/test/test_rays.rb +2 -3
- data/test/test_texture.rb +1 -3
- metadata +146 -75
- data/include/rays/helpers.h +0 -37
- data/include/rays/transform.h +0 -35
- data/src/helpers.cpp +0 -22
- data/src/transform.cpp +0 -88
@@ -0,0 +1,53 @@
|
|
1
|
+
// -*- c++ -*-
|
2
|
+
#pragma once
|
3
|
+
#ifndef __RAYS_COLOR_H__
|
4
|
+
#define __RAYS_COLOR_H__
|
5
|
+
|
6
|
+
|
7
|
+
#include <xot/util.h>
|
8
|
+
#include <rays/defs.h>
|
9
|
+
#include <rays/point.h>
|
10
|
+
|
11
|
+
|
12
|
+
namespace Rays
|
13
|
+
{
|
14
|
+
|
15
|
+
|
16
|
+
struct Color
|
17
|
+
{
|
18
|
+
|
19
|
+
typedef Color This;
|
20
|
+
|
21
|
+
float red, green, blue, alpha;
|
22
|
+
|
23
|
+
Color (float value = 0, float alpha = 1);
|
24
|
+
|
25
|
+
Color (float red, float green, float blue, float alpha = 1);
|
26
|
+
|
27
|
+
Color dup () const;
|
28
|
+
|
29
|
+
Color& set (float value = 0, float alpha = 1);
|
30
|
+
|
31
|
+
Color& set (float red, float green, float blue, float alpha = 1);
|
32
|
+
|
33
|
+
bool get (float* red, float* green, float* blue, float* alpha = NULL) const;
|
34
|
+
|
35
|
+
float* array ();
|
36
|
+
|
37
|
+
const float* array () const;
|
38
|
+
|
39
|
+
operator bool () const;
|
40
|
+
|
41
|
+
bool operator ! () const;
|
42
|
+
|
43
|
+
static uchar float2uchar (float value) {return (uchar) Xot::clip(0.f, 255.f, value * 255);}
|
44
|
+
|
45
|
+
static float uchar2float (uchar value) {return value / 255.f;}
|
46
|
+
|
47
|
+
};// Color
|
48
|
+
|
49
|
+
|
50
|
+
}// Rays
|
51
|
+
|
52
|
+
|
53
|
+
#endif//EOH
|
data/include/rays/colorspace.h
CHANGED
data/include/rays/exception.h
CHANGED
data/include/rays/font.h
CHANGED
@@ -4,8 +4,8 @@
|
|
4
4
|
#define __RAYS_FONT_H__
|
5
5
|
|
6
6
|
|
7
|
+
#include <xot/pimpl.h>
|
7
8
|
#include <rays/defs.h>
|
8
|
-
#include <rays/helpers.h>
|
9
9
|
|
10
10
|
|
11
11
|
namespace Rays
|
@@ -27,7 +27,11 @@ namespace Rays
|
|
27
27
|
|
28
28
|
coord size () const;
|
29
29
|
|
30
|
-
bool
|
30
|
+
bool get_width (coord* width, const char* str) const;
|
31
|
+
|
32
|
+
bool get_height (
|
33
|
+
coord* height,
|
34
|
+
coord* ascent = NULL, coord* descent = NULL, coord* leading = NULL) const;
|
31
35
|
|
32
36
|
operator bool () const;
|
33
37
|
|
@@ -35,7 +39,7 @@ namespace Rays
|
|
35
39
|
|
36
40
|
struct Data;
|
37
41
|
|
38
|
-
|
42
|
+
Xot::PImpl<Data, true> self;
|
39
43
|
|
40
44
|
};// Font
|
41
45
|
|
data/include/rays/image.h
CHANGED
@@ -4,8 +4,8 @@
|
|
4
4
|
#define __RAYS_IMAGE_H__
|
5
5
|
|
6
6
|
|
7
|
+
#include <xot/pimpl.h>
|
7
8
|
#include <rays/colorspace.h>
|
8
|
-
#include <rays/helpers.h>
|
9
9
|
|
10
10
|
|
11
11
|
namespace Rays
|
@@ -20,6 +20,8 @@ namespace Rays
|
|
20
20
|
class Image
|
21
21
|
{
|
22
22
|
|
23
|
+
typedef Image This;
|
24
|
+
|
23
25
|
public:
|
24
26
|
|
25
27
|
Image ();
|
@@ -54,13 +56,15 @@ namespace Rays
|
|
54
56
|
|
55
57
|
struct Data;
|
56
58
|
|
57
|
-
|
59
|
+
Xot::PImpl<Data, true> self;
|
58
60
|
|
59
61
|
};// Image
|
60
62
|
|
61
63
|
|
62
64
|
bool load_image (Image* image, const char* path, bool alphatexture = false);
|
63
65
|
|
66
|
+
bool save_image (const Image& image, const char* path);
|
67
|
+
|
64
68
|
|
65
69
|
}// Rays
|
66
70
|
|
@@ -0,0 +1,63 @@
|
|
1
|
+
// -*- c++ -*-
|
2
|
+
#pragma once
|
3
|
+
#ifndef __RAYS_MATRIX_H__
|
4
|
+
#define __RAYS_MATRIX_H__
|
5
|
+
|
6
|
+
|
7
|
+
#include <rays/defs.h>
|
8
|
+
|
9
|
+
|
10
|
+
namespace Rays
|
11
|
+
{
|
12
|
+
|
13
|
+
|
14
|
+
struct Matrix
|
15
|
+
{
|
16
|
+
|
17
|
+
float
|
18
|
+
a1, a2, a3, a4,
|
19
|
+
b1, b2, b3, b4,
|
20
|
+
c1, c2, c3, c4,
|
21
|
+
d1, d2, d3, d4;
|
22
|
+
|
23
|
+
Matrix (float value = 1);
|
24
|
+
|
25
|
+
Matrix (
|
26
|
+
float a1, float a2, float a3, float a4,
|
27
|
+
float b1, float b2, float b3, float b4,
|
28
|
+
float c1, float c2, float c3, float c4,
|
29
|
+
float d1, float d2, float d3, float d4);
|
30
|
+
|
31
|
+
Matrix (const float* elements, size_t size);
|
32
|
+
|
33
|
+
Matrix dup () const;
|
34
|
+
|
35
|
+
Matrix& set (float value = 1);
|
36
|
+
|
37
|
+
Matrix& set (
|
38
|
+
float a1, float a2, float a3, float a4,
|
39
|
+
float b1, float b2, float b3, float b4,
|
40
|
+
float c1, float c2, float c3, float c4,
|
41
|
+
float d1, float d2, float d3, float d4);
|
42
|
+
|
43
|
+
Matrix& set (const float* elements, size_t size);
|
44
|
+
|
45
|
+
float& at (int row, int column);
|
46
|
+
|
47
|
+
float at (int row, int column) const;
|
48
|
+
|
49
|
+
float* array ();
|
50
|
+
|
51
|
+
const float* array () const;
|
52
|
+
|
53
|
+
float& operator [] (int index);
|
54
|
+
|
55
|
+
float operator [] (int index) const;
|
56
|
+
|
57
|
+
};// Matrix
|
58
|
+
|
59
|
+
|
60
|
+
}// Rays
|
61
|
+
|
62
|
+
|
63
|
+
#endif//EOH
|
data/include/rays/opengl.h
CHANGED
data/include/rays/painter.h
CHANGED
@@ -4,10 +4,10 @@
|
|
4
4
|
#define __RAYS_PAINTER_H__
|
5
5
|
|
6
6
|
|
7
|
+
#include <xot/pimpl.h>
|
7
8
|
#include <rays/defs.h>
|
9
|
+
#include <rays/texture.h>
|
8
10
|
#include <rays/opengl.h>
|
9
|
-
#include <rays/font.h>
|
10
|
-
#include <rays/helpers.h>
|
11
11
|
|
12
12
|
|
13
13
|
namespace Rays
|
@@ -42,7 +42,15 @@ namespace Rays
|
|
42
42
|
};// ShapeType
|
43
43
|
|
44
44
|
|
45
|
-
class
|
45
|
+
class Point;
|
46
|
+
|
47
|
+
class Bounds;
|
48
|
+
|
49
|
+
class Color;
|
50
|
+
|
51
|
+
class Matrix;
|
52
|
+
|
53
|
+
class Font;
|
46
54
|
|
47
55
|
class Image;
|
48
56
|
|
@@ -58,88 +66,172 @@ namespace Rays
|
|
58
66
|
|
59
67
|
bool canvas (coord x, coord y, coord width, coord height);
|
60
68
|
|
61
|
-
bool
|
69
|
+
bool canvas (coord x, coord y, coord z, coord width, coord height, coord depth);
|
62
70
|
|
63
|
-
bool
|
71
|
+
bool canvas (const Bounds& bounds);
|
64
72
|
|
65
|
-
bool
|
73
|
+
bool begin ();
|
66
74
|
|
67
|
-
bool
|
75
|
+
bool end ();
|
68
76
|
|
69
77
|
//
|
70
78
|
// high level drawing methods
|
71
79
|
//
|
72
80
|
bool line (coord x1, coord y1, coord x2, coord y2);
|
73
81
|
|
82
|
+
bool line (const Point& p1, const Point& p2);
|
83
|
+
|
74
84
|
bool rect (coord x, coord y, coord width, coord height);
|
75
85
|
|
86
|
+
bool rect (const Bounds& bounds);
|
87
|
+
|
88
|
+
bool ellipse (
|
89
|
+
coord x, coord y, coord width, coord height = 0,
|
90
|
+
coord radius_min = 0, uint nsegment = 0);
|
91
|
+
|
92
|
+
bool ellipse (
|
93
|
+
const Bounds& bounds,
|
94
|
+
coord radius_min = 0, uint nsegment = 0);
|
95
|
+
|
76
96
|
bool ellipse (
|
77
|
-
|
78
|
-
uint nsegment = 0);
|
97
|
+
const Point& center, coord radius,
|
98
|
+
coord radius_min = 0, uint nsegment = 0);
|
79
99
|
|
80
100
|
bool arc (
|
81
101
|
coord x, coord y, coord width, coord height = 0,
|
82
|
-
float angle_from = 0, float angle_to = 360,
|
83
|
-
uint nsegment = 0);
|
102
|
+
float angle_from = 0, float angle_to = 360,
|
103
|
+
coord radius_min = 0, uint nsegment = 0);
|
104
|
+
|
105
|
+
bool arc (
|
106
|
+
const Bounds& bounds,
|
107
|
+
float angle_from = 0, float angle_to = 360,
|
108
|
+
coord radius_min = 0, uint nsegment = 0);
|
109
|
+
|
110
|
+
bool arc (
|
111
|
+
const Point& center, coord radius,
|
112
|
+
float angle_from = 0, float angle_to = 360,
|
113
|
+
coord radius_min = 0, uint nsegment = 0);
|
84
114
|
|
85
115
|
bool image (
|
86
116
|
const Image& image, coord x = 0, coord y = 0);
|
87
117
|
|
118
|
+
bool image (
|
119
|
+
const Image& image, const Point& position);
|
120
|
+
|
88
121
|
bool image (
|
89
122
|
const Image& image, coord x, coord y, coord width, coord height);
|
90
123
|
|
124
|
+
bool image (
|
125
|
+
const Image& image, const Bounds& bounds);
|
126
|
+
|
91
127
|
bool image (
|
92
128
|
const Image& image,
|
93
129
|
coord src_x, coord src_y, coord src_width, coord src_height,
|
94
130
|
coord dest_x, coord dest_y);
|
95
131
|
|
132
|
+
bool image (
|
133
|
+
const Image& image,
|
134
|
+
const Bounds& src_bounds, const Point& dest_position);
|
135
|
+
|
96
136
|
bool image (
|
97
137
|
const Image& image,
|
98
138
|
coord src_x, coord src_y, coord src_width, coord src_height,
|
99
139
|
coord dest_x, coord dest_y, coord dest_width, coord dest_height);
|
100
140
|
|
141
|
+
bool image (
|
142
|
+
const Image& image,
|
143
|
+
const Bounds& src_bounds, const Bounds& dest_bounds);
|
144
|
+
|
101
145
|
bool text (
|
102
146
|
const char* str, coord x = 0, coord y = 0,
|
103
|
-
const Font
|
147
|
+
const Font* font = NULL);
|
148
|
+
|
149
|
+
bool text (
|
150
|
+
const char* str, const Point& position,
|
151
|
+
const Font* font = NULL);
|
104
152
|
|
105
153
|
bool text (
|
106
154
|
const char* str, coord x, coord y, coord width, coord height,
|
107
|
-
const Font
|
155
|
+
const Font* font = NULL);
|
156
|
+
|
157
|
+
bool text (
|
158
|
+
const char* str, const Bounds& bounds,
|
159
|
+
const Font* font = NULL);
|
108
160
|
|
109
161
|
bool clear ();
|
110
162
|
|
111
|
-
bool
|
112
|
-
float* red, float* green = NULL, float* blue = NULL,
|
113
|
-
float* alpha = NULL);
|
163
|
+
bool set_background (float red, float green, float blue, float alpha = 1);
|
114
164
|
|
115
|
-
bool
|
116
|
-
float red, float green, float blue, float alpha = 1);
|
165
|
+
bool set_background (const Color& color);
|
117
166
|
|
118
|
-
bool
|
167
|
+
bool no_background ();
|
119
168
|
|
120
|
-
|
121
|
-
float* red, float* green = NULL, float* blue = NULL,
|
122
|
-
float* alpha = NULL);
|
169
|
+
const Color& background () const;
|
123
170
|
|
124
171
|
bool set_fill (float red, float green, float blue, float alpha = 1);
|
125
172
|
|
126
|
-
bool
|
173
|
+
bool set_fill (const Color& color);
|
174
|
+
|
175
|
+
bool no_fill ();
|
127
176
|
|
128
|
-
|
129
|
-
float* red, float* green = NULL, float* blue = NULL,
|
130
|
-
float* alpha = NULL);
|
177
|
+
const Color& fill () const;
|
131
178
|
|
132
179
|
bool set_stroke (float red, float green, float blue, float alpha = 1);
|
133
180
|
|
134
|
-
bool
|
181
|
+
bool set_stroke (const Color& color);
|
135
182
|
|
136
|
-
bool
|
137
|
-
|
138
|
-
|
183
|
+
bool no_stroke ();
|
184
|
+
|
185
|
+
const Color& stroke () const;
|
139
186
|
|
140
187
|
bool set_clip (coord x, coord y, coord width, coord height);
|
141
188
|
|
142
|
-
bool
|
189
|
+
bool set_clip (const Bounds& bounds);
|
190
|
+
|
191
|
+
bool no_clip ();
|
192
|
+
|
193
|
+
const Bounds& clip () const;
|
194
|
+
|
195
|
+
bool set_font (const Font& font);
|
196
|
+
|
197
|
+
const Font& font () const;
|
198
|
+
|
199
|
+
bool push_attrs ();
|
200
|
+
|
201
|
+
bool pop_attrs ();
|
202
|
+
|
203
|
+
//
|
204
|
+
// transformation methods
|
205
|
+
//
|
206
|
+
bool translate (coord x, coord y, coord z = 0);
|
207
|
+
|
208
|
+
bool translate (const Point& value);
|
209
|
+
|
210
|
+
bool scale (coord x, coord y, coord z = 1);
|
211
|
+
|
212
|
+
bool scale (const Point& value);
|
213
|
+
|
214
|
+
bool rotate (float angle, coord x = 0, coord y = 0, coord z = 1);
|
215
|
+
|
216
|
+
bool rotate (float angle, const Point& center);
|
217
|
+
|
218
|
+
bool set_matrix (float value = 1);
|
219
|
+
|
220
|
+
bool set_matrix (
|
221
|
+
float a1, float a2, float a3, float a4,
|
222
|
+
float b1, float b2, float b3, float b4,
|
223
|
+
float c1, float c2, float c3, float c4,
|
224
|
+
float d1, float d2, float d3, float d4);
|
225
|
+
|
226
|
+
bool set_matrix (const float* elements);
|
227
|
+
|
228
|
+
bool set_matrix (const Matrix& matrix);
|
229
|
+
|
230
|
+
const Matrix& matrix () const;
|
231
|
+
|
232
|
+
bool push_matrix ();
|
233
|
+
|
234
|
+
bool pop_matrix ();
|
143
235
|
|
144
236
|
//
|
145
237
|
// low level drawing methods
|
@@ -148,19 +240,26 @@ namespace Rays
|
|
148
240
|
|
149
241
|
bool end_shape ();
|
150
242
|
|
151
|
-
bool
|
243
|
+
bool set_color (float red, float green, float blue, float alpha = 1);
|
244
|
+
|
245
|
+
bool set_color (const Color& color);
|
246
|
+
|
247
|
+
bool set_texture (const Texture& tex);
|
248
|
+
|
249
|
+
bool no_texture ();
|
250
|
+
|
251
|
+
bool add_vertex (coord x, coord y);
|
152
252
|
|
153
|
-
bool
|
253
|
+
bool add_vertex (coord x, coord y, coord z);
|
154
254
|
|
155
|
-
bool
|
255
|
+
bool add_vertex (const Point& position);
|
156
256
|
|
157
|
-
bool
|
257
|
+
bool add_vertex (coord x, coord y, coord tex_s, coord tex_t);
|
158
258
|
|
159
|
-
bool
|
259
|
+
bool add_vertex (coord x, coord y, coord z, coord tex_s, coord tex_t);
|
160
260
|
|
161
|
-
bool
|
261
|
+
bool add_vertex (const Point& position, coord tex_s, coord tex_t);
|
162
262
|
|
163
|
-
bool vertex (coord x, coord y, coord z, coord texture_s, coord texture_t);
|
164
263
|
|
165
264
|
operator bool () const;
|
166
265
|
|
@@ -168,7 +267,7 @@ namespace Rays
|
|
168
267
|
|
169
268
|
struct Data;
|
170
269
|
|
171
|
-
|
270
|
+
Xot::PImpl<Data, true> self;
|
172
271
|
|
173
272
|
};// Painter
|
174
273
|
|