Type-Files
AUTHOR: Dr. Gerd Döben-Henisch/ Tian Schellenberg
FIRST DATE: January 15, 1995
DATE of LAST CHANGE: February 15, 1996
To describe the type of an object -static as well as movable-, one uses an Object Editor to edit files with the suffix 'type'. A type-file contains all information which is common to objects including the geometrical data.
type --> TYPE '<' type_head body_number type_body '>'
type_head --> type_name classification gender global_selector collision_radius sensory_envelope
- sensory_envelope -->
- smell smell_max smell_threshold taste taste_max taste_threshold temperature temperature_max temperature_threshold touch touch_threshold texture color noise_number noise_argument noise_threshold
- noise_argument -->
- noise_condition noise_value noise_max noise_quality
|
noise_argument noise_condition noise_value noise_max noise_quality
- type_body -->
- body_element
|
type_body body_element
- body_element -->
- body_element_name sensory_envelope geo_parameters geom
- geo_parameters --->
- father_name link_pos_father link_pos_current link_rotation rotation_freedom scaling small_factor
- geom --->
- off_filedescriptor
|
off_data
- off_filedescriptor -->
- 'geom' '<' filename'.off'
- off_data -->
- OFF'<'off_argument'>'
- filename'.off' -->
- This is a filename -eventually a whole path- with the suffix 'off'. It is assumed that the content of this file is an off-file
- body_number, collision_radius -->
- LONG
- type_name, classification -->
- ALPHANUM
- gender -->
- 'm' | 'f' | 'n'
- global_selector -->
- '0' | '1'
- smell -->
- gender_par age social_par fear_par
- gender_par, age, social_par, fear_par -->
- LONG
- smell_max -->
- LONG
- smell_threshold -->
- LONG
- taste_max, taste_threshold, touch_threshold -->
- LONG
- temperature, temperature_max, temperature_threshold -->
- LONG
- noise_number, noise_max, noise_threshold -->
- LONG
- noise_condition, noise_value, noise_quality -->
- ALPHANUM
- taste, touch, touch_threshold -->
- ALPHANUM
- texture, color -->
- ALPHANUM
- body_element_name, father_name -->
- ALPHANUM
- link_pos_father, link_pos_current -->
- x y z
- x, y, z -->
- LONG
- link_rotation -->
- x-angle y-angle z-angle
- rotation_freedom -->
- x1-angle y1-angle z1-angle x2-angle y2-angle z2-angle
- x1-angle, x2-angle, dx -->
- FLOAT
- y1-angle, y2-angle, dy -->
- FLOAT
- z1-angle, z2-angle, dz-->
- FLOAT
- scaling -->
- dx dy dz
- small_factor -->
- '0' | '1'
A 'type' has a 'type_head' with general information and 'body_number'-many 'type_body'-elements.
'type_name' gives the name of the type followed by the 'classification' (static, dynamic) and the 'gender'. 'global_selector' is a boolean telling that only the general values of the head are valid (='0') or that every body-element has individual values (='1'). The 'sensory_envelope' gives some values which characterize the sensory-appearance of this type for sensory-evaluation.
The 'smell' is a complex value which allows the encoding of different emotional components into the smell. 'smell_max' tells the maximal value with regard to the overall intensity. If the type has sensory-organs to receive sensory data, then tells the value 'smell_threshold' from which value upwards the type can detect a signal. 'taste', 'taste_max', 'taste_threshold', 'temperature', 'temperature_max', and 'temperature_threshold' function analogue to the smell values; but they are simpler.
It is assumed that a 'noise_argument' contains 'noise_number'-many sequences of 4-tupels, each containing 'noise_condition' (a descriptor to designate a certain circumstance which triggers this noise), 'noise_value' (the material of the noise), 'noise_max' (maximal loudness of the noise), 'noise_quality' (e.g. a special instrument), and 'noise_threshold' (the minimal loudness which is necessary that this type can detect noise data).
A 'body_element' contains non-geometric information and geometric information. The non-geometric information are including the 'body_element_name' (this allows the setup of implicit trees), the 'sensory_envelope' (see above), and the parameters 'touch' (describing a touch-value) and 'touch_threshold' (the minimum pressure necessary to get a touch datum). 'texture' gives the name of some texture to be projected onto the surface of the object.
The 'geo_parameters' are giving information about links between two body-elements: 'father_name' gives the name of the body_element, which is the father to the actual body_element, and 'link_pos_father' is a point in the father-element and 'link_pos_current' gives a point in the child of the father. Father-point and Child-point are thus constituting a link. 'rotation' tells how this body-element has to be rotated. 'rotation_freedom' gives for every plane a line segment in which a link can be rotated. 'scaling' gives for every dimension a scaling factor which is either a positiv float or, depending on the 'small_factor', a fraction with the scaling factor as denominator.
Comments are welcomed to kip-ml@inm.de
Daimlerstrasse 32, 60314 Frankfurt am Main, Deutschland. Tel +49- (0)69-941963-0, Tel-Gerd: +49- (0)69-941963-10