pikmojicon

Documentation
Login

Documentation

Up one directory

Subdirectories

Pikmoji: src

Tap any pikchr to see its source code.

eye

leftmargin   = 1
rightmargin  = 1
topmargin    = 4
bottommargin = 4

define wide { thick thick thick thick thick thick thick thick thick thick }

Eye : ellipse wide color black fill white height 8 width 14         
Iris: circle  wide color red              radius 3          at Eye.c
Lens: circle  wide             fill black radius 1.5        at Eye.c

file-binary

leftmargin   = 2.5
rightmargin  = 2.5
topmargin    = 1
bottommargin = 1

define wide { thick thick thick thick thick thick thick thick thick thick }

@side   = 0.8
@offset = @side

File: file wide fill white radius 3 height 14 width 11
Grid: [
      define ___ { box width @side height @side fill white }
      define _BL { box width @side height @side fill black }
      define _RD { box width @side height @side fill red   }

      A: _RD                 ; ___ ; _BL ; _BL ; ___ ; ___ ; _BL ; _RD
      B: ___ with nw at A.sw ; ___ ; _BL ; ___ ; ___ ; _BL ; ___ ; _BL
      C: ___ with nw at B.sw ; _BL ; _RD ; _BL ; ___ ; _RD ; ___ ; _BL
      D: _BL with nw at C.sw ; ___ ; _BL ; ___ ; ___ ; ___ ; _BL ; _BL
      E: ___ with nw at D.sw ; _BL ; ___ ; _BL ; ___ ; _BL ; ___ ; _BL
      F: ___ with nw at E.sw ; ___ ; _RD ; _BL ; ___ ; _RD ; ___ ; _BL
      G: _BL with nw at F.sw ; _BL ; _BL ; ___ ; ___ ; _BL ; _BL ; _BL
      H: _RD with nw at G.sw ; ___ ; _BL ; ___ ; _BL ; _BL ; ___ ; _RD

] with nw at @offset below @offset east of File.nw

file-image

leftmargin   = 2.5
rightmargin  = 2.5
topmargin    = 1
bottommargin = 1

define wide { thick thick thick thick thick thick thick thick thick thick }

@offset = 2.3

File:  file wide fill white radius 3 height 14 width 11
Blue:  dot fill blue  color red   radius 2 at @offset heading 300 from File.c
Red:   dot fill red   color green radius 2 at @offset heading  60 from File.c
Green: dot fill green color blue  radius 2 at @offset heading 180 from File.c

file-text

leftmargin   = 2.5
rightmargin  = 2.5
topmargin    = 1
bottommargin = 1

define wide { thick thick thick thick thick thick thick thick thick thick }
define nawi { thick thick thick thick thick thick thick thick }

@indent  = 1
@linesep = 1

File: file wide fill white radius 3 height 14 width 11
Text: [
      down ; move @linesep down                      ; line wide go 6   east color red
      down ; move @linesep down from last line.start ; line nawi go 4.5 east // color blue
      down ; move @linesep down from last line.start ; line nawi go 5   east // color green
      down ; move @linesep down from last line.start ; line nawi go 5.5 east color red
      down ; move @linesep down from last line.start ; line nawi go 4   east // color purple

] with nw at @indent east of File.nw

file-unknown

leftmargin   = 2.5
rightmargin  = 2.5
topmargin    = 1
bottommargin = 1

@side = 2.5

define wide { thick thick thick thick thick thick thick thick thick thick }
define nawi { thick thick thick thick thick thick thick thick }

File: file wide fill white radius 3 height 14 width 11
Mark: [
      Dot:   dot color red fill red radius 0.22
      Query: line nawi radius 1 color red \
      	     	    from    1 above Dot.c	\
		    then up 1.5*@side		\
		    then right  @side		\
		    then up   2*@side 		\
		    then left 2*@side		\
		    then down   @side
      CapS:  dot color red fill red radius 0.19 with c at Query.start
      CapE:  dot color red fill red radius 0.19 with c at Query.end
] with nw at 1.5 below 1.5 right of File.nw

fs-directory

leftmargin   = 1
rightmargin  = 1
topmargin    = 2
bottommargin = 2

define wide { thick thick thick thick thick thick thick thick thick thick }

