Public Property Breaks As CIMColorClassBreak()
public CIMColorClassBreak[] Breaks {get; set;}
Public Property Breaks As CIMColorClassBreak()
public CIMColorClassBreak[] Breaks {get; set;}
{
// Note: call within QueuedTask.Run()
{
var fields = pointCloudSceneLayer.GetAvailablePointCloudRendererFields(
PointCloudRendererType.ClassBreaksRenderer);
var classBreakDef = new PointCloudRendererDefinition(
PointCloudRendererType.ClassBreaksRenderer)
{
//ELEVATION or INTENSITY
Field = fields[0]
};
//create the renderer
var cbr = pointCloudSceneLayer.CreateRenderer(classBreakDef)
as CIMPointCloudClassBreaksRenderer;
//Set up a color scheme to use
var style = Project.Current.GetItems<StyleProjectItem>()
.First(s => s.Name == "ArcGIS Colors");
var rampStyle = style.LookupItem(
StyleItemType.ColorRamp, "Spectrum By Wavelength-Full Bright_Multi-hue_2")
as ColorRampStyleItem;
var colorScheme = rampStyle.ColorRamp;
//Set up 6 manual class breaks
var breaks = 6;
var colors = ColorFactory.Instance.GenerateColorsFromColorRamp(
colorScheme, breaks);
var classBreaks = new List<CIMColorClassBreak>();
var min = cbr.Breaks[0].UpperBound;
var max = cbr.Breaks[cbr.Breaks.Count() - 1].UpperBound;
var step = (max - min) / (double)breaks;
//add in the class breaks
double upper = min;
for (int b = 1; b <= breaks; b++)
{
double lower = upper;
upper = b == breaks ? max : min + (b * step);
var cb = new CIMColorClassBreak()
{
UpperBound = upper,
Label = string.Format("{0:#0.0#} - {1:#0.0#}", lower, upper),
Color = colors[b - 1]
};
classBreaks.Add(cb);
}
cbr.Breaks = classBreaks.ToArray();
pointCloudSceneLayer.SetRenderer(cbr);
}
}
Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)