1 #ifndef __FBDEVICELAYOUT_H__
2 #define __FBDEVICELAYOUT_H__
43 #include <kaydaradef.h>
48 #define FBSDK_DLL K_DLLIMPORT
58 #ifdef FBSDKUseNamespace
59 namespace FBSDKNamespace {
67 #if !defined(K_NO_OPTICAL)
76 #define FBRegisterDeviceLayout( ClassName,UniqueNameStr, IconFilename ) \
77 HIObject RegisterDeviceLayout##ClassName( HIObject ,const char * ,void *pData) \
79 ClassName *Class = new ClassName( (FBDevice*)FBGetFBObject((HIObject)pData) ); \
80 Class->mAllocated = true; \
81 if (Class->FBCreate()) { \
82 return Class->GetHIObject(); \
88 FBLibraryModule( ClassName ) \
90 FBRegisterObject( ClassName,"UI_Associated_ClassName",UniqueNameStr,UniqueNameStr" Device Layout",RegisterDeviceLayout##ClassName, true, IconFilename );\
97 #define FBDeviceLayoutDeclare( ClassName,Parent ) \
98 FBClassDeclare( ClassName,Parent ); \
100 ClassName(FBDevice* pDevice):Parent(pDevice) { FBClassInit; } \
106 #define FBDeviceLayoutImplementation( ThisComponent ) \
107 FBClassImplementation( ThisComponent )
130 #if !defined(K_NO_OPTICAL)
145 kGUIModelOpticalList = 1<<0,
146 kGUIModelOpticalCreate = 1<<1,
147 kGUIModelOpticalDampingTime = 1<<2,
148 kGUIDeviceStatus = 1<<3,
149 kGUIDeviceReset = 1<<4,
173 #define FBTRACKER_NO_LENSFILE "-- no lens file --"
408 #ifdef FBSDKUseNamespace
Camera device base class.
Instrument for a camera device.
FBEditNumber mEditNumberCenterY
Instrument layout: Optical center Y numberical edit box.
FBLabel mLabelSyncDelay
Communications layout: Sync delay label.
virtual void OnButtonManualFovClick(HISender pSender, HKEvent pEvent)
Callback: Manual FOV toggle.
FBLabel mLabelLensfileName
Instrument layout: Lensfile filename label.
virtual void UIResetLayoutCustom()
UIReset: Custom layout.
virtual void OnFovYEditNumberChange(HISender pSender, HKEvent pEvent)
Callback: FOV Y numerical change.
virtual void UICreateLayoutInstruments()
UICreate: Instrument layout.
FBLabel mLabelFovX
Instrument layout: FOV X label.
virtual void OnNodalXEditNumberChange(HISender pSender, HKEvent pEvent)
Callback: Nodal shift numerical change.
FBList mListNetworkProtocol
Communications layout: Network: Protocol list.
virtual void OnCenterYSliderChange(HISender pSender, HKEvent pEvent)
Callback: Optical center Y slider change.
FBLabel mLabelSimulatorAmplitude
Communications layout: Simulator: Amplitude label.
virtual void OnSharedMemoryAddressChange(HISender pSender, HKEvent pEvent)
Callback: Shared memory address change.
FBEditNumber mEditNumberNodalX
Instrument layout: Nodal shift numerical edit.
virtual void OnDeviceStatusChange(HISender pSender, HKEvent pEvent)
Callback: Device status change .
virtual void OnAspectRatioEditNumberChange(HISender pSender, HKEvent pEvent)
Callback: Aspect ratio numerical change.
FBSlider mSliderSimulatorFrequency
Communications layout: Simulator: Frequency slider.
virtual void OnLensfileChange(HISender pSender, HKEvent pEvent)
Callback: Lensfile change.
FBButton mButtonEnableSerial
Communications layout: Enable serial button.
FBSlider mSliderSimulatorAmplitude
Communications layout: Simulator: Amplitude slider.
FBButton mButtonInvertFocus
Instrument layout: Invert focus toggle.
FBSlider mSliderFovY
Instrument layout: FOV Y slider..
FBSlider mSliderSimulatorZoom
Communications layout: Simulator: Zoom slider.
virtual void UIRefreshLayoutCustom()
UIRefresh: Custom layout.
FBEditVector mEditVectorOffsetT
Instrument layout: Translation offset vector edit.
FBTabPanel mTabPanel
Main tab panel.
FBLabel mLabelCenterY
Instrument layout: Optical center Y label.
virtual void UIConfigureLayoutInfo()
UIConfigure: Information layout.
virtual void OnSharedMemoryChange(HISender pSender, HKEvent pEvent)
Callback: Shared memory state change.
virtual void OnSimulatorFocusEditNumberChange(HISender pSender, HKEvent pEvent)
Callback: Simulator focus numerical change.
FBEditNumber mEditNumberSimulatorZoom
Communications layout: Simulator: Zoom numerical edit.
virtual void OnButtonManualCenterClick(HISender pSender, HKEvent pEvent)
Callback: Manual Optical center toggle.
virtual void OnOffsetChange(HISender pSender, HKEvent pEvent)
Callback: Offset change.
FBLabel mLabelAspectRatioPresets
Instrument layout: Aspect ratio preset label.
virtual void OnSimulatorZoomSliderChange(HISender pSender, HKEvent pEvent)
Callback: Simulator zoom slider change.
virtual void UIConfigure()
Configure UI elements.
virtual void OnButtonLoadLensfileClick(HISender pSender, HKEvent pEvent)
Callback: Load lensfile button click.
virtual FBDeviceCameraInstrument * GetCurrentInstrument()
Get the current selected instrument.
FBEditNumber mEditNumberFovX
Instrument layout: FOV X numerical edit box.
virtual void FBDestroy() override
Open Reality Destructor.
virtual void OnFovChange(HISender pSender, HKEvent pEvent)
Callback: FOV change.
virtual void OnFovXSliderChange(HISender pSender, HKEvent pEvent)
Callback: FOV X slider change.
FBLabel mLabelOffsetT
Instrument layout: Translation offset label.
FBDeviceCamera * mDeviceCamera
Handle onto device.
virtual void UICreateLayoutCustom()
UICreate: Custom layout.
virtual void OnNetworkAddressChange(HISender pSender, HKEvent pEvent)
Callback: Network address change.
FBButton mButtonEnableSharedMemory
Communications layout: Enable shared memory button.
virtual void OnSharedMemoryHandleChange(HISender pSender, HKEvent pEvent)
Callback: Shared memory handle change.
virtual void UICreateLayoutCommunication()
UICreate: Communication layout.
virtual void OnFovUnitsRadClick(HISender pSender, HKEvent pEvent)
Callback: FOV units to radians.
virtual void OnFovUnitsDegClick(HISender pSender, HKEvent pEvent)
Callback: FOV units to degrees.
virtual void OnButtonResetLensfileClick(HISender pSender, HKEvent pEvent)
Callback: Reset lensfile button click.
FBEditNumber mEditNumberSyncDelay
Communications layout: Sync delay numerical edit box.
FBLabel mLabelSerialPort
Communications layout: Serial: Port label.
virtual void OnNodalXChange(HISender pSender, HKEvent pEvent)
Callback: Nodal shift change.
virtual void OnNetworkPortChange(HISender pSender, HKEvent pEvent)
Callback: Network port change.
virtual void OnSimulatorZoomEditNumberChange(HISender pSender, HKEvent pEvent)
Callback: Simulator zoom numerical change.
FBLayout mLayoutCommunication
Communications layout.
FBLayout mLayoutCustom
Custom layout.
FBEditNumber mEditNumberSimulatorAmplitude
Communications layout: Simulator: Amplitude numerical edit.
virtual void OnListInstrumentsChange(HISender pSender, HKEvent pEvent)
Callback: Instrument list.
virtual void OnEnableNetworkClick(HISender pSender, HKEvent pEvent)
Callback: Enable network communication.
virtual void UIConfigureLayoutInstruments()
UIConfigure: Instrument layout.
virtual void OnAspectRatioChange(HISender pSender, HKEvent pEvent)
Callback: Aspect ratio change.
FBLabel mLabelSerialBaudRate
Communications layout: Serial: Baud rate label.
FBButton mButtonActive
Instrument layout: Active button.
virtual void UIRefreshLayoutInstruments()
UIRefresh: Instrument layout.
virtual void OnSimulatorAmplitudeSliderChange(HISender pSender, HKEvent pEvent)
Callback: Simulator amplitude slider change.
FBEditNumber mEditNumberZoomX
Instrument layout: Zomm multiplier numerical edit.
FBSlider mSliderSyncDelay
Communications layout: Sync delay slider.
FBLabel mLabelFovY
Instrument layout: FOV Y label.
FBSlider mSliderAspectRatio
Instrument layout: Aspect ratio slider.
virtual void OnZoomXEditNumberChange(HISender pSender, HKEvent pEvent)
Callback: Zoom multiplier numerical change.
FBList mListSerialPort
Communications layout: Serial: Port list.
FBLayout mLayoutInstruments
Instrument layout.
virtual void OnUIIdle(HISender pSender, HKEvent pEvent)
Callback: UI Idle.
virtual void OnSimulatorChange(HISender pSender, HKEvent pEvent)
Callback: Simulator state change.
virtual void OnFovUnitsChange(HISender pSender, HKEvent pEvent)
Callback: FOV units change.
FBEditNumber mEditNumberAspectRatio
Instrument layout: Aspect ratio edit number.
FBSlider mSliderFovX
Instrument layout: FOV X slider.
virtual void UIUpdateEnabled()
Update enabled on functions.
FBLabel mLabelNodalX
Instrument layout: Nodal shift label.
virtual void UICreateLayoutInfo()
UICreate: Information layout.
virtual void OnSerialPortChange(HISender pSender, HKEvent pEvent)
Callback: Serial port change.
FBLayout mLayoutInfo
Information layout.
FBButton mButtonManualCenter
Instrument layout: Manual optical center button.
FBButton mButtonEnableSimulator
Communications layout: Enable simulator button.
FBButton mButtonSyncInfo
Communications layout: Sync information (debug) button.
virtual void OnZoomXSliderChange(HISender pSender, HKEvent pEvent)
Callback: Zoom multiplier slider change.
FBLabel mLabelFovUnits
Instrument layout: FOV units label.
virtual void OnInvertZoomClick(HISender pSender, HKEvent pEvent)
Callback: Invert zoom toggle.
FBSpread mSpreadInfo
Information layout: Spreadsheet.
virtual void UIRefreshLayoutCommunications()
UIRefresh: Communications layout.
virtual void OnCenterXSliderChange(HISender pSender, HKEvent pEvent)
Callback: Optical center X slider change.
FBLabel mLabelSimulatorZoom
Communications layout: Simulator: Zoom label.
FBLabel mLabelCenterX
Instrument layout: Optical center X label.
virtual void OnSerialBaudRateChange(HISender pSender, HKEvent pEvent)
Callback: Serial baud rate change.
virtual void UIRefresh()
Idle refresh.
FBLabel mLabelNetworkAddress
Communications layout: Network: Address label.
FBEditNumber mEditNumberCenterX
Instrument layout: Optical center X numberical edit box.
virtual void OnSimulatorFocusSliderChange(HISender pSender, HKEvent pEvent)
Callback: Simulator focus slider change.
FBPropertyBool CustomLayout
Custom layout?
FBSlider mSliderSimulatorFocus
Communications layout: Simulator: Focus slider.
virtual void OnSyncDelayChange(HISender pSender, HKEvent pEvent)
Callback: Sync delay change.
virtual void UICreate()
Create and assign UI regions.
virtual void OnFovYSliderChange(HISender pSender, HKEvent pEvent)
Callback: FOV Y slider change.
virtual void OnNetworkProtocolChange(HISender pSender, HKEvent pEvent)
Callback: Network protocol change.
virtual void OnTabPanelChange(HISender pSender, HKEvent pEvent)
Callback: Tab panel selection.
FBSlider mSliderZoomX
Instrument layout: Zoom multiplier slider.
virtual void OnSyncDelaySliderChange(HISender pSender, HKEvent pEvent)
Callback: Sync delay slider change.
FBLabel mLabelNetworkProtocol
Communications layout: Network: Protocol label.
virtual void OnInvertChange(HISender pSender, HKEvent pEvent)
Callback: Invert values change.
virtual void OnButtonSyncInfoClick(HISender pSender, HKEvent pEvent)
Callback: Sync debug info click.
virtual void OnOffsetTChange(HISender pSender, HKEvent pEvent)
Callback: Translation offset change.
virtual void OnAspectRatioSliderChange(HISender pSender, HKEvent pEvent)
Callback: Aspect ratio slider change.
FBLabel mLabelAddress
Communications layout: Shared Memory: Address label.
FBButton mButtonInvertZoom
Instrument layout: Invert zoom toggle.
virtual void OnFovXEditNumberChange(HISender pSender, HKEvent pEvent)
Callback: FOV X numerical change.
FBLabel mLabelZoomX
Instrument layout: Zoom multiplier label.
FBLabel mLabelHandle
Communications layout: Shared Memory: Handle label.
virtual bool FBCreate() override
Open Reality Constructor.
FBButton mButtonManualFov
Instrument layout: Manual FOV control button.
virtual void OnNetworkChange(HISender pSender, HKEvent pEvent)
Callback: Network state change.
FBEdit mEditNetworkPort
Communications layout: Network: Port text edit.
FBLabel mLabelOffsetR
Instrument layout: Rotation offset label.
virtual void OnSimulatorFrequencySliderChange(HISender pSender, HKEvent pEvent)
Callback: Simulator frequency slider change.
virtual void OnButtonActiveClick(HISender pSender, HKEvent pEvent)
Callback: Activate button click.
virtual void UIConfigureLayoutCustom()
UIConfigure: Custom layout.
virtual void UIResetLayoutCommunications()
UIReset: Communications layout.
FBSlider mSliderNodalX
Instrument layout: Nodal shift slider.
virtual void OnEnableSimulatorClick(HISender pSender, HKEvent pEvent)
Callback: Enable simulator communication.
virtual void UIReset()
Reset from device values.
virtual void OnSimulatorAmplitudeEditNumberChange(HISender pSender, HKEvent pEvent)
Callback: Simulator amplitude numerical change.
FBList mListSerialBaudRate
Communications layout: Serial: Baud rate list.
FBButton mButtonEnableNetwork
Communications layout: Enable network button.
FBButton mButtonResetLensfile
Instrument layout: Reset lensfile status button.
virtual void OnOffsetRChange(HISender pSender, HKEvent pEvent)
Callback: Rotation offset change.
virtual void OnEnableChange(HISender pSender, HKEvent pEvent)
Callback: Enable comm type change.
FBEditNumber mEditNumberSimulatorFocus
Communications layout: Simulator: Focus numerical edit.
FBLabel mLabelInversion
Instrument layout: Inversion label.
virtual void OnCenterXEditNumberChange(HISender pSender, HKEvent pEvent)
Callback: Optical center X numerical change.
FBLabel mLabelAspectRatio
Instrument layout: Aspect ratio label.
virtual void OnCenterYEditNumberChange(HISender pSender, HKEvent pEvent)
Callback: Optical center Y numerical change.
virtual void OnCenterChange(HISender pSender, HKEvent pEvent)
Callback: Optical center change.
FBEditNumber mEditNumberSimulatorFrequency
Communications layout: Simulator: Frequency numerical edit.
FBSlider mSliderCenterY
Instrument layout: Optical center Y slider.
FBEditVector mEditVectorOffsetR
Instrument layout: Rotation offset vector edit.
virtual void OnSyncDelayEditNumberChange(HISender pSender, HKEvent pEvent)
Callback: Sync delay numerical change.
FBList mListAspectRatioPresets
Instrument layout: Aspect ratio preset list.
virtual void OnSimulatorFrequencyEditNumberChange(HISender pSender, HKEvent pEvent)
Callback: Simulator frequency numerical change.
FBSlider mSliderCenterX
Instrument layout: Optical center X slider.
virtual void OnSerialChange(HISender pSender, HKEvent pEvent)
Callback: Serial state change.
FBEditNumber mEditNumberFovY
Instrument layout: FOV Y numerical edit box.
FBList mListInstruments
Instrument layout: List of instruments.
FBEdit mEditHandle
Communications layout: Shared Memory: Handle text edit.
virtual void OnEnableSharedMemoryClick(HISender pSender, HKEvent pEvent)
Callback: Enable simulator.
FBButton mButtonFovUnitsDeg
Instrument layout: FOV in degrees button.
virtual void OnButtonManualChange(HISender pSender, HKEvent pEvent)
Callback: Manual (FOV or Optical center) button click.
FBPropertyInt SupportedCommTypes
Supported comm types.
virtual void UIResetLayoutInstruments()
UIReset: Instrument layout.
FBEdit mEditNetworkAddress
Communications layout: Network: Address text edit.
FBLabel mLabelNetworkPort
Communications layout: Network: Port label.
FBLabel mLabelSimulatorFocus
Communications layout: Simulator: Focus label.
virtual void OnEnableSerialClick(HISender pSender, HKEvent pEvent)
Callback: Enable serial communication.
FBLabel mLabelSimulatorFrequency
Communications layout: Simulator: Frequency label.
virtual void OnZoomXChange(HISender pSender, HKEvent pEvent)
Callback: Zoom multiplier change.
virtual void UIConfigureLayoutCommunication()
UIConfigure: Communications layout.
virtual void OnInvertFocusClick(HISender pSender, HKEvent pEvent)
Callback: Invert focus toggle.
virtual void OnAspectRatioPresetChange(HISender pSender, HKEvent pEvent)
Callback: Aspect ratio preset selection.
FBButton mButtonLoadLensfile
Instrument layout: Load lensfile button.
FBButton mButtonFovUnitsRad
Instrument layout: FOV in radians button.
FBEdit mEditAddress
Communications layout: Shared Memory: Address text edit.
virtual void OnNodalXSliderChange(HISender pSender, HKEvent pEvent)
Callback: Nodal shift slider change.
FBPropertyDevice Device
Property(R-): Handle on device.
FBDeviceLayout(FBDevice *pDevice=NULL)
Constructor.
Layout for optical device.
FBDeviceOptical * mDeviceOptical
Optical device.
FBPropertyInt GenericUIOptions
Property: GUI options.
FBDeviceOpticalGUIOptions
Different options for optical device GUI.
virtual bool FBCreate() override
Open Reality Creation function.
FBDeviceOpticalLayout(FBDevice *pDevice=NULL)
Constructor.
Used to build the user interface.
HKEventBase HKEvent
HKEvent.
HIRegister HISender
HISender.
#define __FBClassDeclare(Name, Parent)
For internal use only.
Contains the user interface components for the SDK.
Contains definitions for devices, boxes and models.
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
class K_DLLIMPORT FBPropertyBase< int, kFBPT_int > FBPropertyInt
Property: int
class K_DLLIMPORT FBPropertyBase< bool, kFBPT_bool > FBPropertyBool
Property: bool
#define FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
#define __FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.