summaryrefslogtreecommitdiffstats
path: root/README
blob: 8b891d6f8a8ff19c75ff58e0e5437efc2b3be34c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
This is Dimension, a project to create a GPLed, POV-Ray compatible ray tracer.
It is currently stable but lacking in features, to the point of unusability.
But if you want to try it anyway, see the INSTALL file for how to compile and
run it.  For a quick demo, run ./autogen.sh && ./configure && make check, and
look at tests/dimension/demo.{pov,png}.

Documentation for the `dimension' program will eventually be in the doc/
directory.  (Out of date) API documentation for the ray tracing library
libdimension is also in doc/.

Source-level documentation is found, well, in the source code.  To know where
to look, refer to this mapping:

Client (GPLv3):
===============

ENTRY POINT:         dimension/main.c
Tokenizing:          dimension/lexer.l
Language directives: dimension/tokenize.c
Parsing:             dimension/common.rules
Extra parsing stuff: dimension/{common,grammar,directives}.*
Tests:               tests/dimension/*.{pov,sh}

Library (LGPLv3):
=================

API:                   libdimension/dimension.h, libdimension/dimension/*.h
                       (Implementations for libdimension/dimension/$file.h
                       are generally at libdimension/$file.c)
Ray tracing algorithm: libdimension/raytrace.c
Bounding hierarchy:    libdimension/prtree.{c,h}
Library internals:     libdimension/dimension-impl.h and its #includes
Tests:                 tests/libdimension/*.{c,cpp}
Benchmarks:            bench/libdimension/*.c