Es gibt zwei Arten von Definitionsbereichsangaben:
Die Angabe eines Definitionsbereichs besteht aus zwei Teilen und .
Der erste Teil des Definitionsbereichseintrags ist der Name des Elements, für das der Definitionsbereich gilt. Elemente, für die Definitionsbereiche festgelegt werden können, sind in Tabelle 5 auf Seite zu sehen.
Dort sind auch für die Standarddefinitionsbereiche der Elemente eingetragen. Von den angegebenen Standarddefinitionsbereich können die skalaren Unterdefinitionsbereiche geändert werden, es sollten aber nicht die Anzahl der skalaren Unterdefinitionsbereiche geändert werden (wenn nicht anders angegeben, wie z. B. für Positionsvektoren ). Wenn der Standarddefinitionsbereich eines Elements aus der Menge der skalare Werte kommt (z. B. ), sollte für das Element niemals ein Vektordefinitionsbereich gesetzt werden. Andererseits sollte für Element, deren Standarddefinitionsbereiche für Vektoren mit -Elementen ist, immer nur Definitionsbereiche für Vektoren mit -Elementen gesetzt werden. Auf diese Weise können beispielsweise Eigenschaften immer gleich interpretiert werden. Für Elemente (z. B. für eine Eigenschaft), welche nicht in Tabelle 5 aufgeführt werden, können die Definitionsbereiche natürlich frei eingestellt werden.
Der zweite Teil des Definitionsbereichseintrags ist der Definitionsbereich , der für das Element gelten soll. Eine Auflistung der möglichen Definitionsbereiche ist in Tabelle 6 auf Seite zu sehen.
Werte außerhalb ihres Definitionsbereichs werden auf Werte im Definitionsbereich gerundet. Bei Zahlen (Skalaren) ist der gerundete Wert eines nicht gerundeten Werts der Wert mit dem minimalen Abstand zum nicht gerundeten Wert. Wenn es davon mehrere gibt, wird der kleinste Wert von ihnen als gerundeter Wert genommen.
Das Runden bei Vektoren geschieht über deren Abstand. Der Abstand zwischen zwei Vektoren ist die Summe der Abstände ihrer Elemente. Der gerundete Vektor eines Definitionsbereichs ist der Vektor im Definitionsbereichs mit dem kleinsten Abstand zum ungerundeten Vektor. Haben mehrere Vektoren einen minimalen Abstand zu dem ungerundeten Vektor, so ist der gerundete Vektor der, dessen erste -Elemente einen minimalen Abstand zum ungerundeten Vektor haben. Wobei , von der Anzahl der Elemente im ungerundeten Vektor ausgehend, solange um 1 verringert wird, bis ein Vektor gefunden wird oder 1 erreicht wird. Sollten auch dabei mehrere Vektoren übrig bleiben, ist der gerundeten Vektor der, dessen 'tes Element kleiner ist als das 'te Element der anderen in Betracht kommenden Vektoren, wobei von 1 auf die Anzahl der Elemente hochgezählt wird.
Hat der zu rundende Vektor zuviele Elemente, wird die Anzahl seiner Elemente auf die richtige Anzahl reduziert. Sollte der zu rundende Vektor zuwenig Elemente haben, werden die fehlenden Elemente erzeugt und mit dem Nullwert des jeweiligen Elementedefinitionsbereichs belegt.
Jeder Definitionsbereich hat einen Nullwert. Der Nullwert eines skalaren Definitionsbereichs (ein Definitionsbereich für Zahlen), ist der Wert, den gerundet auf einen Wert im Definitionsbereich ergibt. Bei Vektoren ist der Nullvektor der Vektor, der entsteht, wenn ein Vektor, dessen Elemente alle sind, auf einen Vektor im Definitionsbereich gerundet wird.
Jeder skalare Definitionsbereich hat einen maximalen Wert und einen minimalen Wert. Der maximale Wert ist der größte Wert im Definitionsbereich, und der minimale Wert ist der kleinste Wert.
Die Definitionsbereiche, welche nur Ganzzahlen enthalten, haben einen Skalierungsfaktor , der für das entsprechende Element gilt. Dieser Faktor , ist eine Gleitkommazahl, mit dem die Werte des unskalierten Definitionsbereichs multipliziert werden, um den skalierten Definitionsbereich zu erhalten. Als Standard wird der Skalierungsfaktor angenommen. Der Skalierungsfaktor ist beispielsweise nützlich, wenn die horizontale Dimension nicht in Meter , sondern Millimetern gemessen werden soll oder wenn die Temperatur nicht auf Grad Kelvin, sondern auf Zehntel Grad Kelvin genau angegeben ist.
In der nachfolgenden Notation wird der Skalierungsfaktor dadurch angegeben, dass der Definitionsbereich mit ihm multipliziert "" wird. Ein Skalierungsfaktor von wird dabei nicht angegeben. Beispielsweise bedeutet " ", dass der 16-Bit-Ganzzahl Definitionsbereich mit dem Skalierungsfaktor skaliert wird. Dagegen ist bei nur "" der Skalierungsfaktor , d. h. der Definitionsbereich wird nicht skaliert.
Beispiel: Der Definitionsbereich sind die natürlichen Zahlen von bis (also 4 Werte) mit den Skalierungsfaktor . Möglich Werte sind: ; ; ; . Ist nun im Element zum Definitionsbereich eine Zahl, die unskaliert bedeuten würde, bedeutet sie mit Skalierung .
Name | Beschreibung | Standarddefinitionsbereich |
dim( , , , ) | Dies ist der Definitionsbereich für Positionsvektoren. Dabei gibt die Anzahl der Dimensionen bzw. Elemente eines Positionsvektors an. Der Wert ist jeweils eine Ganzzahl, wohin (bzw. in welche Richtung) die Dimension gemappt wird (siehe Tabelle 7 auf Seite für mögliche Werte. Dabei werden dort die Zahlenwerte [in der Spalte "Wert"] angegeben). Der Definitionsbereich ist ein Vektor mit -Zahlen (bzw. Skalaren). Der Standardwert für die Anzahl der Dimensionen ist . Dieser wird angenommen, wenn kein Definitionsbereich für Positionsvektoren angegeben wird. Dann (Standardfall) geht die erste Dimension in Richtung horizontal und die zweite in Richtung vertikal. Unabhängig davon überschreiben Richtungsangaben in den der Definitionsbereichen für Elemente (auch Ererbte) immer die der Definitionsbereiche für Werte . Im Normalfall sollten allerdings die Richtungsangaben in allen Positionsvektordefinitionsbereichen gleich sein. | , , |
subfunction | Werte, die in einer Unterfunktion auftauchen können | |
area | Dies ist der Definitionsbereich für Bereichselemente (siehe Abschnitt 12.6 auf Seite ). Der zugehörige Definitionsbereich ist ein Vektordefinitionsbereich mit 2 Elementen /Unterdefinitionsbereichen. Das erste Element bzw. der erste Unterdefinitionsbereich dient für die Anzahl () der Unterbereiche, er ist ein Definitionsbereich aus den natürlichen Zahlen. Das zweite und letzte Element ist der Definitionsbereich für die Vektoren für die Unterbereiche () und ist ein Definitionsbereich für Vektoren dessen zwei Elemente ganze Zahlen sind. | , |
inVar(i) | Definitionsbereich der i'ten Eingabevariable () | |
set | Nullter Definitionsbereich für set-Elemente | , |
set(i) | i'ter Definitionsbereich für set-Elemente | , |
matrix | nullter Definitionsbereich für Matrixelemente | , |
matrix(i) | i'ter Definitionsbereich für Matrixelemente | , |
externSubobject( Number ) | Definitionsbereich für das externe Unterobjekt mit angegebenen der Nummer (siehe Abschnitt 12.10 auf Seite ) des Multimediaobjekts. Mit Werten aus diesem Definitionsbereich können die Ausgabewerte des externe Unterobjekts mit der angegebenen der Nummer belegt werden. Für jeden externSubobjectOutput Definitionsbereich kann es im eigentlichen Haupt-Fib-Objekt (externe) Unterobjekte mit der angebenen Nummer geben. Für jedes externe Unterobjekt (jede Nummer) im Haupt-Fib-Objekt sollte ein externSubobjectOutput Definitionsbereich mit entsprechender Nummer erstellt werden. Zumindest aber für das (externe) Unterobjekte mit der höchsten Nummer muss ein externSubobjectOutput Definitionsbereich erstellt werden, damit bekannt ist wieviele (externe) Unterobjekt im Haupt-Fib-Objekt verwendet werden. Die externSubobjectOutput Definitionsbereiche eines root-Elements werden nicht an seine Unter-root-Elemente weitervererbt. | |
property( Name) | Definitionsbereich eines Eigenschaftselements mit dem gegebenen ; siehe Tabelle 2 auf Seite für mögliche Namen () | abhängig vom Typ () der Eigenschaft |
property( whatever ) | Die Eigenschaften dieses Punktes sind egal. Welche Eigenschaften diesem Punkt auch immer zugeordnet werden, sie sind richtig. | |
property( colorRGB) | Definitionsbereich für die RGB-Farben | |
property( colorGrayscale) | Definitionsbereich für die Schwarz-Weiß-Farbe | , |
property( layer) | Anzahl der möglichen Ebenen | , |
property( transparency) | Durchsichtigkeitsanteil der Punkte | , |
property( persistent) | Diese Eigenschaft ist nur für einen Zeitraum sinnvoll. Raumpunkte mit dieser Eigenschaft verlieren ihre anderen Eigenschaften nur, wenn diese durch jeweils eine Eigenschaft vom gleichen Typ überschrieben wird. Dies gilt natürlich nur, solange der jeweilige Punkt die Eigenschaft hat. Sinnvoll ist dies, wenn beispielsweise in einem Film Objekte so lange sichbar sein sollen, wie sie nicht von anderen Objekten überschrieben werden. Dann kann der gesamte Hintergrund die Eigenschaft bekommen. Wird dann ein Objekt zu einer Zeit definiert und angezeigt, bleibt es in Zukunft so lange bestehen, bis es überschrieben wird. (Die möglichen Werte sind für persistent und für nicht persistent.) | |
property( sound ) | ein Ton; Die Werte sind: 1. Frequenz in Hertz (), 2. Schalldruck in Pascal (), 3. Phasenverschiebung in Bogenmaß 4. Dauer in Sekunden. Ein Ton wirkt additiv mit anderen Tönen. | , , , , |
property( soundPolarized) | ein Ton; Die Werte sind: 1. Frequenz in Hertz (), 2. Schalldruck in Pascal (), 3. Phasenverschiebung in Bogenmaß, 4. Dauer in Sekunden, r = bis ( ) Polarisierungsanteil (als Winkel in Bogenmaß) in der Dimensionsebene, welche von den jeweiligen Dimensionen und aufgespannt wird. ( ist die Anzahl der Dimensionen.) Die Winkelangabe erfolgt von der Achse in positiver Richtung. Ein Ton wirkt additiv mit anderen Tönen. | , , , , |
property( soundAmplitude) | die Amplitude eines Tons; Die Werte sind: 1. Schalldruck in Pascal (), 2. Phasenverschiebung in Bogenmaß 3. Dauer in Sekunden. Ein Ton wirkt additiv mit anderen Tönen. Mit dieser Eigenschaft können Töne über ihre Amplituden mit einer bestimmten Abtastrate aufgebaut werden, wie z. B. im WAVE-Dateiformat. | , , , |
property( soundBarrier) | Geschwindigkeit des Schalls in Meter pro Sekunde (); Damit können Objekte die Akustik verändern. | , |
property( soundReflected) | Anteil des vom Objekt zurückgeworfener Schalls; Diese Eigenschaft gilt für die Oberfläche/den Rand des Objekts und nicht für alle seine einzelnen Punkte. | , |
property( soundDamping) | Anteil des von einem Punkt geschluckten Schalls | , |
property( kelvin) | Temperatur in Kelvin | , |
property( electroMagnetic) | eine elektromagnetische Strahlungsquelle; Die Werte sind: 1. Frequenz in Hertz (), 2. Amplitude in Candela cd, 3. Phasenverschiebung in Bogenmaß, 4. Dauer in Sekunden, r = bis ( ), r = bis ( ) Polarisierungsanteil (als Winkel in Bogenmaß) in der Dimensionsebene, welche von den jeweiligen Dimensionen und aufgespannt wird ( ist die Anzahl der Dimensionen). Die Winkelangabe erfolgt von der Achse in positiver Richtung. Ein elektromagnetische Welle wirkt additiv mit anderen elektromagnetische Wellen. | , , , , |
property( periodBegin) | Zeit in Sekunden () ab dem Anfang des Gesamt-Multimediaobjekts, ab dem das Objekt dargestellt werden soll. Diese Eigenschaft sollte möglichst nahe an der Wurzel des Multimediaobjekt stehen. Mit der Eigenschaft kann beim Abspielen eines Multimediaobjekts bestimmt werden: in welcher Reihenfolge Teilobjekte auszuwerten sind oder/und bis wann ein Teilobjekt auszuwerten ist. | , |
property( periodEnd) | Zeit in Sekunden () ab dem Anfang des Gesamt-Multimediaobjekts, bis zu dem das Objekt dargestellt werden soll. Diese Eigenschaft sollte möglichst nahe an der Wurzel des Multimediaobjekts stehen und einer "periodBegin"-Eigenschaft folgen. Mit der Eigenschaft kann beim Abspielen eines Multimediaobjekts bestimmt werden: in welcher Reihenfolge Teilobjekte auszuwerten sind oder/und bis wann ein Teilobjekt vollständig auszuwerten ist. | , |
property( evaluationTime) | Zeit die zum Auswerten eines Multimediaobjekts benötigt wird, bezogen auf ein Multimediaobjekt, welches nur einen Punkt enthält (die Angabe ist als vielfaches der Auswertungszeit für einen Punkt zu sehen). Mit dieser Eigenschaft kann zusammen mit den Eigenschaften "periodBegin" und "periodEnd" beim Abspielen eines Multimediaobjekts eine sinnvolle Auswertungsreihenfolge und die sinnvollen Auswertungszeitpunkte der Teilobjekte bestimmt werden. Diese Eigenschaft sollte direkt nach (bzw. unterhalb /innerhalb) "periodBegin" und "periodEnd" stehen. | , |
property( checksum) | Es wird ein Checksumme beim komprimierten Abspeichern für das enthaltende Objekt generiert. Dabei gibt der erste Parameter die Art der Checksumme an. Der zweite Parameter gibt an, alle wieviel Bits eine Checksumme generiert werden soll, und der dritte Parameter, wieviel Bits die Checksumme haben soll. Der letzte Block der Checksummenblöcke wird nach dem Laden mit 0 aufgefüllt, so dass auch er die gewünschte Länge hat. Sind genug Bits zur Korrektur eines Fehlers vorhanden, wird eine Korrektur eines Fehlers beim Laden versucht (siehe Abschnitt 25.3.3 auf Seite ). | , , , |
property( boundSize) | Für das enthaltende Objekt wird beim komprimierten Abspeichern die Grenze/Größe in Bits vermerkt. Wenn beim Laden dann ein Fehler im Fib-Objekt auftritt, können die nachfolgenden Fib-Elemente immer noch geladen werden, da deren Anfang bekannt ist (siehe Abschnitt 25.3.3 auf Seite ). | |