From 9f890573dbc73586d89cf0f65f3490987f65bdc9 Mon Sep 17 00:00:00 2001 From: ser1zw Date: Thu, 31 May 2012 02:38:41 +0900 Subject: [PATCH] fix some codes for YARD 0.8 --- ext/opencv/curve.cpp | 39 ++++----- ext/opencv/curve.h | 2 +- ext/opencv/cvavgcomp.cpp | 35 ++++---- ext/opencv/cvavgcomp.h | 2 +- ext/opencv/cvbox2d.cpp | 47 +++++------ ext/opencv/cvbox2d.h | 2 +- ext/opencv/cvcapture.cpp | 143 +++++++++++++++++---------------- ext/opencv/cvcapture.h | 2 +- ext/opencv/cvchain.cpp | 68 ++++++++-------- ext/opencv/cvchain.h | 2 +- ext/opencv/cvcircle32f.cpp | 43 +++++----- ext/opencv/cvcircle32f.h | 2 +- ext/opencv/cvconnectedcomp.cpp | 45 ++++++----- ext/opencv/cvconnectedcomp.h | 2 +- ext/opencv/cvcontour.cpp | 90 +++++++++++---------- ext/opencv/cvcontour.h | 2 +- ext/opencv/opencv.cpp | 16 ++-- 17 files changed, 276 insertions(+), 266 deletions(-) diff --git a/ext/opencv/curve.cpp b/ext/opencv/curve.cpp index ddd67e2..1aa0c82 100644 --- a/ext/opencv/curve.cpp +++ b/ext/opencv/curve.cpp @@ -24,25 +24,6 @@ rb_module() return module; } -void -define_ruby_module() -{ - if (module) - return; - /* - * opencv = rb_define_module("OpenCV"); - * - * note: this comment is used by rdoc. - */ - VALUE opencv = rb_module_opencv(); - module = rb_define_module_under(opencv, "Curve"); - rb_define_method(module, "closed?", RUBY_METHOD_FUNC(rb_closed_q), 0); - rb_define_method(module, "convex?", RUBY_METHOD_FUNC(rb_convex_q), 0); - rb_define_method(module, "hole?", RUBY_METHOD_FUNC(rb_hole_q), 0); - rb_define_method(module, "simple?", RUBY_METHOD_FUNC(rb_simple_q), 0); - rb_define_method(module, "arc_length", RUBY_METHOD_FUNC(rb_arc_length), -1); -} - /* * If the curve is closed, return true. Otherwise return false. * @overload closed? @@ -121,6 +102,26 @@ rb_arc_length(int argc, VALUE *argv, VALUE self) return rb_float_new(length); } +void +init_ruby_module() +{ +#if 0 + // For documentation using YARD + VALUE opencv = rb_define_module("OpenCV"); +#endif + + if (module) + return; + + VALUE opencv = rb_module_opencv(); + module = rb_define_module_under(opencv, "Curve"); + rb_define_method(module, "closed?", RUBY_METHOD_FUNC(rb_closed_q), 0); + rb_define_method(module, "convex?", RUBY_METHOD_FUNC(rb_convex_q), 0); + rb_define_method(module, "hole?", RUBY_METHOD_FUNC(rb_hole_q), 0); + rb_define_method(module, "simple?", RUBY_METHOD_FUNC(rb_simple_q), 0); + rb_define_method(module, "arc_length", RUBY_METHOD_FUNC(rb_arc_length), -1); +} + __NAMESPACE_END_CURVE __NAMESPACE_END_OPENCV diff --git a/ext/opencv/curve.h b/ext/opencv/curve.h index 182ad5a..28ec556 100644 --- a/ext/opencv/curve.h +++ b/ext/opencv/curve.h @@ -20,7 +20,7 @@ __NAMESPACE_BEGIN_CURVE VALUE rb_module(); -void define_ruby_module(); +void init_ruby_module(); VALUE rb_closed_q(VALUE self); VALUE rb_convex_q(VALUE self); diff --git a/ext/opencv/cvavgcomp.cpp b/ext/opencv/cvavgcomp.cpp index cb552c0..ec64648 100644 --- a/ext/opencv/cvavgcomp.cpp +++ b/ext/opencv/cvavgcomp.cpp @@ -24,23 +24,6 @@ rb_class() return rb_klass; } -void -define_ruby_class() -{ - if (rb_klass) - return; - /* - * opencv = rb_define_module("OpenCV"); - * cvrect = rb_define_class_under(opencv, "CvRect", rb_cObject); - * - * note: this comment is used by rdoc. - */ - VALUE opencv = rb_module_opencv(), cvrect = cCvRect::rb_class(); - rb_klass = rb_define_class_under(opencv, "CvAvgComp", cvrect); - rb_define_alloc_func(rb_klass, rb_allocate); - rb_define_method(rb_klass, "neighbors", RUBY_METHOD_FUNC(rb_neighbors), 0); -} - VALUE rb_allocate(VALUE klass) { @@ -59,5 +42,23 @@ rb_neighbors(VALUE self) return INT2NUM(CVAVGCOMP(self)->neighbors); } +void +init_ruby_class() +{ +#if 0 + // For documentation using YARD + VALUE opencv = rb_define_module("OpenCV"); + VALUE cvrect = rb_define_class_under(opencv, "CvRect", rb_cObject); +#endif + + if (rb_klass) + return; + + VALUE opencv = rb_module_opencv(), cvrect = cCvRect::rb_class(); + rb_klass = rb_define_class_under(opencv, "CvAvgComp", cvrect); + rb_define_alloc_func(rb_klass, rb_allocate); + rb_define_method(rb_klass, "neighbors", RUBY_METHOD_FUNC(rb_neighbors), 0); +} + __NAMESPACE_END_AVGCOMP __NAMESPACE_END_OPENCV diff --git a/ext/opencv/cvavgcomp.h b/ext/opencv/cvavgcomp.h index cce6df7..a29d7d0 100644 --- a/ext/opencv/cvavgcomp.h +++ b/ext/opencv/cvavgcomp.h @@ -20,7 +20,7 @@ __NAMESPACE_BEGIN_AVGCOMP VALUE rb_class(); -void define_ruby_class(); +void init_ruby_class(); VALUE rb_allocate(VALUE klass); VALUE rb_neighbors(VALUE self); diff --git a/ext/opencv/cvbox2d.cpp b/ext/opencv/cvbox2d.cpp index bf51a02..235f40d 100644 --- a/ext/opencv/cvbox2d.cpp +++ b/ext/opencv/cvbox2d.cpp @@ -24,29 +24,6 @@ rb_class() return rb_klass; } -void -define_ruby_class() -{ - if (rb_klass) - return; - /* - * opencv = rb_define_module("OpenCV"); - * - * note: this comment is used by rdoc. - */ - VALUE opencv = rb_module_opencv(); - rb_klass = rb_define_class_under(opencv, "CvBox2D", rb_cObject); - rb_define_alloc_func(rb_klass, rb_allocate); - rb_define_private_method(rb_klass, "initialize", RUBY_METHOD_FUNC(rb_initialize), -1); - rb_define_method(rb_klass, "center", RUBY_METHOD_FUNC(rb_center), 0); - rb_define_method(rb_klass, "center=", RUBY_METHOD_FUNC(rb_set_center), 1); - rb_define_method(rb_klass, "size", RUBY_METHOD_FUNC(rb_size), 0); - rb_define_method(rb_klass, "size=", RUBY_METHOD_FUNC(rb_set_size), 1); - rb_define_method(rb_klass, "angle", RUBY_METHOD_FUNC(rb_angle), 0); - rb_define_method(rb_klass, "angle=", RUBY_METHOD_FUNC(rb_set_angle), 1); - rb_define_method(rb_klass, "points", RUBY_METHOD_FUNC(rb_points), 0); -} - VALUE rb_allocate(VALUE klass) { @@ -190,5 +167,29 @@ new_object(CvBox2D box) return object; } +void +init_ruby_class() +{ +#if 0 + // For documentation using YARD + VALUE opencv = rb_define_module("OpenCV"); +#endif + + if (rb_klass) + return; + + VALUE opencv = rb_module_opencv(); + rb_klass = rb_define_class_under(opencv, "CvBox2D", rb_cObject); + rb_define_alloc_func(rb_klass, rb_allocate); + rb_define_private_method(rb_klass, "initialize", RUBY_METHOD_FUNC(rb_initialize), -1); + rb_define_method(rb_klass, "center", RUBY_METHOD_FUNC(rb_center), 0); + rb_define_method(rb_klass, "center=", RUBY_METHOD_FUNC(rb_set_center), 1); + rb_define_method(rb_klass, "size", RUBY_METHOD_FUNC(rb_size), 0); + rb_define_method(rb_klass, "size=", RUBY_METHOD_FUNC(rb_set_size), 1); + rb_define_method(rb_klass, "angle", RUBY_METHOD_FUNC(rb_angle), 0); + rb_define_method(rb_klass, "angle=", RUBY_METHOD_FUNC(rb_set_angle), 1); + rb_define_method(rb_klass, "points", RUBY_METHOD_FUNC(rb_points), 0); +} + __NAMESPACE_END_CVBOX2D __NAMESPACE_END_OPENCV diff --git a/ext/opencv/cvbox2d.h b/ext/opencv/cvbox2d.h index 38da887..fa1432a 100644 --- a/ext/opencv/cvbox2d.h +++ b/ext/opencv/cvbox2d.h @@ -20,7 +20,7 @@ __NAMESPACE_BEGIN_CVBOX2D VALUE rb_class(); -void define_ruby_class(); +void init_ruby_class(); VALUE rb_allocate(VALUE klass); diff --git a/ext/opencv/cvcapture.cpp b/ext/opencv/cvcapture.cpp index 1023c9c..0011b14 100644 --- a/ext/opencv/cvcapture.cpp +++ b/ext/opencv/cvcapture.cpp @@ -24,77 +24,6 @@ rb_class() return rb_klass; } -void -define_ruby_class() -{ - if (rb_klass) - return; - /* - * opencv = rb_define_module("OpenCV"); - * - * note: this comment is used by rdoc. - */ - VALUE opencv = rb_module_opencv(); - - rb_klass = rb_define_class_under(opencv, "CvCapture", rb_cData); - - VALUE video_interface = rb_hash_new(); - /* - * :any, :mil, :vfw, :v4l, :v4l2, :fireware, :ieee1394, :dc1394, :cmu1394, - * :stereo, :tyzx, :tyzx_left, :tyzx_right, :tyzx_color, :tyzx_z, :qt, :qtuicktime - */ - rb_define_const(rb_klass, "INTERFACE", video_interface); - rb_hash_aset(video_interface, ID2SYM(rb_intern("any")), INT2FIX(CV_CAP_ANY)); - rb_hash_aset(video_interface, ID2SYM(rb_intern("mil")), INT2FIX(CV_CAP_MIL)); - rb_hash_aset(video_interface, ID2SYM(rb_intern("vfw")), INT2FIX(CV_CAP_VFW)); - rb_hash_aset(video_interface, ID2SYM(rb_intern("v4l")), INT2FIX(CV_CAP_V4L)); - rb_hash_aset(video_interface, ID2SYM(rb_intern("v4l2")), INT2FIX(CV_CAP_V4L2)); - rb_hash_aset(video_interface, ID2SYM(rb_intern("fireware")), INT2FIX(CV_CAP_FIREWARE)); - rb_hash_aset(video_interface, ID2SYM(rb_intern("ieee1394")), INT2FIX(CV_CAP_IEEE1394)); - rb_hash_aset(video_interface, ID2SYM(rb_intern("dc1394")), INT2FIX(CV_CAP_DC1394)); - rb_hash_aset(video_interface, ID2SYM(rb_intern("cmu1394")), INT2FIX(CV_CAP_CMU1394)); - rb_hash_aset(video_interface, ID2SYM(rb_intern("stereo")), INT2FIX(CV_CAP_STEREO)); - rb_hash_aset(video_interface, ID2SYM(rb_intern("tyzx")), INT2FIX(CV_CAP_TYZX)); - rb_hash_aset(video_interface, ID2SYM(rb_intern("tyzx_left")), INT2FIX(CV_TYZX_LEFT)); - rb_hash_aset(video_interface, ID2SYM(rb_intern("tyzx_right")), INT2FIX(CV_TYZX_RIGHT)); - rb_hash_aset(video_interface, ID2SYM(rb_intern("tyzx_color")), INT2FIX(CV_TYZX_COLOR)); - rb_hash_aset(video_interface, ID2SYM(rb_intern("tyzx_z")), INT2FIX(CV_TYZX_Z)); - rb_hash_aset(video_interface, ID2SYM(rb_intern("qt")), INT2FIX(CV_CAP_QT)); - rb_hash_aset(video_interface, ID2SYM(rb_intern("quicktime")), INT2FIX(CV_CAP_QT)); - - rb_define_singleton_method(rb_klass, "open", RUBY_METHOD_FUNC(rb_open), -1); - - rb_define_method(rb_klass, "grab", RUBY_METHOD_FUNC(rb_grab), 0); - rb_define_method(rb_klass, "retrieve", RUBY_METHOD_FUNC(rb_retrieve), 0); - rb_define_method(rb_klass, "query", RUBY_METHOD_FUNC(rb_query), 0); - rb_define_method(rb_klass, "millisecond", RUBY_METHOD_FUNC(rb_get_millisecond), 0); - rb_define_method(rb_klass, "millisecond=", RUBY_METHOD_FUNC(rb_set_millisecond), 1); - rb_define_method(rb_klass, "frames", RUBY_METHOD_FUNC(rb_get_frames), 0); - rb_define_method(rb_klass, "frames=", RUBY_METHOD_FUNC(rb_set_frames), 1); - rb_define_method(rb_klass, "avi_ratio", RUBY_METHOD_FUNC(rb_get_avi_ratio), 0); - rb_define_method(rb_klass, "avi_ratio=", RUBY_METHOD_FUNC(rb_set_avi_ratio), 1); - rb_define_method(rb_klass, "size", RUBY_METHOD_FUNC(rb_get_size), 0); - rb_define_method(rb_klass, "size=", RUBY_METHOD_FUNC(rb_set_size), 1); - rb_define_method(rb_klass, "width", RUBY_METHOD_FUNC(rb_get_width), 0); - rb_define_method(rb_klass, "width=", RUBY_METHOD_FUNC(rb_set_width), 1); - rb_define_method(rb_klass, "height", RUBY_METHOD_FUNC(rb_get_height), 0); - rb_define_method(rb_klass, "height=", RUBY_METHOD_FUNC(rb_set_height), 1); - rb_define_method(rb_klass, "fps", RUBY_METHOD_FUNC(rb_get_fps), 0); - rb_define_method(rb_klass, "fps=", RUBY_METHOD_FUNC(rb_set_fps), 1); - rb_define_method(rb_klass, "fourcc", RUBY_METHOD_FUNC(rb_get_fourcc), 0); - rb_define_method(rb_klass, "frame_count", RUBY_METHOD_FUNC(rb_get_frame_count), 0); - rb_define_method(rb_klass, "format", RUBY_METHOD_FUNC(rb_get_format), 0); - rb_define_method(rb_klass, "mode", RUBY_METHOD_FUNC(rb_get_mode), 0); - rb_define_method(rb_klass, "brightness", RUBY_METHOD_FUNC(rb_get_brightness), 0); - rb_define_method(rb_klass, "contrast", RUBY_METHOD_FUNC(rb_get_contrast), 0); - rb_define_method(rb_klass, "saturation", RUBY_METHOD_FUNC(rb_get_saturation), 0); - rb_define_method(rb_klass, "hue", RUBY_METHOD_FUNC(rb_get_hue), 0); - rb_define_method(rb_klass, "gain", RUBY_METHOD_FUNC(rb_get_gain), 0); - rb_define_method(rb_klass, "exposure", RUBY_METHOD_FUNC(rb_get_exposure), 0); - rb_define_method(rb_klass, "convert_rgb", RUBY_METHOD_FUNC(rb_get_convert_rgb), 0); - rb_define_method(rb_klass, "rectification", RUBY_METHOD_FUNC(rb_get_rectification), 0); -} - void cvcapture_free(void *ptr) { @@ -594,6 +523,78 @@ rb_get_rectification(VALUE self) return rb_get_capture_property(self, CV_CAP_PROP_RECTIFICATION); } +void +init_ruby_class() +{ +#if 0 + // For documentation using YARD + VALUE opencv = rb_define_module("OpenCV"); +#endif + + if (rb_klass) + return; + + VALUE opencv = rb_module_opencv(); + + rb_klass = rb_define_class_under(opencv, "CvCapture", rb_cData); + + VALUE video_interface = rb_hash_new(); + /* + * :any, :mil, :vfw, :v4l, :v4l2, :fireware, :ieee1394, :dc1394, :cmu1394, + * :stereo, :tyzx, :tyzx_left, :tyzx_right, :tyzx_color, :tyzx_z, :qt, :qtuicktime + */ + rb_define_const(rb_klass, "INTERFACE", video_interface); + rb_hash_aset(video_interface, ID2SYM(rb_intern("any")), INT2FIX(CV_CAP_ANY)); + rb_hash_aset(video_interface, ID2SYM(rb_intern("mil")), INT2FIX(CV_CAP_MIL)); + rb_hash_aset(video_interface, ID2SYM(rb_intern("vfw")), INT2FIX(CV_CAP_VFW)); + rb_hash_aset(video_interface, ID2SYM(rb_intern("v4l")), INT2FIX(CV_CAP_V4L)); + rb_hash_aset(video_interface, ID2SYM(rb_intern("v4l2")), INT2FIX(CV_CAP_V4L2)); + rb_hash_aset(video_interface, ID2SYM(rb_intern("fireware")), INT2FIX(CV_CAP_FIREWARE)); + rb_hash_aset(video_interface, ID2SYM(rb_intern("ieee1394")), INT2FIX(CV_CAP_IEEE1394)); + rb_hash_aset(video_interface, ID2SYM(rb_intern("dc1394")), INT2FIX(CV_CAP_DC1394)); + rb_hash_aset(video_interface, ID2SYM(rb_intern("cmu1394")), INT2FIX(CV_CAP_CMU1394)); + rb_hash_aset(video_interface, ID2SYM(rb_intern("stereo")), INT2FIX(CV_CAP_STEREO)); + rb_hash_aset(video_interface, ID2SYM(rb_intern("tyzx")), INT2FIX(CV_CAP_TYZX)); + rb_hash_aset(video_interface, ID2SYM(rb_intern("tyzx_left")), INT2FIX(CV_TYZX_LEFT)); + rb_hash_aset(video_interface, ID2SYM(rb_intern("tyzx_right")), INT2FIX(CV_TYZX_RIGHT)); + rb_hash_aset(video_interface, ID2SYM(rb_intern("tyzx_color")), INT2FIX(CV_TYZX_COLOR)); + rb_hash_aset(video_interface, ID2SYM(rb_intern("tyzx_z")), INT2FIX(CV_TYZX_Z)); + rb_hash_aset(video_interface, ID2SYM(rb_intern("qt")), INT2FIX(CV_CAP_QT)); + rb_hash_aset(video_interface, ID2SYM(rb_intern("quicktime")), INT2FIX(CV_CAP_QT)); + + rb_define_singleton_method(rb_klass, "open", RUBY_METHOD_FUNC(rb_open), -1); + + rb_define_method(rb_klass, "grab", RUBY_METHOD_FUNC(rb_grab), 0); + rb_define_method(rb_klass, "retrieve", RUBY_METHOD_FUNC(rb_retrieve), 0); + rb_define_method(rb_klass, "query", RUBY_METHOD_FUNC(rb_query), 0); + rb_define_method(rb_klass, "millisecond", RUBY_METHOD_FUNC(rb_get_millisecond), 0); + rb_define_method(rb_klass, "millisecond=", RUBY_METHOD_FUNC(rb_set_millisecond), 1); + rb_define_method(rb_klass, "frames", RUBY_METHOD_FUNC(rb_get_frames), 0); + rb_define_method(rb_klass, "frames=", RUBY_METHOD_FUNC(rb_set_frames), 1); + rb_define_method(rb_klass, "avi_ratio", RUBY_METHOD_FUNC(rb_get_avi_ratio), 0); + rb_define_method(rb_klass, "avi_ratio=", RUBY_METHOD_FUNC(rb_set_avi_ratio), 1); + rb_define_method(rb_klass, "size", RUBY_METHOD_FUNC(rb_get_size), 0); + rb_define_method(rb_klass, "size=", RUBY_METHOD_FUNC(rb_set_size), 1); + rb_define_method(rb_klass, "width", RUBY_METHOD_FUNC(rb_get_width), 0); + rb_define_method(rb_klass, "width=", RUBY_METHOD_FUNC(rb_set_width), 1); + rb_define_method(rb_klass, "height", RUBY_METHOD_FUNC(rb_get_height), 0); + rb_define_method(rb_klass, "height=", RUBY_METHOD_FUNC(rb_set_height), 1); + rb_define_method(rb_klass, "fps", RUBY_METHOD_FUNC(rb_get_fps), 0); + rb_define_method(rb_klass, "fps=", RUBY_METHOD_FUNC(rb_set_fps), 1); + rb_define_method(rb_klass, "fourcc", RUBY_METHOD_FUNC(rb_get_fourcc), 0); + rb_define_method(rb_klass, "frame_count", RUBY_METHOD_FUNC(rb_get_frame_count), 0); + rb_define_method(rb_klass, "format", RUBY_METHOD_FUNC(rb_get_format), 0); + rb_define_method(rb_klass, "mode", RUBY_METHOD_FUNC(rb_get_mode), 0); + rb_define_method(rb_klass, "brightness", RUBY_METHOD_FUNC(rb_get_brightness), 0); + rb_define_method(rb_klass, "contrast", RUBY_METHOD_FUNC(rb_get_contrast), 0); + rb_define_method(rb_klass, "saturation", RUBY_METHOD_FUNC(rb_get_saturation), 0); + rb_define_method(rb_klass, "hue", RUBY_METHOD_FUNC(rb_get_hue), 0); + rb_define_method(rb_klass, "gain", RUBY_METHOD_FUNC(rb_get_gain), 0); + rb_define_method(rb_klass, "exposure", RUBY_METHOD_FUNC(rb_get_exposure), 0); + rb_define_method(rb_klass, "convert_rgb", RUBY_METHOD_FUNC(rb_get_convert_rgb), 0); + rb_define_method(rb_klass, "rectification", RUBY_METHOD_FUNC(rb_get_rectification), 0); +} + __NAMESPACE_END_CVCAPTURE __NAMESPACE_END_OPENCV diff --git a/ext/opencv/cvcapture.h b/ext/opencv/cvcapture.h index d8ef16a..70a0575 100644 --- a/ext/opencv/cvcapture.h +++ b/ext/opencv/cvcapture.h @@ -21,7 +21,7 @@ __NAMESPACE_BEGIN_CVCAPTURE VALUE rb_class(); -void define_ruby_class(); +void init_ruby_class(); void cvcapture_free(void *ptr); VALUE rb_open(int argc, VALUE *argv, VALUE klass); diff --git a/ext/opencv/cvchain.cpp b/ext/opencv/cvchain.cpp index e078d3c..a86f198 100644 --- a/ext/opencv/cvchain.cpp +++ b/ext/opencv/cvchain.cpp @@ -30,39 +30,6 @@ rb_class() return rb_klass; } -void -define_ruby_class() -{ - if (rb_klass) - return; - /* - * opencv = rb_define_module("OpenCV"); - * cvseq = rb_define_class_under(opencv, "CvSeq"); - * curve = rb_define_module_under(opencv, "Curve"); - * note: this comment is used by rdoc. - */ - VALUE opencv = rb_module_opencv(); - VALUE cvseq = cCvSeq::rb_class(); - VALUE curve = mCurve::rb_module(); - - rb_klass = rb_define_class_under(opencv, "CvChain", cvseq); - rb_include_module(rb_klass, curve); - VALUE approx_chain_option = rb_hash_new(); - rb_define_const(rb_klass, "APPROX_CHAIN_OPTION", approx_chain_option); - rb_hash_aset(approx_chain_option, ID2SYM(rb_intern("method")), ID2SYM(rb_intern("approx_simple"))); - rb_hash_aset(approx_chain_option, ID2SYM(rb_intern("parameter")), rb_float_new(0)); - rb_hash_aset(approx_chain_option, ID2SYM(rb_intern("minimal_perimeter")), INT2FIX(0)); - rb_hash_aset(approx_chain_option, ID2SYM(rb_intern("recursive")), Qfalse); - - rb_define_private_method(rb_klass, "initialize", RUBY_METHOD_FUNC(rb_initialize), -1); - rb_define_method(rb_klass, "origin", RUBY_METHOD_FUNC(rb_origin), 0); - rb_define_method(rb_klass, "origin=", RUBY_METHOD_FUNC(rb_set_origin), 1); - rb_define_method(rb_klass, "codes", RUBY_METHOD_FUNC(rb_codes), 0); - rb_define_method(rb_klass, "points", RUBY_METHOD_FUNC(rb_points), 0); - rb_define_method(rb_klass, "approx_chains", RUBY_METHOD_FUNC(rb_approx_chains), -1); - rb_define_alias(rb_klass, "approx", "approx_chains"); -} - VALUE rb_allocate(VALUE klass) { @@ -225,5 +192,40 @@ new_object() return cCvSeq::new_sequence(cCvChain::rb_class(), seq, T_FIXNUM, storage); } +void +init_ruby_class() +{ +#if 0 + // For documentation using YARD + VALUE opencv = rb_define_module("OpenCV"); + VALUE cvseq = rb_define_class_under(opencv, "CvSeq"); + VALUE curve = rb_define_module_under(opencv, "Curve"); +#endif + + if (rb_klass) + return; + + VALUE opencv = rb_module_opencv(); + VALUE cvseq = cCvSeq::rb_class(); + VALUE curve = mCurve::rb_module(); + + rb_klass = rb_define_class_under(opencv, "CvChain", cvseq); + rb_include_module(rb_klass, curve); + VALUE approx_chain_option = rb_hash_new(); + rb_define_const(rb_klass, "APPROX_CHAIN_OPTION", approx_chain_option); + rb_hash_aset(approx_chain_option, ID2SYM(rb_intern("method")), ID2SYM(rb_intern("approx_simple"))); + rb_hash_aset(approx_chain_option, ID2SYM(rb_intern("parameter")), rb_float_new(0)); + rb_hash_aset(approx_chain_option, ID2SYM(rb_intern("minimal_perimeter")), INT2FIX(0)); + rb_hash_aset(approx_chain_option, ID2SYM(rb_intern("recursive")), Qfalse); + + rb_define_private_method(rb_klass, "initialize", RUBY_METHOD_FUNC(rb_initialize), -1); + rb_define_method(rb_klass, "origin", RUBY_METHOD_FUNC(rb_origin), 0); + rb_define_method(rb_klass, "origin=", RUBY_METHOD_FUNC(rb_set_origin), 1); + rb_define_method(rb_klass, "codes", RUBY_METHOD_FUNC(rb_codes), 0); + rb_define_method(rb_klass, "points", RUBY_METHOD_FUNC(rb_points), 0); + rb_define_method(rb_klass, "approx_chains", RUBY_METHOD_FUNC(rb_approx_chains), -1); + rb_define_alias(rb_klass, "approx", "approx_chains"); +} + __NAMESPACE_END_CVCHAIN __NAMESPACE_END_OPENCV diff --git a/ext/opencv/cvchain.h b/ext/opencv/cvchain.h index 49ed367..e0bb892 100644 --- a/ext/opencv/cvchain.h +++ b/ext/opencv/cvchain.h @@ -19,7 +19,7 @@ __NAMESPACE_BEGIN_CVCHAIN VALUE rb_class(); -void define_ruby_class(); +void init_ruby_class(); VALUE rb_allocate(VALUE klass); diff --git a/ext/opencv/cvcircle32f.cpp b/ext/opencv/cvcircle32f.cpp index 04927fe..2e8bbe3 100644 --- a/ext/opencv/cvcircle32f.cpp +++ b/ext/opencv/cvcircle32f.cpp @@ -26,27 +26,6 @@ rb_class() return rb_klass; } -void -define_ruby_class() -{ - if (rb_klass) - return; - /* - * opencv = rb_define_module("OpenCV"); - * - * note: this comment is used by rdoc. - */ - VALUE opencv = rb_module_opencv(); - - rb_klass = rb_define_class_under(opencv, "CvCircle32f", rb_cObject); - rb_define_alloc_func(rb_klass, rb_allocate); - rb_define_method(rb_klass, "center", RUBY_METHOD_FUNC(rb_center), 0); - rb_define_method(rb_klass, "radius", RUBY_METHOD_FUNC(rb_radius), 0); - rb_define_method(rb_klass, "[]", RUBY_METHOD_FUNC(rb_aref), 1); - rb_define_method(rb_klass, "to_ary", RUBY_METHOD_FUNC(rb_to_ary), 0); - rb_define_alias(rb_klass, "to_a", "to_ary"); -} - VALUE rb_allocate(VALUE klass) { @@ -121,5 +100,27 @@ new_object(CvCircle32f circle32f) return object; } +void +init_ruby_class() +{ +#if 0 + // For documentation using YARD + VALUE opencv = rb_define_module("OpenCV"); +#endif + + if (rb_klass) + return; + + VALUE opencv = rb_module_opencv(); + + rb_klass = rb_define_class_under(opencv, "CvCircle32f", rb_cObject); + rb_define_alloc_func(rb_klass, rb_allocate); + rb_define_method(rb_klass, "center", RUBY_METHOD_FUNC(rb_center), 0); + rb_define_method(rb_klass, "radius", RUBY_METHOD_FUNC(rb_radius), 0); + rb_define_method(rb_klass, "[]", RUBY_METHOD_FUNC(rb_aref), 1); + rb_define_method(rb_klass, "to_ary", RUBY_METHOD_FUNC(rb_to_ary), 0); + rb_define_alias(rb_klass, "to_a", "to_ary"); +} + __NAMESPACE_END_CVCIRCLE32F __NAMESPACE_END_OPENCV diff --git a/ext/opencv/cvcircle32f.h b/ext/opencv/cvcircle32f.h index dbc366e..065c647 100644 --- a/ext/opencv/cvcircle32f.h +++ b/ext/opencv/cvcircle32f.h @@ -26,7 +26,7 @@ __NAMESPACE_BEGIN_CVCIRCLE32F VALUE rb_class(); -void define_ruby_class(); +void init_ruby_class(); VALUE rb_allocate(VALUE klass); VALUE rb_initialize(int argc, VALUE *argv, VALUE self); diff --git a/ext/opencv/cvconnectedcomp.cpp b/ext/opencv/cvconnectedcomp.cpp index d61387c..0ec3d58 100644 --- a/ext/opencv/cvconnectedcomp.cpp +++ b/ext/opencv/cvconnectedcomp.cpp @@ -25,28 +25,6 @@ rb_class() return rb_klass; } -void -define_ruby_class() -{ - if (rb_klass) - return; - /* - * opencv = rb_define_module("OpenCV"); - * - * note: this comment is used by rdoc. - */ - VALUE opencv = rb_module_opencv(); - - rb_klass = rb_define_class_under(opencv, "CvConnectedComp", rb_cObject); - rb_define_alloc_func(rb_klass, rb_allocate); - rb_define_private_method(rb_klass, "initialize", RUBY_METHOD_FUNC(rb_initialize), -1); - rb_define_method(rb_klass, "area", RUBY_METHOD_FUNC(rb_area), 0); - rb_define_method(rb_klass, "value", RUBY_METHOD_FUNC(rb_value), 0); - rb_define_method(rb_klass, "rect", RUBY_METHOD_FUNC(rb_rect), 0); - rb_define_method(rb_klass, "rect=", RUBY_METHOD_FUNC(rb_set_rect), 1); - rb_define_method(rb_klass, "contour", RUBY_METHOD_FUNC(rb_contour), 0); -} - VALUE rb_allocate(VALUE klass) { @@ -151,5 +129,28 @@ new_object(CvConnectedComp comp) return object; } +void +init_ruby_class() +{ +#if 0 + // For documentation using YARD + VALUE opencv = rb_define_module("OpenCV"); +#endif + + if (rb_klass) + return; + + VALUE opencv = rb_module_opencv(); + + rb_klass = rb_define_class_under(opencv, "CvConnectedComp", rb_cObject); + rb_define_alloc_func(rb_klass, rb_allocate); + rb_define_private_method(rb_klass, "initialize", RUBY_METHOD_FUNC(rb_initialize), -1); + rb_define_method(rb_klass, "area", RUBY_METHOD_FUNC(rb_area), 0); + rb_define_method(rb_klass, "value", RUBY_METHOD_FUNC(rb_value), 0); + rb_define_method(rb_klass, "rect", RUBY_METHOD_FUNC(rb_rect), 0); + rb_define_method(rb_klass, "rect=", RUBY_METHOD_FUNC(rb_set_rect), 1); + rb_define_method(rb_klass, "contour", RUBY_METHOD_FUNC(rb_contour), 0); +} + __NAMESPACE_END_CVCONNECTEDCOMP __NAMESPACE_END_OPENCV diff --git a/ext/opencv/cvconnectedcomp.h b/ext/opencv/cvconnectedcomp.h index c0216d8..beadd29 100644 --- a/ext/opencv/cvconnectedcomp.h +++ b/ext/opencv/cvconnectedcomp.h @@ -20,7 +20,7 @@ __NAMESPACE_BEGIN_CVCONNECTEDCOMP VALUE rb_class(); -void define_ruby_class(); +void init_ruby_class(); VALUE rb_allocate(VALUE klass); diff --git a/ext/opencv/cvcontour.cpp b/ext/opencv/cvcontour.cpp index 8a46b19..41c4390 100644 --- a/ext/opencv/cvcontour.cpp +++ b/ext/opencv/cvcontour.cpp @@ -34,50 +34,6 @@ rb_class() return rb_klass; } -void -define_ruby_class() -{ - if (rb_klass) - return; - /* - * opencv = rb_define_module("OpenCV"); - * cvseq = rb_define_class_under(opencv, "CvSeq"); - * curve = rb_define_module_under(opencv, "Curve"); - * pointset = rb_define_module_under(opencv, "PointSet"); - * - * note: this comment is used by rdoc. - */ - VALUE opencv = rb_module_opencv(); - VALUE cvseq = cCvSeq::rb_class(); - VALUE curve = mCurve::rb_module(); - VALUE pointset = mPointSet::rb_module(); - - rb_klass = rb_define_class_under(opencv, "CvContour", cvseq); - rb_include_module(rb_klass, curve); - rb_include_module(rb_klass, pointset); - - rb_define_alloc_func(rb_klass, rb_allocate); - - VALUE approx_option = rb_hash_new(); - rb_define_const(rb_klass, "APPROX_OPTION", approx_option); - rb_hash_aset(approx_option, ID2SYM(rb_intern("method")), INT2FIX(CV_POLY_APPROX_DP)); - rb_hash_aset(approx_option, ID2SYM(rb_intern("accuracy")), rb_float_new(1.0)); - rb_hash_aset(approx_option, ID2SYM(rb_intern("recursive")), Qfalse); - - rb_define_private_method(rb_klass, "initialize", RUBY_METHOD_FUNC(rb_initialize), -1); - rb_define_method(rb_klass, "rect", RUBY_METHOD_FUNC(rb_rect), 0); - rb_define_method(rb_klass, "color", RUBY_METHOD_FUNC(rb_color), 0); - rb_define_method(rb_klass, "color=", RUBY_METHOD_FUNC(rb_set_color), 1); - rb_define_method(rb_klass, "reserved", RUBY_METHOD_FUNC(rb_reserved), 0); - rb_define_method(rb_klass, "approx_poly", RUBY_METHOD_FUNC(rb_approx_poly), -1); - rb_define_alias(rb_klass, "approx", "approx_poly"); - rb_define_method(rb_klass, "bounding_rect", RUBY_METHOD_FUNC(rb_bounding_rect), 0); - rb_define_method(rb_klass, "create_tree", RUBY_METHOD_FUNC(rb_create_tree), -1); - rb_define_method(rb_klass, "in?", RUBY_METHOD_FUNC(rb_in_q), 1); - rb_define_method(rb_klass, "measure_distance", RUBY_METHOD_FUNC(rb_measure_distance), 1); - rb_define_method(rb_klass, "point_polygon_test", RUBY_METHOD_FUNC(rb_point_polygon_test), 2); -} - VALUE rb_allocate(VALUE klass) { @@ -326,6 +282,52 @@ VALUE new_object() return object; } + +void +init_ruby_class() +{ +#if 0 + // For documentation using YARD + VALUE opencv = rb_define_module("OpenCV"); + VALUE cvseq = rb_define_class_under(opencv, "CvSeq"); + VALUE curve = rb_define_module_under(opencv, "Curve"); + VALUE pointset = rb_define_module_under(opencv, "PointSet"); +#endif + + if (rb_klass) + return; + + VALUE opencv = rb_module_opencv(); + VALUE cvseq = cCvSeq::rb_class(); + VALUE curve = mCurve::rb_module(); + VALUE pointset = mPointSet::rb_module(); + + rb_klass = rb_define_class_under(opencv, "CvContour", cvseq); + rb_include_module(rb_klass, curve); + rb_include_module(rb_klass, pointset); + + rb_define_alloc_func(rb_klass, rb_allocate); + + VALUE approx_option = rb_hash_new(); + rb_define_const(rb_klass, "APPROX_OPTION", approx_option); + rb_hash_aset(approx_option, ID2SYM(rb_intern("method")), INT2FIX(CV_POLY_APPROX_DP)); + rb_hash_aset(approx_option, ID2SYM(rb_intern("accuracy")), rb_float_new(1.0)); + rb_hash_aset(approx_option, ID2SYM(rb_intern("recursive")), Qfalse); + + rb_define_private_method(rb_klass, "initialize", RUBY_METHOD_FUNC(rb_initialize), -1); + rb_define_method(rb_klass, "rect", RUBY_METHOD_FUNC(rb_rect), 0); + rb_define_method(rb_klass, "color", RUBY_METHOD_FUNC(rb_color), 0); + rb_define_method(rb_klass, "color=", RUBY_METHOD_FUNC(rb_set_color), 1); + rb_define_method(rb_klass, "reserved", RUBY_METHOD_FUNC(rb_reserved), 0); + rb_define_method(rb_klass, "approx_poly", RUBY_METHOD_FUNC(rb_approx_poly), -1); + rb_define_alias(rb_klass, "approx", "approx_poly"); + rb_define_method(rb_klass, "bounding_rect", RUBY_METHOD_FUNC(rb_bounding_rect), 0); + rb_define_method(rb_klass, "create_tree", RUBY_METHOD_FUNC(rb_create_tree), -1); + rb_define_method(rb_klass, "in?", RUBY_METHOD_FUNC(rb_in_q), 1); + rb_define_method(rb_klass, "measure_distance", RUBY_METHOD_FUNC(rb_measure_distance), 1); + rb_define_method(rb_klass, "point_polygon_test", RUBY_METHOD_FUNC(rb_point_polygon_test), 2); +} + __NAMESPACE_END_CVCONTOUR __NAMESPACE_END_OPENCV diff --git a/ext/opencv/cvcontour.h b/ext/opencv/cvcontour.h index 79f021f..4654654 100644 --- a/ext/opencv/cvcontour.h +++ b/ext/opencv/cvcontour.h @@ -19,7 +19,7 @@ __NAMESPACE_BEGIN_CVCONTOUR VALUE rb_class(); -void define_ruby_class(); +void init_ruby_class(); VALUE rb_initialize(int argc, VALUE *argv, VALUE self); VALUE rb_rect(VALUE self); diff --git a/ext/opencv/opencv.cpp b/ext/opencv/opencv.cpp index 170a9a1..721f8d1 100644 --- a/ext/opencv/opencv.cpp +++ b/ext/opencv/opencv.cpp @@ -657,7 +657,7 @@ extern "C" { mOpenCV::cCvScalar::define_ruby_class(); mOpenCV::cCvSlice::define_ruby_class(); mOpenCV::cCvTermCriteria::define_ruby_class(); - mOpenCV::cCvBox2D::define_ruby_class(); + mOpenCV::cCvBox2D::init_ruby_class(); mOpenCV::cCvFont::define_ruby_class(); mOpenCV::cIplConvKernel::define_ruby_class(); mOpenCV::cCvMoments::define_ruby_class(); @@ -670,10 +670,10 @@ extern "C" { mOpenCV::cCvMemStorage::define_ruby_class(); mOpenCV::cCvSeq::define_ruby_class(); - mOpenCV::mCurve::define_ruby_module(); + mOpenCV::mCurve::init_ruby_module(); mOpenCV::mPointSet::define_ruby_module(); - mOpenCV::cCvChain::define_ruby_class(); - mOpenCV::cCvContour::define_ruby_class(); + mOpenCV::cCvChain::init_ruby_class(); + mOpenCV::cCvContour::init_ruby_class(); mOpenCV::cCvContourTree::init_ruby_class(); mOpenCV::cCvMat::define_ruby_class(); @@ -681,18 +681,18 @@ extern "C" { mOpenCV::cCvMatND::define_ruby_class(); mOpenCV::cCvSparseMat::define_ruby_class(); mOpenCV::cCvHistogram::define_ruby_class(); - mOpenCV::cCvCapture::define_ruby_class(); + mOpenCV::cCvCapture::init_ruby_class(); mOpenCV::cCvVideoWriter::define_ruby_class(); mOpenCV::cCvLine::define_ruby_class(); mOpenCV::cCvTwoPoints::define_ruby_class(); - mOpenCV::cCvCircle32f::define_ruby_class(); + mOpenCV::cCvCircle32f::init_ruby_class(); mOpenCV::cCvConDensation::define_ruby_class(); mOpenCV::cCvFeatureTree::define_ruby_class(); - mOpenCV::cCvConnectedComp::define_ruby_class(); - mOpenCV::cCvAvgComp::define_ruby_class(); + mOpenCV::cCvConnectedComp::init_ruby_class(); + mOpenCV::cCvAvgComp::init_ruby_class(); mOpenCV::cCvHaarClassifierCascade::define_ruby_class(); mOpenCV::mGUI::define_ruby_module(); mOpenCV::mGUI::cWindow::define_ruby_class();