diff -Naur pov-bind-0.11/src/povray.ml pov-bind-0.11_/src/povray.ml --- pov-bind-0.11/src/povray.ml +++ pov-bind-0.11_/src/povray.ml @@ -546,14 +546,62 @@ end +module Metal = struct +(* Metal *) +type metals = + | T_Brass_1A | T_Brass_1B | T_Brass_1C | T_Brass_1D | T_Brass_1E + | T_Brass_2A | T_Brass_2B | T_Brass_2C | T_Brass_2D | T_Brass_2E + | T_Brass_3A | T_Brass_3B | T_Brass_3C | T_Brass_3D | T_Brass_3E + | T_Brass_4A | T_Brass_4B | T_Brass_4C | T_Brass_4D | T_Brass_4E + | T_Brass_5A | T_Brass_5B | T_Brass_5C | T_Brass_5D | T_Brass_5E + (* Coppers & Bronzes *) + | T_Copper_1A | T_Copper_1B | T_Copper_1C | T_Copper_1D | T_Copper_1E + | T_Copper_2A | T_Copper_2B | T_Copper_2C | T_Copper_2D | T_Copper_2E + | T_Copper_3A | T_Copper_3B | T_Copper_3C | T_Copper_3D | T_Copper_3E + | T_Copper_4A + +let metals_inc = [ + (* textures defined in "metals.inc" *) + "T_Brass_1A"; "T_Brass_1B"; "T_Brass_1C"; "T_Brass_1D"; "T_Brass_1E"; + "T_Brass_2A"; "T_Brass_2B"; "T_Brass_2C"; "T_Brass_2D"; "T_Brass_2E"; + "T_Brass_3A"; "T_Brass_3B"; "T_Brass_3C"; "T_Brass_3D"; "T_Brass_3E"; + "T_Brass_4A"; "T_Brass_4B"; "T_Brass_4C"; "T_Brass_4D"; "T_Brass_4E"; + "T_Brass_5A"; "T_Brass_5B"; "T_Brass_5C"; "T_Brass_5D"; "T_Brass_5E"; + "T_Copper_1A"; "T_Copper_1B"; "T_Copper_1C"; "T_Copper_1D"; "T_Copper_1E"; + "T_Copper_2A"; "T_Copper_2B"; "T_Copper_2C"; "T_Copper_2D"; "T_Copper_2E"; + "T_Copper_3A"; "T_Copper_3B"; "T_Copper_3C"; "T_Copper_3D"; "T_Copper_3E"; + "T_Copper_4A"; +] + +let metals_lst = + (* textures defined in "metals.inc" *) + [ T_Brass_1A; T_Brass_1B; T_Brass_1C; T_Brass_1D; T_Brass_1E; + T_Brass_2A; T_Brass_2B; T_Brass_2C; T_Brass_2D; T_Brass_2E; + T_Brass_3A; T_Brass_3B; T_Brass_3C; T_Brass_3D; T_Brass_3E; + T_Brass_4A; T_Brass_4B; T_Brass_4C; T_Brass_4D; T_Brass_4E; + T_Brass_5A; T_Brass_5B; T_Brass_5C; T_Brass_5D; T_Brass_5E; + T_Copper_1A; T_Copper_1B; T_Copper_1C; T_Copper_1D; T_Copper_1E; + T_Copper_2A; T_Copper_2B; T_Copper_2C; T_Copper_2D; T_Copper_2E; + T_Copper_3A; T_Copper_3B; T_Copper_3C; T_Copper_3D; T_Copper_3E; + T_Copper_4A; + ] + +let assoc_metals_textures = List.combine metals_lst metals_inc + +let to_string tx = (List.assoc tx assoc_metals_textures) + +end + type texture_def = | Stone of Stone.stones | Wood of Wood.woods + | Metal of Metal.metals let to_string tx = match tx with | Wood tx -> Wood.to_string tx | Stone tx -> Stone.to_string tx + | Metal tx -> Metal.to_string tx end diff -Naur pov-bind-0.11/src/povray.mli pov-bind-0.11_/src/povray.mli --- pov-bind-0.11/src/povray.mli +++ pov-bind-0.11_/src/povray.mli @@ -173,9 +173,27 @@ val to_string : stones -> string end +module Metal : sig +(* Metal *) +type metals = + | T_Brass_1A | T_Brass_1B | T_Brass_1C | T_Brass_1D | T_Brass_1E + | T_Brass_2A | T_Brass_2B | T_Brass_2C | T_Brass_2D | T_Brass_2E + | T_Brass_3A | T_Brass_3B | T_Brass_3C | T_Brass_3D | T_Brass_3E + | T_Brass_4A | T_Brass_4B | T_Brass_4C | T_Brass_4D | T_Brass_4E + | T_Brass_5A | T_Brass_5B | T_Brass_5C | T_Brass_5D | T_Brass_5E + (* Coppers & Bronzes *) + | T_Copper_1A | T_Copper_1B | T_Copper_1C | T_Copper_1D | T_Copper_1E + | T_Copper_2A | T_Copper_2B | T_Copper_2C | T_Copper_2D | T_Copper_2E + | T_Copper_3A | T_Copper_3B | T_Copper_3C | T_Copper_3D | T_Copper_3E + | T_Copper_4A + +val to_string : metals -> string +end + type texture_def = | Stone of Stone.stones | Wood of Wood.woods + | Metal of Metal.metals val to_string : texture_def -> string diff -Naur pov-bind-0.11/src/Makefile pov-bind-0.11_/src/Makefile --- pov-bind-0.11/src/Makefile +++ pov-bind-0.11_/src/Makefile @@ -13,9 +13,12 @@ povray.cmxa: povray.cmi povray.cmx ocamlopt -a -o $@ povray.cmx +povray.cmx: povray.ml povray.cmi + ocamlopt -c $< + doc: povray.cmi mkdir -p doc ocamldoc -html -d doc povray.mli clean: - $(RM) *.cm[ioxa] + $(RM) *.[oa] *.cm[ioxa] *.cmx[as] diff -Naur pov-bind-0.11/examples/make-png-s.sh pov-bind-0.11_/examples/make-png-s.sh --- pov-bind-0.11/examples/make-png-s.sh +++ pov-bind-0.11_/examples/make-png-s.sh @@ -0,0 +1,6 @@ +cd scene_E/ ; sh ./make-png.sh ; cd ../ ; +cd scene_F/ ; sh ./make-png.sh ; cd ../ ; +cd scene_G/ ; sh ./make-png.sh ; cd ../ ; +cd scene_H/ ; sh ./make-png.sh ; cd ../ ; +cd scene_I/ ; sh ./make-png.sh ; cd ../ ; +cd scene_J/ ; sh ./make-png.sh ; cd ../ ; diff -Naur pov-bind-0.11/examples/scene_E/make-png.sh pov-bind-0.11_/examples/scene_E/make-png.sh --- pov-bind-0.11/examples/scene_E/make-png.sh +++ pov-bind-0.11_/examples/scene_E/make-png.sh @@ -1,6 +1,7 @@ EXT="pov" EXT="png" +make scene_E.$EXT make scene_Ea.$EXT make scene_Eb.$EXT make scene_Ec.$EXT diff -Naur pov-bind-0.11/examples/scene_E/make-pov.sh pov-bind-0.11_/examples/scene_E/make-pov.sh --- pov-bind-0.11/examples/scene_E/make-pov.sh +++ pov-bind-0.11_/examples/scene_E/make-pov.sh @@ -1,6 +1,7 @@ EXT="png" EXT="pov" +make scene_E.$EXT make scene_Ea.$EXT make scene_Eb.$EXT make scene_Ec.$EXT