ColorModulation Property (CIMPointCloudRenderer)
Gets or sets the filter used to filter the points being drawn.
Create and Set a Stretch Renderer
//Must be called on the MCT
//var pcsl = ...;
//At 2.x - var fields = pcsl.QueryAvailablePointCloudRendererFields(
// PointCloudRendererType.StretchRenderer);
var fields = pcsl.GetAvailablePointCloudRendererFields(
PointCloudRendererType.StretchRenderer);
var stretchDef = new PointCloudRendererDefinition(
PointCloudRendererType.StretchRenderer)
{
//Will be either ELEVATION or INTENSITY
Field = fields[0]
};
//Create the CIM Renderer
var stretchRenderer = pcsl.CreateRenderer(stretchDef)
as CIMPointCloudStretchRenderer;
//Apply a color ramp
var style = Project.Current.GetItems<StyleProjectItem>()
.First(s => s.Name == "ArcGIS Colors");
var colorRamp = style.SearchColorRamps("").First();
stretchRenderer.ColorRamp = colorRamp.ColorRamp;
//Apply modulation
stretchRenderer.ColorModulation = new CIMColorModulationInfo()
{
MinValue = 0,
MaxValue = 100
};
//apply the renderer
pcsl.SetRenderer(stretchRenderer);
Edit Color Modulation
//Must be called on the MCT
//var pcsl = ...;
var def = pcsl.GetDefinition() as CIMPointCloudLayer;
//Get the ColorModulation off the renderer
var modulation = def.Renderer.ColorModulation;
if (modulation == null)
modulation = new CIMColorModulationInfo();
//Set the minimum and maximum intensity as needed
modulation.MinValue = 0;
modulation.MaxValue = 100.0;
//apply back
def.Renderer.ColorModulation = modulation;
//Commit changes back to the CIM
pcsl.SetDefinition(def);
Target Platforms: Windows 11, Windows 10
ArcGIS Pro version: 3.0 or higher.