//Must be called on the MCT
//var pcsl = ...;
var filters = pcsl.GetFilters();
PointCloudFilterDefinition fdef = null;
if (filters.Count() == 0)
{
fdef = new PointCloudFilterDefinition()
{
//7 is "edge of flight line" - exclude
ClassFlags = new List<ClassFlag> {
new ClassFlag(7, ClassFlagOption.Exclude) }
};
}
else
{
fdef = PointCloudFilterDefinition.FromCIM(filters);
//keep any include or ignore class flags
var keep = fdef.ClassFlags.Where(
cf => cf.ClassFlagOption != ClassFlagOption.Exclude).ToList();
//7 is "edge of flight line" - exclude
keep.Add(new ClassFlag(7, ClassFlagOption.Exclude));
fdef.ClassFlags = keep;
}
//apply
pcsl.SetFilters(fdef.ToCIM());