├── .astylerc ├── .github └── workflows │ ├── build-itk.yml │ ├── build-plus.yml │ ├── build-vtk.yml │ ├── ci.yml │ └── nightly.yml ├── .gitmodules ├── BuildAndTest.bat.in ├── BuildAndTest.sh.in ├── CMake ├── MSVCVersion.rc.in └── PlusLibMacros.cmake ├── CMakeLists.txt ├── CONTRIBUTING.md ├── CTestConfig.cmake ├── CreateApiReference.bat.in ├── CreatePackage.bat.in ├── License.txt ├── README.md ├── Tools ├── Ascension │ ├── info.txt │ ├── medSAFE_940033_Rev_F │ │ ├── CMakeLists.txt │ │ ├── README.rtf │ │ ├── bin │ │ │ └── ATC3DGm.dll │ │ ├── inc │ │ │ └── ATC3DGm.h │ │ └── lib │ │ │ └── ATC3DGm.lib │ ├── trakSTAR_940038_RevD │ │ ├── CMakeLists.txt │ │ ├── Readme.txt │ │ ├── bin │ │ │ ├── ATC3DG.DLL │ │ │ └── ATC3DG.ini │ │ ├── inc │ │ │ └── ATC3DG.h │ │ └── lib │ │ │ └── ATC3DG.lib │ └── trakSTAR_940041_RevE │ │ ├── CMakeLists.txt │ │ ├── Readme.txt │ │ ├── bin │ │ ├── ATC3DG.DLL │ │ ├── ATC3DG.ini │ │ └── ATC3DG64.DLL │ │ ├── inc │ │ └── ATC3DG.h │ │ └── lib │ │ ├── ATC3DG.lib │ │ └── ATC3DG64.lib ├── Epiphan │ ├── CMakeLists.txt │ ├── Win32 │ │ ├── frmgrab.dll │ │ └── frmgrab.lib │ ├── frmgrab.h │ ├── v2u_compression.h │ ├── v2u_defs.h │ ├── v2u_dshow.h │ ├── v2u_id.h │ ├── v2u_ioctl.h │ ├── v2u_lib.h │ ├── v2u_save.h │ ├── v2u_sys.h │ ├── v2u_util.h │ ├── v2u_version.h │ └── x64 │ │ ├── frmgrab.dll │ │ └── frmgrab.lib ├── HtmlHelp │ ├── advpack.dll │ ├── cnvcnt.dll │ ├── cnvtoc.dll │ ├── flash.exe │ ├── flash256.gif │ ├── gencnv.dll │ ├── hhc.exe │ ├── hhcout.dll │ ├── hhkout.dll │ ├── hhw.exe │ ├── hhw.gif │ ├── htmlhelp.inf │ ├── include │ │ └── htmlhelp.h │ ├── info.txt │ ├── itcc.dll │ ├── java │ │ ├── HHCtrl.cab │ │ ├── cntimage.gif │ │ ├── dl.cl │ │ ├── e.cl │ │ ├── el.cl │ │ ├── h.cl │ │ ├── ip.cl │ │ ├── rd.cl │ │ ├── sp.cl │ │ ├── tc.cl │ │ └── tv.cl │ ├── lib │ │ └── htmlhelp.lib │ ├── license.txt │ ├── navout.dll │ ├── readme.txt │ ├── redist │ │ └── hhupd.exe │ ├── setup.exe │ ├── setup.ini │ ├── spcom.dll │ ├── sprbuild.dll │ ├── spredit.dll │ ├── sprfile.dll │ └── sprlog.dll ├── NVidia │ └── dvp170 │ │ ├── CMakeLists.txt │ │ ├── bin │ │ ├── win32 │ │ │ └── dvp.dll │ │ └── x64 │ │ │ └── dvp.dll │ │ ├── doc │ │ ├── DVPAPI.txt │ │ ├── GPUD4V SDK EULA.pdf │ │ ├── NV_Quadro_DVP_apr10_final_single.pdf │ │ ├── PG-06007-001_v05.pdf │ │ ├── ReleaseNotes.txt │ │ └── S0049-Using-the-GPU-Direct-for-Video-API.pdf │ │ ├── include │ │ ├── DVPAPI.h │ │ ├── dvpapi_cuda.h │ │ ├── dvpapi_d3d10.h │ │ ├── dvpapi_d3d11.h │ │ ├── dvpapi_d3d9.h │ │ └── dvpapi_gl.h │ │ └── lib │ │ ├── win32 │ │ ├── dvp.lib │ │ └── dvp_static.lib │ │ └── x64 │ │ ├── dvp.lib │ │ └── dvp_static.lib ├── Phidget │ └── Phidget22 │ │ ├── CMakeLists.txt │ │ ├── phidget22.h │ │ ├── readme.txt │ │ ├── x64 │ │ ├── Phidget22.NET.dll │ │ ├── phidget22.dll │ │ ├── phidget22.lib │ │ ├── phidget22extra.dll │ │ └── phidget22java.dll │ │ └── x86 │ │ ├── phidget22.dll │ │ ├── phidget22.lib │ │ ├── phidget22extra.dll │ │ └── phidget22java.dll └── UsDigital │ ├── SEI_5.22 │ ├── !RevChanges.txt │ ├── CMakeLists.txt │ ├── SEI_Absolute_Encoder_Communications_Protocol.pdf │ ├── bin │ │ ├── SEIDrv32.dll │ │ └── SEISrv32.exe │ ├── inc │ │ └── SEIDrv32.h │ └── lib │ │ └── SEIDrv32.lib │ └── info.txt ├── Utilities ├── SetupForDevelopment.sh └── hooks │ └── commit-msg └── src ├── CMakeLists.txt ├── Documentation ├── ApiReference │ ├── CMakeLists.txt │ ├── Doxyfile.txt.in │ ├── DoxygenLayout.xml │ ├── GenerateDoc.cmake.in │ ├── PlusDoxygenStyle.css │ └── PlusMainPage.dox ├── CMakeLists.txt ├── UserManual │ ├── AlgorithmPhantomRegistration.dox │ ├── AlgorithmPivotCalibration.dox │ ├── AlgorithmProbeCalibration.dox │ ├── AlgorithmRfProcessing.dox │ ├── AlgorithmRfProcessingCurvilinearScanConversion.png │ ├── AlgorithmRfProcessingCurvilinearScanConversionPlus2.0.png │ ├── AlgorithmRfProcessingLinearScanConversion.png │ ├── AlgorithmTemporalCalibration.dox │ ├── AlgorithmVolumeReconstruction.dox │ ├── AlgorithmVolumeReconstructionCurvilinearRoi.png │ ├── AlgorithmVolumeReconstructionLinearRoi.png │ ├── ApplicationCreateSliceModels.dox │ ├── ApplicationCreateSliceModels.png │ ├── ApplicationDrawClipRegion.dox │ ├── ApplicationDrawClipRegionExample.png │ ├── ApplicationDrawScanLinesExample.png │ ├── ApplicationDrawScanlines.dox │ ├── ApplicationEditSequenceFile.dox │ ├── ApplicationEditSequenceFileAnonymized.png │ ├── ApplicationEditSequenceFileNonAnonymized.png │ ├── ApplicationEnhanceUsTrpSequence.dox │ ├── ApplicationExtractScanLines.dox │ ├── ApplicationPlusVersion.dox │ ├── ApplicationProbeCalibration.dox │ ├── ApplicationRfProcessor.dox │ ├── ApplicationScanConvert.dox │ ├── ApplicationTemporalCalibration.dox │ ├── ApplicationTrackingTest.dox │ ├── ApplicationTrackingTest.png │ ├── ApplicationViewSequenceFile.dox │ ├── ApplicationViewSequenceFileScreenshot.png │ ├── ApplicationVolumeReconstructor.dox │ ├── CommonCoordinateSystems.dox │ ├── CoordinateSystemDefinitions.dox │ ├── CoordinateSystemDefinitionsfCal.png │ ├── Device3dConnexion.dox │ ├── DeviceAgilent.dox │ ├── DeviceAscension3DG.dox │ ├── DeviceAtracsys.dox │ ├── DeviceAzureKinect.dox │ ├── DeviceBkProFocus.dox │ ├── DeviceBlackMagicDeckLink.dox │ ├── DeviceBrachy.dox │ ├── DeviceCapistrano.dox │ ├── DeviceChRobotics.dox │ ├── DeviceClarius.dox │ ├── DeviceClariusOEM.dox │ ├── DeviceDAQVideoSource.dox │ ├── DeviceEnhanceUsTrpSequence.dox │ ├── DeviceEpiphan.dox │ ├── DeviceFakeTracker.dox │ ├── DeviceGenericSensor.dox │ ├── DeviceGenericSerial.dox │ ├── DeviceICCapturing.dox │ ├── DeviceInfraredSeekCam.dox │ ├── DeviceInfraredSeekCam.png │ ├── DeviceInfraredTEEV2Cam.dox │ ├── DeviceInfraredTEQ1Cam.dox │ ├── DeviceIntelRealSense.dox │ ├── DeviceInterson.dox │ ├── DeviceIntersonSDKCxx.dox │ ├── DeviceLeapMotion.dox │ ├── DeviceMicrochip.dox │ ├── DeviceMicron.dox │ ├── DeviceMicrosoftMediaFoundation.dox │ ├── DeviceNDI.dox │ ├── DeviceNDICertus.dox │ ├── DeviceOpenCVVideo.dox │ ├── DeviceOpenHaptics.dox │ ├── DeviceOpenIGTLinkTracker.dox │ ├── DeviceOpenIGTLinkVideo.dox │ ├── DeviceOptiTrack.dox │ ├── DeviceOpticalMarkerTracker.dox │ ├── DeviceOpticalMarkerTrackerEdge.png │ ├── DeviceOpticalMarkerTrackerFrontal.png │ ├── DeviceOpticalMarkerTrackerOblique1.png │ ├── DeviceOpticalMarkerTrackerOblique2.png │ ├── DeviceOptimetConoProbe.dox │ ├── DeviceOvrvisionPro.dox │ ├── DevicePhidgetSpatial.dox │ ├── DevicePhilips.dox │ ├── DeviceRevopointSurface.dox │ ├── DeviceSavedDataSource.dox │ ├── DeviceSonixVideo.dox │ ├── DeviceSpinnakerVideo.dox │ ├── DeviceStealthLink.dox │ ├── DeviceTelemed.dox │ ├── DeviceThorLabs.dox │ ├── DeviceUltravioletPCOUVCam.dox │ ├── DeviceUs.dox │ ├── DeviceUsSimulatorVideo.dox │ ├── DeviceVideoForWindows.dox │ ├── DeviceVirtualCapture.dox │ ├── DeviceVirtualMixer.dox │ ├── DeviceVirtualSwitcher.dox │ ├── DeviceVirtualTextRecognizer.dox │ ├── DeviceVirtualVolumeReconstructor.dox │ ├── DeviceWitMotionTracker.dox │ ├── Edge.png │ ├── FileApplicationConfiguration.dox │ ├── FileLog.dox │ ├── FileLogLogExpertConfig1.png │ ├── FileLogLogExpertConfig2.png │ ├── FileLogLogExpertScreenshot.png │ ├── FileSequenceFile.dox │ ├── Frontal.png │ ├── Oblique1.png │ ├── Oblique2.png │ ├── PlusServerCommands.dox │ ├── SpineUsConverted.png │ ├── SpineUsOriginal.png │ ├── SpineUsScanLines.png │ ├── SupportedPlatforms.dox │ ├── UltrasoundImageOrientation.dox │ ├── UltrasoundImageOrientationExample.png │ ├── UltrasoundImageOrientationTransducerAxes.png │ ├── UltrasoundImageOrientationUltrasonixSw.png │ ├── UltrasoundImageOrientationsSegParamWindow.png │ ├── UsImagingParameters.dox │ ├── VascularUsSimScreenshot.png │ ├── VolumeReconCompoundingLatest.png │ ├── VolumeReconCompoundingMax.png │ └── VolumeReconCompoundingMean.png └── images │ └── icons │ ├── attribute.png │ ├── element.png │ ├── optional.png │ └── required.png ├── Plus.txt ├── PlusCalibration ├── CMakeLists.txt ├── PatternLocAlgo │ ├── PlusFidLabeling.cxx │ ├── PlusFidLabeling.h │ ├── PlusFidLineFinder.cxx │ ├── PlusFidLineFinder.h │ ├── PlusFidPatternRecognition.cxx │ ├── PlusFidPatternRecognition.h │ ├── PlusFidPatternRecognitionCommon.cxx │ ├── PlusFidPatternRecognitionCommon.h │ ├── PlusFidSegmentation.cxx │ ├── PlusFidSegmentation.h │ ├── PlusPatternLocResultFile.cxx │ └── PlusPatternLocResultFile.h ├── Testing │ ├── CMakeLists.txt │ ├── PatternLocTest.cxx │ ├── vtkCenterOfRotationCalibAlgoTest.cxx │ ├── vtkFreehandCalibrationStatisticalEvaluation.cxx │ ├── vtkLineSegmentationAlgoTest.cxx │ ├── vtkPhantomRegistrationLandmarkDetectionTest.cxx │ ├── vtkPhantomRegistrationTest.cxx │ ├── vtkPivotDetectionTest.cxx │ ├── vtkSegmentedWiresPositionsTest.cxx │ ├── vtkSpacingCalibAlgoTest.cxx │ ├── vtkStylusCalibrationTest.cxx │ └── vtkTRUSCalibrationTest.cxx ├── Tools │ ├── ConvertFcsvToXml.cxx │ ├── ConvertXmlToFcsv.cxx │ ├── ProbeCalibration.cxx │ └── TemporalCalibration.cxx ├── vtkBrachyStepperPhantomRegistrationAlgo │ ├── vtkPlusBrachyStepperPhantomRegistrationAlgo.cxx │ └── vtkPlusBrachyStepperPhantomRegistrationAlgo.h ├── vtkCenterOfRotationCalibAlgo │ ├── vtkPlusCenterOfRotationCalibAlgo.cxx │ └── vtkPlusCenterOfRotationCalibAlgo.h ├── vtkLineSegmentationAlgo │ ├── vtkPlusLineSegmentationAlgo.cxx │ └── vtkPlusLineSegmentationAlgo.h ├── vtkPhantomLandmarkRegistrationAlgo │ ├── vtkPlusLandmarkDetectionAlgo.cxx │ ├── vtkPlusLandmarkDetectionAlgo.h │ ├── vtkPlusPhantomLandmarkRegistrationAlgo.cxx │ ├── vtkPlusPhantomLandmarkRegistrationAlgo.h │ ├── vtkPlusReadTrackedSignals.cxx │ └── vtkPlusReadTrackedSignals.h ├── vtkPhantomLinearObjectRegistrationAlgo │ ├── Line.cxx │ ├── Line.h │ ├── LinearObject.cxx │ ├── LinearObject.h │ ├── LinearObjectBuffer.cxx │ ├── LinearObjectBuffer.h │ ├── Plane.cxx │ ├── Plane.h │ ├── Planes.cxx │ ├── Planes.h │ ├── Point.cxx │ ├── Point.h │ ├── PointObservation.cxx │ ├── PointObservation.h │ ├── PointObservationBuffer.cxx │ ├── PointObservationBuffer.h │ ├── Reference.cxx │ ├── Reference.h │ ├── References.cxx │ ├── References.h │ ├── vtkPlusPhantomLinearObjectRegistrationAlgo.cxx │ └── vtkPlusPhantomLinearObjectRegistrationAlgo.h ├── vtkPivotCalibrationAlgo │ ├── vtkPlusPivotCalibrationAlgo.cxx │ └── vtkPlusPivotCalibrationAlgo.h ├── vtkProbeCalibrationAlgo │ ├── vtkPlusProbeCalibrationAlgo.cxx │ ├── vtkPlusProbeCalibrationAlgo.h │ ├── vtkPlusProbeCalibrationOptimizerAlgo.cxx │ └── vtkPlusProbeCalibrationOptimizerAlgo.h ├── vtkSpacingCalibAlgo │ ├── vtkPlusSpacingCalibAlgo.cxx │ └── vtkPlusSpacingCalibAlgo.h └── vtkTemporalCalibrationAlgo │ ├── vtkPlusPrincipalMotionDetectionAlgo.cxx │ ├── vtkPlusPrincipalMotionDetectionAlgo.h │ ├── vtkPlusTemporalCalibrationAlgo.cxx │ └── vtkPlusTemporalCalibrationAlgo.h ├── PlusCommon ├── CMakeLists.txt ├── PixelCodec.h ├── PlusCommon.cxx ├── PlusCommon.h ├── PlusCommon.txx ├── PlusMath.cxx ├── PlusMath.h ├── PlusXmlUtils.h ├── Testing │ └── CMakeLists.txt ├── Tools │ └── EditSequenceFile.cxx ├── vtkPlusConfig.cxx ├── vtkPlusConfig.h ├── vtkPlusHTMLGenerator.cxx ├── vtkPlusHTMLGenerator.h ├── vtkPlusLogger.cxx ├── vtkPlusLogger.h ├── vtkPlusMacro.h ├── vtkPlusSequenceIO.cxx └── vtkPlusSequenceIO.h ├── PlusConfig.xml.in ├── PlusConfigure.h.in ├── PlusDataCollection ├── 3dConnexionTracking │ ├── vtkPlus3dConnexionTracker.cxx │ └── vtkPlus3dConnexionTracker.h ├── Agilent │ ├── vtkPlusAgilentScopeTracker.cxx │ └── vtkPlusAgilentScopeTracker.h ├── Andor │ ├── vtkPlusAndorVideoSource.cxx │ └── vtkPlusAndorVideoSource.h ├── Ascension3DGTracking │ ├── vtkPlusAscension3DGTracker.cxx │ ├── vtkPlusAscension3DGTracker.h │ ├── vtkPlusAscension3DGTrackerBase.cxx │ ├── vtkPlusAscension3DGTrackerBase.h │ ├── vtkPlusAscension3DGmTracker.cxx │ └── vtkPlusAscension3DGmTracker.h ├── Atracsys │ ├── AtracsysMarkerCreator.cxx │ ├── AtracsysTracker.cxx │ ├── AtracsysTracker.h │ ├── vtkPlusAtracsysTracker.cxx │ └── vtkPlusAtracsysTracker.h ├── AzureKinect │ ├── vtkPlusAzureKinect.cxx │ └── vtkPlusAzureKinect.h ├── BkProFocus │ ├── PlusBkProFocusCameraLinkReceiver.cxx │ ├── PlusBkProFocusCameraLinkReceiver.h │ ├── vtkPNGPrivate.h.in │ ├── vtkPlusBkProFocusCameraLinkVideoSource.cxx │ ├── vtkPlusBkProFocusCameraLinkVideoSource.h │ ├── vtkPlusBkProFocusOemVideoSource.cxx │ └── vtkPlusBkProFocusOemVideoSource.h ├── BlackMagic │ ├── DeckLinkAPIWrapper.cxx │ ├── DeckLinkAPIWrapper.h │ ├── PlusOutputVideoFrame.cxx │ ├── PlusOutputVideoFrame.h │ ├── VideoFrameTransfer.cpp │ ├── VideoFrameTransfer.h │ ├── vtkPlusDeckLinkVideoSource.cxx │ └── vtkPlusDeckLinkVideoSource.h ├── BrachyTracking │ ├── PlusBrachyStepper.h │ ├── PlusCivcoBrachyStepper.cxx │ ├── PlusCivcoBrachyStepper.h │ ├── PlusCmsBrachyStepper.cxx │ ├── PlusCmsBrachyStepper.h │ ├── vtkPlusBrachyTracker.cxx │ └── vtkPlusBrachyTracker.h ├── CMakeLists.txt ├── Capistrano │ ├── vtkPlusCapistranoVideoSource.cxx │ └── vtkPlusCapistranoVideoSource.h ├── ChRobotics │ ├── ChrDataItem.h │ ├── ChrSerialPacket.h │ ├── vtkPlusChRoboticsTracker.cxx │ └── vtkPlusChRoboticsTracker.h ├── Clarius │ ├── ClariusBLE.cxx │ ├── ClariusBLE.h │ ├── ClariusWifi.cxx │ ├── ClariusWifi.h │ ├── vtkPlusClarius.cxx │ ├── vtkPlusClarius.h │ ├── vtkPlusClariusOEM.cxx │ └── vtkPlusClariusOEM.h ├── DAQVideoSource │ ├── vtkPlusDAQVideoSource.cxx │ └── vtkPlusDAQVideoSource.h ├── Epiphan │ ├── vtkPlusEpiphanVideoSource.cxx │ └── vtkPlusEpiphanVideoSource.h ├── FakeTracking │ ├── vtkPlusFakeTracker.cxx │ └── vtkPlusFakeTracker.h ├── GenericSensor │ ├── vtkPlusGenericSensorTracker.cxx │ └── vtkPlusGenericSensorTracker.h ├── Haptics │ ├── CMakeLists.txt │ ├── vtkPlusForceFeedback.cxx │ ├── vtkPlusForceFeedback.h │ ├── vtkPlusHapticForce.cxx │ ├── vtkPlusHapticForce.h │ ├── vtkPlusImplicitSplineForce.cxx │ ├── vtkPlusImplicitSplineForce.h │ ├── vtkPlusPolydataForce.cxx │ └── vtkPlusPolydataForce.h ├── ICCapturing │ ├── ICCapturingListener.cxx │ ├── ICCapturingListener.h │ ├── vtkPlusICCapturingSource.cxx │ └── vtkPlusICCapturingSource.h ├── ImageProcessor │ ├── vtkPlusImageProcessorVideoSource.cxx │ └── vtkPlusImageProcessorVideoSource.h ├── InfraredSeekCam │ ├── vtkInfraredSeekCam.cxx │ └── vtkInfraredSeekCam.h ├── InfraredTEEV2Cam │ ├── vtkPlusInfraredTEEV2Cam.cxx │ └── vtkPlusInfraredTEEV2Cam.h ├── InfraredTEQ1Cam │ ├── vtkInfraredTEQ1Cam.cxx │ └── vtkInfraredTEQ1Cam.h ├── IntelRealSense │ ├── vtkPlusIntelRealSense.cxx │ └── vtkPlusIntelRealSense.h ├── Interson │ ├── vtkPlusIntersonVideoSource.cxx │ └── vtkPlusIntersonVideoSource.h ├── IntersonArraySDKCxx │ ├── vtkPlusIntersonArraySDKCxxVideoSource.cxx │ └── vtkPlusIntersonArraySDKCxxVideoSource.h ├── IntersonSDKCxx │ ├── vtkPlusIntersonSDKCxxVideoSource.cxx │ └── vtkPlusIntersonSDKCxxVideoSource.h ├── IntuitiveDaVinci │ ├── IntuitiveDaVinci.cxx │ ├── IntuitiveDaVinci.h │ ├── vtkPlusIntuitiveDaVinciTracker.cxx │ └── vtkPlusIntuitiveDaVinciTracker.h ├── LeapMotion │ ├── vtkPlusLeapMotion.cxx │ └── vtkPlusLeapMotion.h ├── MicrochipTracking │ ├── vtkPlusMicrochipTracker.cxx │ └── vtkPlusMicrochipTracker.h ├── MicronTracking │ ├── vtkPlusMicronTracker.cxx │ └── vtkPlusMicronTracker.h ├── MicrosoftMediaFoundation │ ├── vtkPlusMmfVideoSource.cxx │ └── vtkPlusMmfVideoSource.h ├── NDICAPITracking │ ├── vtkPlusNDITracker.cxx │ └── vtkPlusNDITracker.h ├── NDICertusTracking │ ├── vtkPlusNDICertusTracker.cxx │ └── vtkPlusNDICertusTracker.h ├── NVidiaDVP │ ├── glExtensions.cpp │ ├── glExtensions.h │ ├── nvCommon.h │ ├── nvConfigure.h.in │ ├── nvGPUutil.cpp │ ├── nvGPUutil.h │ ├── nvSDIin.cpp │ ├── nvSDIin.h │ ├── nvSDIout.cpp │ ├── nvSDIout.h │ ├── nvSDIutil.cpp │ ├── nvSDIutil.h │ ├── vtkPlusNVidiaDVPVideoSourceLinux.cxx │ ├── vtkPlusNVidiaDVPVideoSourceLinux.h │ ├── vtkPlusNVidiaDVPVideoSourceWin32.cxx │ └── vtkPlusNVidiaDVPVideoSourceWin32.h ├── OpenCVVideo │ ├── vtkPlusOpenCVCaptureVideoSource.cxx │ └── vtkPlusOpenCVCaptureVideoSource.h ├── OpenHaptics │ ├── vtkPlusOpenHapticsDevice.cxx │ └── vtkPlusOpenHapticsDevice.h ├── OpenIGTLink │ ├── vtkPlusOpenIGTLinkDevice.cxx │ ├── vtkPlusOpenIGTLinkDevice.h │ ├── vtkPlusOpenIGTLinkTracker.cxx │ ├── vtkPlusOpenIGTLinkTracker.h │ ├── vtkPlusOpenIGTLinkVideoSource.cxx │ └── vtkPlusOpenIGTLinkVideoSource.h ├── OptiTrack │ ├── vtkPlusOptiTrack.cxx │ └── vtkPlusOptiTrack.h ├── OpticalMarkerTracking │ ├── vtkPlusOpticalMarkerTracker.cxx │ └── vtkPlusOpticalMarkerTracker.h ├── Optimet │ ├── vtkPlusOptimetConoProbeMeasurer.cxx │ └── vtkPlusOptimetConoProbeMeasurer.h ├── OvrvisionPro │ ├── vtkPlusOvrvisionProVideoSource.cxx │ └── vtkPlusOvrvisionProVideoSource.h ├── PhidgetSpatialTracking │ ├── vtkPlusPhidgetSpatialTracker.cxx │ └── vtkPlusPhidgetSpatialTracker.h ├── Philips3D │ ├── vtkPlusIEEListener.cxx │ ├── vtkPlusIEEListener.h │ ├── vtkPlusPhilips3DProbeVideoSource.cxx │ └── vtkPlusPhilips3DProbeVideoSource.h ├── PicoScope │ ├── vtkPlusPicoScopeDataSource.cxx │ └── vtkPlusPicoScopeDataSource.h ├── PlusSerialLine.cxx ├── PlusSerialLine.h ├── PlusStreamBufferItem.cxx ├── PlusStreamBufferItem.h ├── PointGrey │ ├── vtkPlusSpinnakerVideoSource.cxx │ └── vtkPlusSpinnakerVideoSource.h ├── Revopoint3DCamera │ ├── vtkPlusRevopoint3DCamera.cxx │ └── vtkPlusRevopoint3DCamera.h ├── SavedDataSource │ ├── vtkPlusSavedDataSource.cxx │ └── vtkPlusSavedDataSource.h ├── SonixVideo │ ├── itkUlteriusImageIO.cxx │ ├── itkUlteriusImageIO.h │ ├── itkUlteriusImageIOFactory.cxx │ ├── itkUlteriusImageIOFactory.h │ ├── vtkPlusSonixPortaVideoSource.cxx │ ├── vtkPlusSonixPortaVideoSource.h │ ├── vtkPlusSonixVideoSource.cxx │ ├── vtkPlusSonixVideoSource.h │ ├── vtkPlusSonixVolumeReader.cxx │ └── vtkPlusSonixVolumeReader.h ├── StealthLink │ ├── vtkPlusStealthLinkTracker.cxx │ └── vtkPlusStealthLinkTracker.h ├── SteamVR │ ├── vtkPlusSteamVRTracker.cxx │ └── vtkPlusSteamVRTracker.h ├── Telemed │ ├── TelemedUltrasound.cxx │ ├── TelemedUltrasound.h │ ├── vtkPlusTelemedVideoSource.cxx │ ├── vtkPlusTelemedVideoSource.h │ ├── x64 │ │ ├── USgfw2.h │ │ ├── USgfw2.tlb │ │ ├── USgfw2_i.c │ │ ├── USgfw2_p.c │ │ └── dlldata.c │ └── x86 │ │ ├── USgfw2.tlb │ │ ├── Usgfw2.h │ │ ├── Usgfw2_i.c │ │ ├── Usgfw2_p.c │ │ └── dlldata.c ├── Testing │ ├── CMakeLists.txt │ ├── CivcoBrachyStepperTest.cxx │ ├── CmsBrachyStepperTest.cxx │ ├── NDICertusTest.cxx │ ├── ReplayRecordedDataTest.cxx │ ├── TimestampFilteringTest.cxx │ ├── TrackingTest.cxx │ ├── TransformInterpolationTest.cxx │ ├── vtk3DDataCollectorTest1.cxx │ ├── vtkAndorVideoSourceTest.cxx │ ├── vtkAzureKinectTest.cxx │ ├── vtkBkProFocusCameraLinkVideoSourceTest.cxx │ ├── vtkBkProFocusOemVideoSourceTest.cxx │ ├── vtkCapistranoVideoSourceTest.cxx │ ├── vtkClariusTest.cxx │ ├── vtkDAQVideoSourceTest.cxx │ ├── vtkDataCollectorFileTest.cxx │ ├── vtkDataCollectorTest1.cxx │ ├── vtkDataCollectorTest2.cxx │ ├── vtkDataCollectorVideoAcqTest.cxx │ ├── vtkEpiphanVideoSourceTest.cxx │ ├── vtkFcsvReaderTest1.cxx │ ├── vtkFcsvWriterTest1.cxx │ ├── vtkGenericSensorTrackerTest.cxx │ ├── vtkICCapturingSourceTest1.cxx │ ├── vtkInfraredSeekCamTest.cxx │ ├── vtkInfraredTEEV2CamTest.cxx │ ├── vtkInfraredTEQ1CamTest.cxx │ ├── vtkIntelRealSenseCamTest.cxx │ ├── vtkIntelRealSenseTrackerTest.cxx │ ├── vtkIntersonArraySDKCxxVideoSourceTest.cxx │ ├── vtkIntersonSDKCxxVideoSourceTest.cxx │ ├── vtkIntersonVideoSourceTest.cxx │ ├── vtkLeapMotionTest1.cxx │ ├── vtkMicronTrackerTest.cxx │ ├── vtkMmfVideoSourceTest.cxx │ ├── vtkNvidiaDVPVideoSourceTest.cxx │ ├── vtkOpenHapticsDeviceTest.cxx │ ├── vtkOpenIGTLinkTrackerTest.cxx │ ├── vtkOvrvisionProVideoSourceTest.cxx │ ├── vtkPhilips3DProbeVideoSourceTest1.cxx │ ├── vtkPlusDeviceFactoryTest.cxx │ ├── vtkRevopoint3DCameraTest.cxx │ ├── vtkSonixPortaVideoSourceTest.cxx │ ├── vtkSonixVideoSourceTest1.cxx │ ├── vtkSonixVolumeReaderTest1.cxx │ ├── vtkTelemedVideoSourceTest.cxx │ ├── vtkThorLabsVideoSourceTest.cxx │ ├── vtkURFSavedVideoSourceTest1.cxx │ ├── vtkUSDigitalEncodersTrackerTest.cxx │ ├── vtkUltravioletPCOUVCamTest.cxx │ ├── vtkVirtualTextRecognizerTest.cxx │ ├── vtkWin32VideoSourceTest.cxx │ └── vtkWinProbeVideoSourceTest.cxx ├── ThorLabs │ ├── vtkPlusThorLabsVideoSource.cxx │ └── vtkPlusThorLabsVideoSource.h ├── Tools │ ├── BrainLabTrackerSim.cxx │ ├── PlusVersion.cxx │ └── ViewSequenceFile.cxx ├── USDigitalEncodersTracking │ ├── vtkPlusUSDigitalEncodersTracker.cxx │ └── vtkPlusUSDigitalEncodersTracker.h ├── UltravioletPCOUVCam │ ├── vtkPlusUltravioletPCOUVCam.cxx │ └── vtkPlusUltravioletPCOUVCam.h ├── UsSimulatorVideo │ ├── vtkPlusUsSimulatorVideoSource.cxx │ └── vtkPlusUsSimulatorVideoSource.h ├── V4L2 │ ├── vtkPlusV4L2VideoSource.cxx │ └── vtkPlusV4L2VideoSource.h ├── VideoForWindows │ ├── vtkPlusWin32VideoSource2.cxx │ └── vtkPlusWin32VideoSource2.h ├── VirtualDevices │ ├── vtkPlusVirtualCapture.cxx │ ├── vtkPlusVirtualCapture.h │ ├── vtkPlusVirtualDeinterlacer.cxx │ ├── vtkPlusVirtualDeinterlacer.h │ ├── vtkPlusVirtualMixer.cxx │ ├── vtkPlusVirtualMixer.h │ ├── vtkPlusVirtualSwitcher.cxx │ ├── vtkPlusVirtualSwitcher.h │ ├── vtkPlusVirtualTextRecognizer.cxx │ ├── vtkPlusVirtualTextRecognizer.h │ ├── vtkPlusVirtualVolumeReconstructor.cxx │ └── vtkPlusVirtualVolumeReconstructor.h ├── WinProbe │ ├── vtkPlusWinProbeVideoSource.cxx │ └── vtkPlusWinProbeVideoSource.h ├── WitMotionTracker │ ├── vtkPlusWitMotionTracker.cxx │ └── vtkPlusWitMotionTracker.h ├── vtkFcsvReader.cxx ├── vtkFcsvReader.h ├── vtkFcsvWriter.cxx ├── vtkFcsvWriter.h ├── vtkPlusBuffer.cxx ├── vtkPlusBuffer.h ├── vtkPlusChannel.cxx ├── vtkPlusChannel.h ├── vtkPlusDataCollector.cxx ├── vtkPlusDataCollector.h ├── vtkPlusDataSource.cxx ├── vtkPlusDataSource.h ├── vtkPlusDevice.cxx ├── vtkPlusDevice.h ├── vtkPlusDeviceFactory.cxx ├── vtkPlusDeviceFactory.h ├── vtkPlusGenericSerialDevice.cxx ├── vtkPlusGenericSerialDevice.h ├── vtkPlusTimestampedCircularBuffer.cxx ├── vtkPlusTimestampedCircularBuffer.h ├── vtkPlusUsDevice.cxx ├── vtkPlusUsDevice.h ├── vtkPlusUsImagingParameters.cxx └── vtkPlusUsImagingParameters.h ├── PlusExport.h.in ├── PlusImageProcessing ├── CMakeLists.txt ├── Testing │ ├── CMakeLists.txt │ └── vtkPlusTransverseProcessEnhancerTest.cxx ├── Tools │ ├── DrawScanLines.cxx │ ├── EnhanceBone.cxx │ ├── EnhanceUsTrpSequence.cxx │ ├── ExtractScanLines.cxx │ ├── RfProcessor.cxx │ └── ScanConvert.cxx ├── vtkPlusBoneEnhancer.cxx ├── vtkPlusBoneEnhancer.h ├── vtkPlusForoughiBoneSurfaceProbability.cxx ├── vtkPlusForoughiBoneSurfaceProbability.h ├── vtkPlusRfProcessor.cxx ├── vtkPlusRfProcessor.h ├── vtkPlusRfToBrightnessConvert.cxx ├── vtkPlusRfToBrightnessConvert.h ├── vtkPlusTrackedFrameProcessor.cxx ├── vtkPlusTrackedFrameProcessor.h ├── vtkPlusTransverseProcessEnhancer.cxx ├── vtkPlusTransverseProcessEnhancer.h ├── vtkPlusUsScanConvert.cxx ├── vtkPlusUsScanConvert.h ├── vtkPlusUsScanConvertCurvilinear.cxx ├── vtkPlusUsScanConvertCurvilinear.h ├── vtkPlusUsScanConvertLinear.cxx └── vtkPlusUsScanConvertLinear.h ├── PlusLibConfig.cmake.in ├── PlusOpenIGTLink ├── CMakeLists.txt ├── PlusIgtlClientInfo.cxx ├── PlusIgtlClientInfo.h ├── Testing │ └── CMakeLists.txt ├── igtlPlusClientInfoMessage.cxx ├── igtlPlusClientInfoMessage.h ├── igtlPlusTrackedFrameMessage.cxx ├── igtlPlusTrackedFrameMessage.h ├── igtlPlusUsMessage.cxx ├── igtlPlusUsMessage.h ├── vtkPlusIGTLMessageQueue.cxx ├── vtkPlusIGTLMessageQueue.h ├── vtkPlusIgtlMessageCommon.cxx ├── vtkPlusIgtlMessageCommon.h ├── vtkPlusIgtlMessageFactory.cxx └── vtkPlusIgtlMessageFactory.h ├── PlusRendering ├── CMakeLists.txt ├── PlusPlotter.cxx ├── PlusPlotter.h ├── Testing │ └── CMakeLists.txt ├── Tools │ └── ModelRenderer.cxx ├── vtkPlusToolAxesActor.cxx └── vtkPlusToolAxesActor.h ├── PlusRevision.h.in ├── PlusServer ├── CMakeLists.txt ├── Commands │ ├── vtkPlusAddRecordingDeviceCommand.cxx │ ├── vtkPlusAddRecordingDeviceCommand.h │ ├── vtkPlusAtracsysCommand.cxx │ ├── vtkPlusAtracsysCommand.h │ ├── vtkPlusCapistranoCommand.cxx │ ├── vtkPlusCapistranoCommand.h │ ├── vtkPlusClariusCommand.cxx │ ├── vtkPlusClariusCommand.h │ ├── vtkPlusCommand.cxx │ ├── vtkPlusCommand.h │ ├── vtkPlusConoProbeLinkCommand.cxx │ ├── vtkPlusConoProbeLinkCommand.h │ ├── vtkPlusGenericSerialCommand.cxx │ ├── vtkPlusGenericSerialCommand.h │ ├── vtkPlusGetFrameRateCommand.cxx │ ├── vtkPlusGetFrameRateCommand.h │ ├── vtkPlusGetImageCommand.cxx │ ├── vtkPlusGetImageCommand.h │ ├── vtkPlusGetPolydataCommand.cxx │ ├── vtkPlusGetPolydataCommand.h │ ├── vtkPlusGetTransformCommand.cxx │ ├── vtkPlusGetTransformCommand.h │ ├── vtkPlusGetUsParameterCommand.cxx │ ├── vtkPlusGetUsParameterCommand.h │ ├── vtkPlusReconstructVolumeCommand.cxx │ ├── vtkPlusReconstructVolumeCommand.h │ ├── vtkPlusRequestIdsCommand.cxx │ ├── vtkPlusRequestIdsCommand.h │ ├── vtkPlusSaveConfigCommand.cxx │ ├── vtkPlusSaveConfigCommand.h │ ├── vtkPlusSendTextCommand.cxx │ ├── vtkPlusSendTextCommand.h │ ├── vtkPlusSetUsParameterCommand.cxx │ ├── vtkPlusSetUsParameterCommand.h │ ├── vtkPlusStartStopRecordingCommand.cxx │ ├── vtkPlusStartStopRecordingCommand.h │ ├── vtkPlusStealthLinkCommand.cxx │ ├── vtkPlusStealthLinkCommand.h │ ├── vtkPlusUSDigitalEncoderCommand.cxx │ ├── vtkPlusUSDigitalEncoderCommand.h │ ├── vtkPlusUpdateTransformCommand.cxx │ ├── vtkPlusUpdateTransformCommand.h │ ├── vtkPlusVersionCommand.cxx │ ├── vtkPlusVersionCommand.h │ ├── vtkPlusWinProbeCommand.cxx │ └── vtkPlusWinProbeCommand.h ├── Testing │ ├── CMakeLists.txt │ └── vtkPlusServerTest.cxx ├── Tools │ ├── PlusServer.cxx │ └── PlusServerRemoteControl.cxx ├── vtkPlusCommandProcessor.cxx ├── vtkPlusCommandProcessor.h ├── vtkPlusCommandResponse.cxx ├── vtkPlusCommandResponse.h ├── vtkPlusOpenIGTLinkClient.cxx ├── vtkPlusOpenIGTLinkClient.h ├── vtkPlusOpenIGTLinkServer.cxx ├── vtkPlusOpenIGTLinkServer.h ├── vtkPlusOpenIGTLinkServerLinux.cxx ├── vtkPlusOpenIGTLinkServerMacOSX.cxx └── vtkPlusOpenIGTLinkServerWin32.cxx ├── PlusUsSimulator ├── CMakeLists.txt ├── PlusSpatialModel.cxx ├── PlusSpatialModel.h ├── Testing │ ├── CMakeLists.txt │ └── vtkUsSimulatorAlgoTest.cxx ├── vtkPlusUsSimulatorAlgo.cxx └── vtkPlusUsSimulatorAlgo.h ├── PlusVolumeReconstruction ├── CMakeLists.txt ├── Testing │ └── CMakeLists.txt ├── Tools │ ├── CompareVolumes.cxx │ ├── CreateSliceModels.cxx │ ├── DrawClipRegion.cxx │ ├── VolumeReconstructor.cxx │ ├── vtkPlusCompareVolumes.cxx │ └── vtkPlusCompareVolumes.h ├── vtkPlusVolumeReconstructor.cxx └── vtkPlusVolumeReconstructor.h ├── PlusWidgets ├── CMakeLists.txt ├── PlusWidgets.qrc ├── QPlusConfigFileSaverDialog.cxx ├── QPlusConfigFileSaverDialog.h ├── QPlusConfigFileSaverDialog.ui ├── QPlusDeviceSetSelectorWidget.cxx ├── QPlusDeviceSetSelectorWidget.h ├── QPlusDeviceSetSelectorWidget.ui ├── QPlusStatusIcon.cxx ├── QPlusStatusIcon.h ├── QPlusToolStateDisplayWidget.cxx ├── QPlusToolStateDisplayWidget.h ├── Resources │ ├── icon_ClearText.png │ ├── icon_ClearText.xcf │ ├── icon_Connect.png │ ├── icon_Connect.xcf │ ├── icon_ConnectLarge.png │ ├── icon_DotGray.png │ ├── icon_DotGray.xcf │ ├── icon_DotGreen.png │ ├── icon_DotGreen.xcf │ ├── icon_DotOrange.png │ ├── icon_DotOrange.xcf │ ├── icon_DotRed.png │ ├── icon_DotRed.xcf │ ├── icon_Edit.png │ ├── icon_Edit.xcf │ ├── icon_Fail.png │ ├── icon_OpenFile.png │ ├── icon_OpenFile.xcf │ ├── icon_PopOut.png │ ├── icon_PopOut.xcf │ ├── icon_Record.png │ ├── icon_Record.xcf │ ├── icon_Refresh.png │ ├── icon_Refresh.xcf │ ├── icon_Save.png │ ├── icon_Save.xcf │ ├── icon_Snapshot.png │ ├── icon_Snapshot.xcf │ ├── icon_Stop.png │ ├── icon_Stop.xcf │ └── icon_Success.png └── Testing │ ├── CMakeLists.txt │ └── ToolStateDisplayWidgetTest.cxx ├── SEIDrv ├── CMakeLists.txt ├── SEIDrv.cpp ├── SEIDrv.h ├── info.txt ├── x64 │ ├── USDSEI.dll │ └── USDigital.dll └── x86 │ ├── USDSEI.dll │ └── USDigital.dll ├── UsePlusLib.cmake.in ├── Utilities ├── CMakeLists.txt ├── DAQVideoSource │ └── README.md ├── InfraredSeekCamera │ ├── README.md │ ├── biasfile.bin │ ├── flatfile.bin │ ├── install.sh │ └── seekcam.rules ├── InfraredTEEV2Camera │ └── README.md ├── InfraredTEQ1Camera │ └── README.md ├── MfVideoCaptureLibrary │ ├── CMakeLists.txt │ ├── FormatReader.cpp │ ├── FormatReader.h │ ├── MediaFoundationCaptureLibrary.cpp │ ├── MediaFoundationCaptureLibrary.h │ ├── MediaFoundationVideoCaptureApi.cpp │ ├── MediaFoundationVideoCaptureApi.h │ ├── MediaFoundationVideoDevice.cpp │ ├── MediaFoundationVideoDevice.h │ ├── MediaFoundationVideoDevices.cpp │ ├── MediaFoundationVideoDevices.h │ ├── MfVideoCaptureLogger.cpp │ ├── MfVideoCaptureLogger.h │ └── MfVideoCaptureLoggerMacros.h ├── MicronTrackerInterface │ ├── CMakeLists.txt │ ├── Cameras.cpp │ ├── Cameras.h │ ├── Collection.cpp │ ├── Collection.h │ ├── Facet.cpp │ ├── Facet.h │ ├── MCamera.cpp │ ├── MCamera.h │ ├── MTXPoint.cpp │ ├── MTXPoint.h │ ├── Marker.cpp │ ├── Marker.h │ ├── Markers.cpp │ ├── Markers.h │ ├── MicronTracker Demo.ini │ ├── MicronTrackerInterface.cpp │ ├── MicronTrackerInterface.h │ ├── MicronTrackerLogger.cpp │ ├── MicronTrackerLogger.h │ ├── MicronTrackerLoggerMacros.h │ ├── Persistence.cpp │ ├── Persistence.h │ ├── Vector.cpp │ ├── Vector.h │ ├── XPoints.cpp │ ├── XPoints.h │ ├── Xform3D.cpp │ └── Xform3D.h ├── Ransac │ ├── CMakeLists.txt │ ├── Common │ │ └── RandomNumberGenerator.h │ ├── Examples │ │ ├── planeEstimation.cxx │ │ └── sphereEstimation.cxx │ ├── ParametersEstimator.h │ ├── ParametersEstimator.txx │ ├── PlaneParametersEstimator.h │ ├── PlaneParametersEstimator.txx │ ├── RANSAC.h │ ├── RANSAC.txx │ ├── SphereParametersEstimator.h │ ├── SphereParametersEstimator.txx │ ├── Testing │ │ ├── CMakeLists.txt │ │ ├── PlaneParametersEstimatorTest.cxx │ │ └── SphereParametersEstimatorTest.cxx │ ├── license.txt │ └── readme.txt ├── UltravioletPCOUVCamera │ └── README.md └── xio │ ├── AhrsAlgo.h │ ├── CMakeLists.txt │ ├── MadgwickAhrsAlgo.cxx │ ├── MadgwickAhrsAlgo.h │ ├── MahonyAhrsAlgo.cxx │ └── MahonyAhrsAlgo.h └── scripts ├── CMakeLists.txt ├── StartPlusCommandPrompt.bat └── StartPlusCommandPrompt.ico /.astylerc: -------------------------------------------------------------------------------- 1 | # PLUS Coding Style Options 2 | --style=allman 3 | --indent=spaces=2 4 | --align-pointer=type 5 | --indent-namespaces 6 | --indent-col1-comments 7 | --indent-switches 8 | --indent-cases 9 | --indent-preproc-block 10 | --pad-oper 11 | --unpad-paren 12 | --add-brackets 13 | --add-one-line-brackets 14 | --keep-one-line-blocks 15 | --convert-tabs 16 | --mode=c 17 | --pad-header 18 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "PlusDoc"] 2 | path = PlusDoc 3 | url = https://github.com/PlusToolkit/PlusDoc.git 4 | -------------------------------------------------------------------------------- /BuildAndTest.sh.in: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ORIGPATH=$PATH 4 | DIRCMD=0 5 | 6 | finish() 7 | { 8 | PATH=$ORIGPATH 9 | } 10 | 11 | buildFailed () 12 | { 13 | echo "ERROR: Build failed..." 14 | finish 15 | exit $1 16 | } 17 | 18 | command=$0 19 | if [ "$1" == "-E" ] || [ "$1" == "-N" ] || [ "$1" == "-C" ] || [ "$1" == "-I" ]; then 20 | test_mode=$1 21 | shift 22 | else 23 | test_mode="-E" 24 | fi 25 | 26 | test_track="" 27 | individual_test="" 28 | while [ "${1:-}" != "" ]; do 29 | case "$1" in 30 | "--test") 31 | shift 32 | individial_test=$1 33 | ;; 34 | "--track") 35 | shift 36 | test_track="--track \"$1\"" 37 | ;; 38 | esac 39 | shift 40 | done 41 | 42 | if [ "$test_mode" == "" ] || [ "$test_mode" == "-E" ]; then 43 | "@CMAKE_COMMAND@" --build . --config Release 44 | errorVal=$? 45 | if [ "$?" == 1 ]; then 46 | buildFailed $errorVal 47 | fi 48 | "@CMAKE_CTEST_COMMAND@" -C Release -D Experimental --output-on-failure $test_track 49 | fi 50 | 51 | if [ "$test_mode" == "-N" ]; then 52 | # Clean before the nightly build to enforce all build warnings appear on all nightly dashboard submissions 53 | "@CMAKE_COMMAND@" --build . --config Release --clean-first 54 | "@CMAKE_CTEST_COMMAND@" -C Release -D Nightly $test_track 55 | fi 56 | 57 | if [ "$test_mode" == "-C" ]; then 58 | "@CMAKE_CTEST_COMMAND@" -C Release -D Continuous $test_track 59 | # Wait for some time before continue to allow checking the results of the executions 60 | sleep 15 61 | fi 62 | 63 | if [ "$test_mode" == "-I" ]; then 64 | # Run individual tests with regexp search 65 | # Display the list of tests 66 | "@CMAKE_CTEST_COMMAND@" -R "$individual_test" -N -C Release 67 | # Run selected tests 68 | "@CMAKE_CTEST_COMMAND@" -R "$individual_test" -V -C Release 69 | fi 70 | 71 | finish 72 | echo "DONE" 73 | -------------------------------------------------------------------------------- /CMake/MSVCVersion.rc.in: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | VS_VERSION_INFO VERSIONINFO 4 | FILEVERSION @PLUSLIB_VERSION_MAJOR@, @PLUSLIB_VERSION_MINOR@, @PLUSLIB_VERSION_PATCH@, 0 5 | PRODUCTVERSION @PLUSLIB_VERSION_MAJOR@, @PLUSLIB_VERSION_MINOR@, @PLUSLIB_VERSION_PATCH@, 0 6 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK 7 | #ifndef NDEBUG 8 | FILEFLAGS 0 9 | #else 10 | FILEFLAGS VS_FF_DEBUG 11 | #endif 12 | FILEOS VOS_NT_WINDOWS32 13 | #ifdef @target_name@_EXPORTS 14 | FILETYPE VFT_DLL 15 | #else 16 | FILETYPE VFT_APP 17 | #endif 18 | FILESUBTYPE VFT2_UNKNOWN 19 | BEGIN 20 | BLOCK "StringFileInfo" 21 | BEGIN 22 | BLOCK "04090000" 23 | BEGIN 24 | VALUE "FileDescription", "@description@" 25 | VALUE "FileVersion", "@PLUSLIB_VERSION_MAJOR@.@PLUSLIB_VERSION_MINOR@.@PLUSLIB_VERSION_PATCH@.@PLUSLIB_REVISION@" 26 | VALUE "InternalName", "@internal_name@" 27 | VALUE "ProductName", "@product_name@" 28 | VALUE "ProductVersion", "@PLUSLIB_VERSION_MAJOR@.@PLUSLIB_VERSION_MINOR@.@PLUSLIB_VERSION_PATCH@.@PLUSLIB_REVISION@" 29 | VALUE "LegalCopyright", "https://github.com/PlusToolkit/PlusLib/blob/master/src/License.txt" 30 | END 31 | END 32 | BLOCK "VarFileInfo" 33 | BEGIN 34 | VALUE "Translation", 0x409, 1252 35 | END 36 | END -------------------------------------------------------------------------------- /CTestConfig.cmake: -------------------------------------------------------------------------------- 1 | ## This file should be placed in the root directory of your project. 2 | ## Then modify the CMakeLists.txt file in the root directory of your 3 | ## project to incorporate the testing dashboard. 4 | ## # The following are required to uses Dart and the Cdash dashboard 5 | ## enable_testing() 6 | ## include(CTest) 7 | set(CTEST_PROJECT_NAME "PlusLib") 8 | set(CTEST_NIGHTLY_START_TIME "00:00:00 EST") 9 | 10 | set(CTEST_DROP_METHOD "https") 11 | set(CTEST_DROP_SITE "open.cdash.org") 12 | set(CTEST_DROP_LOCATION "/submit.php?project=PlusLib") 13 | set(CTEST_DROP_SITE_CDASH TRUE) 14 | -------------------------------------------------------------------------------- /CreateApiReference.bat.in: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | ECHO Build PlusLib ApiReference... 3 | 4 | ECHO Clear old files to force rebuild of documentation 5 | "${CMAKE_MAKE_PROGRAM}" src/Documentation/ApiReference/Documentation-PlusLib-ApiReference.vcxproj /p:Configuration=Release /target:clean 1> CreateDoc.log 2>&1 6 | IF ERRORLEVEL 1 GOTO fail 7 | 8 | ECHO Generating documentation 9 | "${CMAKE_MAKE_PROGRAM}" src/Documentation/ApiReference/Documentation-PlusLib-ApiReference.vcxproj /p:Configuration=Release /target:rebuild 1>> CreateDoc.log 2>&1 10 | IF ERRORLEVEL 1 GOTO fail 11 | 12 | rem --------------------------------------- 13 | 14 | :success 15 | ECHO Documentation available at: ${PLUS_EXECUTABLE_OUTPUT_PATH}/Doc 16 | goto end 17 | 18 | :fail 19 | ECHO Failed to generate documentation 20 | goto end 21 | 22 | :end 23 | -------------------------------------------------------------------------------- /CreatePackage.bat.in: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | REM First we need to build a Release version 3 | 4 | SET PATH=c:/cygwin/bin;%PATH% 5 | SET SVNCOMMAND=svn.exe 6 | 7 | "${CMAKE_CPACK_COMMAND}" 8 | 9 | ECHO DONE -------------------------------------------------------------------------------- /Tools/Ascension/info.txt: -------------------------------------------------------------------------------- 1 | Downloaded from: 2 | ftp://ftp.ascension-tech.com/PRODUCTS/trakSTAR/940038_RevD%20for%20Windows%207.zip 3 | ftp://ftp.ascension-tech.com/PRODUCTS/medSAFE/Rev_F/Win7_64bit_medSAFE.zip -------------------------------------------------------------------------------- /Tools/Ascension/medSAFE_940033_Rev_F/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | PROJECT(Ascension3DGmIDE) 2 | 3 | CMAKE_MINIMUM_REQUIRED(VERSION 3.0.0) 4 | 5 | SET(Ascension3DGmInterface_SRCS 6 | inc/ATC3DGm.h 7 | ) 8 | 9 | ADD_CUSTOM_TARGET(Ascension3DGmIDE SOURCES ${Ascension3DGmInterface_SRCS}) 10 | SET_PROPERTY(TARGET Ascension3DGmIDE PROPERTY FOLDER Interfaces) -------------------------------------------------------------------------------- /Tools/Ascension/medSAFE_940033_Rev_F/bin/ATC3DGm.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/Ascension/medSAFE_940033_Rev_F/bin/ATC3DGm.dll -------------------------------------------------------------------------------- /Tools/Ascension/medSAFE_940033_Rev_F/lib/ATC3DGm.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/Ascension/medSAFE_940033_Rev_F/lib/ATC3DGm.lib -------------------------------------------------------------------------------- /Tools/Ascension/trakSTAR_940038_RevD/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | PROJECT(AscensionIDE) 2 | 3 | CMAKE_MINIMUM_REQUIRED(VERSION 3.0.0) 4 | 5 | SET(Ascension3DGInterface_SRCS 6 | inc/ATC3DG.h 7 | ) 8 | 9 | ADD_CUSTOM_TARGET(AscensionIDE SOURCES ${Ascension3DGInterface_SRCS}) 10 | SET_PROPERTY(TARGET AscensionIDE PROPERTY FOLDER Interfaces) -------------------------------------------------------------------------------- /Tools/Ascension/trakSTAR_940038_RevD/bin/ATC3DG.DLL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/Ascension/trakSTAR_940038_RevD/bin/ATC3DG.DLL -------------------------------------------------------------------------------- /Tools/Ascension/trakSTAR_940038_RevD/bin/ATC3DG.ini: -------------------------------------------------------------------------------- 1 | [SYSTEM] 2 | Reset=yes 3 | Logging=no 4 | Media=USB 5 | -------------------------------------------------------------------------------- /Tools/Ascension/trakSTAR_940038_RevD/lib/ATC3DG.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/Ascension/trakSTAR_940038_RevD/lib/ATC3DG.lib -------------------------------------------------------------------------------- /Tools/Ascension/trakSTAR_940041_RevE/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | PROJECT(AscensionIDE) 2 | 3 | CMAKE_MINIMUM_REQUIRED(VERSION 3.0.0) 4 | 5 | SET(Ascension3DGInterface_SRCS 6 | inc/ATC3DG.h 7 | ) 8 | 9 | ADD_CUSTOM_TARGET(AscensionIDE SOURCES ${Ascension3DGInterface_SRCS}) 10 | SET_PROPERTY(TARGET AscensionIDE PROPERTY FOLDER Interfaces) -------------------------------------------------------------------------------- /Tools/Ascension/trakSTAR_940041_RevE/bin/ATC3DG.DLL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/Ascension/trakSTAR_940041_RevE/bin/ATC3DG.DLL -------------------------------------------------------------------------------- /Tools/Ascension/trakSTAR_940041_RevE/bin/ATC3DG.ini: -------------------------------------------------------------------------------- 1 | [SYSTEM] 2 | Reset=yes 3 | Logging=no 4 | Media=USB 5 | -------------------------------------------------------------------------------- /Tools/Ascension/trakSTAR_940041_RevE/bin/ATC3DG64.DLL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/Ascension/trakSTAR_940041_RevE/bin/ATC3DG64.DLL -------------------------------------------------------------------------------- /Tools/Ascension/trakSTAR_940041_RevE/lib/ATC3DG.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/Ascension/trakSTAR_940041_RevE/lib/ATC3DG.lib -------------------------------------------------------------------------------- /Tools/Ascension/trakSTAR_940041_RevE/lib/ATC3DG64.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/Ascension/trakSTAR_940041_RevE/lib/ATC3DG64.lib -------------------------------------------------------------------------------- /Tools/Epiphan/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | PROJECT(EpiphanIDE) 2 | 3 | CMAKE_MINIMUM_REQUIRED(VERSION 3.0.0) 4 | 5 | SET(EpiphanInterface_SRCS 6 | v2u_version.h 7 | frmgrab.h 8 | v2u_compression.h 9 | v2u_defs.h 10 | v2u_dshow.h 11 | v2u_id.h 12 | v2u_ioctl.h 13 | v2u_lib.h 14 | v2u_save.h 15 | v2u_sys.h 16 | v2u_util.h 17 | ) 18 | 19 | ADD_CUSTOM_TARGET(EpiphanIDE SOURCES ${EpiphanInterface_SRCS}) 20 | SET_PROPERTY(TARGET EpiphanIDE PROPERTY FOLDER Interfaces) -------------------------------------------------------------------------------- /Tools/Epiphan/Win32/frmgrab.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/Epiphan/Win32/frmgrab.dll -------------------------------------------------------------------------------- /Tools/Epiphan/Win32/frmgrab.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/Epiphan/Win32/frmgrab.lib -------------------------------------------------------------------------------- /Tools/Epiphan/v2u_lib.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * $Id: v2u_lib.h 7764 2009-10-04 07:41:00Z monich $ 4 | * 5 | * Copyright (C) 2003-2007 Epiphan Systems, Inc. All rights reserved. 6 | * 7 | * v2u_lib master include file. 8 | * 9 | ****************************************************************************/ 10 | 11 | #ifndef _V2U_LIB_H_ 12 | #define _V2U_LIB_H_ 1 13 | 14 | #include "v2u_sys.h" 15 | #include "v2u_util.h" 16 | #include "v2u_save.h" 17 | 18 | #endif /* _V2U_LIB_H_ */ 19 | -------------------------------------------------------------------------------- /Tools/Epiphan/v2u_version.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * $Id: v2u_version.h 15312 2012-01-07 13:16:03Z monich $ 4 | * 5 | * Copyright (C) 2004-2012 Epiphan Systems Inc. All rights reserved. 6 | * 7 | * Version information 8 | * 9 | ****************************************************************************/ 10 | 11 | #ifndef _VGA2USB_VERSION_H_ 12 | #define _VGA2USB_VERSION_H_ 1 13 | 14 | #ifndef V2U_COMPANY_NAME 15 | #define V2U_COMPANY_NAME "Epiphan Systems Inc." 16 | #endif /* V2U_COMPANY_NAME */ 17 | 18 | #ifndef V2U_PRODUCT_COPYRIGHT 19 | #define V2U_PRODUCT_COPYRIGHT "2004-2012 " V2U_COMPANY_NAME 20 | #endif /* V2U_PRODUCT_COPYRIGHT */ 21 | 22 | #ifndef V2U_PRODUCT_NAME 23 | #define V2U_PRODUCT_NAME "Epiphan VGA/DVI Capture" 24 | #endif /* V2U_PRODUCT_NAME */ 25 | 26 | #define V2U_VERSION_MAJOR 3 27 | #define V2U_VERSION_MINOR 27 28 | #define V2U_VERSION_MICRO 1 29 | #define V2U_VERSION_NANO 0 30 | 31 | #endif /* _VGA2USB_VERSION_H_*/ 32 | -------------------------------------------------------------------------------- /Tools/Epiphan/x64/frmgrab.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/Epiphan/x64/frmgrab.dll -------------------------------------------------------------------------------- /Tools/Epiphan/x64/frmgrab.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/Epiphan/x64/frmgrab.lib -------------------------------------------------------------------------------- /Tools/HtmlHelp/advpack.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/advpack.dll -------------------------------------------------------------------------------- /Tools/HtmlHelp/cnvcnt.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/cnvcnt.dll -------------------------------------------------------------------------------- /Tools/HtmlHelp/cnvtoc.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/cnvtoc.dll -------------------------------------------------------------------------------- /Tools/HtmlHelp/flash.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/flash.exe -------------------------------------------------------------------------------- /Tools/HtmlHelp/flash256.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/flash256.gif -------------------------------------------------------------------------------- /Tools/HtmlHelp/gencnv.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/gencnv.dll -------------------------------------------------------------------------------- /Tools/HtmlHelp/hhc.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/hhc.exe -------------------------------------------------------------------------------- /Tools/HtmlHelp/hhcout.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/hhcout.dll -------------------------------------------------------------------------------- /Tools/HtmlHelp/hhkout.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/hhkout.dll -------------------------------------------------------------------------------- /Tools/HtmlHelp/hhw.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/hhw.exe -------------------------------------------------------------------------------- /Tools/HtmlHelp/hhw.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/hhw.gif -------------------------------------------------------------------------------- /Tools/HtmlHelp/info.txt: -------------------------------------------------------------------------------- 1 | Downloaded from: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=21138 -------------------------------------------------------------------------------- /Tools/HtmlHelp/itcc.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/itcc.dll -------------------------------------------------------------------------------- /Tools/HtmlHelp/java/HHCtrl.cab: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/java/HHCtrl.cab -------------------------------------------------------------------------------- /Tools/HtmlHelp/java/cntimage.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/java/cntimage.gif -------------------------------------------------------------------------------- /Tools/HtmlHelp/java/dl.cl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/java/dl.cl -------------------------------------------------------------------------------- /Tools/HtmlHelp/java/e.cl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/java/e.cl -------------------------------------------------------------------------------- /Tools/HtmlHelp/java/el.cl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/java/el.cl -------------------------------------------------------------------------------- /Tools/HtmlHelp/java/h.cl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/java/h.cl -------------------------------------------------------------------------------- /Tools/HtmlHelp/java/ip.cl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/java/ip.cl -------------------------------------------------------------------------------- /Tools/HtmlHelp/java/rd.cl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/java/rd.cl -------------------------------------------------------------------------------- /Tools/HtmlHelp/java/sp.cl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/java/sp.cl -------------------------------------------------------------------------------- /Tools/HtmlHelp/java/tc.cl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/java/tc.cl -------------------------------------------------------------------------------- /Tools/HtmlHelp/java/tv.cl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/java/tv.cl -------------------------------------------------------------------------------- /Tools/HtmlHelp/lib/htmlhelp.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/lib/htmlhelp.lib -------------------------------------------------------------------------------- /Tools/HtmlHelp/license.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/license.txt -------------------------------------------------------------------------------- /Tools/HtmlHelp/navout.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/navout.dll -------------------------------------------------------------------------------- /Tools/HtmlHelp/readme.txt: -------------------------------------------------------------------------------- 1 | Stub readme. 2 | -------------------------------------------------------------------------------- /Tools/HtmlHelp/redist/hhupd.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/redist/hhupd.exe -------------------------------------------------------------------------------- /Tools/HtmlHelp/setup.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/setup.exe -------------------------------------------------------------------------------- /Tools/HtmlHelp/setup.ini: -------------------------------------------------------------------------------- 1 | [Default] 2 | Window Title=HTML Help Workshop 1.3 3 | INF File=htmlhelp.inf 4 | NT5 Section=DefaultInstall.NT5 5 | Reboot=N 6 | [Uninstall] 7 | Reboot=I 8 | -------------------------------------------------------------------------------- /Tools/HtmlHelp/spcom.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/spcom.dll -------------------------------------------------------------------------------- /Tools/HtmlHelp/sprbuild.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/sprbuild.dll -------------------------------------------------------------------------------- /Tools/HtmlHelp/spredit.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/spredit.dll -------------------------------------------------------------------------------- /Tools/HtmlHelp/sprfile.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/sprfile.dll -------------------------------------------------------------------------------- /Tools/HtmlHelp/sprlog.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/HtmlHelp/sprlog.dll -------------------------------------------------------------------------------- /Tools/NVidia/dvp170/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | PROJECT(NVidiaIDE) 2 | 3 | CMAKE_MINIMUM_REQUIRED(VERSION 3.0.0) 4 | 5 | SET(NVidiaInterface_SRCS 6 | include/dvpapi_gl.h 7 | include/DVPAPI.h 8 | include/dvpapi_cuda.h 9 | include/dvpapi_d3d9.h 10 | include/dvpapi_d3d10.h 11 | include/dvpapi_d3d11.h 12 | ) 13 | 14 | ADD_CUSTOM_TARGET(NVidiaIDE SOURCES ${NVidiaInterface_SRCS}) 15 | SET_PROPERTY(TARGET NVidiaIDE PROPERTY FOLDER Interfaces) -------------------------------------------------------------------------------- /Tools/NVidia/dvp170/bin/win32/dvp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/NVidia/dvp170/bin/win32/dvp.dll -------------------------------------------------------------------------------- /Tools/NVidia/dvp170/bin/x64/dvp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/NVidia/dvp170/bin/x64/dvp.dll -------------------------------------------------------------------------------- /Tools/NVidia/dvp170/doc/GPUD4V SDK EULA.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/NVidia/dvp170/doc/GPUD4V SDK EULA.pdf -------------------------------------------------------------------------------- /Tools/NVidia/dvp170/doc/NV_Quadro_DVP_apr10_final_single.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/NVidia/dvp170/doc/NV_Quadro_DVP_apr10_final_single.pdf -------------------------------------------------------------------------------- /Tools/NVidia/dvp170/doc/PG-06007-001_v05.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/NVidia/dvp170/doc/PG-06007-001_v05.pdf -------------------------------------------------------------------------------- /Tools/NVidia/dvp170/doc/ReleaseNotes.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/NVidia/dvp170/doc/ReleaseNotes.txt -------------------------------------------------------------------------------- /Tools/NVidia/dvp170/doc/S0049-Using-the-GPU-Direct-for-Video-API.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/NVidia/dvp170/doc/S0049-Using-the-GPU-Direct-for-Video-API.pdf -------------------------------------------------------------------------------- /Tools/NVidia/dvp170/lib/win32/dvp.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/NVidia/dvp170/lib/win32/dvp.lib -------------------------------------------------------------------------------- /Tools/NVidia/dvp170/lib/win32/dvp_static.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/NVidia/dvp170/lib/win32/dvp_static.lib -------------------------------------------------------------------------------- /Tools/NVidia/dvp170/lib/x64/dvp.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/NVidia/dvp170/lib/x64/dvp.lib -------------------------------------------------------------------------------- /Tools/NVidia/dvp170/lib/x64/dvp_static.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/NVidia/dvp170/lib/x64/dvp_static.lib -------------------------------------------------------------------------------- /Tools/Phidget/Phidget22/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | PROJECT(PhidgetIDE) 2 | 3 | CMAKE_MINIMUM_REQUIRED(VERSION 3.0.0) 4 | 5 | SET(PhidgetInterface_SRCS 6 | phidget22.h 7 | ) 8 | 9 | ADD_CUSTOM_TARGET(PhidgetIDE SOURCES ${PhidgetInterface_SRCS}) 10 | SET_PROPERTY(TARGET PhidgetIDE PROPERTY FOLDER Interfaces) -------------------------------------------------------------------------------- /Tools/Phidget/Phidget22/readme.txt: -------------------------------------------------------------------------------- 1 | Downloaded from http://www.phidgets.com (June 11, 2020) -------------------------------------------------------------------------------- /Tools/Phidget/Phidget22/x64/Phidget22.NET.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/Phidget/Phidget22/x64/Phidget22.NET.dll -------------------------------------------------------------------------------- /Tools/Phidget/Phidget22/x64/phidget22.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/Phidget/Phidget22/x64/phidget22.dll -------------------------------------------------------------------------------- /Tools/Phidget/Phidget22/x64/phidget22.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/Phidget/Phidget22/x64/phidget22.lib -------------------------------------------------------------------------------- /Tools/Phidget/Phidget22/x64/phidget22extra.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/Phidget/Phidget22/x64/phidget22extra.dll -------------------------------------------------------------------------------- /Tools/Phidget/Phidget22/x64/phidget22java.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/Phidget/Phidget22/x64/phidget22java.dll -------------------------------------------------------------------------------- /Tools/Phidget/Phidget22/x86/phidget22.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/Phidget/Phidget22/x86/phidget22.dll -------------------------------------------------------------------------------- /Tools/Phidget/Phidget22/x86/phidget22.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/Phidget/Phidget22/x86/phidget22.lib -------------------------------------------------------------------------------- /Tools/Phidget/Phidget22/x86/phidget22extra.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/Phidget/Phidget22/x86/phidget22extra.dll -------------------------------------------------------------------------------- /Tools/Phidget/Phidget22/x86/phidget22java.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/Phidget/Phidget22/x86/phidget22java.dll -------------------------------------------------------------------------------- /Tools/UsDigital/SEI_5.22/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | PROJECT(USDigitalIDE) 2 | 3 | CMAKE_MINIMUM_REQUIRED(VERSION 3.0.0) 4 | 5 | SET(USDigitalInterface_SRCS 6 | inc/SEIDrv32.h 7 | ) 8 | 9 | ADD_CUSTOM_TARGET(USDigitalIDE SOURCES ${USDigitalInterface_SRCS}) 10 | SET_PROPERTY(TARGET USDigitalIDE PROPERTY FOLDER Interfaces) -------------------------------------------------------------------------------- /Tools/UsDigital/SEI_5.22/SEI_Absolute_Encoder_Communications_Protocol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/UsDigital/SEI_5.22/SEI_Absolute_Encoder_Communications_Protocol.pdf -------------------------------------------------------------------------------- /Tools/UsDigital/SEI_5.22/bin/SEIDrv32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/UsDigital/SEI_5.22/bin/SEIDrv32.dll -------------------------------------------------------------------------------- /Tools/UsDigital/SEI_5.22/bin/SEISrv32.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/UsDigital/SEI_5.22/bin/SEISrv32.exe -------------------------------------------------------------------------------- /Tools/UsDigital/SEI_5.22/lib/SEIDrv32.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/Tools/UsDigital/SEI_5.22/lib/SEIDrv32.lib -------------------------------------------------------------------------------- /Tools/UsDigital/info.txt: -------------------------------------------------------------------------------- 1 | SEI_5.22 was downloaded from: 2 | http://www.usdigital.com/assets/general/SEI_Setup_4.EXE 3 | -------------------------------------------------------------------------------- /Utilities/hooks/commit-msg: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | test "" = "$(grep '^Signed-off-by: ' "$1" | 4 | sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { 5 | echo >&2 Duplicate Signed-off-by lines. 6 | exit 1 7 | } 8 | 9 | exit 0 -------------------------------------------------------------------------------- /src/Documentation/ApiReference/PlusDoxygenStyle.css: -------------------------------------------------------------------------------- 1 | BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { 2 | font-family: Geneva, Arial, Helvetica, sans-serif; 3 | } 4 | BODY,TD { 5 | font-size: 110%; 6 | font-weight: bold 7 | } 8 | H1 { 9 | /*text-align: center;*/ 10 | font-size: 105%; 11 | font-weight: bold 12 | } 13 | 14 | 15 | H1, H2, H3, H4, H5, H6 { 16 | -webkit-transition: text-shadow 2s linear; 17 | -moz-transition: text-shadow 2s linear; 18 | -ms-transition: text-shadow 2s linear; 19 | -o-transition: text-shadow 2s linear; 20 | transition: text-shadow 2s linear; 21 | margin-right: 15px; 22 | } 23 | 24 | H1.glow, H2.glow, H3.glow, H4.glow, H5.glow, H6.glow { 25 | text-shadow: 0 0 15px cyan; 26 | } 27 | 28 | div.anchor{ 29 | -webkit-transition: text-shadow 2s linear; 30 | -moz-transition: text-shadow 2s linear; 31 | -ms-transition: text-shadow 2s linear; 32 | -o-transition: text-shadow 2s linear; 33 | transition: text-shadow 2s linear; 34 | margin-right: 15px; 35 | } 36 | 37 | 38 | H2 { 39 | font-size: 103%; 40 | font-weight: bold; 41 | font-style: italic 42 | } 43 | H3 { 44 | font-size: 100%; 45 | } 46 | 47 | div.image 48 | { 49 | /*position:inherit;*/ 50 | /*top:0px;*/ 51 | /*left:5px;*/ 52 | text-align: left; 53 | display:inline 54 | } 55 | div.image img[src="required.png"]{ 56 | /*position:relative;*/ 57 | width:14px; 58 | height: 14px; 59 | } 60 | div.image img[src="optional.png"]{ 61 | position:relative; 62 | width:8px; 63 | height: 8px; 64 | bottom:4px; 65 | } 66 | div.caption{ 67 | text-align: left; 68 | display:inline; 69 | font-weight:normal 70 | } 71 | -------------------------------------------------------------------------------- /src/Documentation/ApiReference/PlusMainPage.dox: -------------------------------------------------------------------------------- 1 | /** 2 | 3 | \mainpage 4 | 5 | \section PlusLibIntro Introduction 6 | 7 | Plus (Public software Library for UltraSound) is an open-source software package for tracked ultrasound image acquisition, calibration, and processing. PlusLib contains the basic framework and algorithm classes. 8 | 9 | See the Plus Website for more information. 10 | 11 | \defgroup PlusLibCalibrationAlgorithm CalibrationAlgorithm 12 | \defgroup PlusLibDataCollection DataCollection 13 | \defgroup PlusLibPatternRecognition PatternRecognition 14 | \defgroup PlusLibCommon PlusCommon 15 | \defgroup PlusLibOpenIGTLink PlusOpenIGTLink 16 | \defgroup PlusLibPlusServer PlusServer 17 | \defgroup PlusLibImageProcessingAlgo ImageProcessingAlgo 18 | \defgroup PlusLibUsSimulatorAlgo UsSimulatorAlgo 19 | \defgroup PlusLibVolumeReconstruction VolumeReconstruction 20 | */ 21 | -------------------------------------------------------------------------------- /src/Documentation/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ADD_SUBDIRECTORY (ApiReference) 2 | -------------------------------------------------------------------------------- /src/Documentation/UserManual/AlgorithmRfProcessing.dox: -------------------------------------------------------------------------------- 1 | /** 2 | 3 | \page AlgorithmRfProcessing RF processing algorithm 4 | 5 | This algorithm can convert RF data to B-mode images. The conversion is performed in two steps: 6 | - Brightness conversion: the RF samples converted to brightness values 7 | - Scan conversion: RF lines are pasted into an image according to the defined transducer geometry. 8 | To convert recorded RF data to B-mode use the \ref ApplicationRfProcessor. 9 | 10 | Information on transducer geometry can be obtained from the probe manufacturer. 11 | If the manufacturer does not disclose all necessary information or to verify the transducer geometry: 12 | acquire a B-mode and an RF-mode frame of the same object and compare the received B-mode image to the 13 | B-mode image that RfProcessor constructed from the received RF frame 14 | 15 | \section AlgorithmRfProcessingConfigSettings Configuration settings 16 | 17 | - \xmlElem \b RfProcessing 18 | - \xmlElem \b RfToBrightnessConversion 19 | - \xmlAtt NumberOfHilbertFilterCoeffs 20 | - \xmlAtt BrightnessScale 21 | - \xmlElem \b ScanConversion 22 | - \xmlAtt TransducerName 23 | - \xmlAtt TransducerGeometry 24 | - \xmlAtt RadiusStartMm 25 | - \xmlAtt RadiusStopMm 26 | - \xmlAtt ThetaStartDeg 27 | - \xmlAtt ThetaStopDeg 28 | - \xmlAtt OutputImageStartDepthMm 29 | - \xmlAtt ImagingDepthMm 30 | - \xmlAtt TransducerWidthMm 31 | - \xmlAtt OutputImageSizePixel 32 | - \xmlAtt OutputImageSpacingMmPerPixel 33 | 34 | \image html AlgorithmRfProcessingLinearScanConversion.png 35 | 36 | \image html AlgorithmRfProcessingCurvilinearScanConversion.png 37 | 38 | \image html AlgorithmRfProcessingCurvilinearScanConversionPlus2.0.png 39 | 40 | */ 41 | -------------------------------------------------------------------------------- /src/Documentation/UserManual/AlgorithmRfProcessingCurvilinearScanConversion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/AlgorithmRfProcessingCurvilinearScanConversion.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/AlgorithmRfProcessingCurvilinearScanConversionPlus2.0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/AlgorithmRfProcessingCurvilinearScanConversionPlus2.0.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/AlgorithmRfProcessingLinearScanConversion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/AlgorithmRfProcessingLinearScanConversion.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/AlgorithmVolumeReconstructionCurvilinearRoi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/AlgorithmVolumeReconstructionCurvilinearRoi.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/AlgorithmVolumeReconstructionLinearRoi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/AlgorithmVolumeReconstructionLinearRoi.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/ApplicationCreateSliceModels.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | \page ApplicationCreateSliceModels Create slice models (CreateSliceModels) 3 | 4 | The CreateSliceModels.exe utility (part of PlusLib) can be used to verify the slice positions. From a metafile containing 5 | tracked image frames it creates a surface model file of all the tracked frame positions. The surface model file can be 6 | visualized in Slicer or ParaView. 7 | 8 | \image html ApplicationCreateSliceModels.png 9 | 10 | \section ApplicationCreateSliceModelsExamples Examples 11 | 12 | ~~~ 13 | CreateSliceModels.exe --source-seq-file=NwirePhantomFreehand.mha --output-model-file=GeneratedSliceModels.vtk --config-file=PlusDeviceSet_NwirePhantomFreehand_vtkPlusVolumeReconstructorTest2.xml --image-to-reference-transform=ProbeToReference 14 | ~~~ 15 | 16 | \section ApplicationCreateSliceModelsHelp Command-line parameters reference 17 | 18 | \verbinclude "CreateSliceModelsHelp.txt" 19 | 20 | */ 21 | -------------------------------------------------------------------------------- /src/Documentation/UserManual/ApplicationCreateSliceModels.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/ApplicationCreateSliceModels.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/ApplicationDrawClipRegion.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | \page ApplicationDrawClipRegion Draw clip region (DrawClipRegion) 3 | 4 | This is a command-line tool for drawing clip rectangle and fan over ultrasound images. 5 | Clipping parameters are read from \ref ElementVolumeReconstruction "VolumeReconstruction" element of the device set configuration file. 6 | 7 | If automatic fan angle detection is enabled then the maximum considered fan region is shown with dotted line and the actually detected 8 | and used fan region is shown with solid line. See demo video at https://www.youtube.com/watch?v=ss7ZTRTNWio . 9 | 10 | \image html ApplicationDrawClipRegionExample.png 11 | 12 | \section ApplicationDrawClipRegionExamples Examples 13 | 14 | DrawClipRegion --config-file=PlusDeviceSet_VolumeReconstructionOnly_FanAnglesAutoDetect.xml --source-seq-file=UsSimulatorOutputSpinePhantom2CurvilinearBaseline.mha --output-seq-file=UsSimulatorOutputSpinePhantom2CurvilinearBaselineWithClipRegion.mha 15 | 16 | \section ApplicationDrawClipRegionHelp Command-line parameters reference 17 | 18 | \verbinclude "DrawClipRegionHelp.txt" 19 | 20 | */ 21 | -------------------------------------------------------------------------------- /src/Documentation/UserManual/ApplicationDrawClipRegionExample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/ApplicationDrawClipRegionExample.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/ApplicationDrawScanLinesExample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/ApplicationDrawScanLinesExample.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/ApplicationDrawScanlines.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | \page ApplicationDrawScanLines Draw scanlines (DrawScanLines) 3 | 4 | This is a command-line tool for drawing scan lines over brightness images. 5 | Scan line parameters are read from ScanConversion element of the device set configuration file. 6 | 7 | \image html ApplicationDrawScanLinesExample.png 8 | 9 | \section ApplicationDrawScanLinesExamples Examples 10 | 11 | DrawScanlines --config-file=PlusConfiguration_ImageProcessingAlgoTest.xml --config-file=PlusDeviceSet_ImageProcessingAlgoCurvilinearTest.xml --source-seq-file=UltrasonixCurvilinearScanConvertedData.mha --output-seq-file=UltrasonixCurvilinearScanConvertedDataWithScanlines.mha 12 | 13 | \section ApplicationDrawScanLinesHelp Command-line parameters reference 14 | 15 | \verbinclude "DrawScanLinesHelp.txt" 16 | 17 | */ 18 | -------------------------------------------------------------------------------- /src/Documentation/UserManual/ApplicationEditSequenceFileAnonymized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/ApplicationEditSequenceFileAnonymized.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/ApplicationEditSequenceFileNonAnonymized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/ApplicationEditSequenceFileNonAnonymized.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/ApplicationEnhanceUsTrpSequence.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | \page ApplicationEnhanceUsTrpSequence Enhance US sequence mha file (EnhanceUsTrpSequence) 3 | 4 | This is a command-line tool for applying a series of vtk image filter processing steps (specified in the config file) to an mha file of US images. 5 | Filter parameters are read from the ImageProcessingOperations element of the config file. 6 | 7 | \section ApplicationEnhanceUsTrpSequenceExamples Examples 8 | 9 | EnhanceUsTrpSequence.exe --config-file="PlusDeviceSet_Server_Ultrasonix_C5-2_TransverseProcessEnhancer_2Processing.xml" --input-seq-file="SpineUltrasound-Lumbar-C5.mha" --output-seq-file="EnhancedTrps.mha" --verbose=3 10 | 11 | \section ApplicationEnhanceUsTrpSequenceHelp Command-line parameters reference 12 | 13 | \verbinclude "EnhanceUsTrpSequenceHelp.txt" 14 | */ 15 | -------------------------------------------------------------------------------- /src/Documentation/UserManual/ApplicationExtractScanLines.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | \page ApplicationExtractScanLines Extract scan lines (ExtractScanLines) 3 | 4 | This is a command-line tool for extracting scan lines from B-mode images. The output frames only contain pixels along the input scan lines. The output images are rectangular, regardless of the input image geometry. 5 | Scan line parameters are read from ScanConversion element of the device set configuration file. 6 | 7 | This is an example input image from SpineUltrasound-Lumbar-C5.mha (in PlusLibData/TestImages folder) 8 | 9 | \image html SpineUsOriginal.png 10 | 11 | This is the corresponding output image after scan line extraction 12 | 13 | \image html SpineUsScanLines.png 14 | 15 | \section ApplicationExtractScanLinesExamples Examples 16 | 17 | ExtractScanLines 18 | --config-file=SpineUltrasound-Lumbar-C5_config.xml 19 | --input-seq-file=SpineUltrasound-Lumbar-C5.mha 20 | --output-seq-file=SpineUltrasound-Lumbar-C5_ScanLines.mha 21 | 22 | \section ApplicationExtractScanLinesHelp Command-line parameters reference 23 | 24 | \verbinclude "ExtractScanLinesHelp.txt" 25 | 26 | */ 27 | -------------------------------------------------------------------------------- /src/Documentation/UserManual/ApplicationPlusVersion.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | \page ApplicationPlusVersion Version information (PlusVersion) 3 | 4 | Prints the version of all hardware SDKs that were used for building Plus. 5 | 6 | \section ApplicationPlusVersionExamples Example output 7 | 8 | ~~~ 9 | Software version: Plus-2.9.0.eb3c31c0 - Win64 10 | Supported devices: 11 | - 3dConnexion (ver: Plus-2.9.0) 12 | - AuroraTracker (ver: NDICAPI-1.7) 13 | - BkProFocusOem (ver: Plus-2.9.0) 14 | - ChRobotics (ver: Plus-2.9.0) 15 | - Epiphan (ver: Plus-2.9.0) 16 | - FakeTracker (ver: Plus-2.9.0) 17 | - GenericSerialDevice (ver: Plus-2.9.0) 18 | - ICCapturing (ver: The Imaging Source UDSHL-3.4) 19 | - ImageProcessor (ver: Plus-2.9.0) 20 | - IntelRealSense (ver: Plus-2.9.0) 21 | - Microchip (ver: Plus-2.9.0) 22 | - MmfVideo (ver: Plus-2.9.0) 23 | - NDITracker (ver: NDICAPI-1.7) 24 | - NoiseVideo (ver: Plus-2.9.0) 25 | - OpenCVVideo (ver: Plus-2.9.0) 26 | - OpenIGTLinkTracker (ver: OpenIGTLink v3.1.0) 27 | - OpenIGTLinkVideo (ver: OpenIGTLink v3.1.0) 28 | - OptiTrack (ver: Plus-2.9.0) 29 | - OpticalMarkerTracker (ver: Plus-2.9.0) 30 | - PhidgetSpatial (ver: Plus-2.9.0) 31 | - PolarisTracker (ver: NDICAPI-1.7) 32 | - SavedDataSource (ver: Plus-2.9.0) 33 | - UsSimulator (ver: Plus-2.9.0) 34 | - VFWVideo (ver: Plus-2.9.0) 35 | - VirtualBufferedCapture (ver: Plus-2.9.0) 36 | - VirtualCapture (ver: Plus-2.9.0) 37 | - VirtualDeinterlacer (ver: Plus-2.9.0) 38 | - VirtualDiscCapture (ver: Plus-2.9.0) 39 | - VirtualMixer (ver: Plus-2.9.0) 40 | - VirtualSwitcher (ver: Plus-2.9.0) 41 | - VirtualTextRecognizer (ver: Plus-2.9.0) 42 | - VirtualVolumeReconstructor (ver: Plus-2.9.0) 43 | - WitMotionTracker (ver: Plus-2.9.0) 44 | ~~~ 45 | 46 | \section ApplicationPlusVersionHelp Command-line parameters reference 47 | 48 | \verbinclude "PlusVersionHelp.txt" 49 | 50 | */ 51 | -------------------------------------------------------------------------------- /src/Documentation/UserManual/ApplicationProbeCalibration.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | \page ApplicationProbeCalibration Ultrasound probe calibration (ProbeCalibration) 3 | 4 | Computes transform between the ultrasound image (Image coordinate system) and a tracker marker attached 5 | on the ultrasound probe at a fixed but unknown position (Probe coordinate system). 6 | 7 | \section ApplicationProbeCalibrationExamples Examples 8 | ~~~ 9 | ProbeCalibration --config-file=PlusDeviceSet_fCal_Sim_SpatialCalibration_2.0.xml --calibration-seq-file=fCal_Test_Calibration_3NWires_fCal2.0.mha 10 | ~~~ 11 | 12 | \section ApplicationProbeCalibrationHelp Command-line parameters reference 13 | 14 | \verbinclude "ProbeCalibrationHelp.txt" 15 | 16 | */ 17 | -------------------------------------------------------------------------------- /src/Documentation/UserManual/ApplicationRfProcessor.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | \page ApplicationRfProcessor RF data processor (RfProcessor) 3 | 4 | This is a command-line tool for converting RF data to displayable brightness images (with or without scan conversion). 5 | Conversion parameters are read from the device set configuration file. 6 | 7 | See detailed description of conversion parameters on the \ref AlgorithmRfProcessing page. 8 | 9 | \section ApplicationRfProcessorExamples Examples 10 | 11 | RfProcessor --config-file=PlusConfiguration_ImageProcessingAlgoTest.xml --rf-file=UltrasonixCurvilinearRfData.mha --output-img-file=outputUltrasonixCurvilinearBrightnessData.mha 12 | 13 | \section ApplicationRfProcessorHelp Command-line parameters reference 14 | 15 | \verbinclude "RfProcessorHelp.txt" 16 | 17 | */ 18 | -------------------------------------------------------------------------------- /src/Documentation/UserManual/ApplicationScanConvert.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | \page ApplicationScanConvert Scan conversion (ScanConvert) 3 | 4 | This is a command-line tool performing scan conversion on the input images. Input images must be rectangular, containing scan lines of the geometrically correct B-mode images. 5 | Scan line parameters are read from ScanConversion element of the device set configuration file. 6 | Scan line images can be generated from original geometrically correct images using the ExtractScanLines tool. 7 | 8 | This is an example scan lines image: 9 | 10 | \image html SpineUsScanLines.png 11 | 12 | This is the corresponding output image after scan conversion: 13 | 14 | \image html SpineUsConverted.png 15 | 16 | \section ApplicationScanConvertExamples Examples 17 | 18 | ApplicationScanConvert 19 | --config-file=SpineUltrasound-Lumbar-C5_config.xml 20 | --input-seq-file=SpineUltrasound-Lumbar-C5_ScanLines.mha 21 | --output-seq-file=SpineUltrasound-Lumbar-C5_ScanConverted.mha 22 | 23 | \section ApplicationScanConvertHelp Command-line parameters reference 24 | 25 | \verbinclude "ScanConvertHelp.txt" 26 | 27 | */ 28 | -------------------------------------------------------------------------------- /src/Documentation/UserManual/ApplicationTemporalCalibration.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | \page ApplicationTemporalCalibration Temporal calibration application (TemporalCalibration) 3 | 4 | TemporalCalibration is for computing time offset between channels. 5 | It can be useful for advanced testing and tuning of the temporal calibration parameters. 6 | 7 | How to use: 8 | 1. Record a tracked US sequence of an object that will produce a line in each US frame 9 | 1. During the recording the probe should undergo translational periodic motion and minimal rotational motion (e.g. moving the probe vertically up-and-down while imaging the bottom of a water bath) 10 | 2. It is recommended to acquire raw (not paired, synchronized) imaging and tracking data (add a separate recording device for each input channel) 11 | 2. Run TemporalCalibration executable. For example, assume a tracker raw buffer called named "trackerRawBuffer.mha," and a video raw buffer named "videoRawBuffer.mha." To calculate the time by which the tracker data stream lags the video data stream (i.e. the time offset), the following call could be made: 12 | 13 | \section ApplicationTemporalCalibrationExamples Examples 14 | 15 | ~~~ 16 | TemporalCalibration --fixed-seq-file=RawVideoBuffer.mha --moving-seq-file=RawTrackerBuffer.mha --moving-probe-to-reference-transform=ProbeToReference --sampling-resolution-sec=0.001 --plot-results --save-intermediate-images --verbose=4 17 | ~~~ 18 | 19 | In the above call, a 0.001 second (default) sampling resolution is used; the final pre- and post-aligned video and tracker metric signals are plotted; and, intermediate images--namely scanlines and detected lines--are stored. 20 | 21 | \section ApplicationTemporalCalibrationHelp Command-line parameters reference 22 | 23 | \verbinclude "TemporalCalibrationHelp.txt" 24 | 25 | */ 26 | -------------------------------------------------------------------------------- /src/Documentation/UserManual/ApplicationTrackingTest.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | \page ApplicationTrackingTest Tracking device test (TrackingTest) 3 | 4 | This is a simple test application to visualize all the tracker tools and the numerical values of the acquired transforms. The visualized data can be optionally saved into file. 5 | 6 | \image html ApplicationTrackingTest.png 7 | 8 | \section ApplicationTrackingTestExamples Examples 9 | 10 | ~~~ 11 | TrackingTest --config-file=..\..\PlusLib\data\ConfigFiles\Test_PlusConfiguration_VideoNone_FakeTracker_PivotCalibration_fCal.xml 12 | ~~~ 13 | 14 | \section ApplicationTrackingTestHelp Command-line parameters reference 15 | 16 | \verbinclude "TrackingTestHelp.txt" 17 | 18 | */ 19 | -------------------------------------------------------------------------------- /src/Documentation/UserManual/ApplicationTrackingTest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/ApplicationTrackingTest.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/ApplicationViewSequenceFile.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | \page ApplicationViewSequenceFile Sequence file viewer (ViewSequenceFile) 3 | 4 | This is a simple tool for viewing frames of a sequence file interactively in 3D. 5 | You can browse between the slices by pressing the '+' and '-' keys and rotate the view by using the mouse. 6 | 7 | \image html ApplicationViewSequenceFileScreenshot.png 8 | 9 | \section ApplicationViewSequenceFileExamples Examples 10 | 11 | ViewSequenceFile.exe --config-file=SpinePhantomFreehandReconstructionOnly.xml --source-seq-file=SpinePhantomFreehand.mha --image-to-reference-transform=ImageToTracker 12 | 13 | \section ApplicationViewSequenceFileHelp Command-line parameters reference 14 | 15 | \verbinclude "ViewSequenceFileHelp.txt" 16 | 17 | */ 18 | -------------------------------------------------------------------------------- /src/Documentation/UserManual/ApplicationViewSequenceFileScreenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/ApplicationViewSequenceFileScreenshot.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/ApplicationVolumeReconstructor.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | \page ApplicationVolumeReconstructor Volume reconstructor application (VolumeReconstructor) 3 | 4 | This is a command-line tool for ultrasound volume reconstruction. 5 | 6 | See description of volume reconstruction parameters on the \ref AlgorithmVolumeReconstruction page. 7 | 8 | \section ApplicationVolumeReconstructorExamples Examples 9 | 10 | VolumeReconstructor.exe --config-file=PlusConfiguration_SpinePhantomFreehandReconstructionOnly.xml --source-seq-file=SpinePhantomFreehand.mha --output-volume-file=vtkPlusVolumeReconstructorWithHoleFillingTest1Output.mha --image-to-reference-transform=ImageToReference 11 | 12 | Files: 13 | - Device set config file: https://github.com/PlusToolkit/PlusLibData/blob/master/ConfigFiles/Testing/PlusDeviceSet_SpinePhantomFreehandReconstructionOnly.xml 14 | - Input frames: https://github.com/PlusToolkit/PlusLibData/blob/master/TestImages/SpinePhantomFreehand.mha 15 | - Sample reconstructed volume: https://github.com/PlusToolkit/PlusLibData/blob/master/TestImages/SpinePhantomFreehandReconstructed.mha 16 | 17 | See more examples on the dashboard (all the test cases starting with "vtkPlusVolumeReconstructor" perform volume reconstruction or verify volume reconstruction results). 18 | 19 | \section ApplicationVolumeReconstructorHelp Command-line parameters reference 20 | 21 | \verbinclude "VolumeReconstructorHelp.txt" 22 | 23 | */ 24 | -------------------------------------------------------------------------------- /src/Documentation/UserManual/CoordinateSystemDefinitionsfCal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/CoordinateSystemDefinitionsfCal.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/DeviceBlackMagicDeckLink.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | \page DeviceBlackMagicDeckLink BlackMagic DeckLink 3 | 4 | \section BMDeckLinkSupportedHwDevices Supported hardware devices 5 | 6 | 7 | \section BMDeckLinkSupportedPlatforms Supported platforms 8 | 9 | - \ref PackageWin32 10 | - \ref PackageWin64 11 | - \ref PackageMacOSX 12 | - \ref PackageLinux 13 | 14 | \section BMDeckLinkSDKVersions BlackMagic DeckLink SDK Versions 15 | Please build PLUS BlackMagic support against the following DeckLink SDK versions. Other versions may work, but are not regularly tested by the PLUS developer team. 16 | 17 | - DeckLink v 11.1 18 | 19 | 20 | \section BMDeckLinkBuild Building the BlackMagic DeckLink PLUS support 21 | 22 | 23 | 24 | \section BMDeckLinkConfigSettings Device configuration settings 25 | - \xmlAtt \ref DeviceType "Type" = \c "BlackMagic" \RequiredAtt 26 | - \xmlAtt \ref ToolReferenceFrame \OptionalAtt{Tracker} 27 | - \xmlElem \ref DataSources \RequiredAtt 28 | - \xmlElem \ref DataSource \RequiredAtt 29 | 30 | \section BMDeckLinkExampleConfigFile Config File 31 | \include "ConfigFiles/PlusDeviceSet_Server_BlackMagicDeckLink.xml" 32 | 33 | */ -------------------------------------------------------------------------------- /src/Documentation/UserManual/DeviceDAQVideoSource.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | \page DeviceDAQVideoSource grabber for CameraLink camera 3 | 4 | \section DeviceDAQVideoSource 5 | This device allow you to use a DAQ USB-FRM13-B grabber to capture and send images from a CameraLink camera. 6 | 7 | This device only works in Windows (2023-03-16). 8 | 9 | \section DAQVideoSourceConfigInstallation 10 | 11 | You can found the license in: 12 | "PlusLib/src/Utilities/DAQVideoSource/README.md" 13 | 14 | \section DAQVideoSourceConfigSettings Device configuration settings 15 | 16 | - \xmlAtt \ref DeviceType "Type" = \c "DAQVideoSource" \RequiredAtt 17 | 18 | - \xmlElem \ref DataSources Exactly one \c DataSource child element is required. \RequiredAtt 19 | - \xmlElem \ref DataSource \RequiredAtt 20 | - \xmlAtt \ref PortUsImageOrientation \RequiredAtt 21 | 22 | \section DAQVideoSourceExampleConfigFile Example configuration file PlusDeviceSet_Server_DAQVideoSource.xml 23 | 24 | \include "ConfigFiles/PlusDeviceSet_Server_DAQVideoSource.xml" 25 | 26 | */ 27 | -------------------------------------------------------------------------------- /src/Documentation/UserManual/DeviceFakeTracker.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | \page DeviceFakeTracker Fake tracking system as a simulator 3 | Simulates a fake tracking system with tools that have predetermined behavior. This allows someone who doesn't have access to a tracking system to test code that relies on having one active. 4 | 5 | \section FakeTrackerConfigSettings Device configuration settings 6 | 7 | - \xmlAtt \ref DeviceType "Type" = \c "FakeTracker" \RequiredAtt 8 | - \xmlAtt \ref DeviceAcquisitionRate "AcquisitionRate" \OptionalAtt{30} 9 | - \xmlAtt \ref LocalTimeOffsetSec \OptionalAtt{0} 10 | - \xmlAtt \ref ToolReferenceFrame \OptionalAtt{Tracker} 11 | 12 | - \xmlAtt \b Mode The possible modes have different simulation behaviour: \OptionalAtt{Undefined} 13 | 14 | - \c Default Spins the tools around different axis to fake movement 15 | - \c SmoothMove 16 | - \c PivotCalibration Moves around a stylus with the tip fixed to a position 17 | - \c RecordPhantomLandmarks Touches some positions with 1 sec difference 18 | - \c ToolState Changes the state of the tool from time to time 19 | 20 | - \xmlElem \b PhantomDefinition: \RequiredAtt if \b Mode = \c "RecordPhantomLandmarks". 21 | - \xmlElem \b Geometry or \b Landmarks 22 | - \xmlAtt \b Position Landmark 3D position specified as a vector \c "0.0,0.0,0.0" 23 | 24 | - \xmlElem \ref DataSources One \c DataSource child element for each tool. \RequiredAtt 25 | - \xmlElem \ref DataSource \RequiredAtt 26 | - \xmlAtt \ref PortName \RequiredAtt 27 | - \c 0 Reference 28 | - \c 1 Stylus 29 | - \xmlAtt \ref BufferSize \OptionalAtt{150} 30 | - \xmlAtt \ref AveragedItemsForFiltering \OptionalAtt{20} 31 | 32 | \section FakeTrackerExampleConfigFile Example configuration file PlusDeviceSet_FakeTracker_ToolState.xml 33 | 34 | \include "ConfigFiles/Testing/PlusDeviceSet_FakeTracker_ToolState.xml" 35 | 36 | */ -------------------------------------------------------------------------------- /src/Documentation/UserManual/DeviceInfraredSeekCam.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | \page DeviceInfraredSeekCam Thermal Infrared Seek Pro camera 3 | 4 | \section DeviceInfraredSeekCamera 5 | This device allow you to use a Infrared Seek Pro Camera to capture and send infrared thermal images. 6 | 7 | \image html DeviceInfraredSeekCam.png 8 | 9 | \section InfraredSeekCamConfigInstallation 10 | 11 | To use the camera in a linux system, you have to grant privileges to write to it. We have made a small 12 | script that you may execute with root privileges that only needs to be run once. This script adds a new 13 | udev rule to be able to run the library for the camera as a non root user (The rule can be found at 14 | "PlusLib/src/Utilities/InfraredSeekCamera/seekcam.rules", where 0011 is the Seek Thermal CompactPRO model). 15 | For Windows, only the WinUSB driver is needed. You can find the instructions to install the camera, as well 16 | as how to use the configuration file in: 17 | "PlusLib/src/Utilities/InfraredSeekCamera/README.md" 18 | 19 | \section InfraredSeekCamConfigSettings Device configuration settings 20 | 21 | - \xmlAtt \ref DeviceType "Type" = \c "InfraredSeekCam" \RequiredAtt 22 | 23 | - \xmlElem \ref DataSources Exactly one \c DataSource child element is required. \RequiredAtt 24 | - \xmlElem \ref DataSource \RequiredAtt 25 | - \xmlAtt \ref PortUsImageOrientation \RequiredAtt 26 | 27 | \section InfraredSeekCamExampleConfigFile Example configuration file PlusDeviceSet_Server_InfraredSeekCamera.xml 28 | 29 | \include "ConfigFiles/PlusDeviceSet_Server_InfraredSeekCamera.xml" 30 | 31 | */ 32 | -------------------------------------------------------------------------------- /src/Documentation/UserManual/DeviceInfraredSeekCam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/DeviceInfraredSeekCam.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/DeviceInfraredTEEV2Cam.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | \page DeviceInfraredTEEV2Cam Infrared Thermal Expert EV2 camera 3 | 4 | \section DeviceInfraredTEEV2Camera 5 | This device allow you to use a Infrared Thermal Expert EV2 Camera to capture and send infrared thermal images. 6 | 7 | This device only works in Windows (2023-01-03). 8 | 9 | \section InfraredTEEV2CamConfigInstallation 10 | 11 | You can found the license in: 12 | "PlusLib/src/Utilities/InfraredTEEV2Camera/README.md" 13 | 14 | \section InfraredTEEV2CamConfigSettings Device configuration settings 15 | 16 | - \xmlAtt \ref DeviceType "Type" = \c "InfraredTEEV2Cam" \RequiredAtt 17 | 18 | - \xmlElem \ref DataSources Exactly one \c DataSource child element is required. \RequiredAtt 19 | - \xmlElem \ref DataSource \RequiredAtt 20 | - \xmlAtt \ref PortUsImageOrientation \RequiredAtt 21 | 22 | \section InfraredTEEV2CamExampleConfigFile Example configuration file PlusDeviceSet_Server_InfraredTEEV2Camera.xml 23 | 24 | \include "ConfigFiles/PlusDeviceSet_Server_InfraredTEEV2Camera.xml" 25 | 26 | */ 27 | -------------------------------------------------------------------------------- /src/Documentation/UserManual/DeviceInfraredTEQ1Cam.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | \page DeviceInfraredTEQ1Cam Infrared Thermal Expert Q1 camera 3 | 4 | \section DeviceInfraredTEQ1Camera 5 | This device allow you to use a Infrared TEQ1 Pro Camera to capture and send infrared thermal images. 6 | 7 | This device only works in Windows. We hope in the next months to integrate in Linux. 8 | 9 | \section InfraredTEQ1CamConfigInstallation 10 | 11 | You can found the license in: 12 | "PlusLib/src/Utilities/InfraredTEQ1Camera/README.md" 13 | 14 | \section InfraredTEQ1CamConfigSettings Device configuration settings 15 | 16 | - \xmlAtt \ref DeviceType "Type" = \c "InfraredTEQ1Cam" \RequiredAtt 17 | 18 | - \xmlElem \ref DataSources Exactly one \c DataSource child element is required. \RequiredAtt 19 | - \xmlElem \ref DataSource \RequiredAtt 20 | - \xmlAtt \ref PortUsImageOrientation \RequiredAtt 21 | 22 | \section InfraredTEQ1CamExampleConfigFile Example configuration file PlusDeviceSet_Server_InfraredTEQ1Camera.xml 23 | 24 | \include "ConfigFiles/PlusDeviceSet_Server_InfraredTEQ1Camera.xml" 25 | 26 | */ 27 | -------------------------------------------------------------------------------- /src/Documentation/UserManual/DeviceMicrochip.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | \page DeviceMicrochip Microchip MM7150 magnetic, angular rate, and gravity (MARG) sensor 3 | 4 | \section MicrochipSupportedHwDevices Supported hardware devices 5 | 6 | - Link to manufacturer's website: http://www.microchip.com/wwwProducts/Devices.aspx?product=MM7150 7 | 8 | \section MicrochipSupportedPlatforms Supported platforms 9 | 10 | - \ref PackageWin32 11 | - \ref PackageWin64 12 | - \ref PackageWin32XPe 13 | 14 | \section MicrochipInstallation Installation 15 | 16 | - Switch the sensor to orientation mode 17 | - Make sure the serial port number matches the COM port number the device is connected to 18 | 19 | \section MicrochipConfigSettings Device configuration settings 20 | 21 | - \xmlAtt \ref DeviceType "Type" = \c "Microchip" \RequiredAtt 22 | 23 | - \xmlAtt \ref DeviceAcquisitionRate "AcquisitionRate" \OptionalAtt{20} 24 | - \xmlAtt \ref LocalTimeOffsetSec \OptionalAtt{0} 25 | - \xmlAtt \ref ToolReferenceFrame \OptionalAtt{Tracker} 26 | 27 | - \xmlAtt \b SerialPort Used COM port number for serial communication (ComPort: 1 => Port name: "COM1"). \OptionalAtt{5} 28 | - \xmlAtt \b BaudRate Baud rate for serial communication. \OptionalAtt{115200} 29 | 30 | - \xmlElem \ref DataSources Exactly one \c DataSource child element is required. \RequiredAtt 31 | - \xmlElem \ref DataSource \RequiredAtt 32 | - \xmlAtt \ref PortName = \c "OrientationSensor" \RequiredAtt 33 | - \xmlAtt \ref BufferSize \OptionalAtt{150} 34 | - \xmlAtt \ref AveragedItemsForFiltering \OptionalAtt{20} 35 | 36 | \section MicrochipExampleConfigFile Example configuration file PlusDeviceSet_Server_Microchip.xml 37 | 38 | \include "ConfigFiles/PlusDeviceSet_Server_Microchip.xml" 39 | 40 | */ -------------------------------------------------------------------------------- /src/Documentation/UserManual/DeviceOpticalMarkerTrackerEdge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/DeviceOpticalMarkerTrackerEdge.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/DeviceOpticalMarkerTrackerFrontal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/DeviceOpticalMarkerTrackerFrontal.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/DeviceOpticalMarkerTrackerOblique1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/DeviceOpticalMarkerTrackerOblique1.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/DeviceOpticalMarkerTrackerOblique2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/DeviceOpticalMarkerTrackerOblique2.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/DeviceUltravioletPCOUVCam.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | \page DeviceUltravioletPCOUVCam PCO Ultraviolet camera 3 | 4 | \section DeviceUltravioletPCOUVCamera 5 | This device allow you to use a PCO Ultraviolet Camera to capture and send ultraviolet images. 6 | 7 | This device only works in Windows (2023-01-19). 8 | 9 | \section UltravioletPCOUVCamConfigInstallation 10 | 11 | You can found the license in: 12 | "PlusLib/src/Utilities/UltravioletPCOUVCamera/README.md" 13 | 14 | \section UltravioletPCOUVCamConfigSettings Device configuration settings 15 | 16 | - \xmlAtt \ref DeviceType "Type" = \c "UltravioletPCOUVCam" \RequiredAtt 17 | 18 | - \xmlElem \ref DataSources Exactly one \c DataSource child element is required. \RequiredAtt 19 | - \xmlElem \ref DataSource \RequiredAtt 20 | - \xmlAtt \ref PortUsImageOrientation \RequiredAtt 21 | 22 | \section UltravioletPCOUVCamExampleConfigFile Example configuration file PlusDeviceSet_Server_UltravioletPCOUVCamera.xml 23 | 24 | \include "ConfigFiles/PlusDeviceSet_Server_UltravioletPCOUVCamera.xml" 25 | 26 | */ 27 | -------------------------------------------------------------------------------- /src/Documentation/UserManual/DeviceUs.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | 3 | \page UsDevice Subclass of all ultrasound devices 4 | 5 | \section UsDeviceDefinitions Definitions 6 | 7 | - Device: An independent data acquisition or processing element. Each device has its own processing thread that runs in parallel with other devices and responsible for reading data from its inputs and providing data on its outputs. 8 | - Data source: Provides a single stream of data items, a stream can either consists of a sequence of transforms (tracker stream) or a sequence of two-dimensional images (video stream). The stream also contain metadata for each item: a timestamp and status (if the item is valid or not). 9 | - Channel: Bundles the output of multiple data sources. One channel can contain up to one video stream and any number of tracker streams. 10 | - Output channel: Devices usually provide data to other devices or to algorithms through an output channel. An output channel contains a circular buffer that stores the last N data items of all associated streams, which typically allows algorithms to access the data acquired in the last few seconds. 11 | - Input channel: A device may receive data from another device. This is specified by listing the data provider device's output channel(s) as input channel(s) in the data receiver device. One device can receive data from multiple other devices and one output channel can be connected to multiple device's input channel. 12 | 13 | \section UsDeviceHowTo How to subclass a US device to create a new device type 14 | 15 | \section UsDeviceConfigSettings Configuration settings 16 | 17 | - \xmlElem \ref Device 18 | - \xmlElem \ref InputChannels 19 | - \xmlElem \ref InputChannel 20 | - \xmlAtt \b Id Identifier of the an OutputChannel of another device \RequiredAtt 21 | 22 | */ -------------------------------------------------------------------------------- /src/Documentation/UserManual/DeviceUsSimulatorVideo.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | \page DeviceUsSimulator Ultrasound simulator 3 | 4 | \section UsSimulatorOverview Overview 5 | 6 | - Any number of moving, intersecting objects can be simulated 7 | - Each object is defined by a surface mesh and its acoustic material properties 8 | - Position and orientation of objects can be obtained in real-time from a tracking device, from pre-recorded files, or tracker simulator 9 | - Individual scanlines are computed using a simple ultrasound physics based model, which includes attenuation, absorption, surface reflection (depending on incidence angle), speckle (using Perlin noise). Refraction, speed of sound, and beamwidth are not modeled. 10 | - Both linear and curvilinear transducer geometry is supported. 11 | - With minor modification in the device set configuration file image acquisition can be switched to use a real ultrasound device. 12 | 13 | \section UsSimulatorConfigSettings Device configuration settings 14 | 15 | - \xmlAtt \ref DeviceType "Type" = \c "UsSimulator" \RequiredAtt 16 | - \xmlAtt \ref DeviceAcquisitionRate "AcquisitionRate" \OptionalAtt{30} 17 | - \xmlAtt \ref LocalTimeOffsetSec \OptionalAtt{0} 18 | 19 | - \xmlElem \ref DataSources Exactly one \c DataSource child element is required \RequiredAtt 20 | - \xmlElem \ref DataSource \RequiredAtt 21 | - \xmlAtt \ref PortUsImageOrientation \RequiredAtt 22 | - \xmlAtt \ref ImageType \OptionalAtt{BRIGHTNESS} 23 | - \xmlAtt \ref BufferSize \OptionalAtt{150} 24 | - \xmlAtt \ref AveragedItemsForFiltering \OptionalAtt{20} 25 | - \xmlAtt \ref ClipRectangleOrigin \OptionalAtt{0 0 0} 26 | - \xmlAtt \ref ClipRectangleSize \OptionalAtt{0 0 0} 27 | 28 | \section UsSimulatorExampleConfigFile Example configuration file PlusDeviceSet_Server_SimulatedUltrasound_3DSlicer.xml 29 | 30 | \include "ConfigFiles/PlusDeviceSet_Server_SimulatedUltrasound_3DSlicer.xml" 31 | 32 | 33 | */ -------------------------------------------------------------------------------- /src/Documentation/UserManual/DeviceVideoForWindows.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | \page DeviceVideoForWindows Video for Windows compatible imaging device 3 | 4 | \section VideoForWindowsSupportedHwDevices Supported hardware devices 5 | 6 | This device is deprecated, use MmfVideo device instead. 7 | 8 | Compatible frame grabbers and webcams through Video for Windows interface. 9 | 10 | Limitations: currently only certain color modes are supported, minor additional conversion routines may be needed for some devices. 11 | 12 | \section VideoForWindowsSupportedPlatforms Supported platforms 13 | - \ref PackageWin32 14 | - \ref PackageWin64 15 | - \ref PackageWin32XPe 16 | 17 | \section VideoForWindowsInstallation Installation 18 | 19 | \section VideoForWindowsConfigSettings Device configuration settings 20 | 21 | - \xmlAtt \ref DeviceType "Type" = \c "VFWVideo" \RequiredAtt 22 | - \xmlAtt \ref DeviceAcquisitionRate "AcquisitionRate" \OptionalAtt{30} 23 | - \xmlAtt \ref LocalTimeOffsetSec \OptionalAtt{0} 24 | 25 | - \xmlElem \ref DataSources Exactly one \c DataSource child element is required \RequiredAtt 26 | - \xmlElem \ref DataSource \RequiredAtt 27 | - \xmlAtt \ref PortUsImageOrientation \RequiredAtt 28 | - \xmlAtt \ref ImageType \OptionalAtt{BRIGHTNESS} 29 | - \xmlAtt \ref BufferSize \OptionalAtt{150} 30 | - \xmlAtt \ref AveragedItemsForFiltering \OptionalAtt{20} 31 | - \xmlAtt \ref ClipRectangleOrigin \OptionalAtt{0 0 0} 32 | - \xmlAtt \ref ClipRectangleSize \OptionalAtt{0 0 0} 33 | 34 | \section VideoForWindowsExampleConfigFile Example configuration file PlusDeviceSet_Server_VfwVideoCapture.xml 35 | 36 | \include "ConfigFiles/PlusDeviceSet_Server_VfwVideoCapture.xml" 37 | 38 | */ -------------------------------------------------------------------------------- /src/Documentation/UserManual/DeviceVirtualMixer.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | \page DeviceVirtualMixer Virtual Mixer 3 | 4 | This device can merge video and tracking data from multiple input channels into output channel(s). An output channel may contain a video stream from any of the input streams and tracking data from any input streams. 5 | 6 | All input data is resampled at common time points. The sampling time points are defined by the timestamps of the video stream (if the output channel contains a video stream) or the first tool defined in the output channel (if the output channel does not contain video). 7 | 8 | The mixer device is typically used for assigning position data to each image frame or create a single data channel that contains tracking data from multiple pose tracking devices. 9 | 10 | \section VirtualMixerConfigSettings Device configuration settings 11 | 12 | - \xmlAtt \ref DeviceType "Type" = \c "VirtualMixer" \RequiredAtt 13 | - \xmlAtt \ref DeviceAcquisitionRate "AcquisitionRate" \OptionalAtt{50} 14 | - \xmlAtt \ref LocalTimeOffsetSec \OptionalAtt{0} 15 | - \xmlAtt \ref ToolReferenceFrame \OptionalAtt{Tracker} 16 | 17 | \section VirtualMixerExampleConfigFile Example configuration file PlusDeviceSet_fCal_Ultrasonix_L14-5_Ascension3DG_2.0.xml 18 | 19 | \include "ConfigFiles/PlusDeviceSet_fCal_Ultrasonix_L14-5_Ascension3DG_2.0.xml" 20 | 21 | */ -------------------------------------------------------------------------------- /src/Documentation/UserManual/DeviceVirtualSwitcher.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | \page DeviceVirtualSwitcher Virtual Switcher 3 | 4 | This is an experimental device to allow sending the content of one of the input channels to the output channel. 5 | 6 | \section VirtualSwitcherConfigSettings Device configuration settings 7 | 8 | - \xmlAtt \ref DeviceType "Type" = \c "VirtualSwitcher" \RequiredAtt 9 | - \xmlAtt \ref DeviceAcquisitionRate "AcquisitionRate" \OptionalAtt{50} 10 | - \xmlAtt \ref LocalTimeOffsetSec \OptionalAtt{0} 11 | 12 | */ -------------------------------------------------------------------------------- /src/Documentation/UserManual/DeviceVirtualTextRecognizer.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | \page DeviceVirtualTextRecognizer Virtual Text Recognizer 3 | 4 | This device can recognize text (in the language specified by \ref Language) from a number of input channels. 5 | 6 | \section VirtualTextRecognizerConfigSettings Device configuration settings 7 | 8 | - \xmlElem \ref Device 9 | - \xmlAtt \ref DeviceType "Type" = \c "VirtualTextRecognizer" \RequiredAtt 10 | - \xmlAtt \anchor Language \b Language Language to be recognized. \OptionalAtt{eng} 11 | - \xmlAtt \b TessdataDirectory Path to the parent of the "tessdata" directory containing the language files. If this is not set, it will default to the "TESSDATA_PREFIX" environment variable. \OptionalAtt{ } 12 | - \xmlElem TextFields Multiple \c Field child elements are allowed, one for each parameter to recognize \RequiredAtt 13 | - \xmlElem \b Field \RequiredAtt 14 | - \xmlAtt \b Channel The input channel to pull data from for recognition. \RequiredAtt 15 | - \xmlAtt \b Name Name of the variable to broadcast on detected change \RequiredAtt 16 | - \xmlAtt \b InputRegionOrigin The origin in the input image to extract a sub-image \RequiredAtt 17 | - \xmlAtt \b InputRegionSize The size of the subimage to extract \RequiredAtt 18 | - \xmlElem \ref InputChannels Multiple \c InputChannel child elements are allowed, one for each input channel to be available to query \RequiredAtt 19 | - \xmlElem InputChannel \RequiredAtt 20 | - \xmlAtt \b Id The id of this input channel \RequiredAtt 21 | 22 | \section VirtualTextRecognizerExampleConfigFile Example configuration file PlusDeviceSet_PlusServer_tesseract.xml 23 | 24 | \include "ConfigFiles/PlusDeviceSet_Server_VirtualTextRecognizer.xml" 25 | 26 | */ -------------------------------------------------------------------------------- /src/Documentation/UserManual/DeviceVirtualVolumeReconstructor.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | \page DeviceVirtualVolumeReconstructor Virtual Volume Reconstructor 3 | 4 | Inserts tracked frames into a volume 5 | 6 | \section DeviceVirtualVolumeReconstructorConfigSettings Device configuration settings 7 | 8 | - \xmlAtt \ref DeviceType "Type" = \c "VirtualVolumeReconstructor" \RequiredAtt 9 | - \xmlAtt \ref DeviceAcquisitionRate "AcquisitionRate" \OptionalAtt{30} 10 | - \xmlAtt \ref LocalTimeOffsetSec \OptionalAtt{0} 11 | - \xmlAtt \b EnableReconstruction Flag that enables adding frames to the volume. If enabled then reconstruction is automatically started on connection. \OptionalAtt{FALSE} 12 | - \xmlAtt \b OutputVolFilename If specified, the reconstructed volume will be saved into this filename \OptionalAtt{ } 13 | - \xmlAtt \b OutputVolDeviceName If specified, the reconstructed volume will be sent to the remote control client through OpenIGTLink, using this device name. \OptionalAtt{ } 14 | - \xmlElem \ref ElementVolumeReconstruction 15 | 16 | \section DeviceVirtualVolumeReconstructorExampleConfigFile Example configuration files 17 | 18 | PlusDeviceSet_Server_Sim_NwirePhantom.xml 19 | 20 | \include "ConfigFiles/PlusDeviceSet_Server_Sim_NwirePhantom.xml" 21 | 22 | PlusDeviceSet_OpenIGTLinkCommandsTest.xml 23 | 24 | \include "ConfigFiles/Testing/PlusDeviceSet_OpenIGTLinkCommandsTest.xml" 25 | 26 | */ 27 | -------------------------------------------------------------------------------- /src/Documentation/UserManual/Edge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/Edge.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/FileApplicationConfiguration.dox: -------------------------------------------------------------------------------- 1 | /** 2 | 3 | \page FileApplicationConfiguration Application configuration file 4 | 5 | Some settings can be set commonly for all applications and device set configurations, 6 | such as directories, last used device set, and preferred text editor application. 7 | These settings are described in the application configuration file. 8 | 9 | The application configuration file name is PlusConfig.xml and it is loaded from the directory where the executable file is located. If the file does not exist, the application creates one with the default values. 10 | 11 | The application configuration file is an XML file with the following root element: 12 | - \xmlElem \b PlusConfig 13 | - \xmlAtt \b LogLevel Logging level. See more information on the \subpage FileLog page. 14 | - \c 1 (ERROR) Only errors are logged 15 | - \c 2 (WARNING) Only errors and warnings are logged 16 | - \c 3 (DEBUG) Errors, warnings, and debugging information are logged. Useful for developers and troubleshooting. 17 | - \c 4 (TRACE) Errors, warnings, and detailed debugging information are logged. Large amount of data may be generated, even if the application is idle. Useful for developers and troubleshooting. 18 | - \xmlAtt \b DeviceSetConfigurationDirectory Device set configuration files will be searched relative to this directory (if an absolute path is defined then this directory is ignored). 19 | - \xmlAtt \b ImageDirectory Sequence metafiles (.mha, .mhd files) will be searched relative to this directory. 20 | - \xmlAtt \b ModelDirectory Model files (.stl files) will be searched relative to this directory. 21 | - \xmlAtt \b ScriptsDirectory Directory of scripts that application may need. 22 | 23 | */ 24 | -------------------------------------------------------------------------------- /src/Documentation/UserManual/FileLog.dox: -------------------------------------------------------------------------------- 1 | /** 2 | 3 | \page FileLog Log file 4 | 5 | Plus log files are created automatically during the execution of any Plus application in 6 | the output directory (MMDDYY_HHMMSS_PlusLog.txt). 7 | If you encounter any problem running an application open the log file and look for ERROR or WARNING messages. 8 | 9 | The directory where log files are saved is specified in the OutputDirectory attribute in the \ref FileApplicationConfiguration. 10 | If a relative path is specified in the OutputDirectory attribute then it is interpreted as relative to the location of 11 | the \ref FileApplicationConfiguration . 12 | 13 | \section FileLogViewing Viewing log files 14 | 15 | Any text editor can be used for viewing the log files, but a log viewer software is recommended. 16 | 17 | The log file format is compatible with the free LogExpert log viewer. 18 | With LogExpert you can even monitor the log file in real-time, while a Plus application is running for more convenient 19 | reading and define custom trigger actions (start a process, bookmark the location, flash an icon, etc). 20 | 21 | \image html FileLogLogExpertScreenshot.png 22 | 23 | \subsection FileLogViewingConfiguration LogExpert Configuration 24 | You have to set these only once. LogExpert remembers these settings when you close the application. 25 | - Choose the CSV columnizer and the "|" delimiter character. 26 | - The highlighting feature can be used to highlight specific messages (such as ERROR and WARNING messages). 27 | 28 | \image html FileLogLogExpertConfig1.png 29 | 30 | \image html FileLogLogExpertConfig2.png 31 | 32 | */ 33 | -------------------------------------------------------------------------------- /src/Documentation/UserManual/FileLogLogExpertConfig1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/FileLogLogExpertConfig1.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/FileLogLogExpertConfig2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/FileLogLogExpertConfig2.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/FileLogLogExpertScreenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/FileLogLogExpertScreenshot.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/Frontal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/Frontal.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/Oblique1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/Oblique1.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/Oblique2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/Oblique2.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/SpineUsConverted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/SpineUsConverted.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/SpineUsOriginal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/SpineUsOriginal.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/SpineUsScanLines.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/SpineUsScanLines.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/SupportedPlatforms.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | 3 | \page SupportedPlatforms Supported platforms 4 | 5 | \section PackageWin32 Windows 32 bits 6 | 32-bit application running on 32 or 64-bit Windows 10 and 11 systems. 7 | 8 | \section PackageWin64 Windows 64 bits 9 | 64-bit application running on 64-bit Windows 10 and 11 systems. 10 | 11 | \section PackageWin32XPe Windows XP embedded 32 bits 12 | 32-bit application to be used on Windows XP embedded 32-bit operating system. 13 | Most Ultrasonix systems are running on this operating system. 14 | Since security updates are no longer available for these systems, it is strongly recommended to connect to them to the network using a firewall and disable direct internet access from the machine. 15 | 16 | \section PackageMacOSX macOS 17 | Compatible with macOS. 18 | 19 | \section PackageLinux Linux 20 | Compatible with Linux. 21 | */ 22 | -------------------------------------------------------------------------------- /src/Documentation/UserManual/UltrasoundImageOrientationExample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/UltrasoundImageOrientationExample.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/UltrasoundImageOrientationTransducerAxes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/UltrasoundImageOrientationTransducerAxes.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/UltrasoundImageOrientationUltrasonixSw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/UltrasoundImageOrientationUltrasonixSw.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/UltrasoundImageOrientationsSegParamWindow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/UltrasoundImageOrientationsSegParamWindow.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/VascularUsSimScreenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/VascularUsSimScreenshot.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/VolumeReconCompoundingLatest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/VolumeReconCompoundingLatest.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/VolumeReconCompoundingMax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/VolumeReconCompoundingMax.png -------------------------------------------------------------------------------- /src/Documentation/UserManual/VolumeReconCompoundingMean.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/UserManual/VolumeReconCompoundingMean.png -------------------------------------------------------------------------------- /src/Documentation/images/icons/attribute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/images/icons/attribute.png -------------------------------------------------------------------------------- /src/Documentation/images/icons/element.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/images/icons/element.png -------------------------------------------------------------------------------- /src/Documentation/images/icons/optional.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/images/icons/optional.png -------------------------------------------------------------------------------- /src/Documentation/images/icons/required.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Documentation/images/icons/required.png -------------------------------------------------------------------------------- /src/Plus.txt: -------------------------------------------------------------------------------- 1 | Name: PlusLib 2 | GUIName: PlusLib 3 | -------------------------------------------------------------------------------- /src/PlusCalibration/PatternLocAlgo/PlusPatternLocResultFile.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #ifndef __USFIDSEGRESULTFILE_H 8 | #define __USFIDSEGRESULTFILE_H 9 | 10 | #include "PlusConfigure.h" 11 | #include "PlusFidPatternRecognition.h" 12 | #include 13 | 14 | /*! 15 | \class UsFidSegResultFile 16 | \brief This class can write fiducial segmentation results to an XML file 17 | \ingroup PlusLibPatternRecognition 18 | */ 19 | class vtkPlusCalibrationExport PlusUsFidSegResultFile 20 | { 21 | public: 22 | static void WriteSegmentationResultsHeader(std::ostream &outFile); 23 | static void WriteSegmentationResultsParameters(std::ostream &outFile, PlusFidPatternRecognition &patternRcognitionObject, const std::string &trueFidFileName); 24 | static void WriteSegmentationResultsStats(std::ostream &outFile, double meanFid, double meanFidCandidate=-1); 25 | static void WriteSegmentationResultsFooter(std::ostream &outFile); 26 | static void WriteSegmentationResults(std::ostream &outFile, PlusPatternRecognitionResult &segResults, const std::string &inputTestcaseName, int currentFrameIndex, const std::string &inputImageSequenceFileName); 27 | 28 | static const char *TEST_RESULTS_ELEMENT_NAME; 29 | static const char *TEST_CASE_ELEMENT_NAME; 30 | static const char *ID_ATTRIBUTE_NAME; 31 | }; 32 | 33 | #endif //__USFIDSEGRESULTFILE_H 34 | -------------------------------------------------------------------------------- /src/PlusCalibration/vtkPhantomLandmarkRegistrationAlgo/vtkPlusLandmarkDetectionAlgo.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #ifndef __vtkPlusLandmarkDetectionAlgo_h 8 | #define __vtkPlusLandmarkDetectionAlgo_h 9 | 10 | #include "PlusConfigure.h" 11 | #include "vtkPlusCalibrationExport.h" 12 | 13 | #include "vtkIGSIOLandmarkDetectionAlgo.h" 14 | 15 | class vtkMatrix4x4; 16 | class vtkXMLDataElement; 17 | 18 | //----------------------------------------------------------------------------- 19 | 20 | /*! 21 | \class vtkPlusLandmarkDetectionAlgo 22 | \brief Landmark detection algorithm detects when a calibrated stylus is pivoting around its tip. 23 | The stylus pivoting point (landmark) is computed assuming that the stylus is calibrated. 24 | \ingroup PlusLibCalibrationAlgorithm 25 | */ 26 | class vtkPlusCalibrationExport vtkPlusLandmarkDetectionAlgo : public vtkIGSIOLandmarkDetectionAlgo 27 | { 28 | public: 29 | vtkTypeMacro( vtkPlusLandmarkDetectionAlgo, vtkIGSIOTransformRepository); 30 | static vtkPlusLandmarkDetectionAlgo* New(); 31 | 32 | PlusStatus ReadConfiguration(vtkXMLDataElement* aConfig) override; 33 | 34 | protected: 35 | vtkPlusLandmarkDetectionAlgo(); 36 | virtual ~vtkPlusLandmarkDetectionAlgo(); 37 | }; 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /src/PlusCalibration/vtkPhantomLinearObjectRegistrationAlgo/Line.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #ifndef LINE_H 8 | #define LINE_H 9 | 10 | #include "LinearObject.h" 11 | #include 12 | #include 13 | #include 14 | #include 15 | 16 | // This class stores a vector of values and a string label 17 | class Line : public LinearObject 18 | { 19 | public: 20 | std::vector EndPoint; 21 | 22 | Line(); 23 | Line( std::vector newBasePoint, std::vector newEndPoint ); 24 | ~Line(); 25 | 26 | std::vector GetDirection(); 27 | std::vector ProjectVector( std::vector vector ); 28 | void Translate( std::vector vector ); 29 | 30 | std::vector GetOrthogonalNormal1(); 31 | std::vector GetOrthogonalNormal2(); 32 | 33 | virtual std::string ToXMLString() const; 34 | virtual void FromXMLElement( vtkXMLDataElement* element ); 35 | }; 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /src/PlusCalibration/vtkPhantomLinearObjectRegistrationAlgo/LinearObjectBuffer.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #ifndef LINEAROBJECTBUFFER_H 8 | #define LINEAROBJECTBUFFER_H 9 | 10 | #include "LinearObject.h" 11 | #include "Reference.h" 12 | #include "Point.h" 13 | #include "Line.h" 14 | #include "Plane.h" 15 | 16 | #include 17 | #include 18 | #include 19 | #include 20 | 21 | #include "vnl/vnl_matrix.h" 22 | #include "vnl/algo/vnl_matrix_inverse.h" 23 | 24 | // This class stores a vector of values and a string label 25 | class LinearObjectBuffer 26 | { 27 | private: 28 | std::vector objects; 29 | 30 | public: 31 | LinearObjectBuffer(); 32 | virtual ~LinearObjectBuffer(); 33 | 34 | int Size() const; 35 | LinearObject* GetLinearObject( int index ) const; 36 | LinearObject* GetLinearObject( std::string name ) const; 37 | void AddLinearObject( LinearObject* newObject ); 38 | void Concatenate( LinearObjectBuffer* catBuffer ); 39 | 40 | void Translate( std::vector vector ); 41 | 42 | void CalculateSignature( LinearObjectBuffer* refBuffer ); 43 | 44 | LinearObjectBuffer* GetMatches( LinearObjectBuffer* candidates, double matchingThreshold ); 45 | 46 | std::vector CalculateCentroid(); 47 | 48 | std::string ToXMLString() const; 49 | void FromXMLElement( vtkXMLDataElement* element ); 50 | 51 | }; 52 | 53 | #endif 54 | -------------------------------------------------------------------------------- /src/PlusCalibration/vtkPhantomLinearObjectRegistrationAlgo/Plane.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #ifndef PLANE_H 8 | #define PLANE_H 9 | 10 | 11 | #include "LinearObject.h" 12 | #include 13 | #include 14 | #include 15 | #include 16 | 17 | // This class stores a vector of values and a string label 18 | class Plane : public LinearObject 19 | { 20 | public: 21 | Plane(); 22 | Plane( std::vector newBasePoint, std::vector newEndPoint1, std::vector newEndPoint2 ); 23 | ~Plane(); 24 | 25 | std::vector GetNormal(); 26 | std::vector ProjectVector( std::vector vector ); 27 | void Translate( std::vector vector ); 28 | 29 | virtual std::string ToXMLString() const; 30 | virtual void FromXMLElement( vtkXMLDataElement* element ); 31 | 32 | protected: 33 | std::vector EndPoint1; 34 | std::vector EndPoint2; 35 | }; 36 | 37 | #endif 38 | 39 | //ETX -------------------------------------------------------------------------------- /src/PlusCalibration/vtkPhantomLinearObjectRegistrationAlgo/Planes.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #ifndef PLANES_H 8 | #define PLANES_H 9 | 10 | #include "Plane.h" 11 | #include 12 | 13 | class Planes 14 | { 15 | public: 16 | Planes(); 17 | ~Planes(); 18 | 19 | void Reset(); 20 | void InsertPlane(const Plane& newPlane); 21 | void RemovePlane(int index); 22 | const Plane& GetPlane(int index); 23 | int GetNumberOfPlanes(); 24 | 25 | std::vector::const_iterator PlanesBegin() const; 26 | std::vector::const_iterator PlanesEnd() const; 27 | 28 | Planes& operator=(const Planes& rhs); 29 | 30 | protected: 31 | std::vector m_PlaneList; 32 | }; 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /src/PlusCalibration/vtkPhantomLinearObjectRegistrationAlgo/Point.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #ifndef POINT_H 8 | #define POINT_H 9 | 10 | #include "LinearObject.h" 11 | 12 | #include 13 | #include 14 | #include 15 | #include 16 | 17 | // This class stores a vector of values and a string label 18 | class Point : public LinearObject 19 | { 20 | public: 21 | Point(); 22 | Point( std::vector newBasePoint ); 23 | ~Point(); 24 | 25 | std::vector ProjectVector( std::vector vector ); 26 | void Translate( std::vector vector ); 27 | 28 | virtual std::string ToXMLString() const; 29 | virtual void FromXMLElement( vtkXMLDataElement* element ); 30 | }; 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /src/PlusCalibration/vtkPhantomLinearObjectRegistrationAlgo/PointObservation.h: -------------------------------------------------------------------------------- 1 | //BTX 2 | 3 | #ifndef POINTOBSERVATION_H 4 | #define POINTOBSERVATION_H 5 | 6 | #include "LinearObject.h" 7 | 8 | #include 9 | #include 10 | #include 11 | #include 12 | 13 | #include "vtkXMLDataElement.h" 14 | #include "vnl/vnl_matrix.h" 15 | 16 | 17 | // This class stores a vector of values only - we do not care about time 18 | class PointObservation 19 | { 20 | public: 21 | std::vector Observation; 22 | static const int SIZE = 3; 23 | 24 | public: 25 | PointObservation(); 26 | PointObservation( std::vector newObservation ); 27 | ~PointObservation(); 28 | 29 | void Translate ( std::vector translation ); 30 | void Rotate( vnl_matrix* rotation ); 31 | 32 | std::string ToXMLString(); 33 | void FromXMLElement( vtkXMLDataElement* element ); 34 | bool FromXMLElement( vtkXMLDataElement* currElement, vtkXMLDataElement* prevElement ); 35 | 36 | }; 37 | 38 | #endif 39 | 40 | //ETX -------------------------------------------------------------------------------- /src/PlusCalibration/vtkPhantomLinearObjectRegistrationAlgo/Reference.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #ifndef REFERENCE_H 8 | #define REFERENCE_H 9 | 10 | #include "LinearObject.h" 11 | 12 | #include 13 | #include 14 | #include 15 | #include 16 | 17 | // This class stores a vector of values and a string label 18 | class Reference : public LinearObject 19 | { 20 | public: 21 | Reference(); 22 | Reference( std::vector newBasePoint ); 23 | ~Reference(); 24 | 25 | std::vector ProjectVector( std::vector vector ); 26 | void Translate( std::vector vector ); 27 | 28 | virtual std::string ToXMLString() const; 29 | virtual void FromXMLElement( vtkXMLDataElement* element ); 30 | 31 | }; 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /src/PlusCalibration/vtkPhantomLinearObjectRegistrationAlgo/References.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #ifndef REFERENCES_H 8 | #define REFERENCES_H 9 | 10 | #include "Reference.h" 11 | #include 12 | 13 | class References 14 | { 15 | public: 16 | References(); 17 | ~References(); 18 | 19 | void Reset(); 20 | void InsertReference(const Reference& newReference); 21 | void RemoveReference(int index); 22 | const Reference& GetReference(int index); 23 | int GetNumberOfReferences(); 24 | 25 | std::vector::const_iterator ReferencesBegin() const; 26 | std::vector::const_iterator ReferencesEnd() const; 27 | 28 | References& operator=(const References& rhs); 29 | 30 | protected: 31 | std::vector m_ReferenceList; 32 | }; 33 | 34 | #endif -------------------------------------------------------------------------------- /src/PlusCalibration/vtkPivotCalibrationAlgo/vtkPlusPivotCalibrationAlgo.cxx: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #include "vtkPlusPivotCalibrationAlgo.h" 8 | 9 | vtkStandardNewMacro(vtkPlusPivotCalibrationAlgo); 10 | 11 | //----------------------------------------------------------------------------- 12 | vtkPlusPivotCalibrationAlgo::vtkPlusPivotCalibrationAlgo() 13 | { 14 | } 15 | 16 | //----------------------------------------------------------------------------- 17 | vtkPlusPivotCalibrationAlgo::~vtkPlusPivotCalibrationAlgo() 18 | { 19 | } 20 | 21 | //----------------------------------------------------------------------------- 22 | PlusStatus vtkPlusPivotCalibrationAlgo::ReadConfiguration(vtkXMLDataElement* aConfig) 23 | { 24 | XML_FIND_NESTED_ELEMENT_REQUIRED(pivotCalibrationElement, aConfig, "vtkPlusPivotCalibrationAlgo"); 25 | XML_READ_CSTRING_ATTRIBUTE_REQUIRED(ObjectMarkerCoordinateFrame, pivotCalibrationElement); 26 | XML_READ_CSTRING_ATTRIBUTE_REQUIRED(ReferenceCoordinateFrame, pivotCalibrationElement); 27 | XML_READ_CSTRING_ATTRIBUTE_REQUIRED(ObjectPivotPointCoordinateFrame, pivotCalibrationElement); 28 | return PLUS_SUCCESS; 29 | } 30 | -------------------------------------------------------------------------------- /src/PlusCommon/vtkPlusLogger.cxx: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #include "PlusConfigure.h" 8 | #include "PlusCommon.h" 9 | #include "vtkPlusLogger.h" 10 | 11 | //----------------------------------------------------------------------------- 12 | namespace 13 | { 14 | vtkIGSIOSimpleRecursiveCriticalSection LoggerCreationCriticalSection; 15 | } 16 | 17 | //------------------------------------------------------- 18 | vtkPlusLogger::vtkPlusLogger() 19 | { 20 | } 21 | 22 | //------------------------------------------------------- 23 | vtkPlusLogger::~vtkPlusLogger() 24 | { 25 | } 26 | 27 | //------------------------------------------------------- 28 | vtkIGSIOLogger* vtkPlusLogger::Instance() 29 | { 30 | if (m_pInstance == NULL) 31 | { 32 | igsioLockGuard loggerCreationGuard(&LoggerCreationCriticalSection); 33 | if (m_pInstance != NULL) 34 | { 35 | return m_pInstance; 36 | } 37 | 38 | vtkPlusLogger* newLoggerInstance = new vtkPlusLogger; 39 | // lock the instance even before making it available to make sure the instance is fully 40 | // initialized before anybody uses it 41 | igsioLockGuard critSectionGuard(newLoggerInstance->m_CriticalSection); 42 | m_pInstance = newLoggerInstance; 43 | 44 | vtkPlusConfig::GetInstance(); // set the log file name from the XML config 45 | std::string strVersion = std::string("Software version: ") + 46 | PlusCommon::GetPlusLibVersionString(); 47 | 48 | #ifdef _DEBUG 49 | strVersion += " (debug build)"; 50 | #endif 51 | 52 | m_pInstance->LogMessage(LOG_LEVEL_INFO, strVersion, "vtkPlusLogger", __LINE__); 53 | } 54 | 55 | return m_pInstance; 56 | } 57 | -------------------------------------------------------------------------------- /src/PlusCommon/vtkPlusLogger.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #ifndef __vtkPlusLogger_h 8 | #define __vtkPlusLogger_h 9 | 10 | // IGSIO includes 11 | #include 12 | 13 | // PlusCommon includes 14 | #include "vtkPlusCommonExport.h" 15 | 16 | /*! 17 | \class vtkPlusLogger 18 | \brief Class to abstract away specific sequence file read/write details 19 | \ingroup PlusLibCommon 20 | */ 21 | class vtkPlusCommonExport vtkPlusLogger : public vtkIGSIOLogger 22 | { 23 | public: 24 | static vtkIGSIOLogger* Instance(); 25 | 26 | private: 27 | vtkPlusLogger(); 28 | ~vtkPlusLogger(); 29 | }; 30 | 31 | #endif // __vtkPlusLogger_h 32 | -------------------------------------------------------------------------------- /src/PlusCommon/vtkPlusSequenceIO.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #ifndef __vtkPlusSequenceIO_h 8 | #define __vtkPlusSequenceIO_h 9 | 10 | #include "igsioCommon.h" 11 | 12 | /*! 13 | \class vtkPlusSequenceIO 14 | \brief Class to abstract away specific sequence file read/write details 15 | \ingroup PlusLibCommon 16 | */ 17 | class vtkPlusCommonExport vtkPlusSequenceIO : public vtkObject 18 | { 19 | public: 20 | /*! Write object contents into file */ 21 | static igsioStatus Write(const std::string& filename, igsioTrackedFrame* frame, US_IMAGE_ORIENTATION orientationInFile = US_IMG_ORIENT_MF, bool useCompression = true, bool EnableImageDataWrite = true); 22 | 23 | /*! Write object contents into file */ 24 | static igsioStatus Write(const std::string& filename, vtkIGSIOTrackedFrameList* frameList, US_IMAGE_ORIENTATION orientationInFile = US_IMG_ORIENT_MF, bool useCompression = true, bool EnableImageDataWrite = true); 25 | 26 | /*! Read file contents into the object */ 27 | static igsioStatus Read(const std::string& filename, vtkIGSIOTrackedFrameList* frameList); 28 | 29 | protected: 30 | vtkPlusSequenceIO(); 31 | virtual ~vtkPlusSequenceIO(); 32 | }; 33 | 34 | #endif // __vtkPlusSequenceIO_h 35 | -------------------------------------------------------------------------------- /src/PlusConfig.xml.in: -------------------------------------------------------------------------------- 1 | 8 | 9 | -------------------------------------------------------------------------------- /src/PlusDataCollection/Ascension3DGTracking/vtkPlusAscension3DGTracker.cxx: -------------------------------------------------------------------------------- 1 | // trakSTAR 2 | 3 | #include "PlusConfigure.h" 4 | 5 | #include "vtkPlusAscension3DGTracker.h" 6 | 7 | #include "ATC3DG.h" 8 | 9 | #define vtkPlusAscension3DGTrackerBase vtkAscension3DGTracker 10 | #define ATC_READ_ALL_SENSOR_AT_ONCE 11 | #include "vtkPlusAscension3DGTrackerBase.cxx" 12 | #undef vtkPlusAscension3DGTrackerBase 13 | #undef ATC_READ_ALL_SENSOR_AT_ONCE 14 | -------------------------------------------------------------------------------- /src/PlusDataCollection/Ascension3DGTracking/vtkPlusAscension3DGTracker.h: -------------------------------------------------------------------------------- 1 | #ifndef __vtkAscension3DGTracker_h 2 | #define __vtkAscension3DGTracker_h 3 | 4 | #define vtkPlusAscension3DGTrackerBase vtkAscension3DGTracker 5 | #include "vtkPlusAscension3DGTrackerBase.h" 6 | #undef vtkPlusAscension3DGTrackerBase 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /src/PlusDataCollection/Ascension3DGTracking/vtkPlusAscension3DGTrackerBase.cxx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusDataCollection/Ascension3DGTracking/vtkPlusAscension3DGTrackerBase.cxx -------------------------------------------------------------------------------- /src/PlusDataCollection/Ascension3DGTracking/vtkPlusAscension3DGmTracker.cxx: -------------------------------------------------------------------------------- 1 | // medSAFE 2 | 3 | #include "PlusConfigure.h" 4 | 5 | #include "vtkAscension3DGmTracker.h" 6 | 7 | #include "ATC3DGm.h" 8 | 9 | #define vtkPlusAscension3DGTrackerBase vtkAscension3DGmTracker 10 | #undef ATC_READ_ALL_SENSOR_AT_ONCE 11 | #include "vtkPlusAscension3DGTrackerBase.cxx" 12 | #undef vtkPlusAscension3DGTrackerBase 13 | -------------------------------------------------------------------------------- /src/PlusDataCollection/Ascension3DGTracking/vtkPlusAscension3DGmTracker.h: -------------------------------------------------------------------------------- 1 | #ifndef __vtkAscension3DGmTracker_h 2 | #define __vtkAscension3DGmTracker_h 3 | 4 | #define vtkPlusAscension3DGTrackerBase vtkAscension3DGmTracker 5 | #include "vtkPlusAscension3DGTrackerBase.h" 6 | #undef vtkPlusAscension3DGTrackerBase 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /src/PlusDataCollection/BkProFocus/vtkPNGPrivate.h.in: -------------------------------------------------------------------------------- 1 | #ifndef __vtkPNGPrivate_h__ 2 | #define __vtkPNGPrivate_h__ 3 | 4 | #include <${VTK_SRC_DIR}/ThirdParty/png/vtkpng/pngpriv.h> 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /src/PlusDataCollection/BlackMagic/DeckLinkAPIWrapper.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #ifndef __DeckLinkAPIWrapper_h__ 8 | #define __DeckLinkAPIWrapper_h__ 9 | 10 | #if WIN32 11 | // Windows includes 12 | #include 13 | #endif 14 | 15 | // DeckLink includes 16 | #include 17 | 18 | // STL includes 19 | #include 20 | 21 | #ifndef BMD_PUBLIC 22 | #define BMD_PUBLIC 23 | #endif 24 | 25 | class DeckLinkAPIWrapper 26 | { 27 | public: 28 | static IDeckLinkIterator* BMD_PUBLIC CreateDeckLinkIterator(); 29 | static IDeckLinkDiscovery* BMD_PUBLIC CreateDeckLinkDiscovery(); 30 | static IDeckLinkAPIInformation* BMD_PUBLIC CreateDeckLinkAPIInformation(); 31 | static IDeckLinkGLScreenPreviewHelper* BMD_PUBLIC CreateOpenGLScreenPreviewHelper(); 32 | static IDeckLinkVideoConversion* BMD_PUBLIC CreateVideoConversion(); 33 | static IDeckLinkVideoFrameAncillaryPackets* BMD_PUBLIC CreateVideoFrameAncillaryPackets(); 34 | 35 | static BMDPixelFormat PixelFormatFromString(const std::string&); 36 | static BMDVideoConnection VideoConnectionFromString(const std::string&); 37 | static BMDDisplayMode DisplayModeFromString(const std::string&); 38 | }; 39 | 40 | #endif 41 | -------------------------------------------------------------------------------- /src/PlusDataCollection/Clarius/ClariusWifi.h: -------------------------------------------------------------------------------- 1 | #ifndef _CLARIUSWIFI_H 2 | #define _CLARIUSWIFI_H 3 | 4 | // local includes 5 | #include "PlusConfigure.h" 6 | 7 | // Windows includes 8 | #include 9 | #include 10 | #include 11 | #include 12 | 13 | // STL includes 14 | #include 15 | #include 16 | 17 | class ClariusWifi 18 | { 19 | public: 20 | ClariusWifi(); 21 | ~ClariusWifi(); 22 | 23 | /*! Set up WLAN api. Must be called before any other function in this class. 24 | Sets the HClient and CurApiVersion members */ 25 | PlusStatus Initialize(); 26 | /*! Releases handle and resources from WLAN api */ 27 | PlusStatus DeInitialize(); 28 | 29 | /*! Check if the Clarius network (SSID: DIRECT-***SN***) is available yet. 30 | Sets the InterfaceGuid member if Clarius network found */ 31 | PlusStatus IsClariusNetworkReady(std::string ssid); 32 | 33 | PlusStatus IsClariusNetworkConnected(); 34 | 35 | /*! Connect to the Clarius probe wifi network */ 36 | PlusStatus ConnectToClariusWifi(std::string ssid, std::string password); 37 | 38 | /*! Disconnect from the Clarius probe wifi network */ 39 | PlusStatus DisconnectFromClariusWifi(); 40 | 41 | /*! Update the contents of the profile for the Clarius Wi-Fi network */ 42 | PlusStatus UpdateClariusWifiProfile(std::string ssid, std::string password); 43 | 44 | private: 45 | 46 | /*! Helper function to convert a std::string to WLAN api SSID */ 47 | PlusStatus StringToSsid(std::string ssid, PDOT11_SSID pdot11_ssid); 48 | 49 | bool Connected; // are we currently connected to Clarius Wifi network 50 | HANDLE HClient; // client handle 51 | DWORD CurApiVersion; // negotiated WLAN api version 52 | GUID InterfaceGuid; // WLAN interface to connect to the Clarius over 53 | DOT11_BSS_TYPE BssType; // BSS type to connect to 54 | }; 55 | 56 | #endif // _CLARIUSWIFI_H -------------------------------------------------------------------------------- /src/PlusDataCollection/GenericSensor/vtkPlusGenericSensorTracker.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Progra : Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #ifndef __vtkPlusGenericSensorTracker_h 8 | #define __vtkPlusGenericSensorTracker_h 9 | 10 | #include "vtkPlusDataCollectionExport.h" 11 | #include "vtkPlusDevice.h" 12 | 13 | /*! 14 | \class vtkPlusGenericSensorTracker 15 | \brief Interface class to collect sensor data in a generic way 16 | \ingroup PlusLibDataCollection 17 | 18 | For now, the following sensor types are supported: 19 | - Accelerometer 20 | */ 21 | class vtkPlusDataCollectionExport vtkPlusGenericSensorTracker : public vtkPlusDevice 22 | { 23 | public: 24 | 25 | static vtkPlusGenericSensorTracker* New(); 26 | 27 | vtkTypeMacro(vtkPlusGenericSensorTracker, vtkPlusDevice); 28 | void PrintSelf(ostream& os, vtkIndent indent) override; 29 | PlusStatus ReadConfiguration(vtkXMLDataElement* config) override; 30 | 31 | bool IsTracker() const 32 | { 33 | return true; 34 | } 35 | 36 | PlusStatus InternalConnect() override; 37 | PlusStatus InternalDisconnect() override; 38 | PlusStatus InternalStartRecording() override; 39 | PlusStatus InternalStopRecording() override; 40 | PlusStatus Probe() override; 41 | PlusStatus InternalUpdate() override; 42 | 43 | protected: 44 | vtkPlusGenericSensorTracker(); 45 | ~vtkPlusGenericSensorTracker(); 46 | 47 | private: 48 | vtkPlusGenericSensorTracker(const vtkPlusGenericSensorTracker&); 49 | void operator=(const vtkPlusGenericSensorTracker&); 50 | 51 | class vtkInternal; 52 | vtkInternal* Internal; 53 | 54 | unsigned long FrameNumber; 55 | }; 56 | 57 | #endif -------------------------------------------------------------------------------- /src/PlusDataCollection/Haptics/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | PROJECT(PlusHaptics) 2 | 3 | # Add entries to project details 4 | SET(${PROJECT_NAME}_INCLUDE_DIRS 5 | ${${PROJECT_NAME}_SOURCE_DIR} 6 | ${${PROJECT_NAME}_BINARY_DIR} 7 | CACHE INTERNAL "" FORCE) 8 | 9 | SET(${PROJECT_NAME}_SRCS 10 | vtkPlusForceFeedback.cxx 11 | vtkPlusHapticForce.cxx 12 | vtkPlusImplicitSplineForce.cxx 13 | vtkPlusPolydataForce.cxx 14 | ) 15 | 16 | SET(${PROJECT_NAME}_HDRS 17 | vtkPlusForceFeedback.h 18 | vtkPlusHapticForce.h 19 | vtkPlusImplicitSplineForce.h 20 | vtkPlusPolydataForce.h 21 | ) 22 | 23 | SET_SOURCE_FILES_PROPERTIES( 24 | vtkPlusForceFeedback 25 | ABSTRACT 26 | ) 27 | 28 | SET(${PROJECT_NAME}_LIBS 29 | vtkPlusCommon 30 | ${PLUSLIB_VTK_PREFIX}CommonCore 31 | ${PLUSLIB_VTK_PREFIX}CommonDataModel 32 | ${PLUSLIB_VTKSYS} 33 | ) 34 | 35 | # ----------------------------------------------------------------- 36 | # Build the library 37 | GENERATE_EXPORT_DIRECTIVE_FILE(vtk${PROJECT_NAME}) 38 | ADD_LIBRARY(vtk${PROJECT_NAME} ${${PROJECT_NAME}_SRCS} ${${PROJECT_NAME}_HDRS}) 39 | FOREACH(p IN LISTS ${PROJECT_NAME}_INCLUDE_DIRS) 40 | target_include_directories(vtk${PROJECT_NAME} PUBLIC $) 41 | ENDFOREACH() 42 | target_include_directories(vtk${PROJECT_NAME} PUBLIC $) 43 | TARGET_LINK_LIBRARIES(vtk${PROJECT_NAME} ${${PROJECT_NAME}_LIBS}) 44 | PlusLibAddVersionInfo(vtk${PROJECT_NAME} "Library containing code for interacting with haptic devices. Part of the Plus toolkit." vtk${PROJECT_NAME} vtk${PROJECT_NAME}) 45 | 46 | # -------------------------------------------------------------------------- 47 | # Install 48 | # 49 | PlusLibInstallLibrary(vtk${PROJECT_NAME} ${PROJECT_NAME}) -------------------------------------------------------------------------------- /src/PlusDataCollection/Haptics/vtkPlusForceFeedback.cxx: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) John SH Baxter, Robarts Research Institute. All rights reserved. 4 | See License.txt for details. 5 | =========================================================================*/ 6 | 7 | #include "PlusConfigure.h" 8 | 9 | #include "vtkPlusForceFeedback.h" 10 | #include "vtkObjectFactory.h" 11 | #include "vtkMatrix4x4.h" 12 | 13 | //---------------------------------------------------------------------------- 14 | 15 | vtkStandardNewMacro(vtkPlusForceFeedback) 16 | 17 | //---------------------------------------------------------------------------- 18 | void vtkPlusForceFeedback::PrintSelf(ostream& os, vtkIndent indent) 19 | { 20 | vtkObject::PrintSelf(os,indent); 21 | } 22 | 23 | //---------------------------------------------------------------------------- 24 | vtkPlusForceFeedback::vtkPlusForceFeedback() 25 | { 26 | } 27 | 28 | //---------------------------------------------------------------------------- 29 | vtkPlusForceFeedback::~vtkPlusForceFeedback() 30 | { 31 | } 32 | 33 | //---------------------------------------------------------------------------- 34 | int vtkPlusForceFeedback::GenerateForce(vtkMatrix4x4 * hapticPosition, double force[3]) 35 | { 36 | return 0; 37 | } 38 | -------------------------------------------------------------------------------- /src/PlusDataCollection/Haptics/vtkPlusForceFeedback.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) John SH Baxter, Robarts Research Institute. All rights reserved. 4 | See License.txt for details. 5 | =========================================================================*/ 6 | 7 | #ifndef __vtkPlusForceFeedback_h 8 | #define __vtkPlusForceFeedback_h 9 | 10 | #include "PlusConfigure.h" 11 | #include "vtkPlusHapticsExport.h" 12 | 13 | #include "vtkObject.h" 14 | 15 | class vtkMatrix4x4; 16 | 17 | class vtkPlusHapticsExport vtkPlusForceFeedback : public vtkObject 18 | { 19 | public: 20 | static vtkPlusForceFeedback *New(); 21 | 22 | vtkTypeMacro(vtkPlusForceFeedback,vtkObject); 23 | 24 | virtual void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE; 25 | 26 | virtual int GenerateForce(vtkMatrix4x4 * hapticPosition, double force[3]); 27 | ~vtkPlusForceFeedback(); 28 | 29 | protected: 30 | vtkPlusForceFeedback(); 31 | }; 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /src/PlusDataCollection/Haptics/vtkPlusHapticForce.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) John SH Baxter, Robarts Research Institute. All rights reserved. 4 | See License.txt for details. 5 | =========================================================================*/ 6 | 7 | #ifndef __vtkPlusHapticForce_h 8 | #define __vtkPlusHapticForce_h 9 | 10 | #include "PlusConfigure.h" 11 | #include "vtkPlusHapticsExport.h" 12 | 13 | #include "vtkObject.h" 14 | #include 15 | 16 | class vtkPlusForceFeedback; 17 | 18 | class vtkPlusHapticsExport vtkPlusHapticForce : public vtkObject 19 | { 20 | public: 21 | static vtkPlusHapticForce *New(); 22 | vtkTypeMacro(vtkPlusHapticForce,vtkObject); 23 | virtual void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE; 24 | 25 | void AddForceModel(vtkPlusForceFeedback * force); 26 | void InsertForceModel(unsigned int position, vtkPlusForceFeedback * force); 27 | vtkPlusForceFeedback * GetForceModel(int position); 28 | int GetNumberOfFrames(); 29 | 30 | protected: 31 | vtkPlusHapticForce(); 32 | ~vtkPlusHapticForce(); 33 | 34 | private: 35 | std::vector forceModel; 36 | int NumberOfFrames; 37 | }; 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /src/PlusDataCollection/Haptics/vtkPlusPolydataForce.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) John SH Baxter, Robarts Research Institute. All rights reserved. 4 | See License.txt for details. 5 | =========================================================================*/ 6 | 7 | #ifndef __vtkPlusPolydataForce_h 8 | #define __vtkPlusPolydataForce_h 9 | 10 | #include "PlusConfigure.h" 11 | #include "vtkPlusHapticsExport.h" 12 | 13 | #include "vtkPlusForceFeedback.h" 14 | 15 | class vtkPolyData; 16 | 17 | class vtkPlusHapticsExport vtkPlusPolydataForce : public vtkPlusForceFeedback 18 | { 19 | public: 20 | static vtkPlusPolydataForce *New(); 21 | vtkTypeMacro(vtkPlusPolydataForce, vtkPlusForceFeedback); 22 | virtual void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE; 23 | 24 | int GenerateForce(vtkMatrix4x4 * transformMatrix, double force[3]); 25 | int SetGamma(double gamma); 26 | void SetInput(vtkPolyData * poly); 27 | 28 | protected: 29 | vtkPlusPolydataForce(); 30 | virtual ~vtkPlusPolydataForce(); 31 | double CalculateDistance(double x, double y, double z); 32 | void CalculateForce(double x, double y, double z, double force[3]); 33 | 34 | private: 35 | vtkPolyData * poly; 36 | double gammaSigmoid; 37 | double scaleForce; 38 | double lastPos[3]; 39 | }; 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /src/PlusDataCollection/NDICAPITracking/vtkPlusNDITracker.cxx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusDataCollection/NDICAPITracking/vtkPlusNDITracker.cxx -------------------------------------------------------------------------------- /src/PlusDataCollection/NVidiaDVP/nvConfigure.h.in: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #ifndef __nvConfigure_h 8 | #define __nvConfigure_h 9 | 10 | #include <${QuadroSDI_INCLUDE_DIRS}/gl/gl.h> 11 | #include <${QuadroSDI_INCLUDE_DIRS}/gl/glext.h> 12 | #include <${QuadroSDI_INCLUDE_DIRS}/gl/wglext.h> 13 | 14 | #endif -------------------------------------------------------------------------------- /src/PlusDataCollection/Optimet/vtkPlusOptimetConoProbeMeasurer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusDataCollection/Optimet/vtkPlusOptimetConoProbeMeasurer.h -------------------------------------------------------------------------------- /src/PlusDataCollection/SonixVideo/itkUlteriusImageIOFactory.cxx: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #include "PlusConfigure.h" 8 | 9 | #include "itkUlteriusImageIOFactory.h" 10 | #include "itkCreateObjectFunction.h" 11 | #include "itkUlteriusImageIO.h" 12 | #include "itkVersion.h" 13 | 14 | 15 | namespace itk 16 | { 17 | UlteriusImageIOFactory::UlteriusImageIOFactory() 18 | { 19 | this->RegisterOverride("itkImageIOBase", 20 | "itkUlteriusImageIO", 21 | "Ulterius Image IO", 22 | 1, 23 | CreateObjectFunction::New()); 24 | } 25 | 26 | UlteriusImageIOFactory::~UlteriusImageIOFactory() 27 | { 28 | } 29 | 30 | const char* 31 | UlteriusImageIOFactory::GetITKSourceVersion() const 32 | { 33 | return ITK_SOURCE_VERSION; 34 | } 35 | 36 | const char* 37 | UlteriusImageIOFactory::GetDescription() const 38 | { 39 | return "Ulterius ImageIO Factory, allows the loading of Ulterius images into insight"; 40 | } 41 | 42 | } // end namespace itk 43 | -------------------------------------------------------------------------------- /src/PlusDataCollection/SonixVideo/itkUlteriusImageIOFactory.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #ifndef __itkUlteriusImageIOFactory_h 8 | #define __itkUlteriusImageIOFactory_h 9 | 10 | #include "itkObjectFactoryBase.h" 11 | #include "itkImageIOBase.h" 12 | 13 | namespace itk 14 | { 15 | /*! \class UlteriusImageIOFactory 16 | * \brief Create instances of UlteriusImageIO objects using an object factory. 17 | */ 18 | class UlteriusImageIOFactory : public ObjectFactoryBase 19 | { 20 | public: 21 | /*! Standard class typedefs. */ 22 | typedef UlteriusImageIOFactory Self; 23 | typedef ObjectFactoryBase Superclass; 24 | typedef SmartPointer Pointer; 25 | typedef SmartPointer ConstPointer; 26 | 27 | /*! Class methods used to interface with the registered factories. */ 28 | virtual const char* GetITKSourceVersion() const; 29 | virtual const char* GetDescription() const; 30 | 31 | /*! Method for class instantiation. */ 32 | itkFactorylessNewMacro(Self); 33 | 34 | /*! Run-time type information (and related methods). */ 35 | itkTypeMacro(UlteriusImageIOFactory, ObjectFactoryBase); 36 | 37 | /*! Register one factory of this type */ 38 | static void RegisterOneFactory() 39 | { 40 | Pointer ulteriusFactory = New(); 41 | ObjectFactoryBase::RegisterFactory(ulteriusFactory); 42 | } 43 | 44 | protected: 45 | UlteriusImageIOFactory(); 46 | ~UlteriusImageIOFactory(); 47 | 48 | private: 49 | UlteriusImageIOFactory(const Self&); //purposely not implemented 50 | void operator=(const Self&); //purposely not implemented 51 | 52 | }; 53 | 54 | } // end namespace itk 55 | 56 | #endif 57 | -------------------------------------------------------------------------------- /src/PlusDataCollection/SonixVideo/vtkPlusSonixVolumeReader.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #ifndef _vtkPlusSONIXVOLUMEREADER_H_ 8 | #define _vtkPlusSONIXVOLUMEREADER_H_ 9 | 10 | #include "PlusConfigure.h" 11 | #include "vtkPlusDataCollectionExport.h" 12 | 13 | #include "vtkImageAlgorithm.h" 14 | 15 | //class vtkIGSIOTrackedFrameList; 16 | 17 | /*! 18 | \class vtkPlusSonixVolumeReader 19 | \brief Reads a volume from file to tracked frame list 20 | \ingroup PlusLibDataCollection 21 | */ 22 | class vtkPlusDataCollectionExport vtkPlusSonixVolumeReader: public vtkImageAlgorithm 23 | { 24 | public: 25 | static vtkPlusSonixVolumeReader *New(); 26 | vtkTypeMacro(vtkPlusSonixVolumeReader,vtkImageAlgorithm); 27 | virtual void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE; 28 | 29 | /*! Read a volume from Ultrasonix format (.b8, .b32, .bpr, .rf) and convert it to tracked frame */ 30 | static PlusStatus GenerateTrackedFrameFromSonixVolume(const char* volumeFileName, vtkIGSIOTrackedFrameList* trackedFrameList, double acquisitionFrameRate = 10); 31 | 32 | protected: 33 | /*! Constructor */ 34 | vtkPlusSonixVolumeReader(); 35 | /*! Destructor */ 36 | ~vtkPlusSonixVolumeReader(); 37 | private: 38 | vtkPlusSonixVolumeReader(const vtkPlusSonixVolumeReader&); 39 | void operator=(const vtkPlusSonixVolumeReader&); 40 | }; 41 | 42 | #endif 43 | -------------------------------------------------------------------------------- /src/PlusDataCollection/SteamVR/vtkPlusSteamVRTracker.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #ifndef __vtkPlusSteamVR_h 8 | #define __vtkPlusSteamVR_h 9 | 10 | #include "vtkPlusDataCollectionExport.h" 11 | #include "vtkPlusDevice.h" 12 | 13 | class vtkPlusDataSource; 14 | 15 | namespace vr 16 | { 17 | class IVRSystem; 18 | } 19 | 20 | class vtkPlusDataCollectionExport vtkPlusSteamVRTracker : public vtkPlusDevice 21 | { 22 | public: 23 | static vtkPlusSteamVRTracker* New(); 24 | vtkTypeMacro(vtkPlusSteamVRTracker, vtkPlusDevice); 25 | void PrintSelf(ostream& os, vtkIndent indent); 26 | 27 | virtual bool IsTracker() const { return true; } 28 | 29 | virtual PlusStatus Probe(); 30 | 31 | protected: 32 | vtkPlusSteamVRTracker(); 33 | ~vtkPlusSteamVRTracker(); 34 | 35 | protected: 36 | vtkPlusSteamVRTracker(const vtkPlusSteamVRTracker&); 37 | void operator=(const vtkPlusSteamVRTracker&); 38 | 39 | /*! Called after all devices have been configured / inputs & outputs are connected / collection of data not started*/ 40 | virtual PlusStatus NotifyConfigured(); 41 | 42 | virtual PlusStatus InternalConnect(); 43 | virtual PlusStatus InternalDisconnect(); 44 | virtual PlusStatus InternalUpdate(); 45 | 46 | vtkPlusDataSource* HMDSource; 47 | vtkPlusDataSource* LeftControllerSource; 48 | vtkPlusDataSource* RightControllerSource; 49 | 50 | vr::IVRSystem* VRContext; 51 | 52 | double SteamVRConnectionTimeout; 53 | }; 54 | 55 | #endif 56 | -------------------------------------------------------------------------------- /src/PlusDataCollection/Telemed/x64/USgfw2.tlb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusDataCollection/Telemed/x64/USgfw2.tlb -------------------------------------------------------------------------------- /src/PlusDataCollection/Telemed/x64/dlldata.c: -------------------------------------------------------------------------------- 1 | /********************************************************* 2 | DllData file -- generated by MIDL compiler 3 | 4 | DO NOT ALTER THIS FILE 5 | 6 | This file is regenerated by MIDL on every IDL file compile. 7 | 8 | To completely reconstruct this file, delete it and rerun MIDL 9 | on all the IDL files in this DLL, specifying this file for the 10 | /dlldata command line option 11 | 12 | *********************************************************/ 13 | 14 | #define PROXY_DELEGATION 15 | 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | EXTERN_PROXY_FILE( USgfw2 ) 23 | 24 | 25 | PROXYFILE_LIST_START 26 | /* Start of list */ 27 | REFERENCE_PROXY_FILE( USgfw2 ), 28 | /* End of list */ 29 | PROXYFILE_LIST_END 30 | 31 | 32 | DLLDATA_ROUTINES( aProxyFileList, GET_DLL_CLSID ) 33 | 34 | #ifdef __cplusplus 35 | } /*extern "C" */ 36 | #endif 37 | 38 | /* end of generated dlldata file */ 39 | -------------------------------------------------------------------------------- /src/PlusDataCollection/Telemed/x86/USgfw2.tlb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusDataCollection/Telemed/x86/USgfw2.tlb -------------------------------------------------------------------------------- /src/PlusDataCollection/Telemed/x86/dlldata.c: -------------------------------------------------------------------------------- 1 | /********************************************************* 2 | DllData file -- generated by MIDL compiler 3 | 4 | DO NOT ALTER THIS FILE 5 | 6 | This file is regenerated by MIDL on every IDL file compile. 7 | 8 | To completely reconstruct this file, delete it and rerun MIDL 9 | on all the IDL files in this DLL, specifying this file for the 10 | /dlldata command line option 11 | 12 | *********************************************************/ 13 | 14 | #define PROXY_DELEGATION 15 | 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | EXTERN_PROXY_FILE( USgfw2 ) 23 | 24 | 25 | PROXYFILE_LIST_START 26 | /* Start of list */ 27 | REFERENCE_PROXY_FILE( USgfw2 ), 28 | /* End of list */ 29 | PROXYFILE_LIST_END 30 | 31 | 32 | DLLDATA_ROUTINES( aProxyFileList, GET_DLL_CLSID ) 33 | 34 | #ifdef __cplusplus 35 | } /*extern "C" */ 36 | #endif 37 | 38 | /* end of generated dlldata file */ 39 | -------------------------------------------------------------------------------- /src/PlusDataCollection/Tools/PlusVersion.cxx: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #include "PlusConfigure.h" 8 | #include "vtksys/CommandLineArguments.hxx" 9 | #include "vtkPlusDeviceFactory.h" 10 | 11 | int main(int argc, char **argv) 12 | { 13 | bool printHelp(false); 14 | bool printShortVersionInfo=false; 15 | 16 | vtksys::CommandLineArguments args; 17 | args.Initialize( argc, argv ); 18 | args.AddArgument("--help", vtksys::CommandLineArguments::NO_ARGUMENT, &printHelp, "Print this help."); 19 | args.AddArgument( "--short", vtksys::CommandLineArguments::NO_ARGUMENT, &printShortVersionInfo, "Print short version information, without list of supported devices (by default print detailed information)" ); 20 | 21 | if ( !args.Parse() ) 22 | { 23 | std::cerr << "Problem parsing arguments." << std::endl; 24 | std::cout << "Help: " << args.GetHelp() << std::endl; 25 | exit(EXIT_FAILURE); 26 | } 27 | 28 | if ( printHelp ) 29 | { 30 | std::cout << args.GetHelp() << std::endl; 31 | exit(EXIT_SUCCESS); 32 | } 33 | 34 | // don't print |INFO| 35 | vtkPlusLogger::Instance()->SetLogLevel(vtkPlusLogger::LOG_LEVEL_ERROR); 36 | 37 | if (!printShortVersionInfo) 38 | { 39 | vtkSmartPointer deviceFactory = vtkSmartPointer::New(); 40 | std::ostringstream supportedDevices; 41 | deviceFactory->PrintAvailableDevices(supportedDevices, vtkIndent()); 42 | std::cout << supportedDevices.str(); 43 | } 44 | 45 | return EXIT_SUCCESS; 46 | } -------------------------------------------------------------------------------- /src/PlusDataCollection/VirtualDevices/vtkPlusVirtualMixer.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #ifndef __vtkPlusVirtualMixer_h 8 | #define __vtkPlusVirtualMixer_h 9 | 10 | #include "vtkPlusDataCollectionExport.h" 11 | 12 | #include "vtkPlusDevice.h" 13 | 14 | class vtkPlusChannel; 15 | 16 | /*! 17 | \class vtkPlusVirtualMixer 18 | \brief 19 | 20 | \ingroup PlusLibDataCollection 21 | */ 22 | class vtkPlusDataCollectionExport vtkPlusVirtualMixer : public vtkPlusDevice 23 | { 24 | public: 25 | static vtkPlusVirtualMixer *New(); 26 | vtkTypeMacro(vtkPlusVirtualMixer,vtkPlusDevice); 27 | virtual void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE; 28 | 29 | /*! Answer if device is a tracker */ 30 | virtual bool IsTracker() const; 31 | 32 | virtual bool IsVirtual() const { return true; } 33 | 34 | /*! 35 | Return whether or not the device can be reset 36 | */ 37 | virtual bool IsResettable(); 38 | 39 | /*! Read main configuration from xml data */ 40 | virtual PlusStatus ReadConfiguration(vtkXMLDataElement*); 41 | 42 | // Virtual stream mixers output only one stream 43 | vtkPlusChannel* GetChannel() const; 44 | 45 | /*! Reset any input devices */ 46 | virtual PlusStatus Reset(); 47 | 48 | virtual PlusStatus NotifyConfigured(); 49 | 50 | virtual double GetAcquisitionRate() const; 51 | 52 | protected: 53 | vtkPlusVirtualMixer(); 54 | virtual ~vtkPlusVirtualMixer(); 55 | 56 | private: 57 | vtkPlusVirtualMixer(const vtkPlusVirtualMixer&); // Not implemented. 58 | void operator=(const vtkPlusVirtualMixer&); // Not implemented. 59 | }; 60 | 61 | #endif 62 | -------------------------------------------------------------------------------- /src/PlusDataCollection/vtkFcsvWriter.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #ifndef __vtkFcsvWriter_h 8 | #define __vtkFcsvWriter_h 9 | 10 | // Local includes 11 | #include "vtkPlusDataCollectionExport.h" 12 | #include "vtkFcsvReader.h" 13 | 14 | // VTK includes 15 | #include 16 | 17 | /*! 18 | \class FcsvWriter 19 | \brief Writes a fiducial list (fcsv) file 20 | The fcsv file is the standard file format of 3D Slicer for storing a fiducial list 21 | \ingroup PlusLibDataCollection 22 | */ 23 | 24 | class vtkPlusDataCollectionExport vtkFcsvWriter : public vtkObject 25 | { 26 | public: 27 | static vtkFcsvWriter* New(); 28 | vtkTypeMacro(vtkFcsvWriter, vtkObject); 29 | virtual void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE; 30 | 31 | /* Load an FCSV file */ 32 | void Update(void); 33 | 34 | /*! Set the filename */ 35 | vtkSetMacro(FileName, std::string); 36 | /*! Get the filename */ 37 | vtkGetMacro(FileName, std::string); 38 | 39 | void CopyFcsvDataObject(const FcsvData& dataObject); 40 | const FcsvData& GetFcsvDataObject() 41 | { 42 | return FcsvDataObject; 43 | }; 44 | 45 | protected: 46 | vtkFcsvWriter(); 47 | virtual ~vtkFcsvWriter(); 48 | 49 | std::string FileName; 50 | FcsvData FcsvDataObject; 51 | 52 | private: 53 | vtkFcsvWriter(const vtkFcsvWriter&); //purposely not implemented 54 | vtkFcsvWriter& operator=(const vtkFcsvWriter&); //purposely not implemented 55 | }; 56 | 57 | #endif // __FcsvWriter_h -------------------------------------------------------------------------------- /src/PlusExport.h.in: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | // This file is automatically generated from PlusExport.h.in by GENERATE_EXPORT_DIRECTIVE_FILE macro. 8 | 9 | // .NAME __@MY_EXPORT_HEADER_PREFIX@Export - manage Windows system differences 10 | // .SECTION Description 11 | // The __@MY_EXPORT_HEADER_PREFIX@Export manages DLL export syntax differences 12 | // between different operating systems. 13 | 14 | #ifndef __@MY_EXPORT_HEADER_PREFIX@Export_h 15 | #define __@MY_EXPORT_HEADER_PREFIX@Export_h 16 | 17 | #if defined(WIN32) && !defined(PlusLib_STATIC) 18 | #if defined(@MY_LIBNAME@_EXPORTS) 19 | #define @MY_LIBRARY_EXPORT_DIRECTIVE@ __declspec( dllexport ) 20 | #else 21 | #define @MY_LIBRARY_EXPORT_DIRECTIVE@ __declspec( dllimport ) 22 | #endif 23 | #else 24 | #define @MY_LIBRARY_EXPORT_DIRECTIVE@ 25 | #endif 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /src/PlusOpenIGTLink/Testing/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | SET( TestDataDir ${PLUSLIB_DATA_DIR}/TestImages ) 2 | SET( ConfigFilesDir ${PLUSLIB_DATA_DIR}/ConfigFiles ) 3 | 4 | #-------------------------------------------------------------------------------------------- 5 | # Tests 6 | # 7 | 8 | 9 | # -------------------------------------------------------------------------- 10 | # Install 11 | # 12 | 13 | INSTALL(TARGETS 14 | DESTINATION "${PLUSLIB_BINARY_INSTALL}" 15 | COMPONENT RuntimeExecutables 16 | ) -------------------------------------------------------------------------------- /src/PlusOpenIGTLink/igtlPlusClientInfoMessage.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #ifndef __igtlPlusClientInfoMessage_h 8 | #define __igtlPlusClientInfoMessage_h 9 | 10 | // Local includes 11 | #include "PlusIgtlClientInfo.h" 12 | #include "vtkPlusOpenIGTLinkExport.h" 13 | 14 | // IGTL includes 15 | #include 16 | 17 | namespace igtl 18 | { 19 | /*! 20 | \class PlusClientInfoMessage 21 | \brief IGTL message helper class for PlusServer ClientInfo class 22 | \ingroup PlusLibOpenIGTLink 23 | */ 24 | class vtkPlusOpenIGTLinkExport PlusClientInfoMessage: public StringMessage 25 | { 26 | public: 27 | igtlTypeMacro(igtl::PlusClientInfoMessage, igtl::StringMessage); 28 | igtlNewMacro(igtl::PlusClientInfoMessage); 29 | 30 | public: 31 | /*! Override to use the plus igtl factory */ 32 | virtual igtl::MessageBase::Pointer Clone(); 33 | 34 | /*! Set Plus IGTL Client Info */ 35 | void SetClientInfo(const PlusIgtlClientInfo& clientInfo); 36 | 37 | /*! Get Plus IGTL Client Info */ 38 | PlusIgtlClientInfo GetClientInfo(); 39 | 40 | protected: 41 | PlusClientInfoMessage(); 42 | ~PlusClientInfoMessage(); 43 | 44 | PlusIgtlClientInfo m_ClientInfo; 45 | }; 46 | } // namespace igtl 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /src/PlusOpenIGTLink/vtkPlusIGTLMessageQueue.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #ifndef __vtkPlusIGTLMessageQueue_h 8 | #define __vtkPlusIGTLMessageQueue_h 9 | 10 | #include "vtkPlusOpenIGTLinkExport.h" 11 | 12 | #include "vtkObject.h" 13 | 14 | #include 15 | 16 | #include "igtlMessageBase.h" 17 | 18 | class vtkIGSIORecursiveCriticalSection; 19 | 20 | /*! 21 | \class vtkPlusIGTLMessageQueue 22 | \brief Message queue to store OpenIGTLink messages. 23 | \ingroup PlusLibOpenIGTLink 24 | */ 25 | class vtkPlusOpenIGTLinkExport vtkPlusIGTLMessageQueue : public vtkObject 26 | { 27 | typedef std::deque MessageBuffer; 28 | 29 | public: 30 | static vtkPlusIGTLMessageQueue *New(); 31 | vtkTypeMacro( vtkPlusIGTLMessageQueue,vtkObject ); 32 | virtual void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE; 33 | 34 | void PushMessage( igtl::MessageBase* message ); 35 | igtl::MessageBase* PullMessage(); 36 | 37 | int GetSize(); 38 | 39 | protected: 40 | 41 | vtkPlusIGTLMessageQueue(); 42 | virtual ~vtkPlusIGTLMessageQueue(); 43 | 44 | 45 | protected: 46 | vtkIGSIORecursiveCriticalSection* Mutex; 47 | MessageBuffer DataBuffer; 48 | }; 49 | 50 | 51 | #endif 52 | -------------------------------------------------------------------------------- /src/PlusRendering/Testing/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusRendering/Testing/CMakeLists.txt -------------------------------------------------------------------------------- /src/PlusRevision.h.in: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #ifndef __PlusRevision_h 8 | #define __PlusRevision_h 9 | 10 | #cmakedefine PLUSLIB_REVISION "${PLUSLIB_REVISION}" 11 | #cmakedefine PLUSLIB_SHORT_REVISION "${PLUSLIB_SHORT_REVISION}" 12 | 13 | #endif // __PlusRevision_h -------------------------------------------------------------------------------- /src/PlusServer/Commands/vtkPlusAddRecordingDeviceCommand.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #ifndef __vtkPlusAddRecordingDeviceCommand_h 8 | #define __vtkPlusAddRecordingDeviceCommand_h 9 | 10 | #include "vtkPlusServerExport.h" 11 | 12 | #include "vtkPlusCommand.h" 13 | 14 | /*! 15 | \class vtkPlusAddRecordingDeviceCommand 16 | \brief This command adds a virtual capture device with the attached arguments as input channels 17 | \ingroup PlusLibPlusServer 18 | */ 19 | class vtkPlusServerExport vtkPlusAddRecordingDeviceCommand : public vtkPlusCommand 20 | { 21 | public: 22 | static vtkPlusAddRecordingDeviceCommand* New(); 23 | vtkTypeMacro(vtkPlusAddRecordingDeviceCommand, vtkPlusCommand); 24 | virtual vtkPlusCommand* Clone() { return New(); } 25 | 26 | /*! Executes the command */ 27 | virtual PlusStatus Execute(); 28 | 29 | /*! Get all the command names that this class can execute */ 30 | virtual void GetCommandNames(std::list& cmdNames); 31 | 32 | /*! Gets the description for the specified command name. */ 33 | virtual std::string GetDescription(const std::string& commandName); 34 | 35 | void SetNameToAddRecordingDevice(); 36 | 37 | protected: 38 | vtkPlusAddRecordingDeviceCommand(); 39 | virtual ~vtkPlusAddRecordingDeviceCommand(); 40 | 41 | private: 42 | vtkPlusAddRecordingDeviceCommand(const vtkPlusAddRecordingDeviceCommand&); 43 | void operator=(const vtkPlusAddRecordingDeviceCommand&); 44 | }; 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /src/PlusServer/Commands/vtkPlusVersionCommand.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #ifndef __vtkPlusVersionCommand_h 8 | #define __vtkPlusVersionCommand_h 9 | 10 | #include "vtkPlusServerExport.h" 11 | 12 | #include "vtkPlusCommand.h" 13 | 14 | /*! 15 | \class vtkPlusVersionCommand 16 | \brief This command sends and receives version information to/from a client 17 | \ingroup PlusLibPlusServer 18 | */ 19 | class vtkPlusServerExport vtkPlusVersionCommand : public vtkPlusCommand 20 | { 21 | public: 22 | 23 | static vtkPlusVersionCommand* New(); 24 | vtkTypeMacro(vtkPlusVersionCommand, vtkPlusCommand); 25 | virtual vtkPlusCommand* Clone() { return New(); } 26 | 27 | /*! Executes the command */ 28 | virtual PlusStatus Execute(); 29 | 30 | /*! Get all the command names that this class can execute */ 31 | virtual void GetCommandNames(std::list& cmdNames); 32 | 33 | /*! Gets the description for the specified command name. */ 34 | virtual std::string GetDescription(const std::string& commandName); 35 | 36 | void SetNameToVersion(); 37 | 38 | protected: 39 | vtkPlusVersionCommand(); 40 | virtual ~vtkPlusVersionCommand(); 41 | 42 | private: 43 | vtkPlusVersionCommand(const vtkPlusVersionCommand&); 44 | void operator=(const vtkPlusVersionCommand&); 45 | }; 46 | 47 | 48 | #endif -------------------------------------------------------------------------------- /src/PlusServer/Testing/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | SET( ConfigFilesDir ${PLUSLIB_DATA_DIR}/ConfigFiles ) 2 | 3 | IF(PLUSBUILD_BUILD_PlusLib_TOOLS) 4 | #-------------------------------------------------------------------------------------------- 5 | ADD_EXECUTABLE(vtkPlusServerTest vtkPlusServerTest.cxx) 6 | SET_TARGET_PROPERTIES(vtkPlusServerTest PROPERTIES FOLDER Tests) 7 | TARGET_LINK_LIBRARIES(vtkPlusServerTest vtkPlusServer) 8 | 9 | #-------------------------------------------------------------------------------------------- 10 | ADD_TEST(PlusServer 11 | ${PLUS_EXECUTABLE_OUTPUT_PATH}/vtkPlusServerTest 12 | --server-config-file=${ConfigFilesDir}/Testing/PlusDeviceSet_OpenIGTLinkTestServer.xml 13 | --testing-config-file=${ConfigFilesDir}/Testing/PlusDeviceSet_OpenIGTLinkTestClient.xml 14 | ) 15 | SET_TESTS_PROPERTIES( PlusServer PROPERTIES FAIL_REGULAR_EXPRESSION "ERROR;WARNING" ) 16 | 17 | #-------------------------------------------------------------------------------------------- 18 | # Even with the timeout, the test still fails on Linux. 19 | # - The test is disabled on Linux for now 20 | IF(NOT ${PLUSLIB_PLATFORM} MATCHES "Linux") 21 | ADD_TEST(PlusServerOpenIGTLinkCommandsTest 22 | ${PLUS_EXECUTABLE_OUTPUT_PATH}/PlusServerRemoteControl 23 | --server-config-file=${ConfigFilesDir}/Testing/PlusDeviceSet_OpenIGTLinkCommandsTest.xml 24 | --run-tests 25 | ) 26 | 27 | # The timeout of 90 is added because this test does not seem to exit properly on Linux 28 | SET_TESTS_PROPERTIES(PlusServerOpenIGTLinkCommandsTest 29 | PROPERTIES 30 | FAIL_REGULAR_EXPRESSION "ERROR;WARNING" 31 | TIMEOUT 90 32 | ) 33 | ENDIF() 34 | ENDIF() -------------------------------------------------------------------------------- /src/PlusServer/vtkPlusCommandResponse.cxx: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #include "PlusConfigure.h" 8 | #include "vtkPlusCommandResponse.h" 9 | 10 | vtkStandardNewMacro(vtkPlusCommandRTSCommandResponse); 11 | vtkStandardNewMacro(vtkPlusCommandImageMetaDataResponse); 12 | vtkStandardNewMacro(vtkPlusCommandImageResponse); 13 | vtkStandardNewMacro(vtkPlusCommandPolydataResponse); 14 | vtkStandardNewMacro(vtkPlusCommandResponse); 15 | vtkStandardNewMacro(vtkPlusCommandStringResponse); 16 | 17 | //---------------------------------------------------------------------------- 18 | void vtkPlusCommandRTSCommandResponse::SetParameters(const igtl::MessageBase::MetaDataMap& values) 19 | { 20 | this->Parameters = values; 21 | } 22 | 23 | //---------------------------------------------------------------------------- 24 | const igtl::MessageBase::MetaDataMap& vtkPlusCommandRTSCommandResponse::GetParameters() const 25 | { 26 | return Parameters; 27 | } -------------------------------------------------------------------------------- /src/PlusServer/vtkPlusOpenIGTLinkServerLinux.cxx: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | void PrintServerInfo(vtkPlusOpenIGTLinkServer* self) 7 | { 8 | struct ifaddrs* ifap, *ifa; 9 | struct sockaddr_in* sa; 10 | char* addr; 11 | 12 | std::vector addresses; 13 | 14 | getifaddrs(&ifap); 15 | for (ifa = ifap; ifa; ifa = ifa->ifa_next) 16 | { 17 | if (ifa->ifa_addr != nullptr && ifa->ifa_addr->sa_family == AF_INET) 18 | { 19 | sa = (struct sockaddr_in*) ifa->ifa_addr; 20 | addr = inet_ntoa(sa->sin_addr); 21 | addresses.push_back(addr); 22 | } 23 | } 24 | freeifaddrs(ifap); 25 | 26 | std::stringstream ss; 27 | ss << "Plus OpenIGTLink server listening on IPs: "; 28 | for (unsigned int i = 0; i < addresses.size(); ++i) 29 | { 30 | ss << addresses[i]; 31 | if (i + 1 != addresses.size()) 32 | { 33 | ss << ", "; 34 | } 35 | } 36 | ss << " -- port " << self->GetListeningPort(); 37 | LOG_INFO(ss.str()); 38 | } -------------------------------------------------------------------------------- /src/PlusServer/vtkPlusOpenIGTLinkServerMacOSX.cxx: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | void PrintServerInfo(vtkPlusOpenIGTLinkServer* self) 7 | { 8 | struct ifaddrs* ifap, *ifa; 9 | struct sockaddr_in* sa; 10 | char* addr; 11 | 12 | std::vector addresses; 13 | 14 | getifaddrs(&ifap); 15 | for (ifa = ifap; ifa; ifa = ifa->ifa_next) 16 | { 17 | if (ifa->ifa_addr->sa_family == AF_INET) 18 | { 19 | sa = (struct sockaddr_in*) ifa->ifa_addr; 20 | addr = inet_ntoa(sa->sin_addr); 21 | addresses.push_back(addr); 22 | } 23 | } 24 | freeifaddrs(ifap); 25 | 26 | std::stringstream ss; 27 | ss << "Plus OpenIGTLink server listening on IPs: "; 28 | for (unsigned int i = 0; i < addresses.size(); ++i) 29 | { 30 | ss << addresses[i]; 31 | if (i + 1 != addresses.size()) 32 | { 33 | ss << ", "; 34 | } 35 | } 36 | ss << " -- port " << self->GetListeningPort(); 37 | LOG_INFO(ss.str()); 38 | } -------------------------------------------------------------------------------- /src/PlusWidgets/PlusWidgets.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | Resources/icon_Fail.png 4 | Resources/icon_Success.png 5 | Resources/icon_Save.png 6 | Resources/icon_Connect.png 7 | Resources/icon_ConnectLarge.png 8 | Resources/icon_OpenFile.png 9 | Resources/icon_DotGray.png 10 | Resources/icon_DotGreen.png 11 | Resources/icon_DotOrange.png 12 | Resources/icon_DotRed.png 13 | Resources/icon_PopOut.png 14 | Resources/icon_Refresh.png 15 | Resources/icon_Edit.png 16 | Resources/icon_Snapshot.png 17 | Resources/icon_Record.png 18 | Resources/icon_Stop.png 19 | Resources/icon_ClearText.png 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_ClearText.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_ClearText.png -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_ClearText.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_ClearText.xcf -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_Connect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_Connect.png -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_Connect.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_Connect.xcf -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_ConnectLarge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_ConnectLarge.png -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_DotGray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_DotGray.png -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_DotGray.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_DotGray.xcf -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_DotGreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_DotGreen.png -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_DotGreen.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_DotGreen.xcf -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_DotOrange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_DotOrange.png -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_DotOrange.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_DotOrange.xcf -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_DotRed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_DotRed.png -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_DotRed.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_DotRed.xcf -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_Edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_Edit.png -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_Edit.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_Edit.xcf -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_Fail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_Fail.png -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_OpenFile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_OpenFile.png -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_OpenFile.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_OpenFile.xcf -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_PopOut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_PopOut.png -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_PopOut.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_PopOut.xcf -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_Record.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_Record.png -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_Record.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_Record.xcf -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_Refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_Refresh.png -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_Refresh.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_Refresh.xcf -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_Save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_Save.png -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_Save.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_Save.xcf -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_Snapshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_Snapshot.png -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_Snapshot.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_Snapshot.xcf -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_Stop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_Stop.png -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_Stop.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_Stop.xcf -------------------------------------------------------------------------------- /src/PlusWidgets/Resources/icon_Success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/PlusWidgets/Resources/icon_Success.png -------------------------------------------------------------------------------- /src/PlusWidgets/Testing/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | SET( TestDataDir ${PLUSLIB_DATA_DIR}/TestImages ) 2 | SET( ConfigFilesDir ${PLUSLIB_DATA_DIR}/ConfigFiles ) 3 | 4 | # -------------------------------------------------------------------------- 5 | # ToolStateDisplayWidgetTest 6 | SET(ToolStateDisplayWidgetTest_LIBS 7 | Qt5::Widgets 8 | Qt5::Core 9 | Qt5::Test 10 | PlusWidgets 11 | vtkPlusCommon 12 | vtkPlusDataCollection 13 | ) 14 | 15 | ADD_EXECUTABLE(ToolStateDisplayWidgetTest ToolStateDisplayWidgetTest.cxx 16 | ${CMAKE_CURRENT_SOURCE_DIR}/../PlusWidgets.qrc 17 | ) 18 | SET_TARGET_PROPERTIES(ToolStateDisplayWidgetTest PROPERTIES 19 | COMPILE_DEFINTIIONS ${Qt5Widgets_COMPILE_DEFINITIONS} 20 | FOLDER Tests 21 | ) 22 | target_include_directories(ToolStateDisplayWidgetTest PRIVATE 23 | ${CMAKE_CURRENT_BINARY_DIR} 24 | ${CMAKE_CURRENT_SOURCE_DIR} 25 | ) 26 | TARGET_LINK_LIBRARIES( ToolStateDisplayWidgetTest PRIVATE ${ToolStateDisplayWidgetTest_LIBS} ) 27 | 28 | #-------------------------------------------------------------------------------------------- 29 | ADD_TEST(ToolStateDisplayWidgetTest ${PLUS_EXECUTABLE_OUTPUT_PATH}/ToolStateDisplayWidgetTest) 30 | SET_TESTS_PROPERTIES( ToolStateDisplayWidgetTest PROPERTIES FAIL_REGULAR_EXPRESSION "ERROR;WARNING" ) -------------------------------------------------------------------------------- /src/PlusWidgets/Testing/ToolStateDisplayWidgetTest.cxx: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #include 8 | #include 9 | 10 | class ToolStateDisplayWidgetTest : public QObject 11 | { 12 | Q_OBJECT 13 | private slots: 14 | void t1() 15 | { 16 | QVERIFY(true); 17 | } 18 | }; 19 | 20 | QTEST_MAIN(ToolStateDisplayWidgetTest) 21 | #include "ToolStateDisplayWidgetTest.moc" -------------------------------------------------------------------------------- /src/SEIDrv/info.txt: -------------------------------------------------------------------------------- 1 | https://www.usdigital.com/support/software/sei 2 | 3 | Assemblies need to be registered: 4 | RegAsm USDigital.dll 5 | RegAsm USDSEI.dll 6 | Note: use 32-bit version of RegAsm.exe for 32-bit version of DLLs, and 64-bit RegAsm.exe for 64-bit DLLs. Appropriate bitness of Visual Studio command prompt drags in correct RegAsm to the command line. 7 | 8 | USDSEI.dll and USDigital.dll need to be next to the executable at run time, and next to .lib or .exe file at compile time (e.g. in Debug folder). 9 | -------------------------------------------------------------------------------- /src/SEIDrv/x64/USDSEI.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/SEIDrv/x64/USDSEI.dll -------------------------------------------------------------------------------- /src/SEIDrv/x64/USDigital.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/SEIDrv/x64/USDigital.dll -------------------------------------------------------------------------------- /src/SEIDrv/x86/USDSEI.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/SEIDrv/x86/USDSEI.dll -------------------------------------------------------------------------------- /src/SEIDrv/x86/USDigital.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/SEIDrv/x86/USDigital.dll -------------------------------------------------------------------------------- /src/Utilities/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | SET(Utilities_INCLUDE_DIRS "" CACHE INTERNAL "" FORCE) 2 | 3 | # These are third-party libraries. Don't perform their tests as part of PlusLib tests. 4 | SET(BUILD_TESTING OFF) 5 | 6 | # Generic utilities 7 | SUBDIRS( 8 | Ransac 9 | xio 10 | ) 11 | 12 | # Hardware-dependent utilities 13 | IF(PLUS_USE_MICRONTRACKER) 14 | SUBDIRS(MicronTrackerInterface) 15 | ENDIF() 16 | 17 | IF(PLUS_USE_MMF_VIDEO) 18 | SUBDIRS(MfVideoCaptureLibrary) 19 | ENDIF() -------------------------------------------------------------------------------- /src/Utilities/DAQVideoSource/README.md: -------------------------------------------------------------------------------- 1 | This module allow you to use the DAQ USB3-FRM13-B grabber for CameraLink camera. 2 | 3 | Developed by ULL - IACTEC groups 4 | 5 | The MIT License (MIT) 6 | 7 | Copyright (c) 2017 Eavise Research Group 8 | 9 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 14 | 15 | -------------------------------------------------------------------------------- /src/Utilities/InfraredSeekCamera/biasfile.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Utilities/InfraredSeekCamera/biasfile.bin -------------------------------------------------------------------------------- /src/Utilities/InfraredSeekCamera/flatfile.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/Utilities/InfraredSeekCamera/flatfile.bin -------------------------------------------------------------------------------- /src/Utilities/InfraredSeekCamera/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [[ $EUID -ne 0 ]]; then 4 | echo "You must be root to do this." 1>&2 5 | exit 100 6 | fi 7 | 8 | echo "Copy files" 9 | cp ./seekcam.rules /etc/udev/rules.d 10 | 11 | echo "Restart UDEV" 12 | /etc/init.d/udev restart 13 | 14 | echo "Restart Service" 15 | 16 | service udev restart 17 | 18 | echo "Finish" 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/Utilities/InfraredSeekCamera/seekcam.rules: -------------------------------------------------------------------------------- 1 | SUBSYSTEM=="usb", ATTRS{idVendor}=="289d", ATTRS{idProduct}=="0011", MODE="0666", SYMLINK+="ThermalSeekCamPro" 2 | -------------------------------------------------------------------------------- /src/Utilities/InfraredTEEV2Camera/README.md: -------------------------------------------------------------------------------- 1 | This module allow you to use the Infrared Thermal Expert EV2 Camera. 2 | 3 | Developed by ULL - IACTEC groups 4 | 5 | The MIT License (MIT) 6 | 7 | Copyright (c) 2017 Eavise Research Group 8 | 9 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 14 | 15 | -------------------------------------------------------------------------------- /src/Utilities/InfraredTEQ1Camera/README.md: -------------------------------------------------------------------------------- 1 | This module allow you to use the Infrared Thermal Expert Q1 Camera. 2 | 3 | Developed by MACBIOIDI-ULPGC & IACTEC-IAC group 4 | 5 | The MIT License (MIT) 6 | 7 | Copyright (c) 2017 Eavise Research Group 8 | 9 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 14 | 15 | -------------------------------------------------------------------------------- /src/Utilities/MfVideoCaptureLibrary/FormatReader.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | 6 | This file is subject to the Code Project Open Source License. 7 | See http://www.codeproject.com/info/cpol10.aspx 8 | 9 | Original work by Evgeny Pereguda 10 | http://www.codeproject.com/Members/Evgeny-Pereguda 11 | 12 | Original "videoInput" library at 13 | http://www.codeproject.com/Articles/559437/Capturing-video-from-web-camera-on-Windows-7-and-8 14 | 15 | The "videoInput" library has been adapted to fit within a namespace. 16 | 17 | =========================================================Plus=header=end*/ 18 | 19 | #ifndef __FormatReader_h 20 | #define __FormatReader_h 21 | 22 | #include 23 | #include "MediaFoundationVideoCaptureApi.h" 24 | 25 | struct IMFMediaType; 26 | 27 | /*! 28 | \class FormatReader 29 | \brief Class for parsing info from IMFMediaType into the local format 30 | 31 | \ingroup PlusLibDataCollection 32 | */ 33 | namespace MfVideoCapture 34 | { 35 | class FormatReader 36 | { 37 | public: 38 | static MediaType Read( IMFMediaType* pType ); 39 | static std::wstring StringFromGUID( const GUID& aGuid ); 40 | static GUID GUIDFromString( const std::wstring& aString ); 41 | private: 42 | FormatReader( void ); 43 | ~FormatReader( void ); 44 | }; 45 | } 46 | #endif -------------------------------------------------------------------------------- /src/Utilities/MfVideoCaptureLibrary/MediaFoundationCaptureLibrary.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | 6 | This file is subject to the Code Project Open Source License. 7 | See http://www.codeproject.com/info/cpol10.aspx 8 | 9 | Original work by Evgeny Pereguda 10 | http://www.codeproject.com/Members/Evgeny-Pereguda 11 | 12 | Original "videoInput" library at 13 | http://www.codeproject.com/Articles/559437/Capturing-video-from-web-camera-on-Windows-7-and-8 14 | 15 | The "videoInput" library has been adapted to fit within a namespace. 16 | 17 | =========================================================Plus=header=end*/ 18 | 19 | #ifndef __VideoInputLibrary_h 20 | #define __VideoInputLibrary_h 21 | 22 | struct IMFAttributes; 23 | 24 | namespace MfVideoCapture 25 | { 26 | // Class for creating of Media Foundation context 27 | class MediaFoundationCaptureLibrary 28 | { 29 | public: 30 | static MediaFoundationCaptureLibrary& GetInstance(); 31 | bool BuildListOfDevices(); 32 | 33 | private: 34 | MediaFoundationCaptureLibrary(void); 35 | virtual ~MediaFoundationCaptureLibrary(void); 36 | }; 37 | } 38 | 39 | #endif -------------------------------------------------------------------------------- /src/Utilities/MfVideoCaptureLibrary/MediaFoundationVideoDevices.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | 6 | This file is subject to the Code Project Open Source License. 7 | See http://www.codeproject.com/info/cpol10.aspx 8 | 9 | Original work by Evgeny Pereguda 10 | http://www.codeproject.com/Members/Evgeny-Pereguda 11 | 12 | Original "videoInput" library at 13 | http://www.codeproject.com/Articles/559437/Capturing-video-from-web-camera-on-Windows-7-and-8 14 | 15 | The "videoInput" library has been adapted to fit within a namespace. 16 | 17 | =========================================================Plus=header=end*/ 18 | 19 | #ifndef __MediaFoundationVideoDevices_h 20 | #define __MediaFoundationVideoDevices_h 21 | 22 | #include 23 | #include 24 | 25 | struct IMFAttributes; 26 | 27 | namespace MfVideoCapture 28 | { 29 | class MediaFoundationVideoDevice; 30 | typedef std::vector DeviceList; 31 | 32 | /// Class for managing of list of video devices 33 | class MediaFoundationVideoDevices 34 | { 35 | public: 36 | long InitDevices( IMFAttributes* pAttributes ); 37 | static MediaFoundationVideoDevices& GetInstance(); 38 | MediaFoundationVideoDevice* GetDevice( DeviceList::size_type i ); 39 | DeviceList::size_type GetCount(); 40 | void ClearDevices(); 41 | 42 | private: 43 | MediaFoundationVideoDevices( void ); 44 | ~MediaFoundationVideoDevices( void ); 45 | 46 | unsigned int count; 47 | DeviceList Devices; 48 | }; 49 | 50 | } 51 | 52 | #endif -------------------------------------------------------------------------------- /src/Utilities/MfVideoCaptureLibrary/MfVideoCaptureLogger.cpp: -------------------------------------------------------------------------------- 1 | #include "MfVideoCaptureLogger.h" 2 | #include 3 | 4 | MfVideoCaptureLogger* MfVideoCaptureLogger::m_pInstance = NULL; 5 | 6 | MfVideoCaptureLogger::MfVideoCaptureLogger() 7 | : m_LogMessageCallback(NULL) 8 | , m_LogMessageCallbackUserdata(NULL) 9 | { 10 | } 11 | 12 | MfVideoCaptureLogger::~MfVideoCaptureLogger() 13 | { 14 | } 15 | 16 | MfVideoCaptureLogger* MfVideoCaptureLogger::Instance() 17 | { 18 | if (m_pInstance == NULL) 19 | { 20 | m_pInstance = new MfVideoCaptureLogger; 21 | } 22 | return m_pInstance; 23 | } 24 | 25 | void MfVideoCaptureLogger::SetLogMessageCallback(LogMessageCallbackType callback, void* userdata) 26 | { 27 | m_LogMessageCallback = callback; 28 | m_LogMessageCallbackUserdata = userdata; 29 | } 30 | 31 | void MfVideoCaptureLogger::LogMessage(LogLevel level, const char* description, const char* fileName, int lineNumber) 32 | { 33 | if (m_LogMessageCallback == NULL) 34 | { 35 | // no error callback is specified 36 | return; 37 | } 38 | std::ostrstream msgStream; 39 | msgStream << (description ? description : "unspecified message") << " in " << fileName << "(" << lineNumber << ")"; 40 | msgStream << std::ends; 41 | m_LogMessageCallback(level, msgStream.str(), m_LogMessageCallbackUserdata); 42 | } 43 | -------------------------------------------------------------------------------- /src/Utilities/MfVideoCaptureLibrary/MfVideoCaptureLogger.h: -------------------------------------------------------------------------------- 1 | #ifndef __MfVideoCaptureLogger_H__ 2 | #define __MfVideoCaptureLogger_H__ 3 | 4 | #include 5 | 6 | class MfVideoCaptureLogger 7 | { 8 | public: 9 | enum LogLevel 10 | { 11 | ERROR_LEVEL, 12 | WARNING_LEVEL, 13 | INFO_LEVEL, 14 | DEBUG_LEVEL 15 | }; 16 | 17 | /*! Error callback type for use with SetLogMessageCallback() */ 18 | typedef void (*LogMessageCallbackType)(int level, const char *message, void *userdata); 19 | 20 | static MfVideoCaptureLogger* Instance(); 21 | 22 | /*! 23 | Set a function that will be called each time an error occurs. 24 | \param callback function pointer 25 | \param userdata data to send to the callback each time it is called 26 | The callback can be set to NULL to erase a previous callback. 27 | */ 28 | void SetLogMessageCallback(LogMessageCallbackType callback, void *userdata); 29 | 30 | void LogMessage(LogLevel level, const char* message, const char* fileName, int lineNumber); 31 | 32 | protected: 33 | MfVideoCaptureLogger(); 34 | virtual ~MfVideoCaptureLogger(); 35 | 36 | /*! Pointer to the singleton instance */ 37 | static MfVideoCaptureLogger* m_pInstance; 38 | 39 | LogMessageCallbackType m_LogMessageCallback; 40 | void* m_LogMessageCallbackUserdata; 41 | }; 42 | 43 | #endif // __MfVideoCaptureLogger_H__ 44 | -------------------------------------------------------------------------------- /src/Utilities/MfVideoCaptureLibrary/MfVideoCaptureLoggerMacros.h: -------------------------------------------------------------------------------- 1 | #ifndef __MfVideoCaptureLoggerMacros_H__ 2 | #define __MfVideoCaptureLoggerMacros_H__ 3 | 4 | #include 5 | #include "MfVideoCaptureLogger.h" 6 | 7 | #define LOG_ERROR(msg) \ 8 | { \ 9 | std::ostringstream msgStream; \ 10 | msgStream << " " << msg << std::ends; \ 11 | MfVideoCaptureLogger::Instance()->LogMessage(MfVideoCaptureLogger::ERROR_LEVEL, msgStream.str().c_str(), __FILE__, __LINE__); \ 12 | } 13 | 14 | #define LOG_WARNING(msg) \ 15 | { \ 16 | std::ostringstream msgStream; \ 17 | msgStream << " " << msg << std::ends; \ 18 | MfVideoCaptureLogger::Instance()->LogMessage(MfVideoCaptureLogger::WARNING_LEVEL, msgStream.str().c_str(), __FILE__, __LINE__); \ 19 | } 20 | 21 | #define LOG_DEBUG(msg) \ 22 | { \ 23 | std::ostringstream msgStream; \ 24 | msgStream << " " << msg << std::ends; \ 25 | MfVideoCaptureLogger::Instance()->LogMessage(MfVideoCaptureLogger::DEBUG_LEVEL, msgStream.str().c_str(), __FILE__, __LINE__); \ 26 | } 27 | 28 | #define LOG_INFO(msg) \ 29 | { \ 30 | std::ostringstream msgStream; \ 31 | msgStream << " " << msg << std::ends; \ 32 | MfVideoCaptureLogger::Instance()->LogMessage(MfVideoCaptureLogger::INFO_LEVEL, msgStream.str().c_str(), __FILE__, __LINE__); \ 33 | } 34 | 35 | #endif // __MfVideoCaptureLoggerMacros_H__ 36 | -------------------------------------------------------------------------------- /src/Utilities/MicronTrackerInterface/Cameras.h: -------------------------------------------------------------------------------- 1 | /************************************************************** 2 | * 3 | * Micron Tracker: Example C++ wrapper and Multi-platform demo 4 | * 5 | * Written by: 6 | * Shi Sherebrin , Robarts Research Institute - London- Ontario , www.robarts.ca 7 | * Shahram Izadyar, Robarts Research Institute - London- Ontario , www.robarts.ca 8 | * Claudio Gatti, Ahmad Kolahi, Claron Technology - Toronto -Ontario, www.clarontech.com 9 | * 10 | * Copyright Claron Technology 2000-2013 11 | * 12 | ***************************************************************/ 13 | 14 | 15 | #ifndef __CAMERAS_H__ 16 | #define __CAMERAS_H__ 17 | 18 | #include "MicronTrackerInterface.h" 19 | 20 | #include 21 | 22 | class MCamera; 23 | 24 | class Cameras 25 | { 26 | public: 27 | Cameras(); 28 | ~Cameras(); 29 | mtHandle getHandle(); 30 | int getCount(); 31 | int setHistogramEqualizeImages(bool on_off); 32 | bool getHistogramEqualizeImages(); 33 | MCamera* getCamera(int index); 34 | 35 | int attachAvailableCameras(); 36 | void detach(); 37 | 38 | int grabFrame(MCamera* camera = NULL); 39 | 40 | protected: 41 | int getMTHome(std::string& homeDirectory); 42 | 43 | protected: 44 | std::vector CameraList; 45 | mtHandle Handle; 46 | bool OwnedByMe; 47 | MCamera* CurrentCamera; 48 | int AttachedCameraCount; 49 | 50 | // Pointer to the camera object that the last operation failed on 51 | MCamera* LastFailedCamera; 52 | }; 53 | 54 | #endif 55 | -------------------------------------------------------------------------------- /src/Utilities/MicronTrackerInterface/Collection.h: -------------------------------------------------------------------------------- 1 | /************************************************************** 2 | * 3 | * Micron Tracker: Example C++ wrapper and Multi-platform demo 4 | * 5 | * Written by: 6 | * Shahram Izadyar, Robarts Research Institute - London- Ontario , www.robarts.ca 7 | * Claudio Gatti, Ahmad Kolahi, Claron Technology - Toronto -Ontario, www.clarontech.com 8 | * 9 | * Copyright Claron Technology 2000-2013 10 | * 11 | ***************************************************************/ 12 | #ifndef __COLLECTION_H__ 13 | #define __COLLECTION_H__ 14 | 15 | #include "MicronTrackerInterface.h" 16 | 17 | class Collection 18 | { 19 | public: 20 | Collection(mtHandle h = 0); 21 | ~Collection(); 22 | mtHandle getHandle();; 23 | void setHandle(mtHandle h);; 24 | 25 | void add(mtHandle val); 26 | void remove(int idx); 27 | int count(); 28 | mtHandle itemI(int idx); 29 | double itemD(int idx); 30 | 31 | private: 32 | mtHandle Handle; 33 | bool OwnedByMe; 34 | }; 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /src/Utilities/MicronTrackerInterface/Facet.h: -------------------------------------------------------------------------------- 1 | /************************************************************** 2 | * 3 | * Micron Tracker: Example C++ wrapper and Multi-platform demo 4 | * 5 | * Written by: 6 | * Shahram Izadyar, Robarts Research Institute - London- Ontario , www.robarts.ca 7 | * Claudio Gatti, Ahmad Kolahi, Claron Technology - Toronto -Ontario, www.clarontech.com 8 | * 9 | * Copyright Claron Technology 2000-2013 10 | * 11 | ***************************************************************/ 12 | #ifndef __FACET_H__ 13 | #define __FACET_H__ 14 | 15 | #include "MicronTrackerInterface.h" 16 | 17 | class MCamera; 18 | class Vector; 19 | class Collection; 20 | class Xform3D; 21 | 22 | #include 23 | 24 | class Facet 25 | { 26 | public: 27 | // long/short vector; left/right/middle camera; base/head; x/y coordinate 28 | typedef double XPointsType_LS_LRM_BH_XY[2][3][2][2]; 29 | 30 | Facet(mtHandle h = 0); 31 | ~Facet(); 32 | mtHandle getHandle(); 33 | int getXpoints(MCamera* cam, XPointsType_LS_LRM_BH_XY result2x3x2x2); //[LV/SV][L/R/M][base/head][X/Y] 34 | std::vector IdentifiedVectors(); 35 | std::vector TemplateVectors(); 36 | int setVectorsFromSample(std::vector& sampledVectorSets, std::string& outCompletionExplanation, double maxSampleErrorAllowedMM = 2.0); 37 | int validateTemplate(double positionToleranceMM, std::string outCompletionString = NULL); 38 | bool identify(MCamera* cam, std::vector vectorSet, double positionToleranceMM); 39 | Xform3D* getFacet2CameraXf(MCamera* cam); 40 | 41 | protected: 42 | mtHandle Handle; 43 | bool OwnedByMe; 44 | }; 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /src/Utilities/MicronTrackerInterface/MTXPoint.h: -------------------------------------------------------------------------------- 1 | /************************************************************** 2 | * 3 | * Micron Tracker: Example C++ wrapper and Multi-platform demo 4 | * 5 | * Written by: 6 | * Ahmad Kolahi, Claron Technology - Toronto -Ontario, www.clarontech.com 7 | * 8 | * Modified by: 9 | * Claudio Gatti, Claron Technology - Toronto -Ontario, www.clarontech.com 10 | * 11 | * Copyright Claron Technology 2000-2013 12 | * 13 | ***************************************************************/ 14 | #ifndef __XPOINT_H__ 15 | #define __XPOINT_H__ 16 | 17 | #include "MicronTrackerInterface.h" 18 | 19 | class Collection; 20 | class Facet; 21 | class MCamera; 22 | class Persistence; 23 | class Xform3D; 24 | 25 | class MTXPoint 26 | { 27 | public: 28 | MTXPoint(mtHandle h = 0); 29 | ~MTXPoint(); 30 | mtHandle getHandle(); 31 | 32 | int getIndex(); 33 | int setIndex(int Index); 34 | 35 | int position3D(double* x, double* y, double* z); 36 | int position2D(double* x0, double* y0, double* x1, double* y1, double* x2, double* y2); 37 | 38 | double distance(); 39 | 40 | protected: 41 | mtHandle Handle; 42 | bool OwnedByMe; 43 | 44 | }; 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /src/Utilities/MicronTrackerInterface/Marker.h: -------------------------------------------------------------------------------- 1 | /************************************************************** 2 | * 3 | * Micron Tracker: Example C++ wrapper and Multi-platform demo 4 | * 5 | * Written by: 6 | * Shahram Izadyar, Robarts Research Institute - London- Ontario , www.robarts.ca 7 | * Claudio Gatti, Ahmad Kolahi, Claron Technology - Toronto -Ontario, www.clarontech.com 8 | * 9 | * Copyright Claron Technology 2000-2013 10 | * 11 | ***************************************************************/ 12 | #ifndef __MARKER_H__ 13 | #define __MARKER_H__ 14 | 15 | #include "MicronTrackerInterface.h" 16 | 17 | class MCamera; 18 | class Facet; 19 | class Xform3D; 20 | class Persistence; 21 | 22 | class Marker 23 | { 24 | public: 25 | Marker(mtHandle h = 0); 26 | ~Marker(); 27 | mtHandle getHandle(); 28 | 29 | mtHandle getTemplateFacets(); 30 | 31 | std::string getName(); 32 | int setName(char* name); 33 | bool wasIdentified(MCamera* cam); 34 | Xform3D* marker2CameraXf(mtHandle camHandle); 35 | Xform3D* tooltip2MarkerXf(); 36 | mtHandle identifiedFacets(MCamera* cam); 37 | int addTemplateFacet(Facet* newFacet, Xform3D* facet1ToNewFacetXf); 38 | int validateTemplate(double positionToleranceMM, std::string complString); 39 | int storeTemplate(Persistence* p, const char* name); 40 | 41 | protected: 42 | mtHandle Handle; 43 | bool OwnedByMe; 44 | std::string MarkerName; 45 | }; 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /src/Utilities/MicronTrackerInterface/MicronTracker Demo.ini: -------------------------------------------------------------------------------- 1 | [General] 2 | SingleWindow=0 3 | UseOpenGL=0 4 | CaptureEnabled=True 5 | LastFilesDir=C:\Documents and Settings\sizad\Desktop 6 | [AviSaver] 7 | fccType=0 8 | fccHandler=0 9 | dwKeyFrameEvery=0 10 | dwBytesPerSecond=0 11 | dwFlags=0 12 | lpFormat=0 13 | cbFormat=0 14 | lpParms=0 15 | cbParms=0 16 | dwInterleaveEvery=0 17 | -------------------------------------------------------------------------------- /src/Utilities/MicronTrackerInterface/MicronTrackerLogger.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | #ifndef __MICRONTRACKERLOGGER_H__ 8 | #define __MICRONTRACKERLOGGER_H__ 9 | 10 | #include 11 | 12 | class MicronTrackerLogger 13 | { 14 | public: 15 | enum LogLevel 16 | { 17 | ERROR_LEVEL, 18 | WARNING_LEVEL, 19 | DEBUG_LEVEL 20 | }; 21 | 22 | /*! Error callback type for use with SetLogMessageCallback() */ 23 | typedef void (*LogMessageCallbackType)(int level, const char* message, void* userdata); 24 | 25 | static MicronTrackerLogger* Instance(); 26 | 27 | /*! 28 | Set a function that will be called each time an error occurs. 29 | \param callback function pointer 30 | \param userdata data to send to the callback each time it is called 31 | The callback can be set to NULL to erase a previous callback. 32 | */ 33 | void SetLogMessageCallback(LogMessageCallbackType callback, void* userdata); 34 | 35 | void LogMessage(LogLevel level, const char* message, const char* fileName, int lineNumber); 36 | 37 | protected: 38 | MicronTrackerLogger(); 39 | virtual ~MicronTrackerLogger(); 40 | 41 | /*! Pointer to the singleton instance */ 42 | static MicronTrackerLogger* m_pInstance; 43 | 44 | LogMessageCallbackType m_LogMessageCallback; 45 | void* m_LogMessageCallbackUserdata; 46 | }; 47 | 48 | #endif // __MICRONTRACKERLOGGER_H__ 49 | -------------------------------------------------------------------------------- /src/Utilities/MicronTrackerInterface/MicronTrackerLoggerMacros.h: -------------------------------------------------------------------------------- 1 | #ifndef __MICRONTRACKERLOGGERMACROS_H__ 2 | #define __MICRONTRACKERLOGGERMACROS_H__ 3 | 4 | #include 5 | #include "MicronTrackerLogger.h" 6 | 7 | #define LOG_ERROR(msg) \ 8 | { \ 9 | std::ostringstream msgStream; \ 10 | msgStream << " " << msg << std::ends; \ 11 | MicronTrackerLogger::Instance()->LogMessage(MicronTrackerLogger::ERROR_LEVEL, msgStream.str().c_str(), __FILE__, __LINE__); \ 12 | } 13 | 14 | #define LOG_WARNING(msg) \ 15 | { \ 16 | std::ostringstream msgStream; \ 17 | msgStream << " " << msg << std::ends; \ 18 | MicronTrackerLogger::Instance()->LogMessage(MicronTrackerLogger::WARNING_LEVEL, msgStream.str().c_str(), __FILE__, __LINE__); \ 19 | } 20 | 21 | #define LOG_DEBUG(msg) \ 22 | { \ 23 | std::ostringstream msgStream; \ 24 | msgStream << " " << msg << std::ends; \ 25 | MicronTrackerLogger::Instance()->LogMessage(MicronTrackerLogger::DEBUG_LEVEL, msgStream.str().c_str(), __FILE__, __LINE__); \ 26 | } 27 | 28 | #endif // __MICRONTRACKERLOGGERMACROS_H__ 29 | -------------------------------------------------------------------------------- /src/Utilities/MicronTrackerInterface/Persistence.h: -------------------------------------------------------------------------------- 1 | /************************************************************** 2 | * 3 | * Micron Tracker: Example C++ wrapper and Multi-platform demo 4 | * 5 | * Written by: 6 | * Shahram Izadyar, Robarts Research Institute - London- Ontario , www.robarts.ca 7 | * Claudio Gatti, Claron Technology - Toronto -Ontario, www.clarontech.com 8 | * 9 | * Copyright Claron Technology 2000-2013 10 | * 11 | ***************************************************************/ 12 | #ifndef __PERSISTENCE_H__ 13 | #define __PERSISTENCE_H__ 14 | 15 | #include "MicronTrackerInterface.h" 16 | 17 | class Persistence 18 | { 19 | public: 20 | Persistence(); 21 | ~Persistence(); 22 | mtHandle getHandle(); 23 | 24 | // Set/Get path 25 | int setPath(const char* path); 26 | std::string getPath(); 27 | int setSection(const char* section); 28 | int retrieveInt(const char* name, int defaultVal); 29 | double retrieveDouble(const char* name, double defaultVal); 30 | 31 | int saveInt(const char* name, int val); 32 | int saveDouble(const char* name, double val); 33 | 34 | private: 35 | mtHandle Handle; 36 | }; 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /src/Utilities/MicronTrackerInterface/Vector.cpp: -------------------------------------------------------------------------------- 1 | /************************************************************** 2 | * 3 | * Micron Tracker: Example C++ wrapper and Multi-platform demo 4 | * 5 | * Written by: 6 | * Shahram Izadyar, Robarts Research Institute - London- Ontario , www.robarts.ca 7 | * Claudio Gatti, Claron Technology - Toronto -Ontario, www.clarontech.com 8 | * 9 | * Copyright Claron Technology 2000-2013 10 | * 11 | ***************************************************************/ 12 | 13 | #include "MTC.h" 14 | 15 | #include "Vector.h" 16 | 17 | #include "MicronTrackerLoggerMacros.h" 18 | 19 | //---------------------------------------------------------------------------- 20 | Vector::Vector(mtHandle handle) 21 | { 22 | // If a handle is provided to this class, don't create a new one 23 | if (handle != 0) 24 | { 25 | this->Handle = handle; 26 | } 27 | else 28 | { 29 | this->Handle = Vector_New(); 30 | } 31 | this->OwnedByMe = true; 32 | } 33 | 34 | //---------------------------------------------------------------------------- 35 | Vector::~Vector() 36 | { 37 | if (this->Handle != 0 && this->OwnedByMe) 38 | { 39 | Vector_Free(this->Handle); 40 | this->Handle = NULL; 41 | } 42 | } 43 | 44 | //---------------------------------------------------------------------------- 45 | mtHandle Vector::getHandle() 46 | { 47 | return this->Handle; 48 | } 49 | 50 | //---------------------------------------------------------------------------- 51 | int Vector::getEndPos(EndPosType_BH_XYZ result) 52 | { 53 | return Vector_EndPosGet(this->Handle, (double*) result); 54 | } 55 | 56 | //---------------------------------------------------------------------------- 57 | int Vector::getEndXPoints(EndXPointType_LRM_BH_XY result) 58 | { 59 | return Vector_EndXPointsGet(this->Handle, (double*) result); 60 | } 61 | -------------------------------------------------------------------------------- /src/Utilities/MicronTrackerInterface/Vector.h: -------------------------------------------------------------------------------- 1 | /************************************************************** 2 | * 3 | * Micron Tracker: Example C++ wrapper and Multi-platform demo 4 | * 5 | * Written by: 6 | * Shahram Izadyar, Robarts Research Institute - London- Ontario , www.robarts.ca 7 | * Claudio Gatti, Claron Technology - Toronto -Ontario, www.clarontech.com 8 | * 9 | * Copyright Claron Technology 2000-2013 10 | * 11 | ***************************************************************/ 12 | #ifndef __VECTOR_H__ 13 | #define __VECTOR_H__ 14 | 15 | #include "MicronTrackerInterface.h" 16 | 17 | class Vector 18 | { 19 | public: 20 | // left/right/middle camera; base/head; x/y coordinate 21 | typedef double EndXPointType_LRM_BH_XY[3][2][2]; 22 | // left/right/middle camera; base/head; x/y/z coordinate 23 | typedef double EndPosType_BH_XYZ[2][3]; 24 | 25 | Vector(mtHandle h = 0); 26 | ~Vector(); 27 | mtHandle getHandle(); 28 | 29 | int getEndPos(EndPosType_BH_XYZ result); 30 | int getEndXPoints(EndXPointType_LRM_BH_XY result); 31 | 32 | protected: 33 | mtHandle Handle; 34 | bool OwnedByMe; 35 | }; 36 | 37 | #endif -------------------------------------------------------------------------------- /src/Utilities/MicronTrackerInterface/XPoints.h: -------------------------------------------------------------------------------- 1 | /************************************************************** 2 | * 3 | * Micron Tracker: Example C++ wrapper and Multi-platform demo 4 | * 5 | * Written by: 6 | * Ahmad Kolahi, Claron Technology - Toronto -Ontario, www.clarontech.com 7 | * 8 | * Modified by: 9 | * Claudio Gatti, Claron Technology - Toronto -Ontario, www.clarontech.com 10 | * 11 | * Copyright Claron Technology 2000-2012 12 | * 13 | ***************************************************************/ 14 | #ifndef __XPOINTS_H__ 15 | #define __XPOINTS_H__ 16 | 17 | #include "MicronTrackerInterface.h" 18 | 19 | class MCamera; 20 | 21 | class XPoints 22 | { 23 | public: 24 | XPoints(); 25 | ~XPoints(); 26 | mtHandle getHandle(); 27 | 28 | mtHandle detectedXPoints(MCamera* cam); 29 | int countXPoints(MCamera* cam); 30 | int processFrame(MCamera* cam); 31 | 32 | protected: 33 | mtHandle Handle; 34 | bool OwnedByMe; 35 | }; 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /src/Utilities/MicronTrackerInterface/Xform3D.h: -------------------------------------------------------------------------------- 1 | /************************************************************** 2 | * 3 | * Micron Tracker: Example C++ wrapper and Multi-platform demo 4 | * 5 | * Written by: 6 | * Shahram Izadyar, Robarts Research Institute - London- Ontario , www.robarts.ca 7 | * Claudio Gatti, Claron Technology - Toronto -Ontario, www.clarontech.com 8 | * 9 | * Modified by: 10 | * Gregory Bootsma, Princess Margaret Hospital - Toronto - Ontario 11 | * 12 | * Copyright Claron Technology 2000-2013 13 | * 14 | ***************************************************************/ 15 | #ifndef __XFORM3D_H__ 16 | #define __XFORM3D_H__ 17 | 18 | #include "MicronTrackerInterface.h" 19 | 20 | class Xform3D 21 | { 22 | public: 23 | Xform3D(mtHandle h = 0); 24 | ~Xform3D(); 25 | 26 | mtHandle getHandle(); 27 | Xform3D* concatenate(Xform3D* subsequentXform); 28 | Xform3D* inverse(); 29 | Xform3D* inBetween(Xform3D* secondXf, double secondFract0To1); 30 | 31 | double getShift(int index); 32 | int getShiftVector(double* s); 33 | int getRotateVector(double* resultVector, double* inVector, bool scaleIt = false); 34 | double getQuaternion(int index); 35 | int getQuaternionVector(double* q); 36 | int getHazardState(); 37 | 38 | private: 39 | mtHandle Handle; 40 | bool OwnedByMe; 41 | }; 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /src/Utilities/Ransac/Common/RandomNumberGenerator.h: -------------------------------------------------------------------------------- 1 | #ifndef _RANDOM_NUMBER_GENERATOR_H_ 2 | #define _RANDOM_NUMBER_GENERATOR_H_ 3 | 4 | #include 5 | 6 | /** 7 | * Random number generator, uniform and normal distributions. 8 | * This implementation wraps the vnl_random object and uses "nicer" 9 | * naming conventions, i.e. uniform instead of drand64. 10 | * 11 | * @author: Ziv Yaniv (zivy@isis.georgetown.edu) 12 | * 13 | */ 14 | class RandomNumberGenerator { 15 | public: 16 | RandomNumberGenerator() 17 | { 18 | generator = new vnl_random(); 19 | } 20 | 21 | 22 | RandomNumberGenerator( unsigned long seed ) 23 | { 24 | generator = new vnl_random(seed); 25 | } 26 | 27 | 28 | ~RandomNumberGenerator() 29 | { 30 | delete generator; 31 | } 32 | 33 | 34 | /** 35 | * Get a random number uniformly distributed in (a,b). 36 | * @param a Lower bound for random numbers, default is 0.0. 37 | * @param b Upper bound for random numbers, default is 1.0. 38 | */ 39 | virtual double uniform(double a=0.0, double b=1.0) { 40 | return generator->drand64(a,b); 41 | } 42 | 43 | /** 44 | * Get a random number normally distributed with given mean and standard deviation. 45 | * @param sigma Normal distributions standard deviation, default is one. 46 | * @param mu Normal distribution's mean, default is zero. 47 | */ 48 | virtual double normal(double sigma=1.0, double mu=0.0) { 49 | return sigma*generator->normal64() + mu; 50 | } 51 | 52 | private: 53 | vnl_random *generator; 54 | }; 55 | 56 | #endif //_RANDOM_NUMBER_GENERATOR_H_ -------------------------------------------------------------------------------- /src/Utilities/Ransac/ParametersEstimator.txx: -------------------------------------------------------------------------------- 1 | #ifndef _PARAMETERS_ESTIMATOR_TXX_ 2 | #define _PARAMETERS_ESTIMATOR_TXX_ 3 | 4 | namespace itk { 5 | 6 | template 7 | void ParametersEstimator::SetMinimalForEstimate( unsigned int minForEstimate ) 8 | { 9 | if( minForEstimate == 0 ) 10 | throw ExceptionObject(__FILE__,__LINE__, 11 | "Invalid minimal number of objects for exact estimate."); 12 | 13 | this->minForEstimate = minForEstimate; 14 | } 15 | 16 | 17 | template 18 | unsigned int ParametersEstimator::GetMinimalForEstimate() 19 | { 20 | return this->minForEstimate; 21 | } 22 | 23 | 24 | } // end namespace itk 25 | 26 | #endif //_PARAMETERS_ESTIMATOR_TXX_ 27 | -------------------------------------------------------------------------------- /src/Utilities/Ransac/Testing/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ADD_EXECUTABLE(planeEstimationTest PlaneParametersEstimatorTest.cxx) 2 | SET_TARGET_PROPERTIES(planeEstimationTest PROPERTIES FOLDER Tests) 3 | TARGET_LINK_LIBRARIES(planeEstimationTest PUBLIC 4 | ITKCommon 5 | itkvnl 6 | itkvnl_algo 7 | ) 8 | 9 | ADD_EXECUTABLE(sphereEstimationTest SphereParametersEstimatorTest.cxx) 10 | SET_TARGET_PROPERTIES(sphereEstimationTest PROPERTIES FOLDER Tests) 11 | TARGET_LINK_LIBRARIES(sphereEstimationTest PUBLIC 12 | ITKCommon 13 | itkvnl 14 | itkvnl_algo 15 | ) 16 | 17 | ADD_TEST(PlaneEstimationTest planeEstimationTest) 18 | ADD_TEST(SphereEstimationTest sphereEstimationTest) -------------------------------------------------------------------------------- /src/Utilities/Ransac/license.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2010, Ziv Yaniv, All rights reserved. 2 | 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions 5 | are met: 6 | (1) Redistributions of source code must retain the above copyright 7 | notice, this list of conditions and the following disclaimer. 8 | (2) Redistributions in binary form must reproduce the above copyright 9 | notice, this list of conditions and the following disclaimer in the 10 | documentation and/or other materials provided with the distribution. 11 | (3) Neither the name of Georgetown University nor the 12 | names of its contributors may be used to endorse or promote products 13 | derived from this software without specific prior written permission. 14 | 15 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 16 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 19 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 22 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 | -------------------------------------------------------------------------------- /src/Utilities/Ransac/readme.txt: -------------------------------------------------------------------------------- 1 | This is the source code for a C++ templated implementation of the RANSAC 2 | algorithm. The implementation is multi-threaded. In addition to the RANSAC 3 | algorithm the code includes estimators for two parametric entities, n 4 | dimensional planes and spheres. Example programs showing the use of the RANSAC 5 | algorithm combined with the parameter estimators are also given. Testing 6 | programs are only provided for the two parameter estimators. 7 | 8 | The code is "in the style of ITK". That is, it is very similar to the official 9 | ITK style but does not follow all of the required conventions. 10 | 11 | Manifest: 12 | 13 | RANSAC.{h,txx} - Multi-threaded implementation of the generic RANSAC algorithm. 14 | 15 | ParametersEstimator.{h,txx} - Super class of all parameter estimation objects 16 | that can be used with the RANSAC algorithm. This is an abstract class that 17 | defines an interface. 18 | 19 | PlaneParametersEstimator.{h,txx} - Estimation code for n-dimensional planes. 20 | 21 | SphereParametersEstimator.{h,txx} - Estimation code for n-dimensional spheres. 22 | 23 | Examples/{sphereEstimation.cxx,planeEstimation.cxx} - Example programs combining 24 | RANSAC with the parameter estimators. The dimensionality is hard coded (set to 3). 25 | The programs work for any dimensionality, just change the DIMENSION constant. For 26 | DIMENSION==3 the programs have a side effect of writing two open inventor scene 27 | files corresponding to the least squares and RANSAC based estimates. 28 | 29 | Testing/*.cxx - Tests of the two parameter estimators. 30 | 31 | Common/RandomNumberGenerator.h - Wrapper for the vnl random number generator. Used by 32 | the testing code and the example code. 33 | -------------------------------------------------------------------------------- /src/Utilities/UltravioletPCOUVCamera/README.md: -------------------------------------------------------------------------------- 1 | This module allow you to use the PCO Ultraviolet Camera. 2 | 3 | Developed by ULL - IACTEC groups 4 | 5 | The MIT License (MIT) 6 | 7 | Copyright (c) 2017 Eavise Research Group 8 | 9 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 14 | 15 | -------------------------------------------------------------------------------- /src/Utilities/xio/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | PROJECT(vtkxio) 2 | 3 | SET(vtkxio_SRCS 4 | MadgwickAhrsAlgo.cxx 5 | MahonyAhrsAlgo.cxx 6 | ) 7 | 8 | SET(vtkxio_HDRS 9 | AhrsAlgo.h 10 | MadgwickAhrsAlgo.h 11 | MahonyAhrsAlgo.h 12 | ) 13 | 14 | ADD_LIBRARY(vtkxio STATIC ${vtkxio_SRCS} ${vtkxio_HDRS}) 15 | SET_TARGET_PROPERTIES(vtkxio PROPERTIES FOLDER Utilities) 16 | target_include_directories(vtkxio PUBLIC 17 | $ 18 | $ 19 | ) 20 | TARGET_LINK_LIBRARIES( vtkxio ) 21 | 22 | SET (Utilities_INCLUDE_DIRS ${Utilities_INCLUDE_DIRS} 23 | ${CMAKE_CURRENT_SOURCE_DIR} 24 | CACHE INTERNAL "" FORCE) 25 | 26 | # -------------------------------------------------------------------------- 27 | # Set external MS project 28 | SET (PLUSLIB_DEPENDENCIES ${PLUSLIB_DEPENDENCIES} vtkxio CACHE INTERNAL "" FORCE) 29 | LIST(REMOVE_DUPLICATES PLUSLIB_DEPENDENCIES) 30 | # Add this variable to UsePlusLib.cmake.in INCLUDE_PLUSLIB_MS_PROJECTS macro 31 | SET(vcProj_vtkxio vtkxio;${PlusLib_BINARY_DIR}/src/Utilities/xio/vtkxio.vcxproj CACHE INTERNAL "" FORCE) 32 | 33 | INSTALL(TARGETS vtkxio EXPORT PlusLib 34 | RUNTIME DESTINATION "${PLUSLIB_BINARY_INSTALL}" 35 | LIBRARY DESTINATION "${PLUSLIB_LIBRARY_INSTALL}" 36 | ARCHIVE DESTINATION "${PLUSLIB_ARCHIVE_INSTALL}" 37 | ) 38 | INSTALL(FILES ${vtkxio_HDRS} 39 | DESTINATION "${PLUSLIB_INCLUDE_INSTALL}/vtkxio" 40 | ) -------------------------------------------------------------------------------- /src/Utilities/xio/MadgwickAhrsAlgo.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | // Implementation of Madgwick's IMU and AHRS algorithms. 8 | // See: http://www.x-io.co.uk/node/8#open_source_ahrs_and_imu_algorithms 9 | // 10 | // Date Author Notes 11 | // 29/09/2011 SOH Madgwick Initial release 12 | // 02/10/2011 SOH Madgwick Optimised for reduced CPU load 13 | 14 | #ifndef MadgwickAhrsAlgo_h 15 | #define MadgwickAhrsAlgo_h 16 | 17 | #include "AhrsAlgo.h" 18 | 19 | class MadgwickAhrsAlgo : public AhrsAlgo 20 | { 21 | public: 22 | 23 | MadgwickAhrsAlgo() 24 | { 25 | beta=0.1f; 26 | } 27 | 28 | virtual void Update(float gx, float gy, float gz, float ax, float ay, float az, float mx, float my, float mz); 29 | virtual void UpdateIMU(float gx, float gy, float gz, float ax, float ay, float az); 30 | 31 | virtual void SetGain(float proportional, float) { beta=proportional; }; 32 | 33 | protected: 34 | 35 | float beta; // algorithm gain 36 | }; 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /src/Utilities/xio/MahonyAhrsAlgo.h: -------------------------------------------------------------------------------- 1 | /*=Plus=header=begin====================================================== 2 | Program: Plus 3 | Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved. 4 | See License.txt for details. 5 | =========================================================Plus=header=end*/ 6 | 7 | // Madgwick's implementation of Mahony's AHRS algorithm. 8 | // See: http://www.x-io.co.uk/node/8#open_source_ahrs_and_imu_algorithms 9 | // 10 | // Date Author Notes 11 | // 29/09/2011 SOH Madgwick Initial release 12 | // 02/10/2011 SOH Madgwick Optimised for reduced CPU load 13 | 14 | #ifndef MahonyAhrsAlgo_h 15 | #define MahonyAhrsAlgo_h 16 | 17 | #include "AhrsAlgo.h" 18 | 19 | class MahonyAhrsAlgo : public AhrsAlgo 20 | { 21 | public: 22 | 23 | MahonyAhrsAlgo() 24 | { 25 | twoKp=2.0f * 0.5f; 26 | twoKi=2.0f * 0.0f; 27 | 28 | integralFBx = 0.0f; 29 | integralFBy = 0.0f; 30 | integralFBz = 0.0f; 31 | } 32 | 33 | virtual void Update(float gx, float gy, float gz, float ax, float ay, float az, float mx, float my, float mz); 34 | virtual void UpdateIMU(float gx, float gy, float gz, float ax, float ay, float az); 35 | 36 | virtual void SetGain(float proportional, float integral) { twoKp=2*proportional; twoKi=2*integral; }; 37 | 38 | protected: 39 | 40 | float twoKp; // 2 * proportional gain (Kp) 41 | float twoKi; // 2 * integral gain (Ki) 42 | 43 | // integral error terms scaled by Ki 44 | float integralFBx; 45 | float integralFBy; 46 | float integralFBz; 47 | }; 48 | 49 | #endif 50 | -------------------------------------------------------------------------------- /src/scripts/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # -------------------------------------------------------------------------- 2 | # Install 3 | 4 | SET(PLUSLIB_SCRIPTS_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE INTERNAL "Path to the scripts directory" FORCE) 5 | 6 | IF(PLUS_INSTALL_SCRIPTS_DIR) 7 | # Uncomment the following lines if anything has to be installed from this directory 8 | # INSTALL( FILES 9 | # ${FILENAMES_TO_INSTALL} 10 | # DESTINATION "${PLUS_INSTALL_SCRIPTS_DIR}" 11 | # CONFIGURATIONS Release 12 | # COMPONENT Scripts 13 | # ) 14 | ENDIF() -------------------------------------------------------------------------------- /src/scripts/StartPlusCommandPrompt.bat: -------------------------------------------------------------------------------- 1 | @rem This batch file starts a command prompt that makes Plus executables easily accessible. 2 | @rem The Plus binary directory is added to the system PATH variable, 3 | @rem so any Plus commands can be started even if the current directory is changed. 4 | @rem This file must be in the Plus binary directory (where PlusVersion.exe is located). 5 | 6 | @echo Plus command prompt 7 | @set PATH="%~dp0";%PATH% 8 | @cd /d %~dp0 9 | @PlusVersion.exe --short 10 | @echo. 11 | @%comspec% /k 12 | -------------------------------------------------------------------------------- /src/scripts/StartPlusCommandPrompt.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PlusToolkit/PlusLib/7eaf8691907d22e9759a97f7e5668d1b01c29b87/src/scripts/StartPlusCommandPrompt.ico --------------------------------------------------------------------------------