SetSliceContainerVisibility Method
Sets the slice container visibility.
This method must be called on the MCT. Use QueuedTask.Run.
public void SetSliceContainerVisibility(
bool
)
Public Sub SetSliceContainerVisibility( _
ByVal As Boolean _
)
Parameters
- isVisible
- Toggle visibility.
Manipulate the Voxel Layer TOC Group
//var voxelLayer = ...
//Must be on the QueuedTask.Run()
//Toggle containers and visibility in the TOC
voxelLayer.SetExpanded(!voxelLayer.IsExpanded);
voxelLayer.SetVisibility(!voxelLayer.IsVisible);
voxelLayer.SetIsosurfaceContainerExpanded(!voxelLayer.IsIsosurfaceContainerExpanded);
voxelLayer.SetIsosurfaceContainerVisibility(!voxelLayer.IsIsosurfaceContainerVisible);
voxelLayer.SetSliceContainerExpanded(voxelLayer.IsSliceContainerExpanded);
voxelLayer.SetSliceContainerVisibility(!voxelLayer.IsSliceContainerVisible);
voxelLayer.SetSectionContainerExpanded(!voxelLayer.IsSectionContainerExpanded);
voxelLayer.SetSectionContainerVisibility(!voxelLayer.IsSectionContainerVisible);
voxelLayer.SetLockedSectionContainerExpanded(!voxelLayer.IsLockedSectionContainerExpanded);
voxelLayer.SetLockedSectionContainerVisibility(!voxelLayer.IsLockedSectionContainerVisible);
Get the Collection of Slices
//var voxelLayer = ... ;
//Must be on the QueuedTask.Run()
//At 2.x - var slices = voxelLayer.GetSlices();
//Use the SelectedVariableProfile to get the slices currently in the TOC
//via its associated volume
var volume = voxelLayer.SelectedVariableProfile.Volume;
var slices = volume.GetSlices();
//Do something... e.g. make them visible
foreach (var slice in slices)
{
slice.IsVisible = true;
//at 2.x - voxelLayer.UpdateSlice(slice);
volume.UpdateSlice(slice);
}
//expand the slice container and make sure container visibility is true
voxelLayer.SetSliceContainerExpanded(true);
voxelLayer.SetSliceContainerVisibility(true);
Create a Slice
//var voxelLayer = ... ;
//Must be on the QueuedTask.Run()
if (voxelLayer.Visualization != VoxelVisualization.Volume)
voxelLayer.SetVisualization(VoxelVisualization.Volume);
voxelLayer.SetSliceContainerExpanded(true);
voxelLayer.SetSliceContainerVisibility(true);
//To stop the Voxel Exploration Dockpane activating use:
voxelLayer.AutoShowExploreDockPane = false;
//This is useful if u have your own dockpane currently activated...
//At 2.x - var volumeSize = voxelLayer.GetVolumeSize();
//Use the SelectedVariableProfile to get the slices currently in the TOC
//via its associated volume
var volume = voxelLayer.SelectedVariableProfile.Volume;
var volumeSize = volume.GetVolumeSize();
//Orientation 90 degrees (West), Tilt 0.0 (vertical)
//Convert to a normal
var normal = voxelLayer.GetNormal(90, 0.0);
//Create the slice at the voxel mid-point. VoxelPosition
//is specified in voxel-space coordinates
//At 2.x -
//voxelLayer.CreateSlice(new SliceDefinition()
//{
// Name = "Middle Slice",
// VoxelPosition = new Coordinate3D(volume.Item1 / 2, volume.Item2 / 2, volume.Item3 / 2),
// Normal = normal,
// IsVisible = true
//});
//Create the slice on the respective volume
volume.CreateSlice(new SliceDefinition()
{
Name = "Middle Slice",
VoxelPosition = new Coordinate3D(volumeSize.X / 2, volumeSize.Y / 2, volumeSize.Z / 2),
Normal = normal,
IsVisible = true
});
//reset if needed...
voxelLayer.AutoShowExploreDockPane = true;
Change Tilt on a Slice
//var voxelLayer = ... ;
//Must be on the QueuedTask.Run()
//To stop the Voxel Exploration Dockpane activating use:
voxelLayer.AutoShowExploreDockPane = false;
//This is useful if u have your own dockpane currently activated...
//Normally, it would be set in your dockpane
if (voxelLayer.Visualization != VoxelVisualization.Volume)
voxelLayer.SetVisualization(VoxelVisualization.Volume);
voxelLayer.SetSliceContainerVisibility(true);
//At 2.x - var slice = voxelLayer.GetSlices().First(s => s.Name == "Change Tilt Slice");
//Use the SelectedVariableProfile to get the slices currently in the TOC
//via its associated volume
var volume = voxelLayer.SelectedVariableProfile.Volume;
var slice = volume.GetSlices().First(s => s.Name == "Change Tilt Slice");
(double orientation, double tilt) = voxelLayer.GetOrientationAndTilt(slice.Normal);
//Convert orientation and tilt to a normal
slice.Normal = voxelLayer.GetNormal(orientation, 45.0);
//At 2.x - voxelLayer.UpdateSlice(slice);
volume.UpdateSlice(slice);
//reset if needed...Normally this might be when your dockpane
//was de-activated (ie "closed")
voxelLayer.AutoShowExploreDockPane = true;
Target Platforms: Windows 11, Windows 10
ArcGIS Pro version: 3 or higher.