def c_repr(self, name, parent_name, offset, resources): if 'material' not in self.yaml_obj: self.yaml_obj['material'] = {} if 'transform' not in self.yaml_obj: self.yaml_obj['transform'] = [] material = Material.from_yaml(self.yaml_obj['material']) transform = Transform.from_yaml(self.yaml_obj['transform']) buf = """ {1} {2} Point shape_{0}_p1 = point({3:.10f}, {4:.10f}, {5:.10f}); Point shape_{0}_p2 = point({6:.10f}, {7:.10f}, {8:.10f}); Point shape_{0}_p3 = point({9:.10f}, {10:.10f}, {11:.10f}); Shape shape_{0} = {12} + {13}; triangle(shape_{0}, shape_{0}_p1->arr, shape_{0}_p2->arr, shape_{0}_p3->arr); shape_set_material(shape_{0}, material_{0}); shape_set_transform(shape_{0}, transform_{0}); point_free(shape_{0}_p3); point_free(shape_{0}_p2); point_free(shape_{0}_p1); """.format(name, material.c_repr(name, resources), transform.c_repr(name), self.yaml_obj['p1'][0], self.yaml_obj['p1'][1], self.yaml_obj['p1'][2], self.yaml_obj['p2'][0], self.yaml_obj['p2'][1], self.yaml_obj['p2'][2], self.yaml_obj['p3'][0], self.yaml_obj['p3'][1], self.yaml_obj['p3'][2], parent_name, offset) return buf
def c_repr(self, name, parent_name, offset, resources): material = Material.from_yaml(self.yaml_obj['material']) transform = Transform.from_yaml(self.yaml_obj['transform']) buf = """ {2} {3} Shape shape_{0} = {1} + {4}; cylinder(shape_{0}); shape_set_material(shape_{0}, material_{0}); shape_set_transform(shape_{0}, transform_{0}); """.format(name, parent_name, material.c_repr(name, resources), transform.c_repr(name), offset) if 'min' in self.yaml_obj: buf += " shape_{0}->fields.cylinder.minimum = {1:.10f};\n".format( name, self.yaml_obj['min']) if 'max' in self.yaml_obj: buf += " shape_{0}->fields.cylinder.maximum = {1:.10f};\n".format( name, self.yaml_obj['max']) if 'closed' in self.yaml_obj: bool_str = 'false' if self.yaml_obj['closed']: bool_str = 'true' buf += " shape_{0}->fields.cylinder.closed = {1};\n".format( name, bool_str) return buf
def c_repr(self, name, parent_name, offset, resources): material = Material.from_yaml(self.yaml_obj['material']) transform = Transform.from_yaml(self.yaml_obj['transform']) buf = """ {2} {3} Shape shape_{0} = {1} + {4}; cube(shape_{0}); shape_set_material(shape_{0}, material_{0}); shape_set_transform(shape_{0}, transform_{0}); """.format(name, parent_name, material.c_repr(name, resources), transform.c_repr(name), offset) return buf
def c_repr(self, name, parent_name, offset, resources): material = Material.from_yaml(self.yaml_obj['material']) transform = Transform.from_yaml(self.yaml_obj['transform']) buf = """ {2} {3} Shape shape_{0} = {1} + {4}; toroid(shape_{0}); shape_{0}->fields.toroid.r1 = {5}; shape_{0}->fields.toroid.r2 = {6}; shape_set_material(shape_{0}, material_{0}); shape_set_transform(shape_{0}, transform_{0}); """.format(name, parent_name, material.c_repr(name, resources), transform.c_repr(name), offset, self.yaml_obj['r1'], self.yaml_obj['r2']) return buf
def c_repr(self, name, parent_name, offset, resources): if 'material' not in self.yaml_obj: self.yaml_obj['material'] = {} if 'transform' not in self.yaml_obj: self.yaml_obj['transform'] = [] material = Material.from_yaml(self.yaml_obj['material']) transform = Transform.from_yaml(self.yaml_obj['transform']) buf = """ {1} {2} Point shape_{0}_p1 = point({3:.10f}, {4:.10f}, {5:.10f}); Point shape_{0}_p2 = point({6:.10f}, {7:.10f}, {8:.10f}); Point shape_{0}_p3 = point({9:.10f}, {10:.10f}, {11:.10f}); Vector shape_{0}_n1 = vector({12:.10f}, {13:.10f}, {14:.10f}); Vector shape_{0}_n2 = vector({15:.10f}, {16:.10f}, {17:.10f}); Vector shape_{0}_n3 = vector({18:.10f}, {19:.10f}, {20:.10f}); Shape shape_{0} = {21} + {22}; smooth_triangle(shape_{0}, shape_{0}_p1->arr, shape_{0}_p2->arr, shape_{0}_p3->arr, shape_{0}_n1->arr, shape_{0}_n2->arr, shape_{0}_n3->arr); shape_set_material(shape_{0}, material_{0}); shape_set_transform(shape_{0}, transform_{0}); vector_free(shape_{0}_n3); vector_free(shape_{0}_n2); vector_free(shape_{0}_n1); point_free(shape_{0}_p3); point_free(shape_{0}_p2); point_free(shape_{0}_p1); """.format(name, material.c_repr(name, resources), transform.c_repr(name), self.yaml_obj['p1'][0], self.yaml_obj['p1'][1], self.yaml_obj['p1'][2], self.yaml_obj['p2'][0], self.yaml_obj['p2'][1], self.yaml_obj['p2'][2], self.yaml_obj['p3'][0], self.yaml_obj['p3'][1], self.yaml_obj['p3'][2], self.yaml_obj['n1'][0], self.yaml_obj['n1'][1], self.yaml_obj['n1'][2], self.yaml_obj['n2'][0], self.yaml_obj['n2'][1], self.yaml_obj['n2'][2], self.yaml_obj['n3'][0], self.yaml_obj['n3'][1], self.yaml_obj['n3'][2], parent_name, offset) return buf