How to translate a C tree structure to ruby tree objects

I want to draw a figure with opengl. The key seems to start from a tree
structure.
The top of the tree is the trunk, there are several childrens, head,
upper arms upper legs, each of these have children of their own...

I found a tutorial which explains

Information is stored in nodes which include
pointer to a function that draws the object
matrix which positions, scales and orient this node relative to parent
(including children)
pointer to children of node

typedef struct treenode {
GLfloat m[16]; //transformation - e.g. translation
void *f(); //figure - e.g. Left leg
struct treenode *child;
struct treenode *parent;
} treenode;

What is the OOP ruby way of building a tree? Can it be something like
this? (per Brian Schröder)

class Node
   attr_reader :children

  def initialize
     @children = []
  end
end

what goes in @children? the transformation and drawing would be Node
methods I think?
And how do you refer to parent (You need information on the parent to
know where to draw the node)
What do I do with my class Node (called traversing a tree? )

I saw http://raa.ruby-lang.org/search.rhtml?search=tree
that trees are something people think about in ruby. Do any of those
reference have a bearing on my question?

The children of a node go in @children. They're probably other nodes.

The transformation matrix and function would likely be data members
holding, respectively, a matrix and a proc object. An alternate
approach for the drawing function would be to make an instance method
that receives a block (where the block would contain the drawing
function).

So, potentially something like this:

class Node
  attr_accessor :children, :parent, :transform
  def initialize(parent = nil, transform = some_sort_of _matrix_object)
    @children = []
    @transform = transform
    if parent then parent.add_child(self) end
  end

  def add_child(node)
    @children.push(node)
    node.parent = self
  end

  def draw(&block)
    yield
  end
end