chiark / gitweb /
abortive segment movpos-specific mapping arrangements (actually unneeded because...
[trains.git] / layout / informat.txt
index 5be48f8fa394da610b38f8d03fc954a53753eaae..0b71b89deae826b9e78b41ed50348fe8e85c90d9 100644 (file)
@@ -90,11 +90,14 @@ Commands
   primarily intended so that parts' internal segment and feature names
   can be remapped to correspond to the layout naming scheme.
 
-   S       O
+   S       D
    ----    ----
-   N       N'     remaps an entire segment including all features
-   N/M     M'     remaps a particular moveable feature; N is the
-                    unmapped name (if applicable)
+   N       N'         remaps an entire segment including all features
+   N/M     M'         remaps a particular moveable feature; N is the
+                        unmapped name (if applicable)
+   N/[MP]  N'/[M'P']  remaps a specific moveable feature position to a
+                        specific other moveable feature position;
+                       empty M and M' mean the fixed portions.
 
   The effect is that (sub)segments or features used in segment
   commands are translated when the segment command is read; the
@@ -183,17 +186,31 @@ Commands
   with South).
 
   For `part', each FR (`formal result') and AR (`actual result')
-  specifies that the loc FR inside O is exported into the global
+  specifies that the loc FR inside O is exported into the calling
   namespace as a new loc AR.  Either FR or AR may start with `-'.
-  Also, each loc L inside O is exported into the global namespace as a
+  Also, each loc L inside O is exported into the calling namespace as a
   new loc N_L (unless N_L already exists).  If A is not specified then
   N_F is used.
 
   For `obj[flip]' if prefix P (syntax is that of an identifier) is
-  specified, each other loc L inside O is exported into the global
+  specified, each other loc L inside O is exported into the calling
   namespace as a new loc PL (unless PL already exists).  P may be `='
   to indicate an empty prefix (default is not to export locs).
 
+ segcmap S P...
+  Map segment S to colours using postscript commands P... (which
+  should be a postscript fragment to modify the graphics state,
+  typically `N setgray' or the like.  This is used for the drawing
+  element Q (see below).  S should be the bare segment (no movfeat or
+  `-').
+
+ segend L S
+  Notes that segment S (which should not specify a movfeat but may
+  specify `-') has an end at location L.  This is fed back from
+  extractgraph's run on a previous result of running layout, and used
+  to determine where to place the segment labels for E.  NOT YET
+  IMPLEMENTED
+
 Command-line options
 
  -D       turn on debug (level 1)  } currently only debug levels are
@@ -209,19 +226,22 @@ Command-line options
               in each direction.  xp is multiplied by 270mm; yp
               is multiplied by 190mm.
 
- -e<layersel>[ARSCcLlMNOm]...
+ -e<layersel>[ARSCcLlDdMNOm]...
           Turn on and off drawing of elements in groups.
           These are abbreviations for various -E... options.
-            track                                                 -E....
-              A  full track                                        ARScg
-              R  rails only                                        aRscg
-              S  rails and sleepers only                           aRScg
-              C  centrelines only                                  arsCg
-              c  swept area and ticks only                         Arscg
-              r  no lines drawn at all                             arcs
+            track                                                 -E.....
+              A  full track                                        ARScgd
+              R  rails only                                        aRscgD
+              S  rails and sleepers only                           aRScgd
+              C  centrelines only                                  arsCgd
+              c  swept area and ticks only                         Arscgd
+              r  no lines drawn at all                             arsc
             labels at locs
               L  label top-level locs (turns on bars for them too)  LMg
               l  do not label any locs                              l
+            label distances
+              D  label all distances                                D
+              d  do not label any distances
             bars at locs (thick lines perp to track dir'n)
               M  bars for top-level locs only                       Mnog
               N  bars for top-level locs and those in obj's         MNog
@@ -230,27 +250,35 @@ Command-line options
             subsegment encoding
               G  draw only subsegment encoding                 Garcslmno
 
- -E<layersel>[ARSCLMNOarsclmno]...
+ -E<layersel>[ARSCLDMNOarscldmno]...
           enable (capitals) or disable (lowercase) drawing of
           individual elements
               A  draw track swept area, with ticks
               R  draw track rails
+              Q  draw track segment fills according to segcmap
+             E  label track segments according to segend
               S  draw track sleepers
               C  draw track centrelines
               L  label locs
+              D  label distances along the track
               M  mark locs with a bar
               N  mark locs with a bar in objs
               O  mark locs with a bar in parts
               G  draw subsegment encoding
 
- -GL      output segment colour map request list
-          use with -eG or -EG to write out the list of subsegment
-          specs which will need colours, one per line (and not
-          necessarily only once each)
-
  -q       quiet: do not print info to stderr
           (default: prints bounding box, at the moment)
 
+[-GL      output segment colour map request list                     ]
+[         use with -eG or -EG to write out the list of subsegment    ]
+[         specs which will need colours, one per line (and not       ]
+[         necessarily only once each)                                ]
+ -GL, -GR, -GP are to do with segment encoding and subsegment specs
+  and that kind of thing.  The comment above is the most useful
+  documentation and is out of date.  See also layout's argument
+  parser, segencolayers.gen-make, Makefile, segcmap.h, segcmapassign,
+  etc.
+
 <layersel> (for -e and -E) works as follows:
 
  When file says `layer KL', default drawing element set is set
@@ -289,8 +317,22 @@ Special comments in PostScript:
  %L bbox no locs, no bbox
        there were no locs, so there is no bounding box
        usu because input file was just obj defns and showlibrary
+ %L segmentpart I KL [-]S D X0 Y0 A0 X1 Y1 A1
+       records that a piece of subsegment S is drawn in the subsegment
+       encoding.  The piece is of length D, in layer KL (which may be
+       the empty string, depending on layer configurations), and runs
+       from the loc X0,Y0,A0 to X1,Y1,A1.  I is a counter which starts
+       at 0 and is simply there to help cross-reference between
+       various programs and formats.
 
  Scope S is
    O!    when defining object or part O
    N:T   scope T but inside part (introduced with `part') N      } when
    O::T  scope T but inside obj (introduced with `obj[flip]') O  } placing
+
+
+See also:
+ layout-data.h for info regarding layout data deliverables for use by
+                 control and UI software
+ redactgraph.c, extractgraph for info regarding extraction and
+                  preparation of those deliverables