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
INM

Daimlerstrasse 32, 60314 Frankfurt am Main, Deutschland. Tel +49- (0)69-941963-0, Tel-Gerd: +49- (0)69-941963-10