forked from 1b-agent/opencadstudio-upstream
Point clouds: POINTCLOUDCOLORMAP dialog, out-of-range colouring
POINTCLOUDCOLORMAP asks for a cloud (or None for the drawing's default schemes) and opens the Point Cloud Color Map dialog: intensity and elevation tabs with the scheme list, New / Delete / Rename, number of colours (2-25, resampled along the scheme), blend between the ends, reverse, gradient or bands, the colorized range, the out-of-range choice and, for elevation, the cloud's extents or a fixed range with its band height. OK / Apply write the drawing's colour map (created under ACAD_POINTCLOUD_COLORMAP_DICT when missing) and the cloud's colouring in one undo step; Make stylization current sets the tab's stylization. Values outside a scheme's range take the end colours, the scan colours or are hidden. Automation action pc_colormap edits the dialog. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
7761652a9f
commit
2eaae1ecab
32 files changed
+1449
-21
No files matched your search
@@ -378,6 +378,9 @@ impl OpenCADStudio {
|
||||
}
|
||||
"attach" => crate::t!("Attaches a PDF file as an underlay."),
|
||||
"pointcloud" => crate::t!("Attaches a point cloud scan or project."),
|
||||
"pointcloudcolormap" => {
|
||||
crate::t!("Sets the color schemes and ranges a point cloud is colored by intensity or elevation.")
|
||||
}
|
||||
"layers" => crate::t!("Turns the layers of a PDF underlay on or off."),
|
||||
_ => crate::t!("Imports the geometry, fills, raster images and text of a PDF file as drawing objects."),
|
||||
};
|
||||
@@ -480,6 +483,26 @@ impl OpenCADStudio {
|
||||
// ── Attach Point Cloud ────────────────────────────────────────
|
||||
PdfDialogMsg::CloudBrowse => return Task::done(Message::PointCloudAttachPick),
|
||||
PdfDialogMsg::CloudOk => return self.point_cloud_attach_ok(i),
|
||||
message @ (PdfDialogMsg::MapTab(_)
|
||||
| PdfDialogMsg::MapScheme(_)
|
||||
| PdfDialogMsg::MapCount(_)
|
||||
| PdfDialogMsg::MapEven
|
||||
| PdfDialogMsg::MapReverse
|
||||
| PdfDialogMsg::MapGradient(_)
|
||||
| PdfDialogMsg::MapNew
|
||||
| PdfDialogMsg::MapDelete
|
||||
| PdfDialogMsg::MapRename
|
||||
| PdfDialogMsg::MapNameInput(_)
|
||||
| PdfDialogMsg::MapNameOk
|
||||
| PdfDialogMsg::MapNameCancel
|
||||
| PdfDialogMsg::MapMax(_)
|
||||
| PdfDialogMsg::MapMin(_)
|
||||
| PdfDialogMsg::MapInterval(_)
|
||||
| PdfDialogMsg::MapExtents(_)
|
||||
| PdfDialogMsg::MapOutOfRange(_)
|
||||
| PdfDialogMsg::MapCurrent(_)
|
||||
| PdfDialogMsg::MapApply
|
||||
| PdfDialogMsg::MapOk) => return self.update_point_cloud_color_map(message),
|
||||
PdfDialogMsg::CloudPathType(choice) => {
|
||||
let stored = self.point_cloud_attach.as_ref().map(|s| self.pdf_stored_path(&s.path, choice.0));
|
||||
if let (Some(s), Some(stored)) = (self.point_cloud_attach.as_mut(), stored) {
|
||||
|
||||
Reference in new issue
Block a user