Transformations and Bounds ========================== .. list-table:: :header-rows: 1 :widths: 5 20 75 :class: attributes - * Type * Attribute * Description - * :kat:type:`double[6]` * :kat:attr:`bound` * List of six doubles defining two points that define a bounding box. The order of the values is xmin, xmax, ymin, ymax, zmin, and zmax. Bounds are in local (object) space, not world space. - * :kat:type:`group` * :kat:attr:`xform.` * The ``xform`` attribute contains a sub-group for every transform in the order these transforms are applied. A sub-group with the name interactive contains the transform used for manipulation in the Viewer. An object can have only one interactive group. If another transform is added (using a :kat:node:`Transform3D` node for example), the previous interactive group automatically gets renamed. The group can be any arbitrary name, but uses the conventions: occurrence of ``interactive`` to receive transformations for the :kat:ui:`Viewer`, ``constraintN`` for any number of constraints, or ``groupN`` for the default group of regular transforms created by :kat:node:`Transform3D` nodes. This supports an arbitrary list of transform commands, similar to ``RiScale`` and ``RiTranslate`` in PRMan. The name prefix (``translate``, ``rotate``, ``scale``, ``matrix``, ``origin``) is how Katana determines how to use each ``xform`` child attribute it finds. .. note:: Transform commands can be grouped together in sub-groups, or they can be declared without sub-groups, for example ``xform.rotateX`` instead of ``xform..rotateX``. - * :kat:type:`double[3]` * :kat:attr:`xform..translate` * Translation on the xyz axes. - * :kat:type:`double[4]` * :kat:attr:`xform..rotateX` * The first number indicates the angle of rotation. The remaining three define the axis of rotation (1.0/0.0/0.0 for X axis). - * :kat:type:`double[4]` * :kat:attr:`xform..rotateY` * The first number indicates the angle of rotation. The remaining three define the axis of rotation (0.0/1.0/0.0 for Y axis). - * :kat:type:`double[4]` * :kat:attr:`xform..rotateZ` * The first number indicates the angle of rotation. The remaining three define the axis of rotation (0.0/0.0/1.0 for Z axis). - * :kat:type:`double[3]` * :kat:attr:`xform..scale` * Scale on the xyz axes. - * :kat:type:`double[16]` * :kat:attr:`xform..matrix` * A 4x4 homogenous matrix transformation. - * :kat:type:`double` * :kat:attr:`xform..origin` * Resets the transformation to identity, ignoring everything prior to it in the transformation stack. This is synonymous with the ``RiIdentity()`` attribute in the RenderMan specification. .. note:: The presence of this attribute is all that is required to set the transform to identity. The value is ignored but the type must be double.