from typing import Union as TUnion from typing import List import math import numpy as np from openscad_py.point import Point from openscad_py.object_ import Object class Cube(Object): """A 3D primitive, cube. Creates a cube in the first octant. When center is true, the cube is centered on the origin. See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language#cube """ def __init__(self, size: TUnion[list, Point], center: bool = False): self.size = Point.c(size) self.center = center def render(self): """Render the object into OpenSCAD code""" return f"cube(size={self.size.render()}, center={self._center()});"