Attribute¶
In Hakowan, an attribute specifies a specific "column" of the data (i.e. mesh attribute) that will be used to encode various visual channels and textures. Each attribute consists of a name and a scale. The name is the name of the mesh attribute used as data, and the scale defines a "column"-specific transformation applied to the attribute before mapping to visual channels.
Creating Attributes¶
The hkw.attribute() function is a convenient alias for creating Attribute objects:
# To specify an attribute from name alone.
# By default, scale is identity.
attr = hkw.attribute(name="normal")
# To specify an attribute from both name and scale.
attr = hkw.attribute(name="normal", scale=hkw.scale.Uniform(factor=2))
# hkw.attribute() is equivalent to hkw.scale.Attribute()
attr = hkw.scale.Attribute(name="normal", scale=hkw.scale.Uniform(factor=2))
Attribute-Like Objects¶
Many Hakowan functions accept "attribute-like" objects, which can be either:
- A string: Automatically converted to an
Attributewith the given name - An
Attributeobject: Used directly
This allows for convenient shorthand notation: