#!/bin/sh

set -e

CUBE_VTP_FILE_PATH=$AUTOPKGTEST_TMP/cube.vtp
OUTPUT_PNG=$AUTOPKGTEST_ARTIFACTS/cube_vtp.png 
ERROR_PNG=$AUTOPKGTEST_ARTIFACTS/cube_vtp_error.png

cat <<EOF > $CUBE_VTP_FILE_PATH
<?xml version="1.0"?>
  <VTKFile type="PPolyData" version="0.1" byte_order="LittleEndian">
    <PPolyData GhostLevel="0">
      <PPointData Scalars="my_scalars">
        <PDataArray type="Float32" Name="my_scalars"/>
      </PPointData>
        <PCellData Scalars="cell_scalars" Normals="cell_normals">
          <PDataArray type="Int32" Name="cell_scalars"/>
           <PDataArray type="Float32" Name="cell_normals" NumberOfComponents="3"/>
        </PCellData>
        <PPoints>
          <PDataArray type="Float32" NumberOfComponents="3"/>
        </PPoints>
        <Piece Source="polyEx0.vtp"/>
    </PPolyData>
  </VTKFile>
EOF

cat <<EOF > $AUTOPKGTEST_TMP/polyEx0.vtp
<?xml version="1.0"?>
    <VTKFile type="PolyData" version="0.1" byte_order="LittleEndian">
      <PolyData>
        <Piece NumberOfPoints="8" NumberOfVerts="0" NumberOfLines="0"
               NumberOfStrips="0" NumberOfPolys="6">
        <Points>
          <DataArray type="Float32" NumberOfComponents="3" format="ascii">
            0 0 0 1 0 0 1 1 0 0 1 0 0 0 1 1 0 1 1 1 1 0 1 1
          </DataArray>
        </Points>
        <PointData Scalars="my_scalars">
          <DataArray type="Float32" Name="my_scalars" format="ascii">
            0 1 2 3 4 5 6 7
         </DataArray>
        </PointData>
        <CellData Scalars="cell_scalars" Normals="cell_normals">
          <DataArray type="Int32" Name="cell_scalars" format="ascii">
           0 1 2 3 4 5
          </DataArray>
          <DataArray type="Float32" Name="cell_normals"
                     NumberOfComponents="3" format="ascii">
            0 0 -1 0 0 1 0 -1 0 0 1 0 -1 0 0 1 0 0
          </DataArray>
        </CellData>
        <Polys>
          <DataArray type="Int32" Name="connectivity" format="ascii">
             0 1 2 3 4 5 6 7 0 1 5 4 2 3 7 6 0 4 7 3 1 2 6 5
          </DataArray>
          <DataArray type="Int32" Name="offsets" format="ascii">
             4 8 12 16 20 24
          </DataArray>
        </Polys>
      </Piece>
    </PolyData>
   </VTKFile>
EOF

echo ==========
echo Smoke Test
echo ==========
f3d --no-render $CUBE_VTP_FILE_PATH


echo ===========================
echo Generate the new screenshot
echo ===========================
xvfb-run f3d -s --resolution=640,480 --output=$OUTPUT_PNG $CUBE_VTP_FILE_PATH

echo ================
echo Compare with ref
echo ================
idiff -v -failpercent 2 -warnpercent 2 -o $ERROR_PNG -abs -scale 100 debian/tests/cube_vtp_ref.png $OUTPUT_PNG
