Using an ERegion to Crop a ZMap

The code shows how to perform cropping on a zmap.

C++

#include <eVision/Easy3D/EUtils.h>
#include <eVision/Easy/EPolygonRegion.h>
using namespace eVision;
using namespace eVision::Easy3D;

EZMap8 zmap;
zmap.Load("");

// prepare an ERegion
std::vector<EPoint> points = { EPoint(90, 76), EPoint(432, 87),
EPoint(466, 91), EPoint(502, 122), EPoint(513, 169),
EPoint(485, 218), EPoint(436, 231), EPoint(86, 215) };
EPolygonRegion region(points);  // could be any type of ERegion

EZMap8 zmapCropped(zmap.GetWidth(), zmap.GetHeight());
EUtils::Copy(zmap.GetUndefinedValue(), zmapCropped);
EUtils::Copy(zmap, region, zmapCropped);

C#

using eVision;
using eVision.Easy3D;
EZMap8 zmap = new EZMap8();
zmap.Load("");

// prepare an ERegion
EPoint[] points = new EPoint[] { new EPoint(90, 76), new EPoint(432, 87),
  new EPoint(466, 91), new EPoint(502, 122), new EPoint(513, 169),
  new EPoint(485, 218), new EPoint(436, 231), new EPoint(86, 215) };
EPolygonRegion region = new EPolygonRegion(points);  // could be any type of ERegion

EZMap8 zmapCropped = new EZMap8(zmap.Width, zmap.Height);
EUtils.Copy(zmap.UndefinedValue, zmapCropped);
EUtils.Copy(zmap, region, zmapCropped);

Python

import eVision
from eVision import Easy3D
zmap = Easy3D.EZMap8()
zmap.Load("")

# prepare an ERegion
points = [ eVision.EPoint(90, 76), eVision.EPoint(432, 87),
    eVision.EPoint(466, 91), eVision.EPoint(502, 122), eVision.EPoint(513, 169),
    eVision.EPoint(485, 218), eVision.EPoint(436, 231), eVision.EPoint(86, 215) ]
region = eVision.EPolygonRegion(points)  # could be any type of ERegion

zmap_cropped = Easy3D.EZMap8(zmap.Width, zmap.Height)
Easy3D.EUtils.Copy(zmap.UndefinedValue, zmap_cropped)
Easy3D.EUtils.Copy(zmap, region, zmap_cropped)