[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [gcompris/gsoc_pulkit_digital_electricity] src/activities/digital_electricity: digital_electricity,
From:       Pulkit Gupta <pulkitnsit () gmail ! com>
Date:       2016-08-27 13:29:35
Message-ID: E1bddfz-0007Ob-Vw () code ! kde ! org
[Download RAW message or body]

Git commit 742c6cfd44af40676c4e8041640e63dfffdf96be by Pulkit Gupta.
Committed on 27/08/2016 at 13:25.
Pushed by pulkitgupta into branch 'gsoc_pulkit_digital_electricity'.

digital_electricity, add signal generator component, and add sticky eraser option.

M  +7    -1    src/activities/digital_electricity/ListWidget.qml
M  +1    -1    src/activities/digital_electricity/components/ElectricalComponent.qml
A  +166  -0    src/activities/digital_electricity/components/SignalGenerator.qml     \
[License: GPL (v3+)] M  +18   -5    \
src/activities/digital_electricity/digital_electricity.js A  +273  -0    \
src/activities/digital_electricity/resource/arrowDown.svg A  +207  -0    \
src/activities/digital_electricity/resource/arrowUp.svg A  +552  -0    \
src/activities/digital_electricity/resource/signalGenerator.svg A  +336  -0    \
src/activities/digital_electricity/resource/valueContainer.svg

http://commits.kde.org/gcompris/742c6cfd44af40676c4e8041640e63dfffdf96be

diff --git a/src/activities/digital_electricity/ListWidget.qml \
b/src/activities/digital_electricity/ListWidget.qml index 5ec8bb2..3755505 100644
--- a/src/activities/digital_electricity/ListWidget.qml
+++ b/src/activities/digital_electricity/ListWidget.qml
@@ -120,9 +120,15 @@ Item {
                         anchors.fill: parent
                         onClicked: {
                             toolDelete.state = toolDelete.state == "selected" ? \
                "notSelected" : "selected"
-                            Activity.toolDelete = !Activity.toolDelete //true
+                            Activity.toolDelete = !Activity.toolDelete
+                            Activity.toolDeleteSticky = false
                             //console.log("state",toolDelete.state)
                         }
+                        onDoubleClicked: {
+                            Activity.toolDeleteSticky = true
+                            Activity.toolDelete = true
+                            toolDelete.state = "selected"
+                        }
                     }
                     states: [
                         State {
diff --git a/src/activities/digital_electricity/components/ElectricalComponent.qml \
b/src/activities/digital_electricity/components/ElectricalComponent.qml index \
                6a7047a..ad9cee3 100644
--- a/src/activities/digital_electricity/components/ElectricalComponent.qml
+++ b/src/activities/digital_electricity/components/ElectricalComponent.qml
@@ -121,7 +121,7 @@ Image {
         }
         onClicked: {
             console.log("Component index",index,electricalComponent)
-            if(Activity.toolDelete) {
+            if(Activity.toolDelete || Activity.toolDeleteSticky) {
                 Activity.removeComponent(index)
             }
             else {
diff --git a/src/activities/digital_electricity/components/SignalGenerator.qml \
b/src/activities/digital_electricity/components/SignalGenerator.qml new file mode \
100644 index 0000000..85b4ce4
--- /dev/null
+++ b/src/activities/digital_electricity/components/SignalGenerator.qml
@@ -0,0 +1,166 @@
+/* GCompris - SignalGenerator.qml
+ *
+ * Copyright (C) 2016 Pulkit Gupta <pulkitnsit@gmail.com>
+ *
+ * Authors:
+ *   Bruno Coudoin <bruno.coudoin@gcompris.net> (GTK+ version)
+ *   Pulkit Gupta <pulkitnsit@gmail.com> (Qt Quick port)
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 3 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+import QtQuick 2.3
+import GCompris 1.0
+import "../digital_electricity.js" as Activity
+import "../../../core"
+
+ElectricalComponent {
+    id: signalGenerator
+    imgWidth: 0.25
+    imgHeight: 0.18
+    imgSrc: "signalGenerator.svg"
+    toolTipTxt: qsTr("Signal Generator")
+    terminalSize: 0.451
+    noOfInputs: 0
+    noOfOutputs: 1
+
+    information: qsTr("Signal Generator is used to generate alternating signals of 0 \
and 1. " + +                      "It takes frequency as input, and generate outputs \
accordingly. Frequency " + +                      "refers to the number of times the \
output will change in 1 second. So 1 Hz " + +                      "means that the \
output will change after every 1 second, 0.5 Hz means that " + +                      \
"the output will change after every 2 seconds, and so on. For the demonstration " + + \
"purpose, the minimum frequency of signal generator in this activity is " + +         \
"0.25 Hz, and maximum frequency is 2 Hz. The frequency can be changed by clicking " + \
+                      "on the arrows on the signal generator") +
+    property alias outputTerminals: outputTerminals
+    property double frequency: 0.25
+
+    Repeater {
+        id: outputTerminals
+        model: 1
+        delegate: outputTerminal
+        Component {
+            id: outputTerminal
+            TerminalPoint {
+                posX: 0.914
+                posY: 0.512
+                value: 0
+                type: "Out"
+            }
+        }
+    }
+
+    function updateOutput(wireVisited) {
+        var terminal = outputTerminals.itemAt(0)
+        terminal.value = terminal.value == 1 ? 0 : 1
+        for(var i = 0 ; i < terminal.wires.length ; ++i)
+            terminal.wires[i].to.value = terminal.value
+
+        var componentVisited = []
+        for(var i = 0 ; i < terminal.wires.length ; ++i) {
+            var wire = terminal.wires[i]
+            var component = wire.to.parent
+            if(componentVisited[component] != true && wireVisited[wire] != true) {
+                componentVisited[component] = true
+                wireVisited[wire] = true
+                component.updateOutput(wireVisited)
+            }
+        }
+    }
+
+    Timer {
+        id: timer
+        interval: 1000 / signalGenerator.frequency
+        running: true
+        repeat: true
+        onTriggered: Activity.updateComponent(signalGenerator.index)
+    }
+
+    Image {
+        source: Activity.url + "arrowUp.svg"
+        height: 0.339 * parent.height
+        width: 0.123 * parent.width
+        property double posX: 0.632
+        property double posY: 0.284
+        x: (parent.width - parent.paintedWidth) / 2 + posX * parent.paintedWidth - \
width / 2 +        y: (parent.height - parent.paintedHeight) / 2 + posY * \
parent.paintedHeight - height / 2 +        fillMode: Image.PreserveAspectFit
+        mipmap: true
+        antialiasing: true
+        MouseArea {
+            anchors.fill: parent
+            anchors.centerIn: parent
+            enabled: signalGenerator.frequency != 2
+            onPressed: {
+                //console.log("Up pressed")
+                signalGenerator.frequency += 0.25
+                timer.restart()
+                outputTerminals.itemAt(0).value = 1
+                Activity.updateComponent(signalGenerator.index)
+            }
+        }
+    }
+
+    Image {
+        source: Activity.url + "arrowDown.svg"
+        height: 0.339 * parent.height
+        width: 0.123 * parent.width
+        property double posX: 0.632
+        property double posY: 0.713
+        x: (parent.width - parent.paintedWidth) / 2 + posX * parent.paintedWidth - \
width / 2 +        y: (parent.height - parent.paintedHeight) / 2 + posY * \
parent.paintedHeight - height / 2 +        fillMode: Image.PreserveAspectFit
+        mipmap: true
+        antialiasing: true
+        MouseArea {
+            anchors.fill: parent
+            anchors.centerIn: parent
+            enabled: signalGenerator.frequency != 0.25
+            onPressed: {
+                //console.log("Down pressed")
+                signalGenerator.frequency -= 0.25
+                timer.restart()
+                outputTerminals.itemAt(0).value = 1
+                Activity.updateComponent(signalGenerator.index)
+            }
+        }
+    }
+
+    Image {
+        //id: valueContainer
+        source: Activity.url + "valueContainer.svg"
+        sourceSize.height: 0.818 * parent.height
+        sourceSize.width: 0.512 * parent.width
+        property double posX: 0.306
+        property double posY: 0.503
+        x: (parent.width - parent.paintedWidth) / 2 + posX * parent.paintedWidth - \
width / 2 +        y: (parent.height - parent.paintedHeight) / 2 + posY * \
parent.paintedHeight - height / 2 +        GCText {
+            id: value
+            anchors.centerIn: parent
+            fontSizeMode: Text.Fit
+            minimumPointSize: 6
+            font.pointSize: 40
+            //font.pixelSize: 40
+            color: "white"
+            style: Text.Outline
+            styleColor: "black"
+            horizontalAlignment: Text.AlignRight
+            verticalAlignment: Text.AlignVCenter
+            height: parent.height - 10
+            width: parent.width - 10
+            text: qsTr("%1 Hz").arg(signalGenerator.frequency.toFixed(2))
+        }
+    }
+}
diff --git a/src/activities/digital_electricity/digital_electricity.js \
b/src/activities/digital_electricity/digital_electricity.js index 82230d7..47403dc \
                100644
--- a/src/activities/digital_electricity/digital_electricity.js
+++ b/src/activities/digital_electricity/digital_electricity.js
@@ -27,6 +27,7 @@ var numberOfLevel = 4
 var items
 var url = "qrc:/gcompris/src/activities/digital_electricity/resource/"
 var toolDelete
+var toolDeleteSticky
 var selectedIndex
 var animationInProgress
 var selectedTerminal
@@ -76,6 +77,12 @@ function start(items_) {
         "imgHeight": 0.18,
         "toolTipText": qsTr("Digital Light")
     })
+    items.availablePieces.model.append( {
+        "imgName": "signalGenerator.svg",
+        "imgWidth": 0.25,
+        "imgHeight": 0.18,
+        "toolTipText": qsTr("Signal Generator")
+    })
     initLevel()
 }
 
@@ -101,8 +108,9 @@ function initLevel() {
     components = []
     connected = []
     animationInProgress = false
-    deselect()
     toolDelete = false
+    toolDeleteSticky = false
+    deselect()
     updateToolTip("")
 }
 
@@ -140,6 +148,8 @@ function createComponent(x, y, src) {
         electricComponent = Qt.createComponent(componentLocation + \
"SevenSegment.qml")  else if(src == "DigitalLightOff.svg")
         electricComponent = Qt.createComponent(componentLocation + \
"DigitalLight.qml") +    else if(src == "signalGenerator.svg")
+        electricComponent = Qt.createComponent(componentLocation + \
"SignalGenerator.qml")  
     //console.log("Error loading component:", electricComponent.errorString())
     components[index] = electricComponent.createObject(
@@ -148,7 +158,8 @@ function createComponent(x, y, src) {
                             "posX": x,
                             "posY": y
                         });
-
+    toolDeleteSticky = false
+    deselect()
     componentSelected(index)
     updateComponent(index)
 }
@@ -192,7 +203,7 @@ function terminalPointSelected(terminal) {
 }
 
 function updateComponent(index) {
-
+    //console.log("updateComponent",index)
     var wireVisited = []
     components[index].updateOutput(wireVisited)
 }
@@ -262,12 +273,14 @@ function updateWires(index) {
 
 function deselect() {
 
-    //items.availablePieces.toolDelete.state = "notSelected"
+    if(toolDeleteSticky == false) {
+        toolDelete = false
+        items.availablePieces.toolDelete.state = "notSelected"
+    }
     items.availablePieces.rotateLeft.state = "canNotBeSelected"
     items.availablePieces.rotateRight.state = "canNotBeSelected"
     items.availablePieces.info.state = "canNotBeSelected"
     items.infoTxt.visible = false
-    //toolDelete = false
     selectedIndex = -1
     selectedTerminal = -1
     for(var i = 0 ; i < components.length ; ++i) {
diff --git a/src/activities/digital_electricity/resource/arrowDown.svg \
b/src/activities/digital_electricity/resource/arrowDown.svg new file mode 100644
index 0000000..c6be6c8
--- /dev/null
+++ b/src/activities/digital_electricity/resource/arrowDown.svg
@@ -0,0 +1,273 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+    xmlns="http://www.w3.org/2000/svg"
+    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+    xmlns:cc="http://creativecommons.org/ns#"
+    xmlns:xlink="http://www.w3.org/1999/xlink"
+    xmlns:dc="http://purl.org/dc/elements/1.1/"
+    xmlns:svg="http://www.w3.org/2000/svg"
+    xmlns:ns1="http://sozi.baierouge.fr"
+    id="svg2"
+    sodipodi:docname="arrow_orange_down.svg"
+    inkscape:export-filename="/datas/wiki/arrow_orange_down.png"
+    viewBox="0 0 36 38"
+    sodipodi:version="0.32"
+    inkscape:export-xdpi="90.000000"
+    version="1.0"
+    inkscape:output_extension="org.inkscape.output.svg.inkscape"
+    inkscape:export-ydpi="90.000000"
+    inkscape:version="0.46"
+    sodipodi:docbase="G:\Projs\Cliparts Stocker\released"
+  >
+  <defs
+      id="defs4"
+    >
+    <linearGradient
+        id="linearGradient1552"
+      >
+      <stop
+          id="stop1554"
+          style="stop-color:#f9cc84"
+          offset="0"
+      />
+      <stop
+          id="stop1556"
+          style="stop-color:#fed27f"
+          offset="1"
+      />
+    </linearGradient
+    >
+    <radialGradient
+        id="radialGradient1687"
+        gradientUnits="userSpaceOnUse"
+        cy=".40530"
+        cx="-18.3"
+        gradientTransform="matrix(-.13160 1.117 -1.0576 -.12462 33.357 39.585)"
+        r="17.1"
+        inkscape:collect="always"
+      >
+      <stop
+          id="stop1427"
+          style="stop-color:#f0d81f"
+          offset="0"
+      />
+      <stop
+          id="stop1429"
+          style="stop-color:#f08b0a"
+          offset="1"
+      />
+    </radialGradient
+    >
+    <linearGradient
+        id="linearGradient1696"
+        y2="16.238"
+        xlink:href="#linearGradient1552"
+        gradientUnits="userSpaceOnUse"
+        x2="30.302"
+        gradientTransform="translate(.0076982 .038005)"
+        y1="47.962"
+        x1="36.312"
+        inkscape:collect="always"
+    />
+    <linearGradient
+        id="linearGradient1699"
+        y2="47.922"
+        xlink:href="#linearGradient1552"
+        gradientUnits="userSpaceOnUse"
+        x2="27.857"
+        gradientTransform="translate(-.026524)"
+        y1="16.238"
+        x1="32"
+        inkscape:collect="always"
+    />
+    <linearGradient
+        id="linearGradient1702"
+        y2="47.922"
+        gradientUnits="userSpaceOnUse"
+        x2="27.857"
+        y1="16.238"
+        x1="32"
+        inkscape:collect="always"
+      >
+      <stop
+          id="stop1520"
+          style="stop-color:#f3ac39;stop-opacity:.62876"
+          offset="0"
+      />
+      <stop
+          id="stop1522"
+          style="stop-color:#fcba94;stop-opacity:.78261"
+          offset="1"
+      />
+    </linearGradient
+    >
+  </defs
+  >
+  <sodipodi:namedview
+      id="base"
+      bordercolor="#666666"
+      inkscape:grid-points="true"
+      inkscape:pageshadow="2"
+      inkscape:window-y="110"
+      pagecolor="#ffffff"
+      inkscape:window-height="693"
+      inkscape:grid-bbox="true"
+      inkscape:zoom="13.078947"
+      inkscape:window-x="110"
+      showgrid="false"
+      borderopacity="1.0"
+      inkscape:current-layer="layer1"
+      inkscape:cx="28.513078"
+      inkscape:cy="19"
+      showguides="false"
+      inkscape:window-width="1156"
+      inkscape:pageopacity="0.0"
+      inkscape:document-units="px"
+    >
+    <inkscape:grid
+        id="GridFromPre046Settings"
+        opacity=".2"
+        visible="true"
+        color="#0000ff"
+        enabled="true"
+        originy="0px"
+        originx="0px"
+        empspacing="4"
+        spacingy="1px"
+        spacingx="1px"
+        empopacity="0.4"
+        type="xygrid"
+        empcolor="#0000ff"
+    />
+  </sodipodi:namedview
+  >
+  <g
+      id="layer1"
+      inkscape:label="Calque 1"
+      inkscape:groupmode="layer"
+    >
+    <g
+        id="g1421"
+        transform="translate(-14,-13)"
+      >
+      <path
+          id="path2125"
+          sodipodi:nodetypes="ccccsccccsccccc"
+          style="fill:#a54005"
+          d="m22 14c-1 0-1 1-1 1v17c-1 0.049-5 0-5 0-0.447 0.009-0.846 0.109-1.016 \
0.523s-0.077 0.889 0.235 1.209l16 16c0.435 0.422 1.127 0.422 1.562 0l16-16c0.312-0.32 \
0.405-0.795 0.235-1.209s-0.569-0.514-1.016-0.523h-5v-17.049s0-1-1-1c-6 0-14 0.049-20 \
0.049z" +      />
+      <path
+          id="path3636"
+          style="fill:url(#radialGradient1687)"
+          d="m41.781 15.156c-5.903 0.002-13.643 0.061-19.562 0.063v16.781c0.001 \
0.649-0.508 1.186-1.157 1.219-1.093 0.053-4.057 0.008-4.624 0l15.562 15.562 \
15.531-15.562h-4.531c-0.673 0-1.219-0.546-1.219-1.219v-16.844z" +      />
+      <path
+          id="path1511"
+          sodipodi:nodetypes="ccscccsc"
+          style="fill:url(#linearGradient1702)"
+          d="m41 17c-0.906-1.031-17-1-18 0s0.122 14.11 0.094 15c-0.094 3-4.094 \
1-3.094 3 2 3 11 12 12 12s10-9 12-12c1-2-3 0-3.094-3-0.029-0.935 1.188-14.031 \
0.094-15z" +      />
+      <path
+          id="path1548"
+          sodipodi:nodetypes="ccccc"
+          style="fill:url(#linearGradient1699)"
+          d="m19.973 35c2 3 11 12 12 12s7.027-5.459 9.027-8.502c-0.973 0-4 3.502-9 \
3.502-4 0-9-9-12.027-7z" +      />
+      <path
+          id="path1558"
+          sodipodi:nodetypes="cscsccc"
+          style="fill:url(#linearGradient1696)"
+          d="m32.035 16.276c-4.262 0.004-8.531 0.25-9.031 0.75-0.699 0.698-0.4 \
6.176-0.157 10.188 0.153 2.786 0.153 2.786 1.153-0.214 3.493-10.479 16.082-8.316 \
17.41-7.943-0.063-1.007-0.175-1.826-0.406-2.031-0.454-0.515-4.707-0.754-8.969-0.75z" \
+      /> +    </g
+    >
+  </g
+  >
+  <metadata
+    >
+    <rdf:RDF
+      >
+      <cc:Work
+        >
+        <dc:format
+          >image/svg+xml</dc:format
+        >
+        <dc:type
+            rdf:resource="http://purl.org/dc/dcmitype/StillImage"
+        />
+        <cc:license
+            rdf:resource="http://creativecommons.org/licenses/publicdomain/"
+        />
+        <dc:publisher
+          >
+          <cc:Agent
+              rdf:about="http://openclipart.org/"
+            >
+            <dc:title
+              >Openclipart</dc:title
+            >
+          </cc:Agent
+          >
+        </dc:publisher
+        >
+        <dc:title
+          >arrow_orange_down</dc:title
+        >
+        <dc:date
+          >2008-05-26T11:33:54</dc:date
+        >
+        <dc:description
+        />
+        <dc:source
+          >https://openclipart.org/detail/16966/arrow_orange_down-by-jean_victor_balin</dc:source
 +        >
+        <dc:creator
+          >
+          <cc:Agent
+            >
+            <dc:title
+              >jean_victor_balin</dc:title
+            >
+          </cc:Agent
+          >
+        </dc:creator
+        >
+        <dc:subject
+          >
+          <rdf:Bag
+            >
+            <rdf:li
+              >arrow</rdf:li
+            >
+            <rdf:li
+              >icon</rdf:li
+            >
+          </rdf:Bag
+          >
+        </dc:subject
+        >
+      </cc:Work
+      >
+      <cc:License
+          rdf:about="http://creativecommons.org/licenses/publicdomain/"
+        >
+        <cc:permits
+            rdf:resource="http://creativecommons.org/ns#Reproduction"
+        />
+        <cc:permits
+            rdf:resource="http://creativecommons.org/ns#Distribution"
+        />
+        <cc:permits
+            rdf:resource="http://creativecommons.org/ns#DerivativeWorks"
+        />
+      </cc:License
+      >
+    </rdf:RDF
+    >
+  </metadata
+  >
+</svg
+>
diff --git a/src/activities/digital_electricity/resource/arrowUp.svg \
b/src/activities/digital_electricity/resource/arrowUp.svg new file mode 100644
index 0000000..6fce2b9
--- /dev/null
+++ b/src/activities/digital_electricity/resource/arrowUp.svg
@@ -0,0 +1,207 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2"
+   sodipodi:docname="arrowUp2.svg"
+   inkscape:export-filename="/datas/wiki/arrow_orange_up.png"
+   viewBox="0 0 36 38"
+   sodipodi:version="0.32"
+   inkscape:export-xdpi="90.000000"
+   version="1.0"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-ydpi="90.000000"
+   inkscape:version="0.91 r13725">
+  <defs
+     id="defs4">
+    <linearGradient
+       id="linearGradient1552">
+      <stop
+         id="stop1554"
+         style="stop-color:#f9cc84"
+         offset="0" />
+      <stop
+         id="stop1556"
+         style="stop-color:#fed27f"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       id="radialGradient2506"
+       gradientUnits="userSpaceOnUse"
+       cy=".40530"
+       cx="-18.3"
+       gradientTransform="matrix(0.1316,-1.117,1.0576,0.12462,16.795918,11.338541)"
+       r="17.1"
+       inkscape:collect="always">
+      <stop
+         id="stop1427"
+         style="stop-color:#f0d81f"
+         offset="0" />
+      <stop
+         id="stop1429"
+         style="stop-color:#f07d0a"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient2508"
+       y2="47.922"
+       gradientUnits="userSpaceOnUse"
+       x2="27.857"
+       gradientTransform="matrix(-1,0,0,-1,50.152918,50.923541)"
+       y1="16.238"
+       x1="32"
+       inkscape:collect="always">
+      <stop
+         id="stop1520"
+         style="stop-color:#f3ac39;stop-opacity:.62876"
+         offset="0" />
+      <stop
+         id="stop1522"
+         style="stop-color:#fcba94;stop-opacity:.78261"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2510"
+       y2="47.922"
+       xlink:href="#linearGradient1552"
+       gradientUnits="userSpaceOnUse"
+       x2="27.857"
+       gradientTransform="matrix(-1,0,0,-1,50.179918,50.923541)"
+       y1="16.238"
+       x1="32"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient2512"
+       y2="16.238"
+       xlink:href="#linearGradient1552"
+       gradientUnits="userSpaceOnUse"
+       x2="30.302"
+       gradientTransform="matrix(-1,0,0,-1,50.144918,50.885541)"
+       y1="47.962"
+       x1="36.312"
+       inkscape:collect="always" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     bordercolor="#666666"
+     inkscape:grid-points="true"
+     inkscape:pageshadow="2"
+     inkscape:window-y="44"
+     pagecolor="#ffffff"
+     inkscape:window-height="693"
+     inkscape:grid-bbox="true"
+     inkscape:zoom="13.078947"
+     inkscape:window-x="44"
+     showgrid="false"
+     borderopacity="1.0"
+     inkscape:current-layer="layer1"
+     inkscape:cx="16.979055"
+     inkscape:cy="18.70057"
+     showguides="false"
+     inkscape:window-width="1156"
+     inkscape:pageopacity="0.0"
+     inkscape:document-units="px"
+     inkscape:window-maximized="0">
+    <inkscape:grid
+       id="GridFromPre046Settings"
+       opacity=".2"
+       visible="true"
+       color="#0000ff"
+       enabled="true"
+       originy="0px"
+       originx="0px"
+       empspacing="4"
+       spacingy="1px"
+       spacingx="1px"
+       empopacity="0.4"
+       type="xygrid"
+       empcolor="#0000ff" />
+  </sodipodi:namedview>
+  <g
+     id="layer1"
+     inkscape:label="Calque 1"
+     inkscape:groupmode="layer">
+    <g
+       id="g4207">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 28.152918,36.923541 c 1,0 1,-1 1,-1 l 0,-17 c 1,-0.049 5,0 5,0 \
0.447,-0.009 0.846,-0.109 1.016,-0.523 0.17,-0.414 0.077,-0.889 -0.235,-1.209 l \
-16,-15.9999997 c -0.435,-0.42200004 -1.127,-0.42200004 -1.562,0 L \
1.3719179,17.191541 c -0.312,0.32 -0.40500001,0.795 -0.235,1.209 0.17,0.414 \
0.569,0.514 1.016,0.523 l 5,0 0,17.049 c 0,0 0,1 1,1 6.0000001,0 14.0000001,-0.049 \
20.0000001,-0.049 z" +         style="fill:#a54005"
+         sodipodi:nodetypes="ccccsccccsccccc"
+         id="path2125" />
+      <path
+         inkscape:connector-curvature="0"
+         d="m 8.3719179,35.767541 c 5.9030001,-0.002 13.6430001,-0.061 \
19.5620001,-0.063 l 0,-16.781 c -10e-4,-0.649 0.508,-1.186 1.157,-1.219 1.093,-0.053 \
4.057,-0.008 4.624,0 L 18.152918,2.1425413 2.6219179,17.704541 l 4.531,0 c 0.673,0 \
1.219,0.546 1.219,1.219 l 0,16.844 z" +         style="fill:url(#radialGradient2506)"
+         id="path3636" />
+      <path
+         inkscape:connector-curvature="0"
+         d="m 9.1529179,33.923541 c 0.9060001,1.031 17.0000001,1 18.0000001,0 1,-1 \
-0.122,-14.11 -0.094,-15 0.094,-3 4.094,-1 3.094,-3 -2,-3 -11,-11.9999997 \
-12,-11.9999997 -1,0 -10.0000001,8.9999997 -12.0000001,11.9999997 -1,2 3,0 3.094,3 \
0.029,0.935 -1.188,14.031 -0.094,15 z" +         \
style="fill:url(#linearGradient2508)" +         sodipodi:nodetypes="ccscccsc"
+         id="path1511" />
+      <path
+         inkscape:connector-curvature="0"
+         d="m 30.179918,15.923541 c -2,-3 -11,-11.9999997 -12,-11.9999997 -1,0 \
-7.027,5.459 -9.0270001,8.5019997 0.9730001,0 4.0000001,-3.5019997 \
9.0000001,-3.5019997 4,0 9,8.9999997 12.027,6.9999997 z" +         \
style="fill:url(#linearGradient2510)" +         sodipodi:nodetypes="ccccc"
+         id="path1548" />
+      <path
+         inkscape:connector-curvature="0"
+         d="m 18.117918,34.647541 c 4.262,-0.004 8.531,-0.25 9.031,-0.75 \
0.699,-0.698 0.4,-6.176 0.157,-10.188 -0.153,-2.786 -0.153,-2.786 -1.153,0.214 \
-3.493,10.479 -16.082,8.316 -17.4100001,7.943 0.063,1.007 0.175,1.826 0.406,2.031 \
0.454,0.515 4.7070001,0.754 8.9690001,0.75 z" +         \
style="fill:url(#linearGradient2512)" +         sodipodi:nodetypes="cscsccc"
+         id="path1558" />
+    </g>
+  </g>
+  <metadata
+     id="metadata25">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title>arrow_orange_up</dc:title>
+        <dc:date>2008-05-26T11:35:32</dc:date>
+        <dc:description />
+        <dc:source>https://openclipart.org/detail/16969/arrow_orange_up-by-jean_victor_balin</dc:source>
 +        <dc:creator>
+          <cc:Agent>
+            <dc:title>jean_victor_balin</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>arrow</rdf:li>
+            <rdf:li>icon</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+</svg>
diff --git a/src/activities/digital_electricity/resource/signalGenerator.svg \
b/src/activities/digital_electricity/resource/signalGenerator.svg new file mode \
100644 index 0000000..ec6081b
--- /dev/null
+++ b/src/activities/digital_electricity/resource/signalGenerator.svg
@@ -0,0 +1,552 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg47331"
+   sodipodi:docname="signalGenerator.svg"
+   inkscape:export-filename="/home/cats/Desktop/computer.png"
+   viewBox="0 0 883.94856 337.58"
+   sodipodi:version="0.32"
+   inkscape:export-xdpi="150"
+   version="1.0"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-ydpi="150"
+   inkscape:version="0.91 r13725"
+   width="883.94855"
+   height="337.57999">
+  <title
+     id="title3204">Function Generator</title>
+  <defs
+     id="defs47333">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="163.92147 : -145.6547 : 1"
+       inkscape:vp_y="0 : 975.24989 : 0"
+       inkscape:vp_z="413.792 : -145.6547 : 1"
+       inkscape:persp3d-origin="288.85674 : -200.52552 : 1"
+       id="perspective4571" />
+    <linearGradient
+       id="linearGradient49174"
+       y2="466.67999"
+       gradientUnits="userSpaceOnUse"
+       x2="273.32001"
+       gradientTransform="matrix(1.4069,0,0,1.5009,60.989,-990.24)"
+       y1="74.372002"
+       x1="74.372002"
+       inkscape:collect="always">
+      <stop
+         id="stop48365"
+         style="stop-color:#b3b3b3"
+         offset="0" />
+      <stop
+         id="stop48367"
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2945"
+       y2="845.69"
+       gradientUnits="userSpaceOnUse"
+       x2="158.69"
+       gradientTransform="matrix(0.76083441,0,0,0.27385674,150.34055,13.867473)"
+       y1="502.32001"
+       x1="154.85001"
+       inkscape:collect="always">
+      <stop
+         id="stop48120"
+         style="stop-color:#ffffff"
+         offset="0" />
+      <stop
+         id="stop48122"
+         style="stop-color:#666666;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       id="filter3732-3"
+       height="1.2345999"
+       width="1.2345999"
+       y="-0.11729"
+       x="-0.11729">
+      <feGaussianBlur
+         id="feGaussianBlur3734-8"
+         stdDeviation="2.1425868" />
+    </filter>
+    <linearGradient
+       id="linearGradient6253"
+       x1="421.85999"
+       gradientUnits="userSpaceOnUse"
+       x2="424.26001"
+       y1="316.17999"
+       y2="361.64001">
+      <stop
+         id="stop5625"
+         stop-color="#e4e4e4"
+         offset="0" />
+      <stop
+         id="stop5627"
+         stop-color="#555753"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4529"
+       x1="426.92001"
+       gradientUnits="userSpaceOnUse"
+       x2="420.22"
+       y1="307.38"
+       y2="349.10001">
+      <stop
+         id="stop3832"
+         stop-color="#babdb6"
+         offset="0" />
+      <stop
+         id="stop3834"
+         stop-color="#eeeeec"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6199">
+      <stop
+         id="stop6201"
+         stop-color="#fff"
+         offset="0" />
+      <stop
+         id="stop6203"
+         stop-color="#fff"
+         stop-opacity="0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       id="radialGradient6259"
+       gradientUnits="userSpaceOnUse"
+       cy="-212.3"
+       cx="426.88"
+       gradientTransform="matrix(1,0,0,0.29879,0,-148.87)"
+       r="27.625">
+      <stop
+         id="stop5731"
+         offset="0" />
+      <stop
+         id="stop5733"
+         stop-opacity="0"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient6261"
+       x1="417.54999"
+       gradientUnits="userSpaceOnUse"
+       x2="429.66"
+       y1="303.73001"
+       y2="351.62">
+      <stop
+         id="stop5753"
+         stop-color="#fff"
+         offset="0" />
+      <stop
+         id="stop5759"
+         stop-color="#d2d3d2"
+         offset=".82471" />
+      <stop
+         id="stop5755"
+         stop-color="#a9aaa8"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6263"
+       x1="414.34"
+       gradientUnits="userSpaceOnUse"
+       x2="437.13"
+       y1="310.62"
+       y2="347.56">
+      <stop
+         id="stop5763"
+         stop-color="#7c7c7c"
+         offset="0" />
+      <stop
+         id="stop5765"
+         stop-color="#fff"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4531"
+       x1="417.89999"
+       gradientUnits="userSpaceOnUse"
+       x2="417.89999"
+       y1="296.47"
+       y2="286.17999">
+      <stop
+         id="stop3814"
+         stop-color="#6ec715"
+         offset="0" />
+      <stop
+         id="stop3816"
+         stop-color="#244207"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4533"
+       x1="417.89999"
+       gradientUnits="userSpaceOnUse"
+       x2="421.94"
+       y1="292.42999"
+       y2="300.5">
+      <stop
+         id="stop3822"
+         stop-color="#888a85"
+         offset="0" />
+      <stop
+         id="stop3824"
+         stop-color="#fff"
+         offset="1" />
+    </linearGradient>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       id="filter3732-3-2"
+       height="1.2345999"
+       width="1.2345999"
+       y="-0.11729"
+       x="-0.11729">
+      <feGaussianBlur
+         id="feGaussianBlur3734-8-1"
+         stdDeviation="2.1425868" />
+    </filter>
+    <radialGradient
+       id="radialGradient6259-6"
+       gradientUnits="userSpaceOnUse"
+       cy="-212.3"
+       cx="426.88"
+       gradientTransform="matrix(1,0,0,0.29879,0,-148.87)"
+       r="27.625">
+      <stop
+         id="stop5731-4"
+         offset="0" />
+      <stop
+         id="stop5733-9"
+         stop-opacity="0"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       id="radialGradient2506"
+       gradientUnits="userSpaceOnUse"
+       cy="0.40529999"
+       cx="-18.299999"
+       gradientTransform="matrix(0.1316,-1.117,1.0576,0.12462,16.795918,11.338541)"
+       r="17.1"
+       inkscape:collect="always">
+      <stop
+         id="stop1427"
+         style="stop-color:#f0d81f"
+         offset="0" />
+      <stop
+         id="stop1429"
+         style="stop-color:#f07d0a"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient2508"
+       y2="47.922001"
+       gradientUnits="userSpaceOnUse"
+       x2="27.857"
+       gradientTransform="matrix(-1,0,0,-1,50.152918,50.923541)"
+       y1="16.238001"
+       x1="32"
+       inkscape:collect="always">
+      <stop
+         id="stop1520"
+         style="stop-color:#f3ac39;stop-opacity:.62876"
+         offset="0" />
+      <stop
+         id="stop1522"
+         style="stop-color:#fcba94;stop-opacity:.78261"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2510"
+       y2="47.922001"
+       xlink:href="#linearGradient1552"
+       gradientUnits="userSpaceOnUse"
+       x2="27.857"
+       gradientTransform="matrix(-1,0,0,-1,50.179918,50.923541)"
+       y1="16.238001"
+       x1="32"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient1552">
+      <stop
+         id="stop1554"
+         style="stop-color:#f9cc84"
+         offset="0" />
+      <stop
+         id="stop1556"
+         style="stop-color:#fed27f"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2512"
+       y2="16.238001"
+       xlink:href="#linearGradient1552"
+       gradientUnits="userSpaceOnUse"
+       x2="30.302"
+       gradientTransform="matrix(-1,0,0,-1,50.144918,50.885541)"
+       y1="47.962002"
+       x1="36.312"
+       inkscape:collect="always" />
+    <radialGradient
+       id="radialGradient2506-7"
+       gradientUnits="userSpaceOnUse"
+       cy="0.40529999"
+       cx="-18.299999"
+       gradientTransform="matrix(0.1316,-1.117,1.0576,0.12462,16.795918,11.338541)"
+       r="17.1"
+       inkscape:collect="always">
+      <stop
+         id="stop1427-5"
+         style="stop-color:#f0d81f"
+         offset="0" />
+      <stop
+         id="stop1429-8"
+         style="stop-color:#f07d0a"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient4442"
+       y2="16.238001"
+       xlink:href="#linearGradient1552"
+       gradientUnits="userSpaceOnUse"
+       x2="30.302"
+       gradientTransform="matrix(-1,0,0,-1,50.144918,50.885541)"
+       y1="47.962002"
+       x1="36.312"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2508"
+       id="linearGradient4450"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1,0,0,-1,50.152918,50.923541)"
+       x1="32"
+       y1="16.238001"
+       x2="27.857"
+       y2="47.922001" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient1552"
+       id="linearGradient4452"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1,0,0,-1,50.179918,50.923541)"
+       x1="32"
+       y1="16.238001"
+       x2="27.857"
+       y2="47.922001" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient1552"
+       id="linearGradient4454"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1,0,0,-1,50.144918,50.885541)"
+       x1="36.312"
+       y1="47.962002"
+       x2="30.302"
+       y2="16.238001" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2508"
+       id="linearGradient4456"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1,0,0,-1,50.152918,50.923541)"
+       x1="32"
+       y1="16.238001"
+       x2="27.857"
+       y2="47.922001" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     bordercolor="#666666"
+     inkscape:pageshadow="2"
+     inkscape:guide-bbox="true"
+     pagecolor="#ffffff"
+     inkscape:window-height="705"
+     inkscape:window-maximized="1"
+     inkscape:zoom="0.7005778"
+     inkscape:window-x="-8"
+     showgrid="false"
+     borderopacity="1.0"
+     inkscape:current-layer="layer1"
+     inkscape:cx="322.74115"
+     inkscape:cy="197.9809"
+     showguides="true"
+     inkscape:window-y="-8"
+     inkscape:snap-global="true"
+     inkscape:window-width="1366"
+     inkscape:pageopacity="0.0"
+     inkscape:document-units="px"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0" />
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     transform="translate(-54.309998,-114.79)">
+    <rect
+       id="rect47341"
+       style="fill:url(#linearGradient49174);stroke:#4d4d4d;stroke-width:16"
+       transform="matrix(0,1,-1,0,0,0)"
+       ry="60.035999"
+       height="621.79999"
+       width="321.57999"
+       y="-684.10999"
+       x="122.79" />
+    <g
+       id="g4339"
+       transform="matrix(0.99842995,0,0,2.4017815,-94.975504,-208.51518)">
+      <rect
+         id="rect48116"
+         style="fill:#008080;stroke:#333333;stroke-width:6.48368311"
+         ry="5.0860443"
+         height="108.4543"
+         width="447.02075"
+         y="151.03702"
+         x="196.75659" />
+      <path
+         id="rect48114"
+         sodipodi:nodetypes="ccccc"
+         style="opacity:0.56499999;fill:url(#linearGradient2945)"
+         d="m 215.19335,155.44038 410.05,0 c -59.54008,65.38533 -294.54478,25.94097 \
-422.83468,93.51709 l 0,-88.91533 c 0,-2.54906 5.70123,-4.60098 12.78252,-4.60098 z" \
+         inkscape:connector-curvature="0" /> +    </g>
+    <path
+       d="m 786.33065,286.84661 -98.79995,0"
+       style="fill:none;stroke:#4d4d4d;stroke-width:6.08970118;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 +       id="path2906"
+       inkscape:connector-curvature="0" />
+    <circle
+       style="opacity:0.64899998;fill:#000000;fill-opacity:0.93377482;stroke:#000000; \
stroke-width:0;stroke-miterlimit:3.54999995;stroke-dasharray:none;stroke-opacity:0.05298013"
 +       id="path5637-8"
+       cx="862.08008"
+       cy="287.5553"
+       r="76.178482" />
+    <g
+       transform="matrix(3.1703101,0,0,3.1703101,555.71881,150.6584)"
+       id="g4207">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 28.152918,36.923541 c 1,0 1,-1 1,-1 l 0,-17 c 1,-0.049 5,0 5,0 \
0.447,-0.009 0.846,-0.109 1.016,-0.523 0.17,-0.414 0.077,-0.889 -0.235,-1.209 l \
-16,-15.9999997 c -0.435,-0.42200004 -1.127,-0.42200004 -1.562,0 L \
1.3719179,17.191541 c -0.312,0.32 -0.40500001,0.795 -0.235,1.209 0.17,0.414 \
0.569,0.514 1.016,0.523 l 5,0 0,17.049 c 0,0 0,1 1,1 6.0000001,0 14.0000001,-0.049 \
20.0000001,-0.049 z" +         style="fill:#a54005"
+         sodipodi:nodetypes="ccccsccccsccccc"
+         id="path2125" />
+      <path
+         inkscape:connector-curvature="0"
+         d="m 8.3719179,35.767541 c 5.9030001,-0.002 13.6430001,-0.061 \
19.5620001,-0.063 l 0,-16.781 c -10e-4,-0.649 0.508,-1.186 1.157,-1.219 1.093,-0.053 \
4.057,-0.008 4.624,0 L 18.152918,2.1425413 2.6219179,17.704541 l 4.531,0 c 0.673,0 \
1.219,0.546 1.219,1.219 l 0,16.844 z" +         style="fill:url(#radialGradient2506)"
+         id="path3636" />
+      <path
+         inkscape:connector-curvature="0"
+         d="m 9.1529179,33.923541 c 0.9060001,1.031 17.0000001,1 18.0000001,0 1,-1 \
-0.122,-14.11 -0.094,-15 0.094,-3 4.094,-1 3.094,-3 -2,-3 -11,-11.9999997 \
-12,-11.9999997 -1,0 -10.0000001,8.9999997 -12.0000001,11.9999997 -1,2 3,0 3.094,3 \
0.029,0.935 -1.188,14.031 -0.094,15 z" +         \
style="fill:url(#linearGradient4456)" +         sodipodi:nodetypes="ccscccsc"
+         id="path1511" />
+      <path
+         inkscape:connector-curvature="0"
+         d="m 30.179918,15.923541 c -2,-3 -11,-11.9999997 -12,-11.9999997 -1,0 \
-7.027,5.459 -9.0270001,8.5019997 0.9730001,0 4.0000001,-3.5019997 \
9.0000001,-3.5019997 4,0 9,8.9999997 12.027,6.9999997 z" +         \
style="fill:url(#linearGradient2510)" +         sodipodi:nodetypes="ccccc"
+         id="path1548" />
+      <path
+         inkscape:connector-curvature="0"
+         d="m 18.117918,34.647541 c 4.262,-0.004 8.531,-0.25 9.031,-0.75 \
0.699,-0.698 0.4,-6.176 0.157,-10.188 -0.153,-2.786 -0.153,-2.786 -1.153,0.214 \
-3.493,10.479 -16.082,8.316 -17.4100001,7.943 0.063,1.007 0.175,1.826 0.406,2.031 \
0.454,0.515 4.7070001,0.754 8.9690001,0.75 z" +         \
style="fill:url(#linearGradient2512)" +         sodipodi:nodetypes="cscsccc"
+         id="path1558" />
+    </g>
+    <g
+       transform="matrix(-3.1697085,-0.06175744,0.06175744,-3.1697085,669.69854,416.71901)"
 +       id="g4207-3">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 28.152918,36.923541 c 1,0 1,-1 1,-1 l 0,-17 c 1,-0.049 5,0 5,0 \
0.447,-0.009 0.846,-0.109 1.016,-0.523 0.17,-0.414 0.077,-0.889 -0.235,-1.209 l \
-16,-15.9999997 c -0.435,-0.42200004 -1.127,-0.42200004 -1.562,0 L \
1.3719179,17.191541 c -0.312,0.32 -0.40500001,0.795 -0.235,1.209 0.17,0.414 \
0.569,0.514 1.016,0.523 l 5,0 0,17.049 c 0,0 0,1 1,1 6.0000001,0 14.0000001,-0.049 \
20.0000001,-0.049 z" +         style="fill:#a54005"
+         sodipodi:nodetypes="ccccsccccsccccc"
+         id="path2125-2" />
+      <path
+         inkscape:connector-curvature="0"
+         d="m 8.3719179,35.767541 c 5.9030001,-0.002 13.6430001,-0.061 \
19.5620001,-0.063 l 0,-16.781 c -10e-4,-0.649 0.508,-1.186 1.157,-1.219 1.093,-0.053 \
4.057,-0.008 4.624,0 L 18.152918,2.1425413 2.6219179,17.704541 l 4.531,0 c 0.673,0 \
1.219,0.546 1.219,1.219 l 0,16.844 z" +         \
style="fill:url(#radialGradient2506-7)" +         id="path3636-6" />
+      <path
+         inkscape:connector-curvature="0"
+         d="m 9.1529179,33.923541 c 0.9060001,1.031 17.0000001,1 18.0000001,0 1,-1 \
-0.122,-14.11 -0.094,-15 0.094,-3 4.094,-1 3.094,-3 -2,-3 -11,-11.9999997 \
-12,-11.9999997 -1,0 -10.0000001,8.9999997 -12.0000001,11.9999997 -1,2 3,0 3.094,3 \
0.029,0.935 -1.188,14.031 -0.094,15 z" +         \
style="fill:url(#linearGradient4450)" +         sodipodi:nodetypes="ccscccsc"
+         id="path1511-9" />
+      <path
+         inkscape:connector-curvature="0"
+         d="m 30.179918,15.923541 c -2,-3 -11,-11.9999997 -12,-11.9999997 -1,0 \
-7.027,5.459 -9.0270001,8.5019997 0.9730001,0 4.0000001,-3.5019997 \
9.0000001,-3.5019997 4,0 9,8.9999997 12.027,6.9999997 z" +         \
style="fill:url(#linearGradient4452)" +         sodipodi:nodetypes="ccccc"
+         id="path1548-1" />
+      <path
+         inkscape:connector-curvature="0"
+         d="m 18.117918,34.647541 c 4.262,-0.004 8.531,-0.25 9.031,-0.75 \
0.699,-0.698 0.4,-6.176 0.157,-10.188 -0.153,-2.786 -0.153,-2.786 -1.153,0.214 \
-3.493,10.479 -16.082,8.316 -17.4100001,7.943 0.063,1.007 0.175,1.826 0.406,2.031 \
0.454,0.515 4.7070001,0.754 8.9690001,0.75 z" +         \
style="fill:url(#linearGradient4454)" +         sodipodi:nodetypes="cscsccc"
+         id="path1558-5" />
+    </g>
+  </g>
+  <metadata
+     id="metadata67">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title>Function Generator</dc:title>
+        <dc:date>2009-11-02T21:36:40</dc:date>
+        <dc:description>A stylized depiction of a function \
generator.</dc:description> +        \
<dc:source>https://openclipart.org/detail/28031/function-generator-by-mothinator</dc:source>
 +        <dc:creator>
+          <cc:Agent>
+            <dc:title>mothinator</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>cartoon</rdf:li>
+            <rdf:li>electronic equipment</rdf:li>
+            <rdf:li>equipment</rdf:li>
+            <rdf:li>function generator</rdf:li>
+            <rdf:li>remix</rdf:li>
+            <rdf:li>science</rdf:li>
+            <rdf:li>scientific equipment</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+</svg>
diff --git a/src/activities/digital_electricity/resource/valueContainer.svg \
b/src/activities/digital_electricity/resource/valueContainer.svg new file mode 100644
index 0000000..b982ddc
--- /dev/null
+++ b/src/activities/digital_electricity/resource/valueContainer.svg
@@ -0,0 +1,336 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg47331"
+   sodipodi:docname="valueContainer.svg"
+   inkscape:export-filename="/home/cats/Desktop/computer.png"
+   viewBox="0 0 452.792 276.05601"
+   sodipodi:version="0.32"
+   inkscape:export-xdpi="150"
+   version="1.0"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-ydpi="150"
+   inkscape:version="0.91 r13725"
+   width="452.79199"
+   height="276.056">
+  <title
+     id="title3204">Function Generator</title>
+  <defs
+     id="defs47333">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="163.92147 : -145.6547 : 1"
+       inkscape:vp_y="0 : 975.24989 : 0"
+       inkscape:vp_z="413.792 : -145.6547 : 1"
+       inkscape:persp3d-origin="288.85674 : -200.52552 : 1"
+       id="perspective4571" />
+    <linearGradient
+       id="linearGradient2945"
+       y2="845.69"
+       gradientUnits="userSpaceOnUse"
+       x2="158.69"
+       gradientTransform="matrix(0.76083441,0,0,0.27385674,150.34055,13.867473)"
+       y1="502.32001"
+       x1="154.85001"
+       inkscape:collect="always">
+      <stop
+         id="stop48120"
+         style="stop-color:#ffffff"
+         offset="0" />
+      <stop
+         id="stop48122"
+         style="stop-color:#666666;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       id="filter3732-3"
+       height="1.2345999"
+       width="1.2345999"
+       y="-0.11729"
+       x="-0.11729">
+      <feGaussianBlur
+         id="feGaussianBlur3734-8"
+         stdDeviation="2.1425868" />
+    </filter>
+    <linearGradient
+       id="linearGradient6253"
+       x1="421.85999"
+       gradientUnits="userSpaceOnUse"
+       x2="424.26001"
+       y1="316.17999"
+       y2="361.64001">
+      <stop
+         id="stop5625"
+         stop-color="#e4e4e4"
+         offset="0" />
+      <stop
+         id="stop5627"
+         stop-color="#555753"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4529"
+       x1="426.92001"
+       gradientUnits="userSpaceOnUse"
+       x2="420.22"
+       y1="307.38"
+       y2="349.10001">
+      <stop
+         id="stop3832"
+         stop-color="#babdb6"
+         offset="0" />
+      <stop
+         id="stop3834"
+         stop-color="#eeeeec"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6199">
+      <stop
+         id="stop6201"
+         stop-color="#fff"
+         offset="0" />
+      <stop
+         id="stop6203"
+         stop-color="#fff"
+         stop-opacity="0"
+         offset="1" />
+    </linearGradient>
+    <radialGradient
+       id="radialGradient6259"
+       gradientUnits="userSpaceOnUse"
+       cy="-212.3"
+       cx="426.88"
+       gradientTransform="matrix(1,0,0,0.29879,0,-148.87)"
+       r="27.625">
+      <stop
+         id="stop5731"
+         offset="0" />
+      <stop
+         id="stop5733"
+         stop-opacity="0"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient6261"
+       x1="417.54999"
+       gradientUnits="userSpaceOnUse"
+       x2="429.66"
+       y1="303.73001"
+       y2="351.62">
+      <stop
+         id="stop5753"
+         stop-color="#fff"
+         offset="0" />
+      <stop
+         id="stop5759"
+         stop-color="#d2d3d2"
+         offset=".82471" />
+      <stop
+         id="stop5755"
+         stop-color="#a9aaa8"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6263"
+       x1="414.34"
+       gradientUnits="userSpaceOnUse"
+       x2="437.13"
+       y1="310.62"
+       y2="347.56">
+      <stop
+         id="stop5763"
+         stop-color="#7c7c7c"
+         offset="0" />
+      <stop
+         id="stop5765"
+         stop-color="#fff"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4531"
+       x1="417.89999"
+       gradientUnits="userSpaceOnUse"
+       x2="417.89999"
+       y1="296.47"
+       y2="286.17999">
+      <stop
+         id="stop3814"
+         stop-color="#6ec715"
+         offset="0" />
+      <stop
+         id="stop3816"
+         stop-color="#244207"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4533"
+       x1="417.89999"
+       gradientUnits="userSpaceOnUse"
+       x2="421.94"
+       y1="292.42999"
+       y2="300.5">
+      <stop
+         id="stop3822"
+         stop-color="#888a85"
+         offset="0" />
+      <stop
+         id="stop3824"
+         stop-color="#fff"
+         offset="1" />
+    </linearGradient>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       id="filter3732-3-2"
+       height="1.2345999"
+       width="1.2345999"
+       y="-0.11729"
+       x="-0.11729">
+      <feGaussianBlur
+         id="feGaussianBlur3734-8-1"
+         stdDeviation="2.1425868" />
+    </filter>
+    <radialGradient
+       id="radialGradient6259-6"
+       gradientUnits="userSpaceOnUse"
+       cy="-212.3"
+       cx="426.88"
+       gradientTransform="matrix(1,0,0,0.29879,0,-148.87)"
+       r="27.625">
+      <stop
+         id="stop5731-4"
+         offset="0" />
+      <stop
+         id="stop5733-9"
+         stop-opacity="0"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       id="linearGradient1552">
+      <stop
+         id="stop1554"
+         style="stop-color:#f9cc84"
+         offset="0" />
+      <stop
+         id="stop1556"
+         style="stop-color:#fed27f"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4442"
+       y2="16.238001"
+       xlink:href="#linearGradient1552"
+       gradientUnits="userSpaceOnUse"
+       x2="30.302"
+       gradientTransform="matrix(-1,0,0,-1,50.144918,50.885541)"
+       y1="47.962002"
+       x1="36.312"
+       inkscape:collect="always" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     bordercolor="#666666"
+     inkscape:pageshadow="2"
+     inkscape:guide-bbox="true"
+     pagecolor="#ffffff"
+     inkscape:window-height="705"
+     inkscape:window-maximized="1"
+     inkscape:zoom="0.7005778"
+     inkscape:window-x="-8"
+     showgrid="false"
+     borderopacity="1.0"
+     inkscape:current-layer="layer1"
+     inkscape:cx="295.8801"
+     inkscape:cy="168.12339"
+     showguides="true"
+     inkscape:window-y="-8"
+     inkscape:snap-global="true"
+     inkscape:window-width="1366"
+     inkscape:pageopacity="0.0"
+     inkscape:document-units="px"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0" />
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     transform="translate(-98.235,-146.45646)">
+    <g
+       id="g4339"
+       transform="matrix(0.99842904,0,0,2.4017823,-94.975746,-208.51538)">
+      <rect
+         id="rect48116"
+         style="fill:#008080;stroke:#333333;stroke-width:6.48368311"
+         ry="5.0860443"
+         height="108.4543"
+         width="447.02075"
+         y="151.03702"
+         x="196.75659" />
+      <path
+         id="rect48114"
+         sodipodi:nodetypes="ccccc"
+         style="opacity:0.56499999;fill:url(#linearGradient2945)"
+         d="m 215.19335,155.44038 410.05,0 c -59.54008,65.38533 -294.54478,25.94097 \
-422.83468,93.51709 l 0,-88.91533 c 0,-2.54906 5.70123,-4.60098 12.78252,-4.60098 z" \
+         inkscape:connector-curvature="0" /> +    </g>
+  </g>
+  <metadata
+     id="metadata67">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/">
+            <dc:title>Openclipart</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title>Function Generator</dc:title>
+        <dc:date>2009-11-02T21:36:40</dc:date>
+        <dc:description>A stylized depiction of a function \
generator.</dc:description> +        \
<dc:source>https://openclipart.org/detail/28031/function-generator-by-mothinator</dc:source>
 +        <dc:creator>
+          <cc:Agent>
+            <dc:title>mothinator</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>cartoon</rdf:li>
+            <rdf:li>electronic equipment</rdf:li>
+            <rdf:li>equipment</rdf:li>
+            <rdf:li>function generator</rdf:li>
+            <rdf:li>remix</rdf:li>
+            <rdf:li>science</rdf:li>
+            <rdf:li>scientific equipment</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+</svg>


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic