Challenge: Write code that represents 3D rectangular cuboids in space.
A cuboid has an origin (z,y,x) and length, width, and height. A cuboid can be created at a certain origin and with a certain length, width, and height.
A cuboid also has a list of 8 vertices that represent it.
A cuboid should be able to move to a different origin.
A cuboid should be able to rotate (90 degrees) about its origin.
A cuboid exists within finite rectangular boundaries to which it belongs. A cuboid cannot exist outside of those boundaries, and it cannot overlap with another cuboid within those boundaries. As an example, if a cuboid (its origin) were walled against the corner of its boundaries (the boundaries' origin), the cuboid would need to shift before being able to rotate.