/* */ static VALUE Vector2_Add( VALUE self, VALUE aRightOperand ) { VALUE rightVector = Vector2_ForceType( aRightOperand ); // Get values VALUE leftX = rb_funcall( self, rb_intern( "x" ), 0 ); VALUE leftY = rb_funcall( self, rb_intern( "y" ), 0 ); VALUE rightX = rb_funcall( rightVector, rb_intern( "x" ), 0 ); VALUE rightY = rb_funcall( rightVector, rb_intern( "y" ), 0 ); // Do calculation VALUE newX = rb_funcall( leftX, rb_intern( "+" ), 1, rightX ); VALUE newY = rb_funcall( leftY, rb_intern( "+" ), 1, rightY ); return rb_funcall( globalVector2Class, rb_intern( "new" ), 2, newX, newY ); }