Muitos objetos OOGL aceitam formatos o formato de arquivo binário bem como o formato de arquivo ASCII.
Esses arquivos começam com a indicação usual (e.g. CQUAD
)
seguida pela palavra BINARY
.
Dados binários iniciam-se no byte imediatamente seguinte ao primeiro caractere de nova linha após
a palavra BINARY
. Espaços em branco e um simples comentário podem atrapalhar, e.g.
OFF BINARY # binary-format "OFF" data follows
Dados binários compreendem inteiros de 32 bits e os inteiros em ponto flutuante de 32 bits conforme definido pela IEEE (IEEE Standard for Binary Floating-Point Arithmetic (ANSI/IEEE Std 754-1985 - Institute of Electrical and Electronics Engineers), ambos os formatos seguem à forma de ordenação "big-endian" (i.e., com o byte mais significativo em primeiro lugar). Esse é o formato nativo para tipos de dado int e tipos de dado float em sistemas do tipo Sun-3, Sun-4, e Irises, além de muitos outros sistemas.
Formatos de dados binários assemelham-se aos formatos correspondentes em ASCII, com tipos de dado "int"
e tipos de dado "float" nos lugares que você está acostumado a encontrar. Existe algumas excessões
todavia, especificamente dos formatos d arquivo QUAD
, OFF
e
COMMENT
. Detalhes são fornecidos no arquivo individual das descrições do
formato específico. Veja em QUAD, OFF, e em See COMMENT.
Objetos OOGL binários podem ser livremente misturados em fluxos de objetos ASCII:
LIST { = MESH BINARY ... dados binários de uma malha aqui ... } { = QUAD 1 0 0 0 0 1 0 1 0 0 1 0 }
Note que dados ASCII continuam seguindo imediatamente o último byte dos dados binários.
Naturalmente, é impossível incluir comentários dentro de um objeto em formato binário OOGL, todavia comentários podem aparecer no cabeçalho antes do início dos dados binários.