#region License Information
/* HeuristicLab
* Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
*
* This file is part of HeuristicLab.
*
* HeuristicLab 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.
*
* HeuristicLab 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 HeuristicLab. If not, see .
*/
#endregion
using GeoAPI.Geometries;
using Google.Protobuf;
using HEAL.Attic;
using HeuristicLab.Persistence.Core;
using HeuristicLab.Persistence.Interfaces;
using NetTopologySuite.Geometries;
using NetTopologySuite.IO;
using System;
using System.Collections.Generic;
using System.Linq;
namespace HeuristicLab.BioBoost.Persistence {
[Transformer("C8168BD4-55BF-4478-98FD-B66D29C82D55", 100)]
public class GeometryTransformer : BoxTransformer {
protected override void Populate(Box box, IGeometry value, Mapper mapper) {
box.Value = new ScalarValueBox();
box.Value.Bytes = ByteString.CopyFrom(new WKBWriter().Write(value));
}
protected override IGeometry Extract(Box box, Type type, Mapper mapper) {
return new WKBReader().Read(box.Value.Bytes.ToByteArray());
}
public override bool CanTransformType(Type type) {
return typeof(IGeometry).IsAssignableFrom(type);
}
}
}