<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="../../../design/description.xslt" type="text/xsl"?>

<node xmlns="http://dynamicnodes.mastersign.de/description" 
      type="DynamicNode.Lib.Imaging.NDynamicRaster" assembly="NLibDefault">
  <caption>Dynamisches Raster</caption>
  <group>Bildverarbeitung</group>
  <description>Bildet ein Bild mit ungleichmäßiger Dichte ab.</description>
  <inPorts>
    <port name="source" caption="Quelle">
<type>IMDO&lt;Byte&gt;</type>
<description>Das Ausgangs-Bild.</description>
</port>
    <port name="densityImage" caption="Dichte-Bild">
      <type>IMDO&lt;Byte&gt;</type>
      <description>
        Ein Bild, welches die Abtastfunktion darstellt.
        Felder mit dem Wert 255 Bedeuten, dass dieser Bildpunkt 1:1
        abgebildet wird. Felder mit dem Wert 0 bedeuten das
        dieser Bildpunkt 1:256 abgebildet wird.
        (Dieser Eingang wir ignoriert, wenn der Eingang &quot;Dichte-Funktion&quot;
        belegt ist.)
      </description>
    </port>
    <port name="center" caption="Zentrieren" managed="true">
      <type>Boolean</type>
      <description>
        Gibt an, ob die Pixel des Ergebnisbildes zentriert
        dargestellt werden sollen oder nicht.
      </description>
    </port>
    <port name="densityFactor" caption="Dichte-Faktor" managed="true">
      <type>Double</type>
      <description>
        Mit diesem Faktor wird die Dichtefunktion multipliziert,
        und so die Größe des Ausgabebildes beeinflusst.
        Man könnte auch sagen dass die Abtastraten mit durch diesen
        Faktor skaliert werden.
      </description>
    </port>
    <port name="inDensityFunction" caption="Dichte-Funktion">
      <type>IDensityFunction</type>
      <description>
        Wenn dieser Eingang mit dem Ausgang &quot;Dichte-Funktion&quot;
        eines weiteren &quot;Dyn. Raster&quot;-Knotens verbunden wird,
        erfolgt in diesem Knoten keine Berechnung der Dichtefunktion.
        In diesem Fall wird die Abtastfunktion des anderen Knotens verwendet.
        (Falls dieser Eingang belegt ist, wird der Eingang
        &quot;Dichte-Funktion&quot; ignoriert.)
      </description>
    </port>
  </inPorts>
  <outPorts>
    <port name="result" caption="Ergebnis">
<type>IMDO&lt;Byte&gt;</type>
<description>Das Ergebnis-MDO.</description>
</port>
    <port name="outDensityFunction" caption="Dichte-Funktion">
      <type>IDensityFunction</type>
      <description>
        Dieser Ausgang gibt entweder die aus dem &quot;Dichte-Bild&quot;
        berechnete Abtastfunktion an andere &quot;Dyn. Raster&quot;-Knoten weiter,
        oder schleift den Eingang &quot;Dichte-Funktion&quot; durch,
        falls dieser belegt ist.
      </description>
    </port>
  </outPorts>
  <helpText>
    <p>
      Dieser Knoten berechnet aus einem Dichte-Bild eine 2-dimensionale
      Abtastfunktion und bildet mit deren Hilfe das Quell-Bild auf ein
      neues Bild ab.
    </p>
    <p>
      Sowohl im Quell-Bild als auch im Dichte-Bild werden nur die ersten 
      zwei Dimensionen berücksichtigt.<br/>
      Die Größe des Ausgabe-Bildes ergibt sich aus den Minima 
      der ersten und zweiten Dimensionsgröße von Quell- und Dichte-Bild.
    </p>
    <info>
      Da das Berechnen der Abtastfunktion und das Abbilden des Quell-Bildes
      auf das Ergebnis-Bild eine nicht umkehrbare Funktion darstellt,
      muss das Ergebnisbild im Speicher abgelegt werden.
      Das ist auch der Grund, warum die Anwendung der Dichte-Funktion auf
      2-dimensionale Objekte beschränkt ist.
    </info>
    <info>
      Das Durchschleifen der Dichte-Funktion ist nützlich, 
      wenn mehrkanalige Bilder bearbeitet werden sollen.
    </info>
  </helpText>
  <customArea>
    Es wird eine Statusanzeige für den Berechnungsprozess angezeigt.
  </customArea>
</node>