8 #include "PlusConfigure.h" 13 #include <vtkObjectFactory.h> 24 #ifdef PLUS_USE_TextRecognizer 32 #ifdef PLUS_USE_OpenIGTLink 38 #ifdef PLUS_USE_NDI_CERTUS 41 #ifdef PLUS_USE_MICRONTRACKER 44 #ifdef PLUS_USE_WITMOTIONTRACKER 47 #ifdef PLUS_USE_INTELREALSENSE 50 #ifdef PLUS_USE_OPTICAL_MARKER_TRACKER 53 #ifdef PLUS_USE_ATRACSYS 56 #ifdef PLUS_USE_STEALTHLINK 59 #ifdef PLUS_USE_BRACHY_TRACKER 62 #ifdef PLUS_USE_USDIGITALENCODERS_TRACKER 65 #ifdef PLUS_USE_Ascension3DG 68 #ifdef PLUS_USE_Ascension3DGm 69 #include "vtkAscension3DGmTracker.h" 71 #ifdef PLUS_USE_OPTIMET_CONOPROBE 74 #ifdef PLUS_USE_OPTITRACK 77 #ifdef PLUS_USE_PHIDGET_SPATIAL_TRACKER 83 #ifdef PLUS_USE_3dConnexion_TRACKER 87 #ifdef PLUS_USE_AGILENT 90 #ifdef PLUS_USE_LEAPMOTION 93 #ifdef PLUS_USE_STEAMVR 96 #ifdef PLUS_USE_PICOSCOPE 105 #ifdef PLUS_USE_VFW_VIDEO 109 #ifdef PLUS_USE_MMF_VIDEO 113 #ifdef PLUS_USE_ULTRASONIX_VIDEO 118 #ifdef PLUS_USE_BKPROFOCUS_VIDEO 120 #ifdef PLUS_USE_BKPROFOCUS_CAMERALINK 125 #ifdef PLUS_USE_ICCAPTURING_VIDEO 129 #ifdef PLUS_USE_INTERSON_VIDEO 133 #ifdef PLUS_USE_INTERSONSDKCXX_VIDEO 137 #ifdef PLUS_USE_INTERSONARRAYSDKCXX_VIDEO 141 #ifdef PLUS_USE_TELEMED_VIDEO 145 #ifdef PLUS_USE_SPINNAKER_VIDEO 149 #ifdef PLUS_USE_BLACKMAGIC_DECKLINK 153 #ifdef PLUS_USE_THORLABS_VIDEO 157 #ifdef PLUS_USE_OpenIGTLink 161 #ifdef PLUS_USE_EPIPHAN 165 #ifdef PLUS_USE_IntuitiveDaVinci 169 #ifdef PLUS_USE_PHILIPS_3D_ULTRASOUND 173 #ifdef PLUS_USE_CAPISTRANO_VIDEO 177 #ifdef PLUS_USE_WINPROBE_VIDEO 181 #ifdef PLUS_USE_NVIDIA_DVP 191 #ifdef PLUS_USE_OvrvisionPro 195 #ifdef PLUS_USE_OpenCV_VIDEO 199 #ifdef PLUS_USE_OPENHAPTICS 207 #ifdef PLUS_USE_INFRARED_SEEK_CAM 211 #ifdef PLUS_USE_ANDOR_CAMERA 215 #ifdef PLUS_USE_INFRARED_TEQ1_CAM 219 #ifdef PLUS_USE_INFRARED_TEEV2_CAM 223 #ifdef PLUS_USE_ULTRAVIOLET_PCOUV_CAM 227 #ifdef PLUS_USE_DAQVIDEOSOURCE 231 #ifdef PLUS_USE_GENERIC_SENSOR_TRACKER 237 #ifdef PLUS_USE_AZUREKINECT 241 #ifdef PLUS_USE_REVOPOINT3DCAMERA 245 #ifdef PLUS_USE_CLARIUS 249 #ifdef PLUS_USE_CLARIUS_OEM 264 #ifdef PLUS_USE_3dConnexion_TRACKER 268 #ifdef PLUS_USE_OpenIGTLink 271 #ifdef PLUS_USE_BRACHY_TRACKER 274 #ifdef PLUS_USE_USDIGITALENCODERS_TRACKER 277 #ifdef PLUS_USE_NDI_CERTUS 285 #ifdef PLUS_USE_MICRONTRACKER 288 #ifdef PLUS_USE_WITMOTIONTRACKER 291 #ifdef PLUS_USE_INTELREALSENSE 295 #ifdef PLUS_USE_OPTICAL_MARKER_TRACKER 298 #ifdef PLUS_USE_ATRACSYS 301 #ifdef PLUS_USE_STEALTHLINK 304 #ifdef PLUS_USE_Ascension3DG 307 #ifdef PLUS_USE_Ascension3DGm 310 #ifdef PLUS_USE_PHIDGET_SPATIAL_TRACKER 313 #ifdef PLUS_USE_LEAPMOTION 322 #ifdef PLUS_USE_OpenIGTLink 325 #ifdef PLUS_USE_OPTIMET_CONOPROBE 328 #ifdef PLUS_USE_OPTITRACK 331 #ifdef PLUS_USE_ULTRASONIX_VIDEO 335 #ifdef PLUS_USE_BKPROFOCUS_VIDEO 337 #ifdef PLUS_USE_BKPROFOCUS_CAMERALINK 342 #ifdef PLUS_USE_VFW_VIDEO 345 #ifdef PLUS_USE_MMF_VIDEO 348 #ifdef PLUS_USE_ICCAPTURING_VIDEO 351 #ifdef PLUS_USE_INTERSON_VIDEO 354 #ifdef PLUS_USE_INTERSONSDKCXX_VIDEO 357 #ifdef PLUS_USE_INTERSONARRAYSDKCXX_VIDEO 360 #ifdef PLUS_USE_TELEMED_VIDEO 363 #ifdef PLUS_USE_SPINNAKER_VIDEO 366 #ifdef PLUS_USE_BLACKMAGIC_DECKLINK 369 #ifdef PLUS_USE_THORLABS_VIDEO 372 #ifdef PLUS_USE_EPIPHAN 376 #ifdef PLUS_USE_IntuitiveDaVinci 380 #ifdef PLUS_USE_PHILIPS_3D_ULTRASOUND 384 #ifdef PLUS_USE_CAPISTRANO_VIDEO 388 #ifdef PLUS_USE_WINPROBE_VIDEO 392 #ifdef PLUS_USE_TextRecognizer 395 #ifdef PLUS_USE_NVIDIA_DVP 399 #ifdef PLUS_USE_OvrvisionPro 402 #ifdef PLUS_USE_AGILENT 405 #ifdef PLUS_USE_PICOSCOPE 408 #ifdef PLUS_USE_OpenCV_VIDEO 416 #ifdef PLUS_USE_OPENHAPTICS 420 #ifdef PLUS_USE_INFRARED_SEEK_CAM 424 #ifdef PLUS_USE_ANDOR_CAMERA 428 #ifdef PLUS_USE_INFRARED_TEQ1_CAM 432 #ifdef PLUS_USE_INFRARED_TEEV2_CAM 436 #ifdef PLUS_USE_ULTRAVIOLET_PCOUV_CAM 440 #ifdef PLUS_USE_DAQVIDEOSOURCE 445 #ifdef PLUS_USE_CLARIUS 449 #ifdef PLUS_USE_CLARIUS_OEM 453 #ifdef PLUS_USE_STEAMVR 457 #ifdef PLUS_USE_GENERIC_SENSOR_TRACKER 463 #ifdef PLUS_USE_AZUREKINECT 467 #ifdef PLUS_USE_REVOPOINT3DCAMERA 489 this->Superclass::PrintSelf(os, indent);
496 os << indent <<
"Supported devices: " << std::endl;
497 std::map<std::string, PointerToDevice>::iterator it;
500 if (it->second != NULL)
503 os << indent.GetNextIndent() <<
"- " << it->first <<
" (ver: " << device->
GetSdkVersion() <<
")" << std::endl;
519 if (aDeviceType == NULL)
521 LOG_ERROR(
"Device type is undefined");
527 std::string listOfSupportedDevices;
528 std::map<std::string, PointerToDevice>::iterator it;
531 if (it->second != NULL)
534 if (!listOfSupportedDevices.empty())
536 listOfSupportedDevices.append(
", ");
538 listOfSupportedDevices.append(it->first);
543 LOG_ERROR(
"Unknown device type: " << aDeviceType <<
". Supported devices: " << listOfSupportedDevices);
549 LOG_ERROR(
"Invalid factory method for device type: " << aDeviceType);
557 LOG_ERROR(
"Invalid device created for device type: " << aDeviceType);
569 std::map<std::string, std::string>::const_iterator it =
DeviceTypeClassNames.find(deviceTypeName);
572 classNameOut = it->second;
586 typeNameOut = it->first;
virtual void PrintAvailableDevices(ostream &os, vtkIndent indent)
static vtkPlusThorLabsVideoSource * New()
static vtkPlusVirtualTextRecognizer * New()
vtkPlusDeviceFactory(void)
static vtkPlusBkProFocusCameraLinkVideoSource * New()
void RegisterDevice(const std::string &deviceTypeName, const std::string &deviceClassName, PointerToDevice constructionMethod)
Abstract interface for tracker and video devices.
static vtkPlusAtracsysTracker * New()
static vtkPlusGenericSensorTracker * New()
static vtkPlusImageProcessorVideoSource * New()
static vtkPlusOptiTrack * New()
static vtkPlusLeapMotion * New()
static vtkPlusSpinnakerVideoSource * New()
static vtkPlusMicrochipTracker * New()
static vtkPlusClarius * New()
static vtkPlusSteamVRTracker * New()
static vtkPlusAndorVideoSource * New()
static vtkPlusSonixVideoSource * New()
static vtkPlusUSDigitalEncodersTracker * New()
static vtkPlusWin32VideoSource2 * New()
static vtkPlusIntuitiveDaVinciTracker * New()
static vtkPlusOvrvisionProVideoSource * New()
static vtkPlusAgilentScopeTracker * New()
static vtkPlusMmfVideoSource * New()
virtual PlusStatus GetDeviceTypeName(const std::string &deviceClassName, std::string &typeNameOut) const
static vtkPlus3dConnexionTracker * New()
virtual std::string GetSdkVersion()
static vtkPlusClariusOEM * New()
static vtkPlusIntelRealSense * New()
static vtkPlusOpenIGTLinkVideoSource * New()
static vtkPlusVirtualCapture * New()
static vtkPlusUsSimulatorVideoSource * New()
static vtkPlusVirtualVolumeReconstructor * New()
PlusStatus CreateInstance(const char *aDeviceType, vtkPlusDevice *&aDevice, const std::string &aDeviceId)
vtkStandardNewMacro(vtkPlusDeviceFactory)
static vtkPlusDeckLinkVideoSource * New()
static vtkPlusChRoboticsTracker * New()
static vtkPlusOpenHapticsDevice * New()
virtual void PrintSelf(ostream &os, vtkIndent indent) VTK_OVERRIDE
static vtkPlusInfraredTEEV2Cam * New()
static vtkPlusOpenCVCaptureVideoSource * New()
static vtkPlusVirtualMixer * New()
static vtkPlusV4L2VideoSource * New()
virtual PlusStatus GetDeviceClassName(const std::string &deviceTypeName, std::string &classNameOut) const
static vtkPlusPhilips3DProbeVideoSource * New()
static vtkPlusFakeTracker * New()
static vtkPlusNvidiaDVPVideoSource * New()
static vtkPlusOpenIGTLinkTracker * New()
static vtkPlusRevopoint3DCamera * New()
static vtkPlusEpiphanVideoSource * New()
static vtkInfraredSeekCam * New()
static vtkPlusPicoScopeDataSource * New()
static vtkPlusICCapturingSource * New()
static vtkPlusVirtualSwitcher * New()
std::map< std::string, std::string > DeviceTypeClassNames
Factory class of supported devices.
static vtkPlusDAQVideoSource * New()
static vtkPlusBrachyTracker * New()
static vtkPlusMicronTracker * New()
static vtkPlusStealthLinkTracker * New()
static vtkPlusNDICertusTracker * New()
static vtkPlusPhidgetSpatialTracker * New()
static vtkInfraredTEQ1Cam * New()
static vtkPlusUltravioletPCOUVCam * New()
static vtkPlusVirtualDeinterlacer * New()
static vtkPlusOpticalMarkerTracker * New()
vtkPlusDevice *(* PointerToDevice)()
static vtkPlusBkProFocusOemVideoSource * New()
static vtkPlusAzureKinect * New()
static vtkPlusIntersonArraySDKCxxVideoSource * New()
static vtkPlusTelemedVideoSource * New()
static vtkPlusSavedDataSource * New()
static vtkPlusGenericSerialDevice * New()
static vtkPlusCapistranoVideoSource * New()
static vtkPlusWinProbeVideoSource * New()
static vtkPlusOptimetConoProbeMeasurer * New()
static vtkPlusIntersonSDKCxxVideoSource * New()
static vtkPlusIntersonVideoSource * New()
std::map< std::string, PointerToDevice > DeviceTypes
static vtkPlusWitMotionTracker * New()
const char ** deviceClassName
static vtkPlusDevice * New()
void SetDeviceId(const std::string &id)
static vtkPlusNDITracker * New()
virtual ~vtkPlusDeviceFactory(void)