rays 0.1.7 → 0.1.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.doc/ext/rays/bitmap.cpp +6 -6
- data/.doc/ext/rays/bounds.cpp +4 -4
- data/.doc/ext/rays/color.cpp +4 -4
- data/.doc/ext/rays/color_space.cpp +4 -4
- data/.doc/ext/rays/font.cpp +6 -6
- data/.doc/ext/rays/image.cpp +6 -6
- data/.doc/ext/rays/matrix.cpp +4 -4
- data/.doc/ext/rays/painter.cpp +56 -21
- data/.doc/ext/rays/point.cpp +5 -4
- data/.doc/ext/rays/rays.cpp +2 -3
- data/.doc/ext/rays/shader.cpp +5 -5
- data/.doc/ext/rays/texture.cpp +5 -5
- data/README.md +2 -2
- data/VERSION +1 -1
- data/ext/rays/bitmap.cpp +6 -6
- data/ext/rays/bounds.cpp +4 -4
- data/ext/rays/color.cpp +4 -4
- data/ext/rays/color_space.cpp +4 -4
- data/ext/rays/font.cpp +6 -6
- data/ext/rays/image.cpp +6 -6
- data/ext/rays/matrix.cpp +4 -4
- data/ext/rays/painter.cpp +72 -35
- data/ext/rays/point.cpp +5 -4
- data/ext/rays/rays.cpp +2 -3
- data/ext/rays/shader.cpp +5 -5
- data/ext/rays/texture.cpp +5 -5
- data/include/rays/opengl.h +1 -1
- data/include/rays/painter.h +12 -0
- data/include/rays/point.h +35 -9
- data/include/rays/ruby/bitmap.h +14 -0
- data/include/rays/ruby/bounds.h +14 -0
- data/include/rays/ruby/color.h +14 -0
- data/include/rays/ruby/color_space.h +14 -0
- data/include/rays/ruby/font.h +14 -0
- data/include/rays/ruby/image.h +14 -0
- data/include/rays/ruby/matrix.h +14 -0
- data/include/rays/ruby/painter.h +14 -0
- data/include/rays/ruby/point.h +14 -0
- data/include/rays/ruby/shader.h +14 -0
- data/include/rays/ruby/texture.h +14 -0
- data/rays.gemspec +1 -1
- data/src/painter.cpp +132 -43
- data/src/point.cpp +65 -30
- metadata +3 -3
data/ext/rays/point.cpp
CHANGED
@@ -10,13 +10,11 @@ using namespace Rucy;
|
|
10
10
|
using Rays::coord;
|
11
11
|
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
RUCY_DEFINE_VALUE_FROM_TO(Rays::Point, cPoint)
|
13
|
+
RUCY_DEFINE_VALUE_FROM_TO(Rays::Point)
|
16
14
|
|
17
15
|
#define THIS to<Rays::Point*>(self)
|
18
16
|
|
19
|
-
#define CHECK RUCY_CHECK_OBJ(Rays::Point,
|
17
|
+
#define CHECK RUCY_CHECK_OBJ(Rays::Point, self)
|
20
18
|
|
21
19
|
|
22
20
|
static
|
@@ -229,6 +227,9 @@ RUCY_DEF0(inspect)
|
|
229
227
|
}
|
230
228
|
RUCY_END
|
231
229
|
|
230
|
+
|
231
|
+
static Class cPoint;
|
232
|
+
|
232
233
|
void
|
233
234
|
Init_point ()
|
234
235
|
{
|
data/ext/rays/rays.cpp
CHANGED
data/ext/rays/shader.cpp
CHANGED
@@ -8,13 +8,11 @@
|
|
8
8
|
using namespace Rucy;
|
9
9
|
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
RUCY_DEFINE_VALUE_FROM_TO(Rays::Shader, cShader)
|
11
|
+
RUCY_DEFINE_VALUE_FROM_TO(Rays::Shader)
|
14
12
|
|
15
13
|
#define THIS to<Rays::Shader*>(self)
|
16
14
|
|
17
|
-
#define CHECK RUCY_CHECK_OBJECT(Rays::Shader,
|
15
|
+
#define CHECK RUCY_CHECK_OBJECT(Rays::Shader, self)
|
18
16
|
|
19
17
|
|
20
18
|
static
|
@@ -27,7 +25,7 @@ RUCY_END
|
|
27
25
|
static
|
28
26
|
RUCY_DEF1(initialize, source)
|
29
27
|
{
|
30
|
-
RUCY_CHECK_OBJ(Rays::Shader,
|
28
|
+
RUCY_CHECK_OBJ(Rays::Shader, self);
|
31
29
|
|
32
30
|
if (!source.is_s())
|
33
31
|
argument_error(__FILE__, __LINE__);
|
@@ -38,6 +36,8 @@ RUCY_DEF1(initialize, source)
|
|
38
36
|
RUCY_END
|
39
37
|
|
40
38
|
|
39
|
+
static Class cShader;
|
40
|
+
|
41
41
|
void
|
42
42
|
Init_shader ()
|
43
43
|
{
|
data/ext/rays/texture.cpp
CHANGED
@@ -12,13 +12,11 @@ using namespace Rucy;
|
|
12
12
|
using Rays::coord;
|
13
13
|
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
RUCY_DEFINE_VALUE_FROM_TO(Rays::Texture, cTexture)
|
15
|
+
RUCY_DEFINE_VALUE_FROM_TO(Rays::Texture)
|
18
16
|
|
19
17
|
#define THIS to<Rays::Texture*>(self)
|
20
18
|
|
21
|
-
#define CHECK RUCY_CHECK_OBJECT(Rays::Texture,
|
19
|
+
#define CHECK RUCY_CHECK_OBJECT(Rays::Texture, self)
|
22
20
|
|
23
21
|
|
24
22
|
static
|
@@ -31,7 +29,7 @@ RUCY_END
|
|
31
29
|
static
|
32
30
|
RUCY_DEF4(setup, width, height, color_space, alpha_only)
|
33
31
|
{
|
34
|
-
RUCY_CHECK_OBJ(Rays::Texture,
|
32
|
+
RUCY_CHECK_OBJ(Rays::Texture, self);
|
35
33
|
|
36
34
|
Rays::ColorSpace* cs = to<Rays::ColorSpace*>(color_space);
|
37
35
|
if (!cs) argument_error(__FILE__, __LINE__);
|
@@ -115,6 +113,8 @@ RUCY_DEF0(to_bitmap)
|
|
115
113
|
RUCY_END
|
116
114
|
|
117
115
|
|
116
|
+
static Class cTexture;
|
117
|
+
|
118
118
|
void
|
119
119
|
Init_texture ()
|
120
120
|
{
|
data/include/rays/opengl.h
CHANGED
@@ -48,7 +48,7 @@ namespace Rays
|
|
48
48
|
#define glCheckFramebufferStatus glCheckFramebufferStatusOES
|
49
49
|
#define glFramebufferTexture2D glFramebufferTexture2DOES
|
50
50
|
#define glRenderbufferStorage glRenderbufferStorageOES
|
51
|
-
#define glOrtho
|
51
|
+
#define glOrtho glOrthof
|
52
52
|
|
53
53
|
#define GL_UNSIGNED_INT GL_UNSIGNED_INT_OES
|
54
54
|
#define GL_FRAMEBUFFER GL_FRAMEBUFFER_OES
|
data/include/rays/painter.h
CHANGED
@@ -13,6 +13,10 @@ namespace Rays
|
|
13
13
|
{
|
14
14
|
|
15
15
|
|
16
|
+
struct Coord2;
|
17
|
+
|
18
|
+
struct Coord3;
|
19
|
+
|
16
20
|
struct Point;
|
17
21
|
|
18
22
|
struct Bounds;
|
@@ -64,6 +68,14 @@ namespace Rays
|
|
64
68
|
|
65
69
|
void line (const Point& p1, const Point& p2);
|
66
70
|
|
71
|
+
void lines (const Coord2* points, size_t size);
|
72
|
+
|
73
|
+
void lines (const Coord3* points, size_t size);
|
74
|
+
|
75
|
+
void polygon (const Coord2* points, size_t size);
|
76
|
+
|
77
|
+
void polygon (const Coord3* points, size_t size);
|
78
|
+
|
67
79
|
void rect (coord x, coord y, coord width, coord height);
|
68
80
|
|
69
81
|
void rect (const Bounds& bounds);
|
data/include/rays/point.h
CHANGED
@@ -11,7 +11,27 @@ namespace Rays
|
|
11
11
|
{
|
12
12
|
|
13
13
|
|
14
|
-
struct
|
14
|
+
struct Coord2
|
15
|
+
{
|
16
|
+
|
17
|
+
union
|
18
|
+
{
|
19
|
+
struct {coord x, y;};
|
20
|
+
coord array[2];
|
21
|
+
};
|
22
|
+
|
23
|
+
Coord2& reset (coord value = 0);
|
24
|
+
|
25
|
+
Coord2& reset (coord x, coord y);
|
26
|
+
|
27
|
+
coord& operator [] (size_t index);
|
28
|
+
|
29
|
+
const coord& operator [] (size_t index) const;
|
30
|
+
|
31
|
+
};// Coord2
|
32
|
+
|
33
|
+
|
34
|
+
struct Coord3
|
15
35
|
{
|
16
36
|
|
17
37
|
union
|
@@ -20,16 +40,26 @@ namespace Rays
|
|
20
40
|
coord array[3];
|
21
41
|
};
|
22
42
|
|
43
|
+
Coord3& reset (coord value = 0);
|
44
|
+
|
45
|
+
Coord3& reset (coord x, coord y, coord z = 0);
|
46
|
+
|
47
|
+
coord& operator [] (size_t index);
|
48
|
+
|
49
|
+
const coord& operator [] (size_t index) const;
|
50
|
+
|
51
|
+
};// Coord3
|
52
|
+
|
53
|
+
|
54
|
+
struct Point : public Coord3
|
55
|
+
{
|
56
|
+
|
23
57
|
Point (coord value = 0);
|
24
58
|
|
25
59
|
Point (coord x, coord y, coord z = 0);
|
26
60
|
|
27
61
|
Point dup () const;
|
28
62
|
|
29
|
-
Point& reset (coord value = 0);
|
30
|
-
|
31
|
-
Point& reset (coord x, coord y, coord z = 0);
|
32
|
-
|
33
63
|
Point& move_to (coord x, coord y, coord z = 0);
|
34
64
|
|
35
65
|
Point& move_to (const Point& point);
|
@@ -40,10 +70,6 @@ namespace Rays
|
|
40
70
|
|
41
71
|
String inspect () const;
|
42
72
|
|
43
|
-
coord& operator [] (size_t index);
|
44
|
-
|
45
|
-
const coord& operator [] (size_t index) const;
|
46
|
-
|
47
73
|
Point operator - () const;
|
48
74
|
|
49
75
|
Point& operator += (const Point& rhs);
|
data/include/rays/ruby/bitmap.h
CHANGED
data/include/rays/ruby/bounds.h
CHANGED
data/include/rays/ruby/color.h
CHANGED
@@ -24,4 +24,18 @@ namespace Rays
|
|
24
24
|
RUCY_DECLARE_VALUE_FROM_TO(Rays::ColorSpace)
|
25
25
|
|
26
26
|
|
27
|
+
namespace Rucy
|
28
|
+
{
|
29
|
+
|
30
|
+
|
31
|
+
template <> inline Class
|
32
|
+
get_ruby_class<Rays::ColorSpace> ()
|
33
|
+
{
|
34
|
+
return Rays::color_space_class();
|
35
|
+
}
|
36
|
+
|
37
|
+
|
38
|
+
}// Rucy
|
39
|
+
|
40
|
+
|
27
41
|
#endif//EOH
|
data/include/rays/ruby/font.h
CHANGED
data/include/rays/ruby/image.h
CHANGED
data/include/rays/ruby/matrix.h
CHANGED
data/include/rays/ruby/painter.h
CHANGED
data/include/rays/ruby/point.h
CHANGED
data/include/rays/ruby/shader.h
CHANGED
data/include/rays/ruby/texture.h
CHANGED
data/rays.gemspec
CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
|
|
23
23
|
|
24
24
|
s.authors = %w[snori]
|
25
25
|
s.email = 'snori@xord.org'
|
26
|
-
s.homepage = "
|
26
|
+
s.homepage = "https://github.com/xord/spacy/wiki/#{name.capitalize}-Home"
|
27
27
|
|
28
28
|
s.platform = Gem::Platform::RUBY
|
29
29
|
s.required_ruby_version = '>=1.9.0'
|
data/src/painter.cpp
CHANGED
@@ -31,8 +31,8 @@ namespace Rays
|
|
31
31
|
FILL = 0,
|
32
32
|
STROKE,
|
33
33
|
|
34
|
-
|
35
|
-
|
34
|
+
COLOR_TYPE_END,
|
35
|
+
COLOR_TYPE_BEGIN = 0
|
36
36
|
|
37
37
|
};// ColorType
|
38
38
|
|
@@ -63,19 +63,6 @@ namespace Rays
|
|
63
63
|
};// Attributes
|
64
64
|
|
65
65
|
|
66
|
-
struct coord2 {
|
67
|
-
|
68
|
-
coord x, y;
|
69
|
-
|
70
|
-
void reset (coord x_, coord y_)
|
71
|
-
{
|
72
|
-
x = x_;
|
73
|
-
y = y_;
|
74
|
-
}
|
75
|
-
|
76
|
-
};// coord2
|
77
|
-
|
78
|
-
|
79
66
|
struct Painter::Data
|
80
67
|
{
|
81
68
|
|
@@ -89,6 +76,8 @@ namespace Rays
|
|
89
76
|
|
90
77
|
bool painting;
|
91
78
|
|
79
|
+
GLenum prev_matrix_mode;
|
80
|
+
|
92
81
|
GLuint current_texture;
|
93
82
|
|
94
83
|
Image text_image;
|
@@ -98,7 +87,8 @@ namespace Rays
|
|
98
87
|
mutable Matrix matrix_tmp;
|
99
88
|
|
100
89
|
Data ()
|
101
|
-
: painting(false),
|
90
|
+
: painting(false), prev_matrix_mode(0), current_texture(0),
|
91
|
+
text_image(1, 1, GRAY, true)
|
102
92
|
{
|
103
93
|
attrs.init();
|
104
94
|
}
|
@@ -122,11 +112,6 @@ namespace Rays
|
|
122
112
|
check_error(__FILE__, __LINE__);
|
123
113
|
}
|
124
114
|
|
125
|
-
GLuint frame_buffer_id () const
|
126
|
-
{
|
127
|
-
return frame_buffer ? frame_buffer.id() : 0;
|
128
|
-
}
|
129
|
-
|
130
115
|
bool use_color (ColorType type)
|
131
116
|
{
|
132
117
|
const Color& c = attrs.colors[type];
|
@@ -262,20 +247,22 @@ namespace Rays
|
|
262
247
|
if (self->painting)
|
263
248
|
invalid_state_error(__FILE__, __LINE__, "self->painting should be false.");
|
264
249
|
|
265
|
-
|
266
|
-
bind_frame_buffer(fb);
|
250
|
+
FrameBuffer& fb = self->frame_buffer;
|
251
|
+
if (fb) bind_frame_buffer(fb.id());
|
267
252
|
|
268
253
|
push_attr();
|
269
254
|
push_shader();
|
270
255
|
|
271
256
|
const Bounds& vp = self->viewport;
|
272
|
-
glViewport((int) vp.x, (int)vp.y, (int) vp.width, (int) vp.height);
|
257
|
+
glViewport((int) vp.x, (int) vp.y, (int) vp.width, (int) vp.height);
|
273
258
|
|
274
259
|
coord x1 = vp.x, x2 = vp.x + vp.width;
|
275
260
|
coord y1 = vp.y, y2 = vp.y + vp.height;
|
276
261
|
coord z1 = vp.z, z2 = vp.z + vp.depth;
|
277
262
|
if (z1 == 0 && z2 == 0) {z1 = -100; z2 = 200;}
|
278
|
-
if (fb
|
263
|
+
if (!fb) std::swap(y1, y2);
|
264
|
+
|
265
|
+
glGetIntegerv(GL_MATRIX_MODE, (GLint*) &self->prev_matrix_mode);
|
279
266
|
|
280
267
|
glMatrixMode(GL_PROJECTION);
|
281
268
|
glPushMatrix();
|
@@ -335,15 +322,20 @@ namespace Rays
|
|
335
322
|
glPopMatrix();
|
336
323
|
#endif
|
337
324
|
|
325
|
+
glMatrixMode(self->prev_matrix_mode);
|
326
|
+
|
338
327
|
pop_shader();
|
339
328
|
pop_attr();
|
340
329
|
|
341
330
|
//glFinish();
|
342
331
|
|
343
|
-
|
332
|
+
if (self->frame_buffer)
|
333
|
+
{
|
334
|
+
unbind_frame_buffer();
|
344
335
|
|
345
|
-
|
346
|
-
|
336
|
+
Texture& tex = self->frame_buffer.texture();
|
337
|
+
if (tex) tex.set_dirty(true);
|
338
|
+
}
|
347
339
|
}
|
348
340
|
|
349
341
|
void
|
@@ -390,6 +382,109 @@ namespace Rays
|
|
390
382
|
line(p1.x, p1.y, p2.x, p2.y);
|
391
383
|
}
|
392
384
|
|
385
|
+
void
|
386
|
+
Painter::lines (const Coord2* points, size_t size)
|
387
|
+
{
|
388
|
+
Data* pself = self.get();
|
389
|
+
|
390
|
+
if (!pself->painting)
|
391
|
+
invalid_state_error(__FILE__, __LINE__, "self->painting should be true.");
|
392
|
+
|
393
|
+
if (!pself->use_color(STROKE))
|
394
|
+
return;
|
395
|
+
|
396
|
+
boost::scoped_array<uint> indices(new uint[size]);
|
397
|
+
for (size_t i = 0; i < size; ++i)
|
398
|
+
indices[i] = (uint) i;
|
399
|
+
|
400
|
+
pself->draw_shape(GL_LINES, (int) size, indices.get(), 2, (coord*) points);
|
401
|
+
}
|
402
|
+
|
403
|
+
void
|
404
|
+
Painter::lines (const Coord3* points, size_t size)
|
405
|
+
{
|
406
|
+
Data* pself = self.get();
|
407
|
+
|
408
|
+
if (!pself->painting)
|
409
|
+
invalid_state_error(__FILE__, __LINE__, "self->painting should be true.");
|
410
|
+
|
411
|
+
if (!pself->use_color(STROKE))
|
412
|
+
return;
|
413
|
+
|
414
|
+
boost::scoped_array<uint> indices(new uint[size]);
|
415
|
+
boost::scoped_array<Coord2> vertices(new Coord2[size]);
|
416
|
+
for (size_t i = 0; i < size; ++i)
|
417
|
+
{
|
418
|
+
indices[i] = (uint) i;
|
419
|
+
vertices[i].reset(points[i].x, points[i].y);
|
420
|
+
}
|
421
|
+
|
422
|
+
pself->draw_shape(
|
423
|
+
GL_LINES, (int) size, indices.get(), 2, (coord*) vertices.get());
|
424
|
+
}
|
425
|
+
|
426
|
+
void
|
427
|
+
Painter::polygon (const Coord2* points, size_t size)
|
428
|
+
{
|
429
|
+
Data* pself = self.get();
|
430
|
+
|
431
|
+
if (!pself->painting)
|
432
|
+
invalid_state_error(__FILE__, __LINE__, "self->painting should be true.");
|
433
|
+
|
434
|
+
GLenum modes[] = {GL_TRIANGLE_FAN, GL_LINE_LOOP};
|
435
|
+
boost::scoped_array<uint> indices;
|
436
|
+
|
437
|
+
for (int type = COLOR_TYPE_BEGIN; type < COLOR_TYPE_END; ++type)
|
438
|
+
{
|
439
|
+
if (!pself->use_color((ColorType) type)) continue;
|
440
|
+
|
441
|
+
if (!indices.get())
|
442
|
+
{
|
443
|
+
indices.reset(new uint[size]);
|
444
|
+
for (size_t i = 0; i < size; ++i)
|
445
|
+
indices[i] = (uint) i;
|
446
|
+
}
|
447
|
+
|
448
|
+
pself->draw_shape(
|
449
|
+
modes[type], (int) size, indices.get(), 2, (coord*) points);
|
450
|
+
}
|
451
|
+
}
|
452
|
+
|
453
|
+
void
|
454
|
+
Painter::polygon (const Coord3* points, size_t size)
|
455
|
+
{
|
456
|
+
Data* pself = self.get();
|
457
|
+
|
458
|
+
if (!pself->painting)
|
459
|
+
invalid_state_error(__FILE__, __LINE__, "self->painting should be true.");
|
460
|
+
|
461
|
+
GLenum modes[] = {GL_TRIANGLE_FAN, GL_LINE_LOOP};
|
462
|
+
boost::scoped_array<uint> indices;
|
463
|
+
boost::scoped_array<Coord2> vertices;
|
464
|
+
|
465
|
+
for (int type = COLOR_TYPE_BEGIN; type < COLOR_TYPE_END; ++type)
|
466
|
+
{
|
467
|
+
if (!pself->use_color((ColorType) type)) continue;
|
468
|
+
|
469
|
+
if (!indices.get())
|
470
|
+
{
|
471
|
+
indices.reset(new uint[size]);
|
472
|
+
for (size_t i = 0; i < size; ++i)
|
473
|
+
indices[i] = (uint) i;
|
474
|
+
}
|
475
|
+
|
476
|
+
if (!vertices.get())
|
477
|
+
{
|
478
|
+
vertices.reset(new Coord2[size]);
|
479
|
+
for (size_t i = 0; i < size; ++i)
|
480
|
+
vertices[i].reset(points[i].x, points[i].y);
|
481
|
+
}
|
482
|
+
|
483
|
+
pself->draw_shape(
|
484
|
+
modes[type], (int) size, indices.get(), 2, (coord*) vertices.get());
|
485
|
+
}
|
486
|
+
}
|
487
|
+
|
393
488
|
void
|
394
489
|
Painter::rect (coord x, coord y, coord width, coord height)
|
395
490
|
{
|
@@ -409,7 +504,7 @@ namespace Rays
|
|
409
504
|
coord x2 = x + width - 1;
|
410
505
|
coord y2 = y + height - 1;
|
411
506
|
|
412
|
-
for (int type =
|
507
|
+
for (int type = COLOR_TYPE_BEGIN; type < COLOR_TYPE_END; ++type)
|
413
508
|
{
|
414
509
|
if (!pself->use_color((ColorType) type)) continue;
|
415
510
|
|
@@ -460,19 +555,19 @@ namespace Rays
|
|
460
555
|
float from = angle_from / 360.f;
|
461
556
|
float to = angle_to / 360.f;
|
462
557
|
bool hole = radius_min != 0;
|
463
|
-
int nvertices = hole ? nsegment * 2 : nsegment
|
558
|
+
int nvertices = hole ? nsegment * 2 : nsegment;
|
464
559
|
GLenum modes[] =
|
465
560
|
{
|
466
561
|
(GLenum) (hole ? GL_TRIANGLE_STRIP : GL_TRIANGLE_FAN),
|
467
562
|
GL_LINE_LOOP
|
468
563
|
};
|
469
|
-
boost::scoped_array<uint>
|
470
|
-
boost::scoped_array<
|
564
|
+
boost::scoped_array<uint> indices;
|
565
|
+
boost::scoped_array<Coord2> vertices;
|
471
566
|
|
472
567
|
x += radius_x;
|
473
568
|
y += radius_y;
|
474
569
|
|
475
|
-
for (int type =
|
570
|
+
for (int type = COLOR_TYPE_BEGIN; type < COLOR_TYPE_END; ++type)
|
476
571
|
{
|
477
572
|
if (!pself->use_color((ColorType) type)) continue;
|
478
573
|
|
@@ -484,18 +579,12 @@ namespace Rays
|
|
484
579
|
}
|
485
580
|
|
486
581
|
if (!vertices.get())
|
487
|
-
vertices.reset(new
|
582
|
+
vertices.reset(new Coord2[nvertices]);
|
488
583
|
|
489
|
-
|
584
|
+
Coord2* vertex = vertices.get();
|
490
585
|
assert(vertex);
|
491
586
|
|
492
|
-
|
493
|
-
{
|
494
|
-
vertex->reset(x, y);
|
495
|
-
++vertex;
|
496
|
-
}
|
497
|
-
|
498
|
-
for (int seg = 0; seg <= (int) nsegment; ++seg, ++vertex)
|
587
|
+
for (int seg = 0; seg < (int) nsegment; ++seg, ++vertex)
|
499
588
|
{
|
500
589
|
float pos = (float) seg / (float) nsegment;
|
501
590
|
float radian = (from + (to - from) * pos) * PI_2;
|
@@ -595,7 +684,7 @@ namespace Rays
|
|
595
684
|
x2, y
|
596
685
|
};
|
597
686
|
|
598
|
-
for (int type =
|
687
|
+
for (int type = COLOR_TYPE_BEGIN; type < COLOR_TYPE_END; ++type)
|
599
688
|
{
|
600
689
|
if (
|
601
690
|
(nostroke && type == STROKE) ||
|