--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: []

comment: 
- !ruby/struct:SM::Flow::H 
  level: 1
  text: OpenCascade
- !ruby/struct:SM::Flow::P 
  body: OpenCascade is subclass of OpenObject. It differs in a few significant ways.
- !ruby/struct:SM::Flow::P 
  body: The main reason this class is labeled &quot;cascade&quot;, every internal Hash is transformed into an OpenCascade dynamically upon access. This makes it easy to create &quot;cascading&quot; references.
- !ruby/struct:SM::Flow::VERB 
  body: "  h = { :x =&gt; { :y =&gt; { :z =&gt; 1 } } }\n  c = OpenCascade[h]\n  c.x.y.z  #=&gt; 1\n"
- !ruby/struct:SM::Flow::P 
  body: As soon as you access a node it automatically becomes an OpenCascade.
- !ruby/struct:SM::Flow::VERB 
  body: "  c = OpenCascade.new   #=&gt; #&lt;OpenCascade:0x7fac3680ccf0 {}&gt;\n  c.r                   #=&gt; #&lt;OpenCascade:0x7fac368084c0 {}&gt;\n  c.a.b                 #=&gt; #&lt;OpenCascade:0x7fac3680a4f0 {}&gt;\n"
- !ruby/struct:SM::Flow::P 
  body: But if you set a node, then that will be it's value.
- !ruby/struct:SM::Flow::VERB 
  body: "  c.a.b = 4             #=&gt; 4\n"
- !ruby/struct:SM::Flow::P 
  body: To query a node without causing the auto-creation of an OpenCasade object, use the ?-mark.
- !ruby/struct:SM::Flow::VERB 
  body: "  c.a.z?                #=&gt; nil\n"
- !ruby/struct:SM::Flow::P 
  body: Finally, you can set a node and get the reciever back using the !-mark.
- !ruby/struct:SM::Flow::VERB 
  body: "  c = OpenCascade.new   #=&gt; #&lt;OpenCascade:0x7fac3680ccf0 {}&gt;\n  c.x!(4).y!(3)         #=&gt; #&lt;OpenCascade:0x7fac3680ccf0 {:x=&gt;4, :y=&gt;3}&gt;\n"
constants: []

full_name: OpenCascade
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: method_missing
name: OpenCascade
superclass: OpenObject
