8.1 Introduction
All the objects created so far had a definitive nature: the parameters used to build them univocally define the shape of those objects. All we can do is invoke the functions that create these objects with different parameters to build different objects.
Although that way of creating objects is powerful enough, there are alternatives potentially more practical that are based in the modification of previously created objects. That modification is performed through the operations of translation, rotation, reflection and scale.
It is important to note that these operations do not create new objects; they only affect objects to which they are applied. For example, after applying a translation to an object, this object simply changes its position.
However, sometimes we want to apply transformations that produce new objects as a result. For example, we might want to produce a translation of an object, but leaving the original object in its original place. One way of doing this is to apply the translation operation, not to the original object, but to a copy of it. For this purpose, Khepri provides the copy_shape operation that receives an object as an argument and returns a copy of that object, situated in the exact same place as the original. Naturally, in the CAD tool, two equal overlapping objects will appear. Typically, the copied object will subsequently be transformed, for example, by moving it to another location.
In the next sections, we will discuss the transformation operations available in Khepri.