Esempio n. 1
0
 def build_tree(self):
     node = cta.brlcad_new(librt.struct_tree_node)
     node.magic = librt.RT_TREE_MAGIC
     node.tb_op = librt.OP_NOT
     node.tb_regionp = None
     node.tb_left = self.left.build_tree()
     return librt.cast(librt.pointer(node), librt.POINTER(librt.union_tree))
Esempio n. 2
0
 def build_tree(self):
     node = cta.brlcad_new(librt.struct_tree_node)
     node.magic = librt.RT_TREE_MAGIC
     node.tb_op = librt.OP_NOT
     node.tb_regionp = None
     node.tb_left = self.left.build_tree()
     return librt.cast(librt.pointer(node), librt.POINTER(librt.union_tree))
Esempio n. 3
0
 def build_tree(self):
     node = cta.brlcad_new(librt.struct_tree_db_leaf)
     node.magic = librt.RT_TREE_MAGIC
     node.tl_op = librt.OP_DB_LEAF
     node.tl_mat = None if self.matrix is None else cta.transform(self.matrix, use_brlcad_malloc=True)
     node.tl_name = librt.bu_strdupm(self.name, "tree_db_leaf.tl_name")
     return librt.cast(librt.pointer(node), librt.POINTER(librt.union_tree))
Esempio n. 4
0
 def build_tree(self):
     node = cta.brlcad_new(librt.struct_tree_db_leaf)
     node.magic = librt.RT_TREE_MAGIC
     node.tl_op = librt.OP_DB_LEAF
     node.tl_mat = None if self.matrix is None else cta.transform(
         self.matrix, use_brlcad_malloc=True)
     node.tl_name = librt.bu_strdupm(self.name, "tree_db_leaf.tl_name")
     return librt.cast(librt.pointer(node), librt.POINTER(librt.union_tree))
Esempio n. 5
0
 def build_tree(self, subset=None):
     if subset and len(subset) == 1:
         return subset[0].build_tree()
     if not subset:
         subset = self.children
     node = cta.brlcad_new(librt.struct_tree_node)
     node.magic = librt.RT_TREE_MAGIC
     node.tb_op = self.op_code
     node.tb_regionp = None
     index = len(subset) / 2
     node.tb_left = self.build_tree(subset[:index])
     node.tb_right = self.build_tree(subset[index:])
     return librt.cast(librt.pointer(node), librt.POINTER(librt.union_tree))
Esempio n. 6
0
 def build_tree(self, subset=None):
     if subset and len(subset) == 1:
         return subset[0].build_tree()
     if not subset:
         subset = self.children
     node = cta.brlcad_new(librt.struct_tree_node)
     node.magic = librt.RT_TREE_MAGIC
     node.tb_op = self.op_code
     node.tb_regionp = None
     index = len(subset) / 2
     node.tb_left = self.build_tree(subset[:index])
     node.tb_right = self.build_tree(subset[index:])
     return librt.cast(librt.pointer(node), librt.POINTER(librt.union_tree))
Esempio n. 7
0
 def build_curves(self):
     ci = librt.struct_rt_curve()
     ci.count = len(self.curves)
     if ci.count:
         ci.reverse = (librt.c_int * ci.count)()
         ci.segment = (librt.genptr_t * ci.count)()
     else:
         ci.reverse = None
         ci.segment = None
     for i in range(0, ci.count):
         curve = self.curves[i]
         ci.reverse[i] = bool(curve.reverse)
         ci.segment[i] = librt.cast(librt.pointer(curve.build_segment()), librt.c_void_p)
     return ci, self.vertices
Esempio n. 8
0
 def build_curves(self):
     ci = librt.struct_rt_curve()
     ci.count = len(self.curves)
     if ci.count:
         ci.reverse = (librt.c_int * ci.count)()
         ci.segment = (librt.genptr_t * ci.count)()
     else:
         ci.reverse = None
         ci.segment = None
     for i in xrange(0, ci.count):
         curve = self.curves[i]
         ci.reverse[i] = bool(curve.reverse)
         ci.segment[i] = librt.cast(librt.pointer(curve.build_segment()), librt.c_void_p)
     return ci, self.vertices
Esempio n. 9
0
 def build_curves(self):
     ci = librt.struct_rt_curve()
     ci.count = len(self.curves)
     if ci.count:
         ci.reverse = (librt.c_int * ci.count)()
         ci.segment = (librt.c_void_p * ci.count)()
     else:
         ci.reverse = None
         ci.segment = None
     for i in xrange(0, ci.count):
         xx = Line(self, self.curves[i][1])
         ci.reverse[i] = bool(xx.reverse)
         ci.segment[i] = librt.cast(librt.pointer(xx.build_segment()),
                                    librt.c_void_p)
     return ci, self.vertices