three.MF.V3.Three
1from MF.V3 import Task 2from MF.V3.Settings.Advanced import Advanced as MF_V3_Settings_Advanced_Advanced 3from MF.V3.Settings.Align import Align as MF_V3_Settings_Align_Align 4from MF.V3.Settings.AutoFocus import AutoFocus as MF_V3_Settings_AutoFocus_AutoFocus 5from MF.V3.Settings.BoundingBox import BoundingBox as MF_V3_Settings_BoundingBox_BoundingBox 6from MF.V3.Settings.Camera import Camera as MF_V3_Settings_Camera_Camera 7from MF.V3.Settings.Capture import Capture as MF_V3_Settings_Capture_Capture 8from MF.V3.Settings.CaptureImage import CaptureImage as MF_V3_Settings_CaptureImage_CaptureImage 9from MF.V3.Settings.CopyGroups import CopyGroups as MF_V3_Settings_CopyGroups_CopyGroups 10from MF.V3.Settings.Export import Export as MF_V3_Settings_Export_Export 11from MF.V3.Settings.Group import Group as MF_V3_Settings_Group_Group 12from MF.V3.Settings.HeatMap import HeatMap as MF_V3_Settings_HeatMap_HeatMap 13from MF.V3.Settings.I18n import I18n as MF_V3_Settings_I18n_I18n 14from MF.V3.Settings.Import import Import as MF_V3_Settings_Import_Import 15from MF.V3.Settings.Merge import Merge as MF_V3_Settings_Merge_Merge 16from MF.V3.Settings.NewGroup import NewGroup as MF_V3_Settings_NewGroup_NewGroup 17from MF.V3.Settings.Project import Project as MF_V3_Settings_Project_Project 18from MF.V3.Settings.Projector import Projector as MF_V3_Settings_Projector_Projector 19from MF.V3.Settings.Scan import Scan as MF_V3_Settings_Scan_Scan 20from MF.V3.Settings.ScanData import ScanData as MF_V3_Settings_ScanData_ScanData 21from MF.V3.Settings.ScanSelection import ScanSelection as MF_V3_Settings_ScanSelection_ScanSelection 22from MF.V3.Settings.Scanner import Scanner as MF_V3_Settings_Scanner_Scanner 23from MF.V3.Settings.Smooth import Smooth as MF_V3_Settings_Smooth_Smooth 24from MF.V3.Settings.Software import Software as MF_V3_Settings_Software_Software 25from MF.V3.Settings.Style import Style as MF_V3_Settings_Style_Style 26from MF.V3.Settings.Turntable import Turntable as MF_V3_Settings_Turntable_Turntable 27from MF.V3.Settings.Tutorials import Tutorials as MF_V3_Settings_Tutorials_Tutorials 28from MF.V3.Settings.Viewer import Viewer as MF_V3_Settings_Viewer_Viewer 29from MF.V3.Settings.Wifi import Wifi as MF_V3_Settings_Wifi_Wifi 30from MF.V3.Tasks.AddMergeToProject import AddMergeToProject as MF_V3_Tasks_AddMergeToProject 31from MF.V3.Tasks.Align import Align as MF_V3_Tasks_Align 32from MF.V3.Tasks.AutoFocus import AutoFocus as MF_V3_Tasks_AutoFocus 33from MF.V3.Tasks.BoundingBox import BoundingBox as MF_V3_Tasks_BoundingBox 34from MF.V3.Tasks.CalibrateCameras import CalibrateCameras as MF_V3_Tasks_CalibrateCameras 35from MF.V3.Tasks.CalibrateTurntable import CalibrateTurntable as MF_V3_Tasks_CalibrateTurntable 36from MF.V3.Tasks.CalibrationCaptureTargets import CalibrationCaptureTargets as MF_V3_Tasks_CalibrationCaptureTargets 37from MF.V3.Tasks.CameraCalibration import CameraCalibration as MF_V3_Tasks_CameraCalibration 38from MF.V3.Tasks.CaptureImage import CaptureImage as MF_V3_Tasks_CaptureImage 39from MF.V3.Tasks.ClearSettings import ClearSettings as MF_V3_Tasks_ClearSettings 40from MF.V3.Tasks.CloseProject import CloseProject as MF_V3_Tasks_CloseProject 41from MF.V3.Tasks.ConnectWifi import ConnectWifi as MF_V3_Tasks_ConnectWifi 42from MF.V3.Tasks.CopyGroups import CopyGroups as MF_V3_Tasks_CopyGroups 43from MF.V3.Tasks.DepthMap import DepthMap as MF_V3_Tasks_DepthMap 44from MF.V3.Tasks.DetectCalibrationCard import DetectCalibrationCard as MF_V3_Tasks_DetectCalibrationCard 45from MF.V3.Tasks.DownloadProject import DownloadProject as MF_V3_Tasks_DownloadProject 46from MF.V3.Tasks.Export import Export as MF_V3_Tasks_Export 47from MF.V3.Tasks.ExportFactoryCalibrationLogs import ExportFactoryCalibrationLogs as MF_V3_Tasks_ExportFactoryCalibrationLogs 48from MF.V3.Tasks.ExportHeatMap import ExportHeatMap as MF_V3_Tasks_ExportHeatMap 49from MF.V3.Tasks.ExportLogs import ExportLogs as MF_V3_Tasks_ExportLogs 50from MF.V3.Tasks.ExportMerge import ExportMerge as MF_V3_Tasks_ExportMerge 51from MF.V3.Tasks.FactoryReset import FactoryReset as MF_V3_Tasks_FactoryReset 52from MF.V3.Tasks.FlattenGroup import FlattenGroup as MF_V3_Tasks_FlattenGroup 53from MF.V3.Tasks.ForgetWifi import ForgetWifi as MF_V3_Tasks_ForgetWifi 54from MF.V3.Tasks.HasCameras import HasCameras as MF_V3_Tasks_HasCameras 55from MF.V3.Tasks.HasProjector import HasProjector as MF_V3_Tasks_HasProjector 56from MF.V3.Tasks.HasTurntable import HasTurntable as MF_V3_Tasks_HasTurntable 57from MF.V3.Tasks.HeatMap import HeatMap as MF_V3_Tasks_HeatMap 58from MF.V3.Tasks.Import import Import as MF_V3_Tasks_Import 59from MF.V3.Tasks.ListExportFormats import ListExportFormats as MF_V3_Tasks_ListExportFormats 60from MF.V3.Tasks.ListGroups import ListGroups as MF_V3_Tasks_ListGroups 61from MF.V3.Tasks.ListNetworkInterfaces import ListNetworkInterfaces as MF_V3_Tasks_ListNetworkInterfaces 62from MF.V3.Tasks.ListProjects import ListProjects as MF_V3_Tasks_ListProjects 63from MF.V3.Tasks.ListScans import ListScans as MF_V3_Tasks_ListScans 64from MF.V3.Tasks.ListSettings import ListSettings as MF_V3_Tasks_ListSettings 65from MF.V3.Tasks.ListWifi import ListWifi as MF_V3_Tasks_ListWifi 66from MF.V3.Tasks.Merge import Merge as MF_V3_Tasks_Merge 67from MF.V3.Tasks.MergeData import MergeData as MF_V3_Tasks_MergeData 68from MF.V3.Tasks.MoveGroup import MoveGroup as MF_V3_Tasks_MoveGroup 69from MF.V3.Tasks.NewGroup import NewGroup as MF_V3_Tasks_NewGroup 70from MF.V3.Tasks.NewProject import NewProject as MF_V3_Tasks_NewProject 71from MF.V3.Tasks.NewScan import NewScan as MF_V3_Tasks_NewScan 72from MF.V3.Tasks.OpenProject import OpenProject as MF_V3_Tasks_OpenProject 73from MF.V3.Tasks.PopSettings import PopSettings as MF_V3_Tasks_PopSettings 74from MF.V3.Tasks.PushSettings import PushSettings as MF_V3_Tasks_PushSettings 75from MF.V3.Tasks.Reboot import Reboot as MF_V3_Tasks_Reboot 76from MF.V3.Tasks.RemoveGroups import RemoveGroups as MF_V3_Tasks_RemoveGroups 77from MF.V3.Tasks.RemoveProjects import RemoveProjects as MF_V3_Tasks_RemoveProjects 78from MF.V3.Tasks.RestoreFactoryCalibration import RestoreFactoryCalibration as MF_V3_Tasks_RestoreFactoryCalibration 79from MF.V3.Tasks.RotateTurntable import RotateTurntable as MF_V3_Tasks_RotateTurntable 80from MF.V3.Tasks.ScanData import ScanData as MF_V3_Tasks_ScanData 81from MF.V3.Tasks.SetCameras import SetCameras as MF_V3_Tasks_SetCameras 82from MF.V3.Tasks.SetGroup import SetGroup as MF_V3_Tasks_SetGroup 83from MF.V3.Tasks.SetProject import SetProject as MF_V3_Tasks_SetProject 84from MF.V3.Tasks.SetProjector import SetProjector as MF_V3_Tasks_SetProjector 85from MF.V3.Tasks.Shutdown import Shutdown as MF_V3_Tasks_Shutdown 86from MF.V3.Tasks.Smooth import Smooth as MF_V3_Tasks_Smooth 87from MF.V3.Tasks.SplitGroup import SplitGroup as MF_V3_Tasks_SplitGroup 88from MF.V3.Tasks.StartVideo import StartVideo as MF_V3_Tasks_StartVideo 89from MF.V3.Tasks.StopVideo import StopVideo as MF_V3_Tasks_StopVideo 90from MF.V3.Tasks.SystemInfo import SystemInfo as MF_V3_Tasks_SystemInfo 91from MF.V3.Tasks.TransformGroup import TransformGroup as MF_V3_Tasks_TransformGroup 92from MF.V3.Tasks.TurntableCalibration import TurntableCalibration as MF_V3_Tasks_TurntableCalibration 93from MF.V3.Tasks.UpdateSettings import UpdateSettings as MF_V3_Tasks_UpdateSettings 94from MF.V3.Tasks.UploadProject import UploadProject as MF_V3_Tasks_UploadProject 95from typing import List 96 97 98def list_network_interfaces(self) -> Task: 99 100 """ 101 List available wifi networks. 102 """ 103 list_network_interfaces_request = MF_V3_Tasks_ListNetworkInterfaces.Request( 104 Index=0, 105 Type="ListNetworkInterfaces" 106 ) 107 list_network_interfaces_response = MF_V3_Tasks_ListNetworkInterfaces.Response( 108 Index=0, 109 Type="ListNetworkInterfaces" 110 ) 111 task = Task(Index=0, Type="ListNetworkInterfaces", Input=list_network_interfaces_request, Output=list_network_interfaces_response) 112 self.SendTask(task) 113 return task 114 115 116def list_wifi(self) -> Task: 117 118 """ 119 List available wifi networks. 120 """ 121 list_wifi_request = MF_V3_Tasks_ListWifi.Request( 122 Index=0, 123 Type="ListWifi" 124 ) 125 list_wifi_response = MF_V3_Tasks_ListWifi.Response( 126 Index=0, 127 Type="ListWifi" 128 ) 129 task = Task(Index=0, Type="ListWifi", Input=list_wifi_request, Output=list_wifi_response) 130 self.SendTask(task) 131 return task 132 133 134def connect_wifi(self, ssid: str, password: str) -> Task: 135 136 """ 137 Connect to a wifi network. 138 """ 139 connect_wifi_request = MF_V3_Tasks_ConnectWifi.Request( 140 Index=0, 141 Type="ConnectWifi", 142 Input=MF_V3_Settings_Wifi_Wifi( 143 ssid=ssid, 144 password=password, 145 ) 146 ) 147 connect_wifi_response = MF_V3_Tasks_ConnectWifi.Response( 148 Index=0, 149 Type="ConnectWifi", 150 Input=MF_V3_Settings_Wifi_Wifi( 151 ssid=ssid, 152 password=password, 153 ) 154 ) 155 task = Task(Index=0, Type="ConnectWifi", Input=connect_wifi_request, Output=connect_wifi_response) 156 self.SendTask(task) 157 return task 158 159 160def forget_wifi(self) -> Task: 161 162 """ 163 Forget all wifi connections. 164 """ 165 forget_wifi_request = MF_V3_Tasks_ForgetWifi.Request( 166 Index=0, 167 Type="ForgetWifi" 168 ) 169 forget_wifi_response = MF_V3_Tasks_ForgetWifi.Response( 170 Index=0, 171 Type="ForgetWifi" 172 ) 173 task = Task(Index=0, Type="ForgetWifi", Input=forget_wifi_request, Output=forget_wifi_response) 174 self.SendTask(task) 175 return task 176 177 178def list_settings(self) -> Task: 179 180 """ 181 Get scanner settings. 182 """ 183 list_settings_request = MF_V3_Tasks_ListSettings.Request( 184 Index=0, 185 Type="ListSettings" 186 ) 187 list_settings_response = MF_V3_Tasks_ListSettings.Response( 188 Index=0, 189 Type="ListSettings" 190 ) 191 task = Task(Index=0, Type="ListSettings", Input=list_settings_request, Output=list_settings_response) 192 self.SendTask(task) 193 return task 194 195 196def push_settings(self) -> Task: 197 198 """ 199 Push the current scanner settings to the settings stack. 200 """ 201 push_settings_request = MF_V3_Tasks_PushSettings.Request( 202 Index=0, 203 Type="PushSettings" 204 ) 205 push_settings_response = MF_V3_Tasks_PushSettings.Response( 206 Index=0, 207 Type="PushSettings" 208 ) 209 task = Task(Index=0, Type="PushSettings", Input=push_settings_request, Output=push_settings_response) 210 self.SendTask(task) 211 return task 212 213 214def pop_settings(self, Input: bool = None) -> Task: 215 216 """ 217 Pop and restore scanner settings from the settings stack. 218 """ 219 pop_settings_request = MF_V3_Tasks_PopSettings.Request( 220 Index=0, 221 Type="PopSettings", 222 Input=Input 223 ) 224 pop_settings_response = MF_V3_Tasks_PopSettings.Response( 225 Index=0, 226 Type="PopSettings" 227 ) 228 task = Task(Index=0, Type="PopSettings", Input=pop_settings_request, Output=pop_settings_response) 229 self.SendTask(task) 230 return task 231 232 233def update_settings(self, advanced: MF_V3_Settings_Advanced_Advanced = None, camera: MF_V3_Settings_Camera_Camera = None, capture: MF_V3_Settings_Capture_Capture = None, i18n: MF_V3_Settings_I18n_I18n = None, projector: MF_V3_Settings_Projector_Projector = None, style: MF_V3_Settings_Style_Style = None, turntable: MF_V3_Settings_Turntable_Turntable = None, tutorials: MF_V3_Settings_Tutorials_Tutorials = None, viewer: MF_V3_Settings_Viewer_Viewer = None, software: MF_V3_Settings_Software_Software = None) -> Task: 234 235 """ 236 Update scanner settings. 237 """ 238 update_settings_request = MF_V3_Tasks_UpdateSettings.Request( 239 Index=0, 240 Type="UpdateSettings", 241 Input=MF_V3_Settings_Scanner_Scanner( 242 advanced=advanced, 243 camera=camera, 244 capture=capture, 245 i18n=i18n, 246 projector=projector, 247 style=style, 248 turntable=turntable, 249 tutorials=tutorials, 250 viewer=viewer, 251 software=software, 252 ) 253 ) 254 update_settings_response = MF_V3_Tasks_UpdateSettings.Response( 255 Index=0, 256 Type="UpdateSettings", 257 Input=MF_V3_Settings_Scanner_Scanner( 258 advanced=advanced, 259 camera=camera, 260 capture=capture, 261 i18n=i18n, 262 projector=projector, 263 style=style, 264 turntable=turntable, 265 tutorials=tutorials, 266 viewer=viewer, 267 software=software, 268 ) 269 ) 270 task = Task(Index=0, Type="UpdateSettings", Input=update_settings_request, Output=update_settings_response) 271 self.SendTask(task) 272 return task 273 274 275def list_projects(self) -> Task: 276 277 """ 278 List all projects. 279 """ 280 list_projects_request = MF_V3_Tasks_ListProjects.Request( 281 Index=0, 282 Type="ListProjects" 283 ) 284 list_projects_response = MF_V3_Tasks_ListProjects.Response( 285 Index=0, 286 Type="ListProjects" 287 ) 288 task = Task(Index=0, Type="ListProjects", Input=list_projects_request, Output=list_projects_response) 289 self.SendTask(task) 290 return task 291 292 293def download_project(self, Input: int) -> Task: 294 295 """ 296 Download a project from the scanner. 297 """ 298 download_project_request = MF_V3_Tasks_DownloadProject.Request( 299 Index=0, 300 Type="DownloadProject", 301 Input=Input 302 ) 303 download_project_response = MF_V3_Tasks_DownloadProject.Response( 304 Index=0, 305 Type="DownloadProject", 306 Input=Input 307 ) 308 task = Task(Index=0, Type="DownloadProject", Input=download_project_request, Output=download_project_response) 309 self.SendTask(task) 310 return task 311 312 313def upload_project(self, buffer: bytes) -> Task: 314 315 """ 316 Upload a project to the scanner. 317 """ 318 upload_project_request = MF_V3_Tasks_UploadProject.Request( 319 Index=0, 320 Type="UploadProject" 321 ) 322 upload_project_response = MF_V3_Tasks_UploadProject.Response( 323 Index=0, 324 Type="UploadProject" 325 ) 326 task = Task(Index=0, Type="UploadProject", Input=upload_project_request, Output=upload_project_response) 327 self.SendTask(task, buffer) 328 return task 329 330 331def new_project(self, Input: str = None) -> Task: 332 333 """ 334 Create a new project. 335 """ 336 new_project_request = MF_V3_Tasks_NewProject.Request( 337 Index=0, 338 Type="NewProject", 339 Input=Input 340 ) 341 new_project_response = MF_V3_Tasks_NewProject.Response( 342 Index=0, 343 Type="NewProject" 344 ) 345 task = Task(Index=0, Type="NewProject", Input=new_project_request, Output=new_project_response) 346 self.SendTask(task) 347 return task 348 349 350def open_project(self, Input: int) -> Task: 351 352 """ 353 Open an existing project. 354 """ 355 open_project_request = MF_V3_Tasks_OpenProject.Request( 356 Index=0, 357 Type="OpenProject", 358 Input=Input 359 ) 360 open_project_response = MF_V3_Tasks_OpenProject.Response( 361 Index=0, 362 Type="OpenProject", 363 Input=Input 364 ) 365 task = Task(Index=0, Type="OpenProject", Input=open_project_request, Output=open_project_response) 366 self.SendTask(task) 367 return task 368 369 370def clear_settings(self) -> Task: 371 372 """ 373 Clear scanner settings and restore the default values. 374 """ 375 clear_settings_request = MF_V3_Tasks_ClearSettings.Request( 376 Index=0, 377 Type="ClearSettings" 378 ) 379 clear_settings_response = MF_V3_Tasks_ClearSettings.Response( 380 Index=0, 381 Type="ClearSettings" 382 ) 383 task = Task(Index=0, Type="ClearSettings", Input=clear_settings_request, Output=clear_settings_response) 384 self.SendTask(task) 385 return task 386 387 388def close_project(self) -> Task: 389 390 """ 391 Close the current open project. 392 """ 393 close_project_request = MF_V3_Tasks_CloseProject.Request( 394 Index=0, 395 Type="CloseProject" 396 ) 397 close_project_response = MF_V3_Tasks_CloseProject.Response( 398 Index=0, 399 Type="CloseProject" 400 ) 401 task = Task(Index=0, Type="CloseProject", Input=close_project_request, Output=close_project_response) 402 self.SendTask(task) 403 return task 404 405 406def copy_groups(self, sourceIndexes: List[int] = None, targetIndex: int = None, childPosition: int = None, nameSuffix: str = None, enumerate: bool = None) -> Task: 407 408 """ 409 Copy a set of scan groups in the current open project. 410 """ 411 copy_groups_request = MF_V3_Tasks_CopyGroups.Request( 412 Index=0, 413 Type="CopyGroups", 414 Input=MF_V3_Settings_CopyGroups_CopyGroups( 415 sourceIndexes=sourceIndexes, 416 targetIndex=targetIndex, 417 childPosition=childPosition, 418 nameSuffix=nameSuffix, 419 enumerate=enumerate, 420 ) 421 ) 422 copy_groups_response = MF_V3_Tasks_CopyGroups.Response( 423 Index=0, 424 Type="CopyGroups", 425 Input=MF_V3_Settings_CopyGroups_CopyGroups( 426 sourceIndexes=sourceIndexes, 427 targetIndex=targetIndex, 428 childPosition=childPosition, 429 nameSuffix=nameSuffix, 430 enumerate=enumerate, 431 ), 432 Output=None 433 ) 434 task = Task(Index=0, Type="CopyGroups", Input=copy_groups_request, Output=copy_groups_response) 435 self.SendTask(task) 436 return task 437 438 439def remove_projects(self, Input: List[int] = None) -> Task: 440 441 """ 442 Remove selected projects. 443 """ 444 remove_projects_request = MF_V3_Tasks_RemoveProjects.Request( 445 Index=0, 446 Type="RemoveProjects", 447 Input=Input 448 ) 449 remove_projects_response = MF_V3_Tasks_RemoveProjects.Response( 450 Index=0, 451 Type="RemoveProjects" 452 ) 453 task = Task(Index=0, Type="RemoveProjects", Input=remove_projects_request, Output=remove_projects_response) 454 self.SendTask(task) 455 return task 456 457 458def list_groups(self) -> Task: 459 460 """ 461 List the scan groups in the current open project. 462 """ 463 list_groups_request = MF_V3_Tasks_ListGroups.Request( 464 Index=0, 465 Type="ListGroups" 466 ) 467 list_groups_response = MF_V3_Tasks_ListGroups.Response( 468 Index=0, 469 Type="ListGroups", 470 Output=None 471 ) 472 task = Task(Index=0, Type="ListGroups", Input=list_groups_request, Output=list_groups_response) 473 self.SendTask(task) 474 return task 475 476 477def list_scans(self) -> Task: 478 479 """ 480 List the scans in the current open project. 481 """ 482 list_scans_request = MF_V3_Tasks_ListScans.Request( 483 Index=0, 484 Type="ListScans" 485 ) 486 list_scans_response = MF_V3_Tasks_ListScans.Response( 487 Index=0, 488 Type="ListScans" 489 ) 490 task = Task(Index=0, Type="ListScans", Input=list_scans_request, Output=list_scans_response) 491 self.SendTask(task) 492 return task 493 494 495def scan_data(self, index: int, mergeStep: MF_V3_Settings_ScanData_ScanData.MergeStep = None, buffers: List[MF_V3_Settings_ScanData_ScanData.Buffer] = None, metadata: List[MF_V3_Settings_ScanData_ScanData.Metadata] = None) -> Task: 496 497 """ 498 Download the raw scan data for a scan in the current open project. 499 """ 500 scan_data_request = MF_V3_Tasks_ScanData.Request( 501 Index=0, 502 Type="ScanData", 503 Input=MF_V3_Settings_ScanData_ScanData( 504 index=index, 505 mergeStep=mergeStep, 506 buffers=buffers, 507 metadata=metadata, 508 ) 509 ) 510 scan_data_response = MF_V3_Tasks_ScanData.Response( 511 Index=0, 512 Type="ScanData", 513 Input=MF_V3_Settings_ScanData_ScanData( 514 index=index, 515 mergeStep=mergeStep, 516 buffers=buffers, 517 metadata=metadata, 518 ), 519 Output=None 520 ) 521 task = Task(Index=0, Type="ScanData", Input=scan_data_request, Output=scan_data_response) 522 self.SendTask(task) 523 return task 524 525 526def set_project(self, index: int = None, name: str = None) -> Task: 527 528 """ 529 Apply settings to the current open project. 530 """ 531 set_project_request = MF_V3_Tasks_SetProject.Request( 532 Index=0, 533 Type="SetProject", 534 Input=MF_V3_Settings_Project_Project( 535 index=index, 536 name=name, 537 ) 538 ) 539 set_project_response = MF_V3_Tasks_SetProject.Response( 540 Index=0, 541 Type="SetProject" 542 ) 543 task = Task(Index=0, Type="SetProject", Input=set_project_request, Output=set_project_response) 544 self.SendTask(task) 545 return task 546 547 548def set_group(self, index: int, name: str = None, color: List[float] = None, visible: bool = None, collapsed: bool = None, rotation: List[float] = None, translation: List[float] = None) -> Task: 549 550 """ 551 Set scan group properties. 552 """ 553 set_group_request = MF_V3_Tasks_SetGroup.Request( 554 Index=0, 555 Type="SetGroup", 556 Input=MF_V3_Settings_Group_Group( 557 index=index, 558 name=name, 559 color=color, 560 visible=visible, 561 collapsed=collapsed, 562 rotation=rotation, 563 translation=translation, 564 ) 565 ) 566 set_group_response = MF_V3_Tasks_SetGroup.Response( 567 Index=0, 568 Type="SetGroup", 569 Input=MF_V3_Settings_Group_Group( 570 index=index, 571 name=name, 572 color=color, 573 visible=visible, 574 collapsed=collapsed, 575 rotation=rotation, 576 translation=translation, 577 ), 578 Output=None 579 ) 580 task = Task(Index=0, Type="SetGroup", Input=set_group_request, Output=set_group_response) 581 self.SendTask(task) 582 return task 583 584 585def new_group(self, parentIndex: int = None, baseName: str = None, color: List[float] = None, visible: bool = None, collapsed: bool = None, rotation: List[float] = None, translation: List[float] = None) -> Task: 586 587 """ 588 Create a new scan group. 589 """ 590 new_group_request = MF_V3_Tasks_NewGroup.Request( 591 Index=0, 592 Type="NewGroup", 593 Input=MF_V3_Settings_NewGroup_NewGroup( 594 parentIndex=parentIndex, 595 baseName=baseName, 596 color=color, 597 visible=visible, 598 collapsed=collapsed, 599 rotation=rotation, 600 translation=translation, 601 ) 602 ) 603 new_group_response = MF_V3_Tasks_NewGroup.Response( 604 Index=0, 605 Type="NewGroup", 606 Output=None 607 ) 608 task = Task(Index=0, Type="NewGroup", Input=new_group_request, Output=new_group_response) 609 self.SendTask(task) 610 return task 611 612 613def move_group(self, Input: List[int] = None) -> Task: 614 615 """ 616 Move a scan group. 617 """ 618 move_group_request = MF_V3_Tasks_MoveGroup.Request( 619 Index=0, 620 Type="MoveGroup", 621 Input=Input 622 ) 623 move_group_response = MF_V3_Tasks_MoveGroup.Response( 624 Index=0, 625 Type="MoveGroup", 626 Output=None 627 ) 628 task = Task(Index=0, Type="MoveGroup", Input=move_group_request, Output=move_group_response) 629 self.SendTask(task) 630 return task 631 632 633def factory_reset(self) -> Task: 634 635 """ 636 Reset the scanner to factory settings. 637 """ 638 factory_reset_request = MF_V3_Tasks_FactoryReset.Request( 639 Index=0, 640 Type="FactoryReset" 641 ) 642 factory_reset_response = MF_V3_Tasks_FactoryReset.Response( 643 Index=0, 644 Type="FactoryReset" 645 ) 646 task = Task(Index=0, Type="FactoryReset", Input=factory_reset_request, Output=factory_reset_response) 647 self.SendTask(task) 648 return task 649 650 651def flatten_group(self, Input: int) -> Task: 652 653 """ 654 Flatten a scan group such that it only consists of single scans. 655 """ 656 flatten_group_request = MF_V3_Tasks_FlattenGroup.Request( 657 Index=0, 658 Type="FlattenGroup", 659 Input=Input 660 ) 661 flatten_group_response = MF_V3_Tasks_FlattenGroup.Response( 662 Index=0, 663 Type="FlattenGroup", 664 Input=Input, 665 Output=None 666 ) 667 task = Task(Index=0, Type="FlattenGroup", Input=flatten_group_request, Output=flatten_group_response) 668 self.SendTask(task) 669 return task 670 671 672def split_group(self, Input: int) -> Task: 673 674 """ 675 Split a scan group (ie. move its subgroups to its parent group). 676 """ 677 split_group_request = MF_V3_Tasks_SplitGroup.Request( 678 Index=0, 679 Type="SplitGroup", 680 Input=Input 681 ) 682 split_group_response = MF_V3_Tasks_SplitGroup.Response( 683 Index=0, 684 Type="SplitGroup", 685 Input=Input, 686 Output=None 687 ) 688 task = Task(Index=0, Type="SplitGroup", Input=split_group_request, Output=split_group_response) 689 self.SendTask(task) 690 return task 691 692 693def transform_group(self, index: int, name: str = None, color: List[float] = None, visible: bool = None, collapsed: bool = None, rotation: List[float] = None, translation: List[float] = None) -> Task: 694 695 """ 696 Apply a rigid transformation to a group. 697 """ 698 transform_group_request = MF_V3_Tasks_TransformGroup.Request( 699 Index=0, 700 Type="TransformGroup", 701 Input=MF_V3_Settings_Group_Group( 702 index=index, 703 name=name, 704 color=color, 705 visible=visible, 706 collapsed=collapsed, 707 rotation=rotation, 708 translation=translation, 709 ) 710 ) 711 transform_group_response = MF_V3_Tasks_TransformGroup.Response( 712 Index=0, 713 Type="TransformGroup", 714 Input=MF_V3_Settings_Group_Group( 715 index=index, 716 name=name, 717 color=color, 718 visible=visible, 719 collapsed=collapsed, 720 rotation=rotation, 721 translation=translation, 722 ), 723 Output=None 724 ) 725 task = Task(Index=0, Type="TransformGroup", Input=transform_group_request, Output=transform_group_response) 726 self.SendTask(task) 727 return task 728 729 730def remove_groups(self, Input: List[int] = None) -> Task: 731 732 """ 733 Remove selected scan groups. 734 """ 735 remove_groups_request = MF_V3_Tasks_RemoveGroups.Request( 736 Index=0, 737 Type="RemoveGroups", 738 Input=Input 739 ) 740 remove_groups_response = MF_V3_Tasks_RemoveGroups.Response( 741 Index=0, 742 Type="RemoveGroups", 743 Output=None 744 ) 745 task = Task(Index=0, Type="RemoveGroups", Input=remove_groups_request, Output=remove_groups_response) 746 self.SendTask(task) 747 return task 748 749 750def bounding_box(self, selection: MF_V3_Settings_ScanSelection_ScanSelection, axisAligned: bool) -> Task: 751 752 """ 753 Get the bounding box of a set of scan groups. 754 """ 755 bounding_box_request = MF_V3_Tasks_BoundingBox.Request( 756 Index=0, 757 Type="BoundingBox", 758 Input=MF_V3_Settings_BoundingBox_BoundingBox( 759 selection=selection, 760 axisAligned=axisAligned, 761 ) 762 ) 763 bounding_box_response = MF_V3_Tasks_BoundingBox.Response( 764 Index=0, 765 Type="BoundingBox", 766 Input=MF_V3_Settings_BoundingBox_BoundingBox( 767 selection=selection, 768 axisAligned=axisAligned, 769 ), 770 Output=None 771 ) 772 task = Task(Index=0, Type="BoundingBox", Input=bounding_box_request, Output=bounding_box_response) 773 self.SendTask(task) 774 return task 775 776 777def align(self, source: int, target: int, rough: MF_V3_Settings_Align_Align.Rough = None, fine: MF_V3_Settings_Align_Align.Fine = None) -> Task: 778 779 """ 780 Align two scan groups. 781 """ 782 align_request = MF_V3_Tasks_Align.Request( 783 Index=0, 784 Type="Align", 785 Input=MF_V3_Settings_Align_Align( 786 source=source, 787 target=target, 788 rough=rough, 789 fine=fine, 790 ) 791 ) 792 align_response = MF_V3_Tasks_Align.Response( 793 Index=0, 794 Type="Align", 795 Input=MF_V3_Settings_Align_Align( 796 source=source, 797 target=target, 798 rough=rough, 799 fine=fine, 800 ), 801 Output=None 802 ) 803 task = Task(Index=0, Type="Align", Input=align_request, Output=align_response) 804 self.SendTask(task) 805 return task 806 807 808def smooth(self, selection: MF_V3_Settings_ScanSelection_ScanSelection = None, taubin: MF_V3_Settings_Smooth_Smooth.Taubin = None) -> Task: 809 810 """ 811 Smooth a set of scans. 812 """ 813 smooth_request = MF_V3_Tasks_Smooth.Request( 814 Index=0, 815 Type="Smooth", 816 Input=MF_V3_Settings_Smooth_Smooth( 817 selection=selection, 818 taubin=taubin, 819 ) 820 ) 821 smooth_response = MF_V3_Tasks_Smooth.Response( 822 Index=0, 823 Type="Smooth", 824 Input=MF_V3_Settings_Smooth_Smooth( 825 selection=selection, 826 taubin=taubin, 827 ) 828 ) 829 task = Task(Index=0, Type="Smooth", Input=smooth_request, Output=smooth_response) 830 self.SendTask(task) 831 return task 832 833 834def heat_map(self, sources: List[int] = None, targets: List[int] = None, outlierDistance: float = None) -> Task: 835 836 """ 837 Compute the point-to-mesh distances of a source mesh to a target mesh and visualize as a heat map. 838 """ 839 heat_map_request = MF_V3_Tasks_HeatMap.Request( 840 Index=0, 841 Type="HeatMap", 842 Input=MF_V3_Settings_HeatMap_HeatMap( 843 sources=sources, 844 targets=targets, 845 outlierDistance=outlierDistance, 846 ) 847 ) 848 heat_map_response = MF_V3_Tasks_HeatMap.Response( 849 Index=0, 850 Type="HeatMap", 851 Input=MF_V3_Settings_HeatMap_HeatMap( 852 sources=sources, 853 targets=targets, 854 outlierDistance=outlierDistance, 855 ), 856 Output=None 857 ) 858 task = Task(Index=0, Type="HeatMap", Input=heat_map_request, Output=heat_map_response) 859 self.SendTask(task) 860 return task 861 862 863def merge(self, selection: MF_V3_Settings_ScanSelection_ScanSelection = None, remesh: MF_V3_Settings_Merge_Merge.Remesh = None, simplify: MF_V3_Settings_Merge_Merge.Simplify = None, texturize: bool = None) -> Task: 864 865 """ 866 Merge two or more scan groups. 867 """ 868 merge_request = MF_V3_Tasks_Merge.Request( 869 Index=0, 870 Type="Merge", 871 Input=MF_V3_Settings_Merge_Merge( 872 selection=selection, 873 remesh=remesh, 874 simplify=simplify, 875 texturize=texturize, 876 ) 877 ) 878 merge_response = MF_V3_Tasks_Merge.Response( 879 Index=0, 880 Type="Merge", 881 Input=MF_V3_Settings_Merge_Merge( 882 selection=selection, 883 remesh=remesh, 884 simplify=simplify, 885 texturize=texturize, 886 ), 887 Output=None 888 ) 889 task = Task(Index=0, Type="Merge", Input=merge_request, Output=merge_response) 890 self.SendTask(task) 891 return task 892 893 894def merge_data(self, index: int, mergeStep: MF_V3_Settings_ScanData_ScanData.MergeStep = None, buffers: List[MF_V3_Settings_ScanData_ScanData.Buffer] = None, metadata: List[MF_V3_Settings_ScanData_ScanData.Metadata] = None) -> Task: 895 896 """ 897 Download the raw scan data for the current merge process. 898 """ 899 merge_data_request = MF_V3_Tasks_MergeData.Request( 900 Index=0, 901 Type="MergeData", 902 Input=MF_V3_Settings_ScanData_ScanData( 903 index=index, 904 mergeStep=mergeStep, 905 buffers=buffers, 906 metadata=metadata, 907 ) 908 ) 909 merge_data_response = MF_V3_Tasks_MergeData.Response( 910 Index=0, 911 Type="MergeData", 912 Input=MF_V3_Settings_ScanData_ScanData( 913 index=index, 914 mergeStep=mergeStep, 915 buffers=buffers, 916 metadata=metadata, 917 ), 918 Output=None 919 ) 920 task = Task(Index=0, Type="MergeData", Input=merge_data_request, Output=merge_data_response) 921 self.SendTask(task) 922 return task 923 924 925def add_merge_to_project(self) -> Task: 926 927 """ 928 Add a merged scan to the current project. 929 """ 930 add_merge_to_project_request = MF_V3_Tasks_AddMergeToProject.Request( 931 Index=0, 932 Type="AddMergeToProject" 933 ) 934 add_merge_to_project_response = MF_V3_Tasks_AddMergeToProject.Response( 935 Index=0, 936 Type="AddMergeToProject", 937 Output=None 938 ) 939 task = Task(Index=0, Type="AddMergeToProject", Input=add_merge_to_project_request, Output=add_merge_to_project_response) 940 self.SendTask(task) 941 return task 942 943 944def import_file(self, name: str = None, scale: float = None, unit: MF_V3_Settings_Import_Import.Unit = None, center: bool = None, groupIndex: int = None) -> Task: 945 946 """ 947 Import a set of 3D meshes to the current open project. The meshes must be archived in a ZIP file. 948 """ 949 import_file_request = MF_V3_Tasks_Import.Request( 950 Index=0, 951 Type="Import", 952 Input=MF_V3_Settings_Import_Import( 953 name=name, 954 scale=scale, 955 unit=unit, 956 center=center, 957 groupIndex=groupIndex, 958 ) 959 ) 960 import_file_response = MF_V3_Tasks_Import.Response( 961 Index=0, 962 Type="Import" 963 ) 964 task = Task(Index=0, Type="Import", Input=import_file_request, Output=import_file_response) 965 self.SendTask(task) 966 return task 967 968 969def list_export_formats(self) -> Task: 970 971 """ 972 List all export formats. 973 """ 974 list_export_formats_request = MF_V3_Tasks_ListExportFormats.Request( 975 Index=0, 976 Type="ListExportFormats" 977 ) 978 list_export_formats_response = MF_V3_Tasks_ListExportFormats.Response( 979 Index=0, 980 Type="ListExportFormats" 981 ) 982 task = Task(Index=0, Type="ListExportFormats", Input=list_export_formats_request, Output=list_export_formats_response) 983 self.SendTask(task) 984 return task 985 986 987def export(self, selection: MF_V3_Settings_ScanSelection_ScanSelection = None, texture: bool = None, merge: bool = None, format: MF_V3_Settings_Export_Export.Format = None, scale: float = None, color: MF_V3_Settings_Export_Export.Color = None) -> Task: 988 989 """ 990 Export a group of scans. 991 """ 992 export_request = MF_V3_Tasks_Export.Request( 993 Index=0, 994 Type="Export", 995 Input=MF_V3_Settings_Export_Export( 996 selection=selection, 997 texture=texture, 998 merge=merge, 999 format=format, 1000 scale=scale, 1001 color=color, 1002 ) 1003 ) 1004 export_response = MF_V3_Tasks_Export.Response( 1005 Index=0, 1006 Type="Export", 1007 Input=MF_V3_Settings_Export_Export( 1008 selection=selection, 1009 texture=texture, 1010 merge=merge, 1011 format=format, 1012 scale=scale, 1013 color=color, 1014 ) 1015 ) 1016 task = Task(Index=0, Type="Export", Input=export_request, Output=export_response) 1017 self.SendTask(task) 1018 return task 1019 1020 1021def export_heat_map(self, selection: MF_V3_Settings_ScanSelection_ScanSelection = None, texture: bool = None, merge: bool = None, format: MF_V3_Settings_Export_Export.Format = None, scale: float = None, color: MF_V3_Settings_Export_Export.Color = None) -> Task: 1022 1023 """ 1024 Export a mesh with vertex colors generated by the 'HeatMap' task. 1025 """ 1026 export_heat_map_request = MF_V3_Tasks_ExportHeatMap.Request( 1027 Index=0, 1028 Type="ExportHeatMap", 1029 Input=MF_V3_Settings_Export_Export( 1030 selection=selection, 1031 texture=texture, 1032 merge=merge, 1033 format=format, 1034 scale=scale, 1035 color=color, 1036 ) 1037 ) 1038 export_heat_map_response = MF_V3_Tasks_ExportHeatMap.Response( 1039 Index=0, 1040 Type="ExportHeatMap", 1041 Input=MF_V3_Settings_Export_Export( 1042 selection=selection, 1043 texture=texture, 1044 merge=merge, 1045 format=format, 1046 scale=scale, 1047 color=color, 1048 ) 1049 ) 1050 task = Task(Index=0, Type="ExportHeatMap", Input=export_heat_map_request, Output=export_heat_map_response) 1051 self.SendTask(task) 1052 return task 1053 1054 1055def export_merge(self, selection: MF_V3_Settings_ScanSelection_ScanSelection = None, texture: bool = None, merge: bool = None, format: MF_V3_Settings_Export_Export.Format = None, scale: float = None, color: MF_V3_Settings_Export_Export.Color = None) -> Task: 1056 1057 """ 1058 Export a merged scan. 1059 """ 1060 export_merge_request = MF_V3_Tasks_ExportMerge.Request( 1061 Index=0, 1062 Type="ExportMerge", 1063 Input=MF_V3_Settings_Export_Export( 1064 selection=selection, 1065 texture=texture, 1066 merge=merge, 1067 format=format, 1068 scale=scale, 1069 color=color, 1070 ) 1071 ) 1072 export_merge_response = MF_V3_Tasks_ExportMerge.Response( 1073 Index=0, 1074 Type="ExportMerge", 1075 Input=MF_V3_Settings_Export_Export( 1076 selection=selection, 1077 texture=texture, 1078 merge=merge, 1079 format=format, 1080 scale=scale, 1081 color=color, 1082 ) 1083 ) 1084 task = Task(Index=0, Type="ExportMerge", Input=export_merge_request, Output=export_merge_response) 1085 self.SendTask(task) 1086 return task 1087 1088 1089def export_logs(self, Input: bool = None) -> Task: 1090 1091 """ 1092 Export scanner logs. 1093 """ 1094 export_logs_request = MF_V3_Tasks_ExportLogs.Request( 1095 Index=0, 1096 Type="ExportLogs", 1097 Input=Input 1098 ) 1099 export_logs_response = MF_V3_Tasks_ExportLogs.Response( 1100 Index=0, 1101 Type="ExportLogs" 1102 ) 1103 task = Task(Index=0, Type="ExportLogs", Input=export_logs_request, Output=export_logs_response) 1104 self.SendTask(task) 1105 return task 1106 1107 1108def export_factory_calibration_logs(self) -> Task: 1109 1110 """ 1111 Export factory calibration logs. 1112 """ 1113 export_factory_calibration_logs_request = MF_V3_Tasks_ExportFactoryCalibrationLogs.Request( 1114 Index=0, 1115 Type="ExportFactoryCalibrationLogs" 1116 ) 1117 export_factory_calibration_logs_response = MF_V3_Tasks_ExportFactoryCalibrationLogs.Response( 1118 Index=0, 1119 Type="ExportFactoryCalibrationLogs" 1120 ) 1121 task = Task(Index=0, Type="ExportFactoryCalibrationLogs", Input=export_factory_calibration_logs_request, Output=export_factory_calibration_logs_response) 1122 self.SendTask(task) 1123 return task 1124 1125 1126def has_cameras(self) -> Task: 1127 1128 """ 1129 Check if the scanner has working cameras. 1130 """ 1131 has_cameras_request = MF_V3_Tasks_HasCameras.Request( 1132 Index=0, 1133 Type="HasCameras" 1134 ) 1135 has_cameras_response = MF_V3_Tasks_HasCameras.Response( 1136 Index=0, 1137 Type="HasCameras" 1138 ) 1139 task = Task(Index=0, Type="HasCameras", Input=has_cameras_request, Output=has_cameras_response) 1140 self.SendTask(task) 1141 return task 1142 1143 1144def has_projector(self) -> Task: 1145 1146 """ 1147 Check if the scanner has a working projector. 1148 """ 1149 has_projector_request = MF_V3_Tasks_HasProjector.Request( 1150 Index=0, 1151 Type="HasProjector" 1152 ) 1153 has_projector_response = MF_V3_Tasks_HasProjector.Response( 1154 Index=0, 1155 Type="HasProjector" 1156 ) 1157 task = Task(Index=0, Type="HasProjector", Input=has_projector_request, Output=has_projector_response) 1158 self.SendTask(task) 1159 return task 1160 1161 1162def has_turntable(self) -> Task: 1163 1164 """ 1165 Check if the scanner is connected to a working turntable. 1166 """ 1167 has_turntable_request = MF_V3_Tasks_HasTurntable.Request( 1168 Index=0, 1169 Type="HasTurntable" 1170 ) 1171 has_turntable_response = MF_V3_Tasks_HasTurntable.Response( 1172 Index=0, 1173 Type="HasTurntable" 1174 ) 1175 task = Task(Index=0, Type="HasTurntable", Input=has_turntable_request, Output=has_turntable_response) 1176 self.SendTask(task) 1177 return task 1178 1179 1180def system_info(self, updateMajor: bool = None, updateNightly: bool = None) -> Task: 1181 1182 """ 1183 Get system information. 1184 """ 1185 system_info_request = MF_V3_Tasks_SystemInfo.Request( 1186 Index=0, 1187 Type="SystemInfo", 1188 Input=MF_V3_Settings_Software_Software( 1189 updateMajor=updateMajor, 1190 updateNightly=updateNightly, 1191 ) 1192 ) 1193 system_info_response = MF_V3_Tasks_SystemInfo.Response( 1194 Index=0, 1195 Type="SystemInfo", 1196 Output=None 1197 ) 1198 task = Task(Index=0, Type="SystemInfo", Input=system_info_request, Output=system_info_response) 1199 self.SendTask(task) 1200 return task 1201 1202 1203def camera_calibration(self) -> Task: 1204 1205 """ 1206 Get the camera calibration descriptor. 1207 """ 1208 camera_calibration_request = MF_V3_Tasks_CameraCalibration.Request( 1209 Index=0, 1210 Type="CameraCalibration" 1211 ) 1212 camera_calibration_response = MF_V3_Tasks_CameraCalibration.Response( 1213 Index=0, 1214 Type="CameraCalibration" 1215 ) 1216 task = Task(Index=0, Type="CameraCalibration", Input=camera_calibration_request, Output=camera_calibration_response) 1217 self.SendTask(task) 1218 return task 1219 1220 1221def turntable_calibration(self) -> Task: 1222 1223 """ 1224 Get the turntable calibration descriptor. 1225 """ 1226 turntable_calibration_request = MF_V3_Tasks_TurntableCalibration.Request( 1227 Index=0, 1228 Type="TurntableCalibration" 1229 ) 1230 turntable_calibration_response = MF_V3_Tasks_TurntableCalibration.Response( 1231 Index=0, 1232 Type="TurntableCalibration" 1233 ) 1234 task = Task(Index=0, Type="TurntableCalibration", Input=turntable_calibration_request, Output=turntable_calibration_response) 1235 self.SendTask(task) 1236 return task 1237 1238 1239def calibration_capture_targets(self) -> Task: 1240 1241 """ 1242 Get the calibration capture target for each camera calibration capture. 1243 """ 1244 calibration_capture_targets_request = MF_V3_Tasks_CalibrationCaptureTargets.Request( 1245 Index=0, 1246 Type="CalibrationCaptureTargets" 1247 ) 1248 calibration_capture_targets_response = MF_V3_Tasks_CalibrationCaptureTargets.Response( 1249 Index=0, 1250 Type="CalibrationCaptureTargets" 1251 ) 1252 task = Task(Index=0, Type="CalibrationCaptureTargets", Input=calibration_capture_targets_request, Output=calibration_capture_targets_response) 1253 self.SendTask(task) 1254 return task 1255 1256 1257def calibrate_cameras(self) -> Task: 1258 1259 """ 1260 Calibrate the cameras. 1261 """ 1262 calibrate_cameras_request = MF_V3_Tasks_CalibrateCameras.Request( 1263 Index=0, 1264 Type="CalibrateCameras" 1265 ) 1266 calibrate_cameras_response = MF_V3_Tasks_CalibrateCameras.Response( 1267 Index=0, 1268 Type="CalibrateCameras" 1269 ) 1270 task = Task(Index=0, Type="CalibrateCameras", Input=calibrate_cameras_request, Output=calibrate_cameras_response) 1271 self.SendTask(task) 1272 return task 1273 1274 1275def calibrate_turntable(self) -> Task: 1276 1277 """ 1278 Calibrate the turntable. 1279 """ 1280 calibrate_turntable_request = MF_V3_Tasks_CalibrateTurntable.Request( 1281 Index=0, 1282 Type="CalibrateTurntable" 1283 ) 1284 calibrate_turntable_response = MF_V3_Tasks_CalibrateTurntable.Response( 1285 Index=0, 1286 Type="CalibrateTurntable" 1287 ) 1288 task = Task(Index=0, Type="CalibrateTurntable", Input=calibrate_turntable_request, Output=calibrate_turntable_response) 1289 self.SendTask(task) 1290 return task 1291 1292 1293def detect_calibration_card(self, Input: int) -> Task: 1294 1295 """ 1296 Detect the calibration card on one or both cameras. 1297 """ 1298 detect_calibration_card_request = MF_V3_Tasks_DetectCalibrationCard.Request( 1299 Index=0, 1300 Type="DetectCalibrationCard", 1301 Input=Input 1302 ) 1303 detect_calibration_card_response = MF_V3_Tasks_DetectCalibrationCard.Response( 1304 Index=0, 1305 Type="DetectCalibrationCard", 1306 Input=Input 1307 ) 1308 task = Task(Index=0, Type="DetectCalibrationCard", Input=detect_calibration_card_request, Output=detect_calibration_card_response) 1309 self.SendTask(task) 1310 return task 1311 1312 1313def restore_factory_calibration(self) -> Task: 1314 1315 """ 1316 Restore factory calibration. 1317 """ 1318 restore_factory_calibration_request = MF_V3_Tasks_RestoreFactoryCalibration.Request( 1319 Index=0, 1320 Type="RestoreFactoryCalibration" 1321 ) 1322 restore_factory_calibration_response = MF_V3_Tasks_RestoreFactoryCalibration.Response( 1323 Index=0, 1324 Type="RestoreFactoryCalibration" 1325 ) 1326 task = Task(Index=0, Type="RestoreFactoryCalibration", Input=restore_factory_calibration_request, Output=restore_factory_calibration_response) 1327 self.SendTask(task) 1328 return task 1329 1330 1331def start_video(self) -> Task: 1332 1333 """ 1334 Start the video stream. 1335 """ 1336 start_video_request = MF_V3_Tasks_StartVideo.Request( 1337 Index=0, 1338 Type="StartVideo" 1339 ) 1340 start_video_response = MF_V3_Tasks_StartVideo.Response( 1341 Index=0, 1342 Type="StartVideo" 1343 ) 1344 task = Task(Index=0, Type="StartVideo", Input=start_video_request, Output=start_video_response) 1345 self.SendTask(task) 1346 return task 1347 1348 1349def stop_video(self) -> Task: 1350 1351 """ 1352 Stop the video stream. 1353 """ 1354 stop_video_request = MF_V3_Tasks_StopVideo.Request( 1355 Index=0, 1356 Type="StopVideo" 1357 ) 1358 stop_video_response = MF_V3_Tasks_StopVideo.Response( 1359 Index=0, 1360 Type="StopVideo" 1361 ) 1362 task = Task(Index=0, Type="StopVideo", Input=stop_video_request, Output=stop_video_response) 1363 self.SendTask(task) 1364 return task 1365 1366 1367def set_cameras(self, selection: List[int] = None, autoExposure: bool = None, exposure: int = None, analogGain: float = None, digitalGain: int = None, focus: int = None) -> Task: 1368 1369 """ 1370 Apply camera settings to one or both cameras. 1371 """ 1372 set_cameras_request = MF_V3_Tasks_SetCameras.Request( 1373 Index=0, 1374 Type="SetCameras", 1375 Input=MF_V3_Settings_Camera_Camera( 1376 selection=selection, 1377 autoExposure=autoExposure, 1378 exposure=exposure, 1379 analogGain=analogGain, 1380 digitalGain=digitalGain, 1381 focus=focus, 1382 ) 1383 ) 1384 set_cameras_response = MF_V3_Tasks_SetCameras.Response( 1385 Index=0, 1386 Type="SetCameras" 1387 ) 1388 task = Task(Index=0, Type="SetCameras", Input=set_cameras_request, Output=set_cameras_response) 1389 self.SendTask(task) 1390 return task 1391 1392 1393def set_projector(self, on: bool = None, brightness: float = None, pattern: MF_V3_Settings_Projector_Projector.Pattern = None, image: MF_V3_Settings_Projector_Projector.Image = None, color: List[float] = None, buffer: bytes = None) -> Task: 1394 1395 """ 1396 Apply projector settings. 1397 """ 1398 set_projector_request = MF_V3_Tasks_SetProjector.Request( 1399 Index=0, 1400 Type="SetProjector", 1401 Input=MF_V3_Settings_Projector_Projector( 1402 on=on, 1403 brightness=brightness, 1404 pattern=pattern, 1405 image=image, 1406 color=color, 1407 ) 1408 ) 1409 set_projector_response = MF_V3_Tasks_SetProjector.Response( 1410 Index=0, 1411 Type="SetProjector" 1412 ) 1413 task = Task(Index=0, Type="SetProjector", Input=set_projector_request, Output=set_projector_response) 1414 self.SendTask(task, buffer) 1415 return task 1416 1417 1418def auto_focus(self, applyAll: bool, cameras: List[MF_V3_Settings_AutoFocus_AutoFocus.Camera] = None) -> Task: 1419 1420 """ 1421 Auto focus one or both cameras. 1422 """ 1423 auto_focus_request = MF_V3_Tasks_AutoFocus.Request( 1424 Index=0, 1425 Type="AutoFocus", 1426 Input=MF_V3_Settings_AutoFocus_AutoFocus( 1427 applyAll=applyAll, 1428 cameras=cameras, 1429 ) 1430 ) 1431 auto_focus_response = MF_V3_Tasks_AutoFocus.Response( 1432 Index=0, 1433 Type="AutoFocus" 1434 ) 1435 task = Task(Index=0, Type="AutoFocus", Input=auto_focus_request, Output=auto_focus_response) 1436 self.SendTask(task) 1437 return task 1438 1439 1440def rotate_turntable(self, Input: int) -> Task: 1441 1442 """ 1443 Rotate the turntable. 1444 """ 1445 rotate_turntable_request = MF_V3_Tasks_RotateTurntable.Request( 1446 Index=0, 1447 Type="RotateTurntable", 1448 Input=Input 1449 ) 1450 rotate_turntable_response = MF_V3_Tasks_RotateTurntable.Response( 1451 Index=0, 1452 Type="RotateTurntable", 1453 Input=Input 1454 ) 1455 task = Task(Index=0, Type="RotateTurntable", Input=rotate_turntable_request, Output=rotate_turntable_response) 1456 self.SendTask(task) 1457 return task 1458 1459 1460def new_scan(self, camera: MF_V3_Settings_Camera_Camera = None, projector: MF_V3_Settings_Projector_Projector = None, turntable: MF_V3_Settings_Turntable_Turntable = None, capture: MF_V3_Settings_Capture_Capture = None, processing: MF_V3_Settings_Scan_Scan.Processing = None, alignWithScanner: bool = None, centerAtOrigin: bool = None) -> Task: 1461 1462 """ 1463 Capture a new scan. 1464 """ 1465 new_scan_request = MF_V3_Tasks_NewScan.Request( 1466 Index=0, 1467 Type="NewScan", 1468 Input=MF_V3_Settings_Scan_Scan( 1469 camera=camera, 1470 projector=projector, 1471 turntable=turntable, 1472 capture=capture, 1473 processing=processing, 1474 alignWithScanner=alignWithScanner, 1475 centerAtOrigin=centerAtOrigin, 1476 ) 1477 ) 1478 new_scan_response = MF_V3_Tasks_NewScan.Response( 1479 Index=0, 1480 Type="NewScan" 1481 ) 1482 task = Task(Index=0, Type="NewScan", Input=new_scan_request, Output=new_scan_response) 1483 self.SendTask(task) 1484 return task 1485 1486 1487def capture_image(self, selection: List[int] = None, codec: MF_V3_Settings_CaptureImage_CaptureImage.Codec = None, grayscale: bool = None) -> Task: 1488 1489 """ 1490 Capture a single Image. 1491 """ 1492 capture_image_request = MF_V3_Tasks_CaptureImage.Request( 1493 Index=0, 1494 Type="CaptureImage", 1495 Input=MF_V3_Settings_CaptureImage_CaptureImage( 1496 selection=selection, 1497 codec=codec, 1498 grayscale=grayscale, 1499 ) 1500 ) 1501 capture_image_response = MF_V3_Tasks_CaptureImage.Response( 1502 Index=0, 1503 Type="CaptureImage", 1504 Input=MF_V3_Settings_CaptureImage_CaptureImage( 1505 selection=selection, 1506 codec=codec, 1507 grayscale=grayscale, 1508 ) 1509 ) 1510 task = Task(Index=0, Type="CaptureImage", Input=capture_image_request, Output=capture_image_response) 1511 self.SendTask(task) 1512 return task 1513 1514 1515def depth_map(self, camera: MF_V3_Settings_Camera_Camera = None, projector: MF_V3_Settings_Projector_Projector = None, turntable: MF_V3_Settings_Turntable_Turntable = None, capture: MF_V3_Settings_Capture_Capture = None, processing: MF_V3_Settings_Scan_Scan.Processing = None, alignWithScanner: bool = None, centerAtOrigin: bool = None) -> Task: 1516 1517 """ 1518 Capture a depth map. 1519 """ 1520 depth_map_request = MF_V3_Tasks_DepthMap.Request( 1521 Index=0, 1522 Type="DepthMap", 1523 Input=MF_V3_Settings_Scan_Scan( 1524 camera=camera, 1525 projector=projector, 1526 turntable=turntable, 1527 capture=capture, 1528 processing=processing, 1529 alignWithScanner=alignWithScanner, 1530 centerAtOrigin=centerAtOrigin, 1531 ) 1532 ) 1533 depth_map_response = MF_V3_Tasks_DepthMap.Response( 1534 Index=0, 1535 Type="DepthMap" 1536 ) 1537 task = Task(Index=0, Type="DepthMap", Input=depth_map_request, Output=depth_map_response) 1538 self.SendTask(task) 1539 return task 1540 1541 1542def reboot(self) -> Task: 1543 1544 """ 1545 Reboot the scanner. 1546 """ 1547 reboot_request = MF_V3_Tasks_Reboot.Request( 1548 Index=0, 1549 Type="Reboot" 1550 ) 1551 reboot_response = MF_V3_Tasks_Reboot.Response( 1552 Index=0, 1553 Type="Reboot" 1554 ) 1555 task = Task(Index=0, Type="Reboot", Input=reboot_request, Output=reboot_response) 1556 self.SendTask(task) 1557 return task 1558 1559 1560def shutdown(self) -> Task: 1561 1562 """ 1563 Shutdown the scanner. 1564 """ 1565 shutdown_request = MF_V3_Tasks_Shutdown.Request( 1566 Index=0, 1567 Type="Shutdown" 1568 ) 1569 shutdown_response = MF_V3_Tasks_Shutdown.Response( 1570 Index=0, 1571 Type="Shutdown" 1572 ) 1573 task = Task(Index=0, Type="Shutdown", Input=shutdown_request, Output=shutdown_response) 1574 self.SendTask(task) 1575 return task
99def list_network_interfaces(self) -> Task: 100 101 """ 102 List available wifi networks. 103 """ 104 list_network_interfaces_request = MF_V3_Tasks_ListNetworkInterfaces.Request( 105 Index=0, 106 Type="ListNetworkInterfaces" 107 ) 108 list_network_interfaces_response = MF_V3_Tasks_ListNetworkInterfaces.Response( 109 Index=0, 110 Type="ListNetworkInterfaces" 111 ) 112 task = Task(Index=0, Type="ListNetworkInterfaces", Input=list_network_interfaces_request, Output=list_network_interfaces_response) 113 self.SendTask(task) 114 return task
List available wifi networks.
117def list_wifi(self) -> Task: 118 119 """ 120 List available wifi networks. 121 """ 122 list_wifi_request = MF_V3_Tasks_ListWifi.Request( 123 Index=0, 124 Type="ListWifi" 125 ) 126 list_wifi_response = MF_V3_Tasks_ListWifi.Response( 127 Index=0, 128 Type="ListWifi" 129 ) 130 task = Task(Index=0, Type="ListWifi", Input=list_wifi_request, Output=list_wifi_response) 131 self.SendTask(task) 132 return task
List available wifi networks.
135def connect_wifi(self, ssid: str, password: str) -> Task: 136 137 """ 138 Connect to a wifi network. 139 """ 140 connect_wifi_request = MF_V3_Tasks_ConnectWifi.Request( 141 Index=0, 142 Type="ConnectWifi", 143 Input=MF_V3_Settings_Wifi_Wifi( 144 ssid=ssid, 145 password=password, 146 ) 147 ) 148 connect_wifi_response = MF_V3_Tasks_ConnectWifi.Response( 149 Index=0, 150 Type="ConnectWifi", 151 Input=MF_V3_Settings_Wifi_Wifi( 152 ssid=ssid, 153 password=password, 154 ) 155 ) 156 task = Task(Index=0, Type="ConnectWifi", Input=connect_wifi_request, Output=connect_wifi_response) 157 self.SendTask(task) 158 return task
Connect to a wifi network.
161def forget_wifi(self) -> Task: 162 163 """ 164 Forget all wifi connections. 165 """ 166 forget_wifi_request = MF_V3_Tasks_ForgetWifi.Request( 167 Index=0, 168 Type="ForgetWifi" 169 ) 170 forget_wifi_response = MF_V3_Tasks_ForgetWifi.Response( 171 Index=0, 172 Type="ForgetWifi" 173 ) 174 task = Task(Index=0, Type="ForgetWifi", Input=forget_wifi_request, Output=forget_wifi_response) 175 self.SendTask(task) 176 return task
Forget all wifi connections.
179def list_settings(self) -> Task: 180 181 """ 182 Get scanner settings. 183 """ 184 list_settings_request = MF_V3_Tasks_ListSettings.Request( 185 Index=0, 186 Type="ListSettings" 187 ) 188 list_settings_response = MF_V3_Tasks_ListSettings.Response( 189 Index=0, 190 Type="ListSettings" 191 ) 192 task = Task(Index=0, Type="ListSettings", Input=list_settings_request, Output=list_settings_response) 193 self.SendTask(task) 194 return task
Get scanner settings.
197def push_settings(self) -> Task: 198 199 """ 200 Push the current scanner settings to the settings stack. 201 """ 202 push_settings_request = MF_V3_Tasks_PushSettings.Request( 203 Index=0, 204 Type="PushSettings" 205 ) 206 push_settings_response = MF_V3_Tasks_PushSettings.Response( 207 Index=0, 208 Type="PushSettings" 209 ) 210 task = Task(Index=0, Type="PushSettings", Input=push_settings_request, Output=push_settings_response) 211 self.SendTask(task) 212 return task
Push the current scanner settings to the settings stack.
215def pop_settings(self, Input: bool = None) -> Task: 216 217 """ 218 Pop and restore scanner settings from the settings stack. 219 """ 220 pop_settings_request = MF_V3_Tasks_PopSettings.Request( 221 Index=0, 222 Type="PopSettings", 223 Input=Input 224 ) 225 pop_settings_response = MF_V3_Tasks_PopSettings.Response( 226 Index=0, 227 Type="PopSettings" 228 ) 229 task = Task(Index=0, Type="PopSettings", Input=pop_settings_request, Output=pop_settings_response) 230 self.SendTask(task) 231 return task
Pop and restore scanner settings from the settings stack.
234def update_settings(self, advanced: MF_V3_Settings_Advanced_Advanced = None, camera: MF_V3_Settings_Camera_Camera = None, capture: MF_V3_Settings_Capture_Capture = None, i18n: MF_V3_Settings_I18n_I18n = None, projector: MF_V3_Settings_Projector_Projector = None, style: MF_V3_Settings_Style_Style = None, turntable: MF_V3_Settings_Turntable_Turntable = None, tutorials: MF_V3_Settings_Tutorials_Tutorials = None, viewer: MF_V3_Settings_Viewer_Viewer = None, software: MF_V3_Settings_Software_Software = None) -> Task: 235 236 """ 237 Update scanner settings. 238 """ 239 update_settings_request = MF_V3_Tasks_UpdateSettings.Request( 240 Index=0, 241 Type="UpdateSettings", 242 Input=MF_V3_Settings_Scanner_Scanner( 243 advanced=advanced, 244 camera=camera, 245 capture=capture, 246 i18n=i18n, 247 projector=projector, 248 style=style, 249 turntable=turntable, 250 tutorials=tutorials, 251 viewer=viewer, 252 software=software, 253 ) 254 ) 255 update_settings_response = MF_V3_Tasks_UpdateSettings.Response( 256 Index=0, 257 Type="UpdateSettings", 258 Input=MF_V3_Settings_Scanner_Scanner( 259 advanced=advanced, 260 camera=camera, 261 capture=capture, 262 i18n=i18n, 263 projector=projector, 264 style=style, 265 turntable=turntable, 266 tutorials=tutorials, 267 viewer=viewer, 268 software=software, 269 ) 270 ) 271 task = Task(Index=0, Type="UpdateSettings", Input=update_settings_request, Output=update_settings_response) 272 self.SendTask(task) 273 return task
Update scanner settings.
276def list_projects(self) -> Task: 277 278 """ 279 List all projects. 280 """ 281 list_projects_request = MF_V3_Tasks_ListProjects.Request( 282 Index=0, 283 Type="ListProjects" 284 ) 285 list_projects_response = MF_V3_Tasks_ListProjects.Response( 286 Index=0, 287 Type="ListProjects" 288 ) 289 task = Task(Index=0, Type="ListProjects", Input=list_projects_request, Output=list_projects_response) 290 self.SendTask(task) 291 return task
List all projects.
294def download_project(self, Input: int) -> Task: 295 296 """ 297 Download a project from the scanner. 298 """ 299 download_project_request = MF_V3_Tasks_DownloadProject.Request( 300 Index=0, 301 Type="DownloadProject", 302 Input=Input 303 ) 304 download_project_response = MF_V3_Tasks_DownloadProject.Response( 305 Index=0, 306 Type="DownloadProject", 307 Input=Input 308 ) 309 task = Task(Index=0, Type="DownloadProject", Input=download_project_request, Output=download_project_response) 310 self.SendTask(task) 311 return task
Download a project from the scanner.
314def upload_project(self, buffer: bytes) -> Task: 315 316 """ 317 Upload a project to the scanner. 318 """ 319 upload_project_request = MF_V3_Tasks_UploadProject.Request( 320 Index=0, 321 Type="UploadProject" 322 ) 323 upload_project_response = MF_V3_Tasks_UploadProject.Response( 324 Index=0, 325 Type="UploadProject" 326 ) 327 task = Task(Index=0, Type="UploadProject", Input=upload_project_request, Output=upload_project_response) 328 self.SendTask(task, buffer) 329 return task
Upload a project to the scanner.
332def new_project(self, Input: str = None) -> Task: 333 334 """ 335 Create a new project. 336 """ 337 new_project_request = MF_V3_Tasks_NewProject.Request( 338 Index=0, 339 Type="NewProject", 340 Input=Input 341 ) 342 new_project_response = MF_V3_Tasks_NewProject.Response( 343 Index=0, 344 Type="NewProject" 345 ) 346 task = Task(Index=0, Type="NewProject", Input=new_project_request, Output=new_project_response) 347 self.SendTask(task) 348 return task
Create a new project.
351def open_project(self, Input: int) -> Task: 352 353 """ 354 Open an existing project. 355 """ 356 open_project_request = MF_V3_Tasks_OpenProject.Request( 357 Index=0, 358 Type="OpenProject", 359 Input=Input 360 ) 361 open_project_response = MF_V3_Tasks_OpenProject.Response( 362 Index=0, 363 Type="OpenProject", 364 Input=Input 365 ) 366 task = Task(Index=0, Type="OpenProject", Input=open_project_request, Output=open_project_response) 367 self.SendTask(task) 368 return task
Open an existing project.
371def clear_settings(self) -> Task: 372 373 """ 374 Clear scanner settings and restore the default values. 375 """ 376 clear_settings_request = MF_V3_Tasks_ClearSettings.Request( 377 Index=0, 378 Type="ClearSettings" 379 ) 380 clear_settings_response = MF_V3_Tasks_ClearSettings.Response( 381 Index=0, 382 Type="ClearSettings" 383 ) 384 task = Task(Index=0, Type="ClearSettings", Input=clear_settings_request, Output=clear_settings_response) 385 self.SendTask(task) 386 return task
Clear scanner settings and restore the default values.
389def close_project(self) -> Task: 390 391 """ 392 Close the current open project. 393 """ 394 close_project_request = MF_V3_Tasks_CloseProject.Request( 395 Index=0, 396 Type="CloseProject" 397 ) 398 close_project_response = MF_V3_Tasks_CloseProject.Response( 399 Index=0, 400 Type="CloseProject" 401 ) 402 task = Task(Index=0, Type="CloseProject", Input=close_project_request, Output=close_project_response) 403 self.SendTask(task) 404 return task
Close the current open project.
407def copy_groups(self, sourceIndexes: List[int] = None, targetIndex: int = None, childPosition: int = None, nameSuffix: str = None, enumerate: bool = None) -> Task: 408 409 """ 410 Copy a set of scan groups in the current open project. 411 """ 412 copy_groups_request = MF_V3_Tasks_CopyGroups.Request( 413 Index=0, 414 Type="CopyGroups", 415 Input=MF_V3_Settings_CopyGroups_CopyGroups( 416 sourceIndexes=sourceIndexes, 417 targetIndex=targetIndex, 418 childPosition=childPosition, 419 nameSuffix=nameSuffix, 420 enumerate=enumerate, 421 ) 422 ) 423 copy_groups_response = MF_V3_Tasks_CopyGroups.Response( 424 Index=0, 425 Type="CopyGroups", 426 Input=MF_V3_Settings_CopyGroups_CopyGroups( 427 sourceIndexes=sourceIndexes, 428 targetIndex=targetIndex, 429 childPosition=childPosition, 430 nameSuffix=nameSuffix, 431 enumerate=enumerate, 432 ), 433 Output=None 434 ) 435 task = Task(Index=0, Type="CopyGroups", Input=copy_groups_request, Output=copy_groups_response) 436 self.SendTask(task) 437 return task
Copy a set of scan groups in the current open project.
440def remove_projects(self, Input: List[int] = None) -> Task: 441 442 """ 443 Remove selected projects. 444 """ 445 remove_projects_request = MF_V3_Tasks_RemoveProjects.Request( 446 Index=0, 447 Type="RemoveProjects", 448 Input=Input 449 ) 450 remove_projects_response = MF_V3_Tasks_RemoveProjects.Response( 451 Index=0, 452 Type="RemoveProjects" 453 ) 454 task = Task(Index=0, Type="RemoveProjects", Input=remove_projects_request, Output=remove_projects_response) 455 self.SendTask(task) 456 return task
Remove selected projects.
459def list_groups(self) -> Task: 460 461 """ 462 List the scan groups in the current open project. 463 """ 464 list_groups_request = MF_V3_Tasks_ListGroups.Request( 465 Index=0, 466 Type="ListGroups" 467 ) 468 list_groups_response = MF_V3_Tasks_ListGroups.Response( 469 Index=0, 470 Type="ListGroups", 471 Output=None 472 ) 473 task = Task(Index=0, Type="ListGroups", Input=list_groups_request, Output=list_groups_response) 474 self.SendTask(task) 475 return task
List the scan groups in the current open project.
478def list_scans(self) -> Task: 479 480 """ 481 List the scans in the current open project. 482 """ 483 list_scans_request = MF_V3_Tasks_ListScans.Request( 484 Index=0, 485 Type="ListScans" 486 ) 487 list_scans_response = MF_V3_Tasks_ListScans.Response( 488 Index=0, 489 Type="ListScans" 490 ) 491 task = Task(Index=0, Type="ListScans", Input=list_scans_request, Output=list_scans_response) 492 self.SendTask(task) 493 return task
List the scans in the current open project.
496def scan_data(self, index: int, mergeStep: MF_V3_Settings_ScanData_ScanData.MergeStep = None, buffers: List[MF_V3_Settings_ScanData_ScanData.Buffer] = None, metadata: List[MF_V3_Settings_ScanData_ScanData.Metadata] = None) -> Task: 497 498 """ 499 Download the raw scan data for a scan in the current open project. 500 """ 501 scan_data_request = MF_V3_Tasks_ScanData.Request( 502 Index=0, 503 Type="ScanData", 504 Input=MF_V3_Settings_ScanData_ScanData( 505 index=index, 506 mergeStep=mergeStep, 507 buffers=buffers, 508 metadata=metadata, 509 ) 510 ) 511 scan_data_response = MF_V3_Tasks_ScanData.Response( 512 Index=0, 513 Type="ScanData", 514 Input=MF_V3_Settings_ScanData_ScanData( 515 index=index, 516 mergeStep=mergeStep, 517 buffers=buffers, 518 metadata=metadata, 519 ), 520 Output=None 521 ) 522 task = Task(Index=0, Type="ScanData", Input=scan_data_request, Output=scan_data_response) 523 self.SendTask(task) 524 return task
Download the raw scan data for a scan in the current open project.
527def set_project(self, index: int = None, name: str = None) -> Task: 528 529 """ 530 Apply settings to the current open project. 531 """ 532 set_project_request = MF_V3_Tasks_SetProject.Request( 533 Index=0, 534 Type="SetProject", 535 Input=MF_V3_Settings_Project_Project( 536 index=index, 537 name=name, 538 ) 539 ) 540 set_project_response = MF_V3_Tasks_SetProject.Response( 541 Index=0, 542 Type="SetProject" 543 ) 544 task = Task(Index=0, Type="SetProject", Input=set_project_request, Output=set_project_response) 545 self.SendTask(task) 546 return task
Apply settings to the current open project.
549def set_group(self, index: int, name: str = None, color: List[float] = None, visible: bool = None, collapsed: bool = None, rotation: List[float] = None, translation: List[float] = None) -> Task: 550 551 """ 552 Set scan group properties. 553 """ 554 set_group_request = MF_V3_Tasks_SetGroup.Request( 555 Index=0, 556 Type="SetGroup", 557 Input=MF_V3_Settings_Group_Group( 558 index=index, 559 name=name, 560 color=color, 561 visible=visible, 562 collapsed=collapsed, 563 rotation=rotation, 564 translation=translation, 565 ) 566 ) 567 set_group_response = MF_V3_Tasks_SetGroup.Response( 568 Index=0, 569 Type="SetGroup", 570 Input=MF_V3_Settings_Group_Group( 571 index=index, 572 name=name, 573 color=color, 574 visible=visible, 575 collapsed=collapsed, 576 rotation=rotation, 577 translation=translation, 578 ), 579 Output=None 580 ) 581 task = Task(Index=0, Type="SetGroup", Input=set_group_request, Output=set_group_response) 582 self.SendTask(task) 583 return task
Set scan group properties.
586def new_group(self, parentIndex: int = None, baseName: str = None, color: List[float] = None, visible: bool = None, collapsed: bool = None, rotation: List[float] = None, translation: List[float] = None) -> Task: 587 588 """ 589 Create a new scan group. 590 """ 591 new_group_request = MF_V3_Tasks_NewGroup.Request( 592 Index=0, 593 Type="NewGroup", 594 Input=MF_V3_Settings_NewGroup_NewGroup( 595 parentIndex=parentIndex, 596 baseName=baseName, 597 color=color, 598 visible=visible, 599 collapsed=collapsed, 600 rotation=rotation, 601 translation=translation, 602 ) 603 ) 604 new_group_response = MF_V3_Tasks_NewGroup.Response( 605 Index=0, 606 Type="NewGroup", 607 Output=None 608 ) 609 task = Task(Index=0, Type="NewGroup", Input=new_group_request, Output=new_group_response) 610 self.SendTask(task) 611 return task
Create a new scan group.
614def move_group(self, Input: List[int] = None) -> Task: 615 616 """ 617 Move a scan group. 618 """ 619 move_group_request = MF_V3_Tasks_MoveGroup.Request( 620 Index=0, 621 Type="MoveGroup", 622 Input=Input 623 ) 624 move_group_response = MF_V3_Tasks_MoveGroup.Response( 625 Index=0, 626 Type="MoveGroup", 627 Output=None 628 ) 629 task = Task(Index=0, Type="MoveGroup", Input=move_group_request, Output=move_group_response) 630 self.SendTask(task) 631 return task
Move a scan group.
634def factory_reset(self) -> Task: 635 636 """ 637 Reset the scanner to factory settings. 638 """ 639 factory_reset_request = MF_V3_Tasks_FactoryReset.Request( 640 Index=0, 641 Type="FactoryReset" 642 ) 643 factory_reset_response = MF_V3_Tasks_FactoryReset.Response( 644 Index=0, 645 Type="FactoryReset" 646 ) 647 task = Task(Index=0, Type="FactoryReset", Input=factory_reset_request, Output=factory_reset_response) 648 self.SendTask(task) 649 return task
Reset the scanner to factory settings.
652def flatten_group(self, Input: int) -> Task: 653 654 """ 655 Flatten a scan group such that it only consists of single scans. 656 """ 657 flatten_group_request = MF_V3_Tasks_FlattenGroup.Request( 658 Index=0, 659 Type="FlattenGroup", 660 Input=Input 661 ) 662 flatten_group_response = MF_V3_Tasks_FlattenGroup.Response( 663 Index=0, 664 Type="FlattenGroup", 665 Input=Input, 666 Output=None 667 ) 668 task = Task(Index=0, Type="FlattenGroup", Input=flatten_group_request, Output=flatten_group_response) 669 self.SendTask(task) 670 return task
Flatten a scan group such that it only consists of single scans.
673def split_group(self, Input: int) -> Task: 674 675 """ 676 Split a scan group (ie. move its subgroups to its parent group). 677 """ 678 split_group_request = MF_V3_Tasks_SplitGroup.Request( 679 Index=0, 680 Type="SplitGroup", 681 Input=Input 682 ) 683 split_group_response = MF_V3_Tasks_SplitGroup.Response( 684 Index=0, 685 Type="SplitGroup", 686 Input=Input, 687 Output=None 688 ) 689 task = Task(Index=0, Type="SplitGroup", Input=split_group_request, Output=split_group_response) 690 self.SendTask(task) 691 return task
Split a scan group (ie. move its subgroups to its parent group).
694def transform_group(self, index: int, name: str = None, color: List[float] = None, visible: bool = None, collapsed: bool = None, rotation: List[float] = None, translation: List[float] = None) -> Task: 695 696 """ 697 Apply a rigid transformation to a group. 698 """ 699 transform_group_request = MF_V3_Tasks_TransformGroup.Request( 700 Index=0, 701 Type="TransformGroup", 702 Input=MF_V3_Settings_Group_Group( 703 index=index, 704 name=name, 705 color=color, 706 visible=visible, 707 collapsed=collapsed, 708 rotation=rotation, 709 translation=translation, 710 ) 711 ) 712 transform_group_response = MF_V3_Tasks_TransformGroup.Response( 713 Index=0, 714 Type="TransformGroup", 715 Input=MF_V3_Settings_Group_Group( 716 index=index, 717 name=name, 718 color=color, 719 visible=visible, 720 collapsed=collapsed, 721 rotation=rotation, 722 translation=translation, 723 ), 724 Output=None 725 ) 726 task = Task(Index=0, Type="TransformGroup", Input=transform_group_request, Output=transform_group_response) 727 self.SendTask(task) 728 return task
Apply a rigid transformation to a group.
731def remove_groups(self, Input: List[int] = None) -> Task: 732 733 """ 734 Remove selected scan groups. 735 """ 736 remove_groups_request = MF_V3_Tasks_RemoveGroups.Request( 737 Index=0, 738 Type="RemoveGroups", 739 Input=Input 740 ) 741 remove_groups_response = MF_V3_Tasks_RemoveGroups.Response( 742 Index=0, 743 Type="RemoveGroups", 744 Output=None 745 ) 746 task = Task(Index=0, Type="RemoveGroups", Input=remove_groups_request, Output=remove_groups_response) 747 self.SendTask(task) 748 return task
Remove selected scan groups.
751def bounding_box(self, selection: MF_V3_Settings_ScanSelection_ScanSelection, axisAligned: bool) -> Task: 752 753 """ 754 Get the bounding box of a set of scan groups. 755 """ 756 bounding_box_request = MF_V3_Tasks_BoundingBox.Request( 757 Index=0, 758 Type="BoundingBox", 759 Input=MF_V3_Settings_BoundingBox_BoundingBox( 760 selection=selection, 761 axisAligned=axisAligned, 762 ) 763 ) 764 bounding_box_response = MF_V3_Tasks_BoundingBox.Response( 765 Index=0, 766 Type="BoundingBox", 767 Input=MF_V3_Settings_BoundingBox_BoundingBox( 768 selection=selection, 769 axisAligned=axisAligned, 770 ), 771 Output=None 772 ) 773 task = Task(Index=0, Type="BoundingBox", Input=bounding_box_request, Output=bounding_box_response) 774 self.SendTask(task) 775 return task
Get the bounding box of a set of scan groups.
778def align(self, source: int, target: int, rough: MF_V3_Settings_Align_Align.Rough = None, fine: MF_V3_Settings_Align_Align.Fine = None) -> Task: 779 780 """ 781 Align two scan groups. 782 """ 783 align_request = MF_V3_Tasks_Align.Request( 784 Index=0, 785 Type="Align", 786 Input=MF_V3_Settings_Align_Align( 787 source=source, 788 target=target, 789 rough=rough, 790 fine=fine, 791 ) 792 ) 793 align_response = MF_V3_Tasks_Align.Response( 794 Index=0, 795 Type="Align", 796 Input=MF_V3_Settings_Align_Align( 797 source=source, 798 target=target, 799 rough=rough, 800 fine=fine, 801 ), 802 Output=None 803 ) 804 task = Task(Index=0, Type="Align", Input=align_request, Output=align_response) 805 self.SendTask(task) 806 return task
Align two scan groups.
809def smooth(self, selection: MF_V3_Settings_ScanSelection_ScanSelection = None, taubin: MF_V3_Settings_Smooth_Smooth.Taubin = None) -> Task: 810 811 """ 812 Smooth a set of scans. 813 """ 814 smooth_request = MF_V3_Tasks_Smooth.Request( 815 Index=0, 816 Type="Smooth", 817 Input=MF_V3_Settings_Smooth_Smooth( 818 selection=selection, 819 taubin=taubin, 820 ) 821 ) 822 smooth_response = MF_V3_Tasks_Smooth.Response( 823 Index=0, 824 Type="Smooth", 825 Input=MF_V3_Settings_Smooth_Smooth( 826 selection=selection, 827 taubin=taubin, 828 ) 829 ) 830 task = Task(Index=0, Type="Smooth", Input=smooth_request, Output=smooth_response) 831 self.SendTask(task) 832 return task
Smooth a set of scans.
835def heat_map(self, sources: List[int] = None, targets: List[int] = None, outlierDistance: float = None) -> Task: 836 837 """ 838 Compute the point-to-mesh distances of a source mesh to a target mesh and visualize as a heat map. 839 """ 840 heat_map_request = MF_V3_Tasks_HeatMap.Request( 841 Index=0, 842 Type="HeatMap", 843 Input=MF_V3_Settings_HeatMap_HeatMap( 844 sources=sources, 845 targets=targets, 846 outlierDistance=outlierDistance, 847 ) 848 ) 849 heat_map_response = MF_V3_Tasks_HeatMap.Response( 850 Index=0, 851 Type="HeatMap", 852 Input=MF_V3_Settings_HeatMap_HeatMap( 853 sources=sources, 854 targets=targets, 855 outlierDistance=outlierDistance, 856 ), 857 Output=None 858 ) 859 task = Task(Index=0, Type="HeatMap", Input=heat_map_request, Output=heat_map_response) 860 self.SendTask(task) 861 return task
Compute the point-to-mesh distances of a source mesh to a target mesh and visualize as a heat map.
864def merge(self, selection: MF_V3_Settings_ScanSelection_ScanSelection = None, remesh: MF_V3_Settings_Merge_Merge.Remesh = None, simplify: MF_V3_Settings_Merge_Merge.Simplify = None, texturize: bool = None) -> Task: 865 866 """ 867 Merge two or more scan groups. 868 """ 869 merge_request = MF_V3_Tasks_Merge.Request( 870 Index=0, 871 Type="Merge", 872 Input=MF_V3_Settings_Merge_Merge( 873 selection=selection, 874 remesh=remesh, 875 simplify=simplify, 876 texturize=texturize, 877 ) 878 ) 879 merge_response = MF_V3_Tasks_Merge.Response( 880 Index=0, 881 Type="Merge", 882 Input=MF_V3_Settings_Merge_Merge( 883 selection=selection, 884 remesh=remesh, 885 simplify=simplify, 886 texturize=texturize, 887 ), 888 Output=None 889 ) 890 task = Task(Index=0, Type="Merge", Input=merge_request, Output=merge_response) 891 self.SendTask(task) 892 return task
Merge two or more scan groups.
895def merge_data(self, index: int, mergeStep: MF_V3_Settings_ScanData_ScanData.MergeStep = None, buffers: List[MF_V3_Settings_ScanData_ScanData.Buffer] = None, metadata: List[MF_V3_Settings_ScanData_ScanData.Metadata] = None) -> Task: 896 897 """ 898 Download the raw scan data for the current merge process. 899 """ 900 merge_data_request = MF_V3_Tasks_MergeData.Request( 901 Index=0, 902 Type="MergeData", 903 Input=MF_V3_Settings_ScanData_ScanData( 904 index=index, 905 mergeStep=mergeStep, 906 buffers=buffers, 907 metadata=metadata, 908 ) 909 ) 910 merge_data_response = MF_V3_Tasks_MergeData.Response( 911 Index=0, 912 Type="MergeData", 913 Input=MF_V3_Settings_ScanData_ScanData( 914 index=index, 915 mergeStep=mergeStep, 916 buffers=buffers, 917 metadata=metadata, 918 ), 919 Output=None 920 ) 921 task = Task(Index=0, Type="MergeData", Input=merge_data_request, Output=merge_data_response) 922 self.SendTask(task) 923 return task
Download the raw scan data for the current merge process.
926def add_merge_to_project(self) -> Task: 927 928 """ 929 Add a merged scan to the current project. 930 """ 931 add_merge_to_project_request = MF_V3_Tasks_AddMergeToProject.Request( 932 Index=0, 933 Type="AddMergeToProject" 934 ) 935 add_merge_to_project_response = MF_V3_Tasks_AddMergeToProject.Response( 936 Index=0, 937 Type="AddMergeToProject", 938 Output=None 939 ) 940 task = Task(Index=0, Type="AddMergeToProject", Input=add_merge_to_project_request, Output=add_merge_to_project_response) 941 self.SendTask(task) 942 return task
Add a merged scan to the current project.
945def import_file(self, name: str = None, scale: float = None, unit: MF_V3_Settings_Import_Import.Unit = None, center: bool = None, groupIndex: int = None) -> Task: 946 947 """ 948 Import a set of 3D meshes to the current open project. The meshes must be archived in a ZIP file. 949 """ 950 import_file_request = MF_V3_Tasks_Import.Request( 951 Index=0, 952 Type="Import", 953 Input=MF_V3_Settings_Import_Import( 954 name=name, 955 scale=scale, 956 unit=unit, 957 center=center, 958 groupIndex=groupIndex, 959 ) 960 ) 961 import_file_response = MF_V3_Tasks_Import.Response( 962 Index=0, 963 Type="Import" 964 ) 965 task = Task(Index=0, Type="Import", Input=import_file_request, Output=import_file_response) 966 self.SendTask(task) 967 return task
Import a set of 3D meshes to the current open project. The meshes must be archived in a ZIP file.
970def list_export_formats(self) -> Task: 971 972 """ 973 List all export formats. 974 """ 975 list_export_formats_request = MF_V3_Tasks_ListExportFormats.Request( 976 Index=0, 977 Type="ListExportFormats" 978 ) 979 list_export_formats_response = MF_V3_Tasks_ListExportFormats.Response( 980 Index=0, 981 Type="ListExportFormats" 982 ) 983 task = Task(Index=0, Type="ListExportFormats", Input=list_export_formats_request, Output=list_export_formats_response) 984 self.SendTask(task) 985 return task
List all export formats.
988def export(self, selection: MF_V3_Settings_ScanSelection_ScanSelection = None, texture: bool = None, merge: bool = None, format: MF_V3_Settings_Export_Export.Format = None, scale: float = None, color: MF_V3_Settings_Export_Export.Color = None) -> Task: 989 990 """ 991 Export a group of scans. 992 """ 993 export_request = MF_V3_Tasks_Export.Request( 994 Index=0, 995 Type="Export", 996 Input=MF_V3_Settings_Export_Export( 997 selection=selection, 998 texture=texture, 999 merge=merge, 1000 format=format, 1001 scale=scale, 1002 color=color, 1003 ) 1004 ) 1005 export_response = MF_V3_Tasks_Export.Response( 1006 Index=0, 1007 Type="Export", 1008 Input=MF_V3_Settings_Export_Export( 1009 selection=selection, 1010 texture=texture, 1011 merge=merge, 1012 format=format, 1013 scale=scale, 1014 color=color, 1015 ) 1016 ) 1017 task = Task(Index=0, Type="Export", Input=export_request, Output=export_response) 1018 self.SendTask(task) 1019 return task
Export a group of scans.
1022def export_heat_map(self, selection: MF_V3_Settings_ScanSelection_ScanSelection = None, texture: bool = None, merge: bool = None, format: MF_V3_Settings_Export_Export.Format = None, scale: float = None, color: MF_V3_Settings_Export_Export.Color = None) -> Task: 1023 1024 """ 1025 Export a mesh with vertex colors generated by the 'HeatMap' task. 1026 """ 1027 export_heat_map_request = MF_V3_Tasks_ExportHeatMap.Request( 1028 Index=0, 1029 Type="ExportHeatMap", 1030 Input=MF_V3_Settings_Export_Export( 1031 selection=selection, 1032 texture=texture, 1033 merge=merge, 1034 format=format, 1035 scale=scale, 1036 color=color, 1037 ) 1038 ) 1039 export_heat_map_response = MF_V3_Tasks_ExportHeatMap.Response( 1040 Index=0, 1041 Type="ExportHeatMap", 1042 Input=MF_V3_Settings_Export_Export( 1043 selection=selection, 1044 texture=texture, 1045 merge=merge, 1046 format=format, 1047 scale=scale, 1048 color=color, 1049 ) 1050 ) 1051 task = Task(Index=0, Type="ExportHeatMap", Input=export_heat_map_request, Output=export_heat_map_response) 1052 self.SendTask(task) 1053 return task
Export a mesh with vertex colors generated by the 'HeatMap' task.
1056def export_merge(self, selection: MF_V3_Settings_ScanSelection_ScanSelection = None, texture: bool = None, merge: bool = None, format: MF_V3_Settings_Export_Export.Format = None, scale: float = None, color: MF_V3_Settings_Export_Export.Color = None) -> Task: 1057 1058 """ 1059 Export a merged scan. 1060 """ 1061 export_merge_request = MF_V3_Tasks_ExportMerge.Request( 1062 Index=0, 1063 Type="ExportMerge", 1064 Input=MF_V3_Settings_Export_Export( 1065 selection=selection, 1066 texture=texture, 1067 merge=merge, 1068 format=format, 1069 scale=scale, 1070 color=color, 1071 ) 1072 ) 1073 export_merge_response = MF_V3_Tasks_ExportMerge.Response( 1074 Index=0, 1075 Type="ExportMerge", 1076 Input=MF_V3_Settings_Export_Export( 1077 selection=selection, 1078 texture=texture, 1079 merge=merge, 1080 format=format, 1081 scale=scale, 1082 color=color, 1083 ) 1084 ) 1085 task = Task(Index=0, Type="ExportMerge", Input=export_merge_request, Output=export_merge_response) 1086 self.SendTask(task) 1087 return task
Export a merged scan.
1090def export_logs(self, Input: bool = None) -> Task: 1091 1092 """ 1093 Export scanner logs. 1094 """ 1095 export_logs_request = MF_V3_Tasks_ExportLogs.Request( 1096 Index=0, 1097 Type="ExportLogs", 1098 Input=Input 1099 ) 1100 export_logs_response = MF_V3_Tasks_ExportLogs.Response( 1101 Index=0, 1102 Type="ExportLogs" 1103 ) 1104 task = Task(Index=0, Type="ExportLogs", Input=export_logs_request, Output=export_logs_response) 1105 self.SendTask(task) 1106 return task
Export scanner logs.
1109def export_factory_calibration_logs(self) -> Task: 1110 1111 """ 1112 Export factory calibration logs. 1113 """ 1114 export_factory_calibration_logs_request = MF_V3_Tasks_ExportFactoryCalibrationLogs.Request( 1115 Index=0, 1116 Type="ExportFactoryCalibrationLogs" 1117 ) 1118 export_factory_calibration_logs_response = MF_V3_Tasks_ExportFactoryCalibrationLogs.Response( 1119 Index=0, 1120 Type="ExportFactoryCalibrationLogs" 1121 ) 1122 task = Task(Index=0, Type="ExportFactoryCalibrationLogs", Input=export_factory_calibration_logs_request, Output=export_factory_calibration_logs_response) 1123 self.SendTask(task) 1124 return task
Export factory calibration logs.
1127def has_cameras(self) -> Task: 1128 1129 """ 1130 Check if the scanner has working cameras. 1131 """ 1132 has_cameras_request = MF_V3_Tasks_HasCameras.Request( 1133 Index=0, 1134 Type="HasCameras" 1135 ) 1136 has_cameras_response = MF_V3_Tasks_HasCameras.Response( 1137 Index=0, 1138 Type="HasCameras" 1139 ) 1140 task = Task(Index=0, Type="HasCameras", Input=has_cameras_request, Output=has_cameras_response) 1141 self.SendTask(task) 1142 return task
Check if the scanner has working cameras.
1145def has_projector(self) -> Task: 1146 1147 """ 1148 Check if the scanner has a working projector. 1149 """ 1150 has_projector_request = MF_V3_Tasks_HasProjector.Request( 1151 Index=0, 1152 Type="HasProjector" 1153 ) 1154 has_projector_response = MF_V3_Tasks_HasProjector.Response( 1155 Index=0, 1156 Type="HasProjector" 1157 ) 1158 task = Task(Index=0, Type="HasProjector", Input=has_projector_request, Output=has_projector_response) 1159 self.SendTask(task) 1160 return task
Check if the scanner has a working projector.
1163def has_turntable(self) -> Task: 1164 1165 """ 1166 Check if the scanner is connected to a working turntable. 1167 """ 1168 has_turntable_request = MF_V3_Tasks_HasTurntable.Request( 1169 Index=0, 1170 Type="HasTurntable" 1171 ) 1172 has_turntable_response = MF_V3_Tasks_HasTurntable.Response( 1173 Index=0, 1174 Type="HasTurntable" 1175 ) 1176 task = Task(Index=0, Type="HasTurntable", Input=has_turntable_request, Output=has_turntable_response) 1177 self.SendTask(task) 1178 return task
Check if the scanner is connected to a working turntable.
1181def system_info(self, updateMajor: bool = None, updateNightly: bool = None) -> Task: 1182 1183 """ 1184 Get system information. 1185 """ 1186 system_info_request = MF_V3_Tasks_SystemInfo.Request( 1187 Index=0, 1188 Type="SystemInfo", 1189 Input=MF_V3_Settings_Software_Software( 1190 updateMajor=updateMajor, 1191 updateNightly=updateNightly, 1192 ) 1193 ) 1194 system_info_response = MF_V3_Tasks_SystemInfo.Response( 1195 Index=0, 1196 Type="SystemInfo", 1197 Output=None 1198 ) 1199 task = Task(Index=0, Type="SystemInfo", Input=system_info_request, Output=system_info_response) 1200 self.SendTask(task) 1201 return task
Get system information.
1204def camera_calibration(self) -> Task: 1205 1206 """ 1207 Get the camera calibration descriptor. 1208 """ 1209 camera_calibration_request = MF_V3_Tasks_CameraCalibration.Request( 1210 Index=0, 1211 Type="CameraCalibration" 1212 ) 1213 camera_calibration_response = MF_V3_Tasks_CameraCalibration.Response( 1214 Index=0, 1215 Type="CameraCalibration" 1216 ) 1217 task = Task(Index=0, Type="CameraCalibration", Input=camera_calibration_request, Output=camera_calibration_response) 1218 self.SendTask(task) 1219 return task
Get the camera calibration descriptor.
1222def turntable_calibration(self) -> Task: 1223 1224 """ 1225 Get the turntable calibration descriptor. 1226 """ 1227 turntable_calibration_request = MF_V3_Tasks_TurntableCalibration.Request( 1228 Index=0, 1229 Type="TurntableCalibration" 1230 ) 1231 turntable_calibration_response = MF_V3_Tasks_TurntableCalibration.Response( 1232 Index=0, 1233 Type="TurntableCalibration" 1234 ) 1235 task = Task(Index=0, Type="TurntableCalibration", Input=turntable_calibration_request, Output=turntable_calibration_response) 1236 self.SendTask(task) 1237 return task
Get the turntable calibration descriptor.
1240def calibration_capture_targets(self) -> Task: 1241 1242 """ 1243 Get the calibration capture target for each camera calibration capture. 1244 """ 1245 calibration_capture_targets_request = MF_V3_Tasks_CalibrationCaptureTargets.Request( 1246 Index=0, 1247 Type="CalibrationCaptureTargets" 1248 ) 1249 calibration_capture_targets_response = MF_V3_Tasks_CalibrationCaptureTargets.Response( 1250 Index=0, 1251 Type="CalibrationCaptureTargets" 1252 ) 1253 task = Task(Index=0, Type="CalibrationCaptureTargets", Input=calibration_capture_targets_request, Output=calibration_capture_targets_response) 1254 self.SendTask(task) 1255 return task
Get the calibration capture target for each camera calibration capture.
1258def calibrate_cameras(self) -> Task: 1259 1260 """ 1261 Calibrate the cameras. 1262 """ 1263 calibrate_cameras_request = MF_V3_Tasks_CalibrateCameras.Request( 1264 Index=0, 1265 Type="CalibrateCameras" 1266 ) 1267 calibrate_cameras_response = MF_V3_Tasks_CalibrateCameras.Response( 1268 Index=0, 1269 Type="CalibrateCameras" 1270 ) 1271 task = Task(Index=0, Type="CalibrateCameras", Input=calibrate_cameras_request, Output=calibrate_cameras_response) 1272 self.SendTask(task) 1273 return task
Calibrate the cameras.
1276def calibrate_turntable(self) -> Task: 1277 1278 """ 1279 Calibrate the turntable. 1280 """ 1281 calibrate_turntable_request = MF_V3_Tasks_CalibrateTurntable.Request( 1282 Index=0, 1283 Type="CalibrateTurntable" 1284 ) 1285 calibrate_turntable_response = MF_V3_Tasks_CalibrateTurntable.Response( 1286 Index=0, 1287 Type="CalibrateTurntable" 1288 ) 1289 task = Task(Index=0, Type="CalibrateTurntable", Input=calibrate_turntable_request, Output=calibrate_turntable_response) 1290 self.SendTask(task) 1291 return task
Calibrate the turntable.
1294def detect_calibration_card(self, Input: int) -> Task: 1295 1296 """ 1297 Detect the calibration card on one or both cameras. 1298 """ 1299 detect_calibration_card_request = MF_V3_Tasks_DetectCalibrationCard.Request( 1300 Index=0, 1301 Type="DetectCalibrationCard", 1302 Input=Input 1303 ) 1304 detect_calibration_card_response = MF_V3_Tasks_DetectCalibrationCard.Response( 1305 Index=0, 1306 Type="DetectCalibrationCard", 1307 Input=Input 1308 ) 1309 task = Task(Index=0, Type="DetectCalibrationCard", Input=detect_calibration_card_request, Output=detect_calibration_card_response) 1310 self.SendTask(task) 1311 return task
Detect the calibration card on one or both cameras.
1314def restore_factory_calibration(self) -> Task: 1315 1316 """ 1317 Restore factory calibration. 1318 """ 1319 restore_factory_calibration_request = MF_V3_Tasks_RestoreFactoryCalibration.Request( 1320 Index=0, 1321 Type="RestoreFactoryCalibration" 1322 ) 1323 restore_factory_calibration_response = MF_V3_Tasks_RestoreFactoryCalibration.Response( 1324 Index=0, 1325 Type="RestoreFactoryCalibration" 1326 ) 1327 task = Task(Index=0, Type="RestoreFactoryCalibration", Input=restore_factory_calibration_request, Output=restore_factory_calibration_response) 1328 self.SendTask(task) 1329 return task
Restore factory calibration.
1332def start_video(self) -> Task: 1333 1334 """ 1335 Start the video stream. 1336 """ 1337 start_video_request = MF_V3_Tasks_StartVideo.Request( 1338 Index=0, 1339 Type="StartVideo" 1340 ) 1341 start_video_response = MF_V3_Tasks_StartVideo.Response( 1342 Index=0, 1343 Type="StartVideo" 1344 ) 1345 task = Task(Index=0, Type="StartVideo", Input=start_video_request, Output=start_video_response) 1346 self.SendTask(task) 1347 return task
Start the video stream.
1350def stop_video(self) -> Task: 1351 1352 """ 1353 Stop the video stream. 1354 """ 1355 stop_video_request = MF_V3_Tasks_StopVideo.Request( 1356 Index=0, 1357 Type="StopVideo" 1358 ) 1359 stop_video_response = MF_V3_Tasks_StopVideo.Response( 1360 Index=0, 1361 Type="StopVideo" 1362 ) 1363 task = Task(Index=0, Type="StopVideo", Input=stop_video_request, Output=stop_video_response) 1364 self.SendTask(task) 1365 return task
Stop the video stream.
1368def set_cameras(self, selection: List[int] = None, autoExposure: bool = None, exposure: int = None, analogGain: float = None, digitalGain: int = None, focus: int = None) -> Task: 1369 1370 """ 1371 Apply camera settings to one or both cameras. 1372 """ 1373 set_cameras_request = MF_V3_Tasks_SetCameras.Request( 1374 Index=0, 1375 Type="SetCameras", 1376 Input=MF_V3_Settings_Camera_Camera( 1377 selection=selection, 1378 autoExposure=autoExposure, 1379 exposure=exposure, 1380 analogGain=analogGain, 1381 digitalGain=digitalGain, 1382 focus=focus, 1383 ) 1384 ) 1385 set_cameras_response = MF_V3_Tasks_SetCameras.Response( 1386 Index=0, 1387 Type="SetCameras" 1388 ) 1389 task = Task(Index=0, Type="SetCameras", Input=set_cameras_request, Output=set_cameras_response) 1390 self.SendTask(task) 1391 return task
Apply camera settings to one or both cameras.
1394def set_projector(self, on: bool = None, brightness: float = None, pattern: MF_V3_Settings_Projector_Projector.Pattern = None, image: MF_V3_Settings_Projector_Projector.Image = None, color: List[float] = None, buffer: bytes = None) -> Task: 1395 1396 """ 1397 Apply projector settings. 1398 """ 1399 set_projector_request = MF_V3_Tasks_SetProjector.Request( 1400 Index=0, 1401 Type="SetProjector", 1402 Input=MF_V3_Settings_Projector_Projector( 1403 on=on, 1404 brightness=brightness, 1405 pattern=pattern, 1406 image=image, 1407 color=color, 1408 ) 1409 ) 1410 set_projector_response = MF_V3_Tasks_SetProjector.Response( 1411 Index=0, 1412 Type="SetProjector" 1413 ) 1414 task = Task(Index=0, Type="SetProjector", Input=set_projector_request, Output=set_projector_response) 1415 self.SendTask(task, buffer) 1416 return task
Apply projector settings.
1419def auto_focus(self, applyAll: bool, cameras: List[MF_V3_Settings_AutoFocus_AutoFocus.Camera] = None) -> Task: 1420 1421 """ 1422 Auto focus one or both cameras. 1423 """ 1424 auto_focus_request = MF_V3_Tasks_AutoFocus.Request( 1425 Index=0, 1426 Type="AutoFocus", 1427 Input=MF_V3_Settings_AutoFocus_AutoFocus( 1428 applyAll=applyAll, 1429 cameras=cameras, 1430 ) 1431 ) 1432 auto_focus_response = MF_V3_Tasks_AutoFocus.Response( 1433 Index=0, 1434 Type="AutoFocus" 1435 ) 1436 task = Task(Index=0, Type="AutoFocus", Input=auto_focus_request, Output=auto_focus_response) 1437 self.SendTask(task) 1438 return task
Auto focus one or both cameras.
1441def rotate_turntable(self, Input: int) -> Task: 1442 1443 """ 1444 Rotate the turntable. 1445 """ 1446 rotate_turntable_request = MF_V3_Tasks_RotateTurntable.Request( 1447 Index=0, 1448 Type="RotateTurntable", 1449 Input=Input 1450 ) 1451 rotate_turntable_response = MF_V3_Tasks_RotateTurntable.Response( 1452 Index=0, 1453 Type="RotateTurntable", 1454 Input=Input 1455 ) 1456 task = Task(Index=0, Type="RotateTurntable", Input=rotate_turntable_request, Output=rotate_turntable_response) 1457 self.SendTask(task) 1458 return task
Rotate the turntable.
1461def new_scan(self, camera: MF_V3_Settings_Camera_Camera = None, projector: MF_V3_Settings_Projector_Projector = None, turntable: MF_V3_Settings_Turntable_Turntable = None, capture: MF_V3_Settings_Capture_Capture = None, processing: MF_V3_Settings_Scan_Scan.Processing = None, alignWithScanner: bool = None, centerAtOrigin: bool = None) -> Task: 1462 1463 """ 1464 Capture a new scan. 1465 """ 1466 new_scan_request = MF_V3_Tasks_NewScan.Request( 1467 Index=0, 1468 Type="NewScan", 1469 Input=MF_V3_Settings_Scan_Scan( 1470 camera=camera, 1471 projector=projector, 1472 turntable=turntable, 1473 capture=capture, 1474 processing=processing, 1475 alignWithScanner=alignWithScanner, 1476 centerAtOrigin=centerAtOrigin, 1477 ) 1478 ) 1479 new_scan_response = MF_V3_Tasks_NewScan.Response( 1480 Index=0, 1481 Type="NewScan" 1482 ) 1483 task = Task(Index=0, Type="NewScan", Input=new_scan_request, Output=new_scan_response) 1484 self.SendTask(task) 1485 return task
Capture a new scan.
1488def capture_image(self, selection: List[int] = None, codec: MF_V3_Settings_CaptureImage_CaptureImage.Codec = None, grayscale: bool = None) -> Task: 1489 1490 """ 1491 Capture a single Image. 1492 """ 1493 capture_image_request = MF_V3_Tasks_CaptureImage.Request( 1494 Index=0, 1495 Type="CaptureImage", 1496 Input=MF_V3_Settings_CaptureImage_CaptureImage( 1497 selection=selection, 1498 codec=codec, 1499 grayscale=grayscale, 1500 ) 1501 ) 1502 capture_image_response = MF_V3_Tasks_CaptureImage.Response( 1503 Index=0, 1504 Type="CaptureImage", 1505 Input=MF_V3_Settings_CaptureImage_CaptureImage( 1506 selection=selection, 1507 codec=codec, 1508 grayscale=grayscale, 1509 ) 1510 ) 1511 task = Task(Index=0, Type="CaptureImage", Input=capture_image_request, Output=capture_image_response) 1512 self.SendTask(task) 1513 return task
Capture a single Image.
1516def depth_map(self, camera: MF_V3_Settings_Camera_Camera = None, projector: MF_V3_Settings_Projector_Projector = None, turntable: MF_V3_Settings_Turntable_Turntable = None, capture: MF_V3_Settings_Capture_Capture = None, processing: MF_V3_Settings_Scan_Scan.Processing = None, alignWithScanner: bool = None, centerAtOrigin: bool = None) -> Task: 1517 1518 """ 1519 Capture a depth map. 1520 """ 1521 depth_map_request = MF_V3_Tasks_DepthMap.Request( 1522 Index=0, 1523 Type="DepthMap", 1524 Input=MF_V3_Settings_Scan_Scan( 1525 camera=camera, 1526 projector=projector, 1527 turntable=turntable, 1528 capture=capture, 1529 processing=processing, 1530 alignWithScanner=alignWithScanner, 1531 centerAtOrigin=centerAtOrigin, 1532 ) 1533 ) 1534 depth_map_response = MF_V3_Tasks_DepthMap.Response( 1535 Index=0, 1536 Type="DepthMap" 1537 ) 1538 task = Task(Index=0, Type="DepthMap", Input=depth_map_request, Output=depth_map_response) 1539 self.SendTask(task) 1540 return task
Capture a depth map.
1543def reboot(self) -> Task: 1544 1545 """ 1546 Reboot the scanner. 1547 """ 1548 reboot_request = MF_V3_Tasks_Reboot.Request( 1549 Index=0, 1550 Type="Reboot" 1551 ) 1552 reboot_response = MF_V3_Tasks_Reboot.Response( 1553 Index=0, 1554 Type="Reboot" 1555 ) 1556 task = Task(Index=0, Type="Reboot", Input=reboot_request, Output=reboot_response) 1557 self.SendTask(task) 1558 return task
Reboot the scanner.
1561def shutdown(self) -> Task: 1562 1563 """ 1564 Shutdown the scanner. 1565 """ 1566 shutdown_request = MF_V3_Tasks_Shutdown.Request( 1567 Index=0, 1568 Type="Shutdown" 1569 ) 1570 shutdown_response = MF_V3_Tasks_Shutdown.Response( 1571 Index=0, 1572 Type="Shutdown" 1573 ) 1574 task = Task(Index=0, Type="Shutdown", Input=shutdown_request, Output=shutdown_response) 1575 self.SendTask(task) 1576 return task
Shutdown the scanner.