OSDN Git Service

AtomRef#molecule is implemented.
authortoshinagata1964 <toshinagata1964@a2be9bc6-48de-4e38-9406-05402d4bc13c>
Mon, 16 Jan 2012 10:43:56 +0000 (10:43 +0000)
committertoshinagata1964 <toshinagata1964@a2be9bc6-48de-4e38-9406-05402d4bc13c>
Mon, 16 Jan 2012 10:43:56 +0000 (10:43 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/molby/trunk@172 a2be9bc6-48de-4e38-9406-05402d4bc13c

MolLib/Ruby_bind/ruby_bind.c

index 4d1f569..97b710c 100644 (file)
@@ -3250,6 +3250,14 @@ ValueFromMoleculeAndIndex(Molecule *mol, int idx)
        return Data_Wrap_Struct(rb_cAtomRef, 0, (void (*)(void *))AtomRefRelease, aref);
 }
 
+static VALUE
+s_AtomRef_GetMolecule(VALUE self)
+{
+       Molecule *mpp;
+       s_AtomIndexFromValue(self, NULL, &mpp);
+       return ValueFromMolecule(mpp);
+}
+
 static VALUE s_AtomRef_GetIndex(VALUE self) {
        return INT2NUM(s_AtomIndexFromValue(self, NULL, NULL));
 }
@@ -8542,6 +8550,7 @@ Init_Molby(void)
        rb_define_alias(rb_cAtomRef, "get_attr", "[]");
        s_SetAtomAttrString = rb_str_new2("set_atom_attr");
        rb_global_variable(&s_SetAtomAttrString);
+       rb_define_method(rb_cAtomRef, "molecule", s_AtomRef_GetMolecule, 0);
        
        /*  class Parameter  */
        rb_cParameter = rb_define_class_under(rb_mMolby, "Parameter", rb_cObject);