Main: box wide fill white width 14   height 9
Tab:  box wide fill red   width 5.33 height 3 with sw at Main.nw

fs-file

leftmargin   = 2.5
rightmargin  = 2.5
topmargin    = 1
bottommargin = 1

define wide { thick thick thick thick thick thick thick thick thick thick }

File: file wide fill white radius 3 height 14 width 11

fs-inode

leftmargin   = 1
rightmargin  = 1
topmargin    = 1
bottommargin = 1

define wide { thick thick thick thick thick thick thick thick thick thick }

Out: circle radius  7 wide fill white
Mid: circle radius  4 wide color red  at Out.c
Dot: circle radius  1      fill black at Out.c

fs-snapshot

leftmargin   = 2.5
rightmargin  = 2.5
topmargin    = 1
bottommargin = 1

define wide { thick thick thick thick thick thick thick thick thick thick }

Main:  cylinder wide fill white           height  14 width 11 radius 3
Disc:  ellipse       fill red color red   height   4 width  9 with c at .5 between Main.nw and Main.ne
Label: oval          fill red color black height 2.5 width  7 radius 1 with n at Main.c \
       thick thick thick thick thick thick

fs-symlink

@from = 0.15
@to   = 0.85

leftmargin   = 2.5
rightmargin  = 2.5
topmargin    = 1
bottommargin = 1

define wide { thick thick thick thick thick thick thick thick thick thick }

File: file wide fill white radius 3 height 14 width 11

define span       { between File.nw and File.se }
define along_span { from @from span to @to span }

@thick = .41 // *2 = .81 matches `wide` - WIBNI to be able to spec line width directly

Link: arrow wide color red          along_span
Cap:  circle     color red fill red radius @thick with c at Link.start

fs-volume

leftmargin   = 2.5
rightmargin  = 2.5
topmargin    = 1
bottommargin = 1

define wide { thick thick thick thick thick thick thick thick thick thick }

Main: cylinder wide fill white           height 14 width 11 radius 3
Disc: ellipse       fill red   color red height  4 width  9 with c at .5 between Main.nw and Main.ne

link

leftmargin   = 1
rightmargin  = 1
topmargin    = 1
bottommargin = 1

define wide { thick thick thick thick thick thick thick thick thick thick }

@thick = .41 // *2 = .81 matches `wide` - WIBNI to be able to spec line width directly

// / / // /// ///// //////// ///////////// /////////////////////
/// Configuration

@side = 2.2		// unit side in the dot pattern, scale to fill the icon
@skew = -45		// rotation of the dot pattern around the center.

// / / // /// ///// //////// ///////////// /////////////////////
/// Supporting definitions

define mark  { radius .1 color orange invis } // remove invis to see the guide point
define cap   { radius @thick color red }

Bg: circle wide color black fill white radius 7

X: dot at Bg.c invis // color blue radius .2

// / / // /// ///// //////// ///////////// /////////////////////
/// More supporting definitions, and placement of main grid
///
/// - The `cap` point are drawn. Endcaps for the splines.
/// - WIBNI actual end caps for lines.

@half   = 0.5 * @side
@endoff = 0.5 * @side

@left  = @skew  - 90
@down  = @left  - 90
@right = @down  - 90
@up    = @right - 90

A: dot at @half heading @skew  from X.c		cap
B: dot at @side heading @left  from A.c	mark
C: dot at @side heading @down  from B.c	mark
D: dot at @side heading @down  from C.c	mark
E: dot at @side heading @down  from D.c	mark
F: dot at @side heading @right from E.c	mark
G: dot at @side heading @right from F.c	mark
H: dot at @side heading @up    from G.c	mark
I: dot at @side heading @up    from H.c	mark
J: dot at @side heading @up    from I.c	mark
K: dot at @side heading @up    from J.c	mark
L: dot at @side heading @up    from K.c	mark
M: dot at @side heading @left  from L.c	mark
N: dot at @side heading @left  from M.c	mark
O: dot at @side heading @down  from N.c	mark
P: dot at @side heading @right from C.c		cap

BX: dot at @endoff heading @up   from B.c	cap
IX: dot at @endoff heading @down from I.c	cap

// / / // /// ///// //////// ///////////// /////////////////////
/// Main drawing

spline wide color red \
	from    A.c  then to B.c  then to C.c  then to D.c \
	then to E.c  then to F.c  then to G.c  then to H.c \
	then to IX.c

spline wide color red \
	from    P.c  then to I.c  then to J.c  then to K.c \
	then to L.c  then to M.c  then to N.c  then to O.c \
	then to BX.c

// / / // /// ///// //////// ///////////// /////////////////////

map-marker

leftmargin   = 4
rightmargin  = 4
topmargin    = 2
bottommargin = 2

define wide { thick thick thick thick thick thick thick thick thick thick }
define mark { invis }
// define wide { }
// define mark { color red radius .1 }

@side = 4

Center:	dot	mark
A:	dot	mark	at   @side heading   90 from Center.c
B:	dot	mark	at   @side heading   45 from Center.c
C:	dot	mark 	at   @side heading    0 from Center.c
D:	dot	mark 	at   @side heading  -45 from Center.c
E:	dot	mark 	at   @side heading  -90 from Center.c
F:	dot	mark    at 2*@side heading -120 from A.c
G:	dot	mark    at 2*@side heading -150 from A.c
H:	dot	mark    at 2*@side heading  120 from E.c

spline wide color black fill white \
     from	G.c	\
     then to	H.c	\
     then to	A.c	\
     then to	B.c	\
     then to	C.c	\
     then to	D.c	\
     then to	E.c	\
     then to	F.c	\
     then to	G.c	\
     close

dot color red radius 1 at Center.c


paperclip

leftmargin   = 1
rightmargin  = 1
topmargin    = 1
bottommargin = 1

@scale = 0.9

define wide { thick thick thick thick thick thick thick thick thick thick }
define nawi { thick thick thick thick thick thick thick thick thick }

@outer = 2.5  * @scale
@inner = 1.5  * @scale
@top   = 6    * @scale
@up    = 5    * @scale
@mid   = 3.5  * @scale
@bot   = 4    * @scale

Bg: circle wide color black fill white radius 7

// spline center - should we wish to move it relative to bb center

X:  dot invis at Bg.c

// spline guide points - not in final output
//                      X       Y
A: dot at X.c + ( @outer,   @mid) invis
B: dot at X.c + ( @outer,   -@up) invis
C: dot at X.c + ( @outer,  -@top) invis
D: dot at X.c + ( 0,       -@top) invis
E: dot at X.c + (-@outer,  -@top) invis
F: dot at X.c + (-@outer,  - @up) invis
G: dot at X.c + (-@outer,    @up) invis
H: dot at X.c + (-@outer,   @top) invis
I: dot at X.c + ( 0,        @top) invis
J: dot at X.c + ( @inner,   @top) invis
K: dot at X.c + ( @inner,    @up) invis
L: dot at X.c + ( @inner,  -@mid) invis
M: dot at X.c + ( @inner,  -@bot) invis
N: dot at X.c + ( 0,       -@bot) invis
O: dot at X.c + (-@inner,  -@bot) invis
P: dot at X.c + (-@inner,  -@mid) invis
Q: dot at X.c + (-@inner,   @mid) invis

spline nawi color red \
       from    A.c  then to B.c  then to C.c  then to D.c \
       then to E.c  then to F.c  then to G.c  then to H.c \
       then to I.c  then to J.c  then to K.c  then to L.c \
       then to M.c  then to N.c  then to O.c  then to P.c \
       then to Q.c

target

leftmargin   = 1
rightmargin  = 1
topmargin    = 1
bottommargin = 1

define wide { thick thick thick thick thick thick thick thick thick thick }

@thick  =  .41 // *2 = .81 matches `wide` - WIBNI to be able to spec line width directly
@radius = 6.59

Vertical:   line   wide color red   from (0,@radius) to ( 0, -@radius)
Horizontal: line   wide color red   from (@radius,0) to (-@radius,  0)
CapVS:	    circle      color red fill red radius @thick with c at Vertical.start
CapVE:	    circle      color red fill red radius @thick with c at Vertical.end
CapHS:	    circle      color red fill red radius @thick with c at Horizontal.start
CapHE:	    circle      color red fill red radius @thick with c at Horizontal.end
Reticule:   circle wide color black radius 6 at Vertical.c
Center:     circle      fill  black radius 1 at Vertical.c