Class: Cairo::Path

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Enumerable
Defined in:
lib/cairo/path.rb,
ext/cairo/rb_cairo_path.c

Instance Method Summary collapse

Constructor Details

#initializeObject



298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
# File 'ext/cairo/rb_cairo_path.c', line 298

static VALUE
cr_path_initialize (VALUE self)
{
  cairo_path_t *path;

  path = ALLOC(cairo_path_t);
  path->status = CAIRO_STATUS_SUCCESS;
  path->data = NULL;
  path->num_data = 0;

  DATA_PTR (self) = path;
  cr_path_ensure_internal_context (self, path);

  return Qnil;
}

Instance Method Details

#[]Object



340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
# File 'ext/cairo/rb_cairo_path.c', line 340

static VALUE
cr_path_ref (VALUE self, VALUE index)
{
  cairo_path_t *path = _SELF (self);
  int i, requested_index, real_index;

  requested_index = NUM2INT (index);
  if (requested_index < 0)
    {
      requested_index += cairo_path_get_size (path);
      if (requested_index < 0)
        return Qnil;
    }


  for (i = 0, real_index = 0; i < requested_index; i++)
    {
      if (real_index >= path->num_data)
        return Qnil;
      real_index += path->data[real_index].header.length;
    }

  if (real_index < path->num_data)
    return cr_path_data_to_ruby_object (&path->data[real_index]);
  else
    return Qnil;
}

#closeObject



11
12
13
# File 'lib/cairo/path.rb', line 11

def close
  @context.close_path
end

#eachObject



368
369
370
371
372
373
374
375
376
377
378
379
380
# File 'ext/cairo/rb_cairo_path.c', line 368

static VALUE
cr_path_each (VALUE self)
{
  cairo_path_t *path = _SELF(self);
  int i;

  for (i = 0; i < path->num_data; i += path->data[i].header.length)
    {
      rb_yield (cr_path_data_to_ruby_object (&(path->data[i])));
    }

  return self;
}

#empty?Boolean

Returns:

  • (Boolean)


314
315
316
317
318
319
320
# File 'ext/cairo/rb_cairo_path.c', line 314

static VALUE
cr_path_empty_p (VALUE self)
{
  cairo_path_t *path = _SELF (self);

  return CBOOL2RVAL (path->num_data == 0);
}

#sizeObject Also known as: length



333
334
335
336
337
338
# File 'ext/cairo/rb_cairo_path.c', line 333

static VALUE
cr_path_size (VALUE self)
{
  cairo_path_t *path = _SELF (self);
  return INT2NUM (cairo_path_get_size (path));
}