next | previous | forward | backward | up | top | index | toc | Macaulay2 website
VectorGraphics :: gNode

gNode -- VectorGraphics object(s) with a preferred reference origin

Description

gNode(coord,obj) is a shortcut for obj ++ { TransformMatrix => translation coord }, where obj is some GraphicsObject and coord the coordinates of the new reference origin. gNode(coord,a,b,c) is a shortcut for gList(a,b,c) ++ { TransformMatrix => translation coord }.

i1 : a=gNode([-1,-1],Circle{Radius=>0.1,"fill"=>"red","stroke"=>"black"})

o1 = a

o1 : Circle
i2 : b=gNode([1,1],Circle{Radius=>0.1,"fill"=>"green","stroke"=>"black",Draggable=>true})

o2 = b

o2 : Circle
i3 : gList(Line{a,b},a,b)

o3 = GraphicsList{cache => CacheTable{}                                                                                                                                     }
                  Contents => {Line{cache => CacheTable{}                                                                                                           }, a, b}
                                    Point1 => GraphicsCoordinate{JsFunc => -*Function[/usr/share/Macaulay2/VectorGraphics.m2:70:29-70:61]*-      }
                                                                 RefPointFunc => -*Function[/usr/share/Macaulay2/VectorGraphics.m2:69:37-69:62]*-
                                    Point2 => GraphicsCoordinate{JsFunc => -*Function[/usr/share/Macaulay2/VectorGraphics.m2:70:29-70:61]*-      }
                                                                 RefPointFunc => -*Function[/usr/share/Macaulay2/VectorGraphics.m2:69:37-69:62]*-
                                    style => MutableHashTable{}
                  style => MutableHashTable{}

o3 : GraphicsList

Dragging acts recursively:

i4 : l=null; scan(5,i->l=gNode([100,0],l,Circle{"fill"=>"red"},Draggable=>true)); l++{Margin=>1}

o6 = GraphicsList{cache => CacheTable{}                                                                                                                                                                                                                                                                                                       }
                  Contents => {GraphicsList{cache => CacheTable{}                                                                                                                                                                                                                               }, Circle{cache => CacheTable{}             }}
                                            Contents => {GraphicsList{cache => CacheTable{}                                                                                                                                                       }, Circle{cache => CacheTable{}             }}          Center => | 0 |
                                                                      Contents => {GraphicsList{cache => CacheTable{}                                                                               }, Circle{cache => CacheTable{}             }}          Center => | 0 |                                         | 0 |
                                                                                                Contents => {Circle{cache => CacheTable{}             }, Circle{cache => CacheTable{}             }}          Center => | 0 |                                         | 0 |                                         | 0 |
                                                                                                                    Center => | 0 |                             Center => | 0 |                                         | 0 |                                         | 0 |                                         | 1 |
                                                                                                                              | 0 |                                       | 0 |                                         | 0 |                                         | 1 |                               Radius => 50
                                                                                                                              | 0 |                                       | 0 |                                         | 1 |                               Radius => 50                                  style => MutableHashTable{...1...}
                                                                                                                              | 1 |                                       | 1 |                               Radius => 50                                  style => MutableHashTable{...1...}
                                                                                                                    Draggable => true                           Radius => 50                                  style => MutableHashTable{...1...}
                                                                                                                    Radius => 50                                style => MutableHashTable{...1...}
                                                                                                                    style => MutableHashTable{...1...}
                                                                                                                    TransformMatrix => | 1 0 0 100 |
                                                                                                                                       | 0 1 0 0   |
                                                                                                                                       | 0 0 1 0   |
                                                                                                                                       | 0 0 0 1   |
                                                                                                Draggable => true
                                                                                                style => MutableHashTable{}
                                                                                                TransformMatrix => | 1 0 0 100 |
                                                                                                                   | 0 1 0 0   |
                                                                                                                   | 0 0 1 0   |
                                                                                                                   | 0 0 0 1   |
                                                                      Draggable => true
                                                                      style => MutableHashTable{}
                                                                      TransformMatrix => | 1 0 0 100 |
                                                                                         | 0 1 0 0   |
                                                                                         | 0 0 1 0   |
                                                                                         | 0 0 0 1   |
                                            Draggable => true
                                            style => MutableHashTable{}
                                            TransformMatrix => | 1 0 0 100 |
                                                               | 0 1 0 0   |
                                                               | 0 0 1 0   |
                                                               | 0 0 0 1   |
                  Draggable => true
                  Margin => 1
                  style => MutableHashTable{}
                  TransformMatrix => | 1 0 0 100 |
                                     | 0 1 0 0   |
                                     | 0 0 1 0   |
                                     | 0 0 0 1   |

o6 : GraphicsList

For the programmer

The object gNode is a function closure.