Home
- POV-Ray Tutorial
- POV-Ray Details
- Über Variable
- Ein kurzes
Include File Tutorial
Wozu Include Files?
Eigene Include Files
und wie aufrufen.
Schreibweisen, ".inc"
"#local / #declare"
Wo speichern?
>Design von Include Files
Eigene Elemente
zum 'Insert Menu'
|
Die Gestaltung von eigenen Include-Dateien.
Für ein 'gutes Design' von Include-Dateien schaue man sich die Art wie die POV-Ray-Standard-Include-Dateien
gestaltet wurden näher an:
// POV-Ray 3.6/3.7 sample include file "NAME.inc"
// author, date:
//---------------------------------------------------------
#ifndef( NAME_Inc_Temp)
#declare NAME_Inc_Temp = version;
#version 3.6;
//---------------------------------------------------------
// .... your include file content
//---------------------------------------------------------
#version NAME_Inc_Temp;
#end
//------------------------------------- end of include file |
Dies Methode garantiert 2 Dinge auf einmal:
1. Es vermeidet unnötiges erneutes Lesen von schon gelesen Include-Dateien.
2. Es ändert die Arbeitsweise von POV-Ray in den Modus '#version 3.6;' während des Parsens (lesen und umsetzen in rechenbaren Programmcode)
des Inhaltes der Include-Datei und ein Zurückwechseln in den Versionsmodus der Szenendatei von dem aus die Include-Datei
aufgerufen wurde.
Für eine Include-Datei namens 'NAME.inc' deklariert man eine globale Variable namens 'NAME_Inc_Temp'
welche die POV-Ray-Versionsnummer enthält, welche die aufrufende POV-Ray-Szenendatei gerade verwendet.
Wenn diese Variable bereits deklariert ist, dann wurde die Include-Datei bereits irgendwann vorher
gelesen und wird dann nicht nochmal gelesen sondern übersprungen.
Auf diese Art und Weise wird die unnötige nochmalige Aktion des Parsens vermieden.
Diese Versionsnummer kann dann am Ende wieder zurückgesetzt werden.
POV-Ray kann vom Modus der gegenwärtigen Version (wie z.B. 3.6 oder 3.7) für bestimmte Textabschnitte
in den Modus einer früheren Version wechseln: '#version 3.6;' und dann durch '#version 3.7;' wieder zurückwechseln.
Dies erlaubt einige (wenn auch nicht eine totale) Rückwärts-Kompatiblität zum Syntax von älteren Versionen.
Hier wird die bedingte Anweisung '#ifndef (VARIABLE) /*Lies die Include-Datei im Modus ... */ #end'
verwendet um die gegenwärtige Versionsnummer zu speichern, für den Inhalt solange zu 3.6 zu wechseln und am Ende die
gegenwärtige Versionsnummer wieder zurückzuspeichern.
Wie man sicherstellt, dass alle benötigten Standard-Include-Dateien geladeen werden:
Eine weitere gute Idee ist es sicherzustellen, dass alle benötigten Standard-Include-Dateien , welche
in dieser Include-Datei verwendet werden
(z.B. color.inc, textures.inc, shapes.inc, shapes.inc etc.), auch geladen werden, auch wenn die aufrufende Szenendatei
diese nicht lädt (roter Teil):
// POV-Ray 3.6/3.7 sample include file "NAME.inc"
// author, date:
// What's that: ...
//---------------------------------------------------------
#ifndef( NAME_Inc_Temp)
#declare NAME_Inc_Temp = version;
#version 3.6;
//---------------------------------------------------------
#ifndef( Colors_Inc_Temp)
#include "colors.inc"
#end
#ifndef( Textures_Inc_Temp)
#include "textures.inc"
#end
#ifndef( Shapes_Inc_Temp)
#include "shapes.inc"
#end
#ifndef( Shapes2_Inc_Temp)
#include "shapes2.inc"
#end
//---------------------------------------------------------
// .... your include file content
//---------------------------------------------------------
#version NAME_Inc_Temp;
#end
//------------------------------------- end of include file |
Kommentare mit Inhaltsbeschreibung und Anwendungsbeispiel:
Es ist ferner empfehlenswert einige Kommentarzeilen mit einer guten Beschreibung darüber, was diese Include-Datei
macht anzufügen. Ebenso sollte in Kommentarklammern /* ... */ ein Anwendungsbeispiel angefügt werden, das
zeigt, wie man diese Include-Datei aufrufen kann!
....
|
|