#ifndef __ORDEVICE_OPTICAL_DEVICE_H__
#define __ORDEVICE_OPTICAL_DEVICE_H__
#include "ordeviceoptical_hardware.h"
#define ORDEVICEOPTICALTEMPLATE__CLASSNAME ORDeviceOptical_Template
#define ORDEVICEOPTICALTEMPLATE__CLASSSTR "ORDeviceOptical_Template"
class ORDeviceOptical_Template : public FBDeviceOptical
{
public:
virtual bool FBCreate() override;
virtual void FBDestroy() override;
virtual bool DeviceOperation ( kDeviceOperations pOperation ) override;
virtual bool AnimationNodeNotify( FBAnimationNode* pConnector, FBEvaluateInfo* pEvaluateInfo ) override;
virtual void DeviceIONotify ( kDeviceIOs pAction, FBDeviceNotifyInfo &pDeviceNotifyInfo ) override;
virtual void DeviceTransportNotify( kTransportMode pMode, FBTime pTime, FBTime pSystem ) override;
virtual void DeviceOpticalEvalAllMarkers(FBDeviceNotifyInfo &pDeviceNotifyInfo) override;
virtual bool FbxStore ( FBFbxObject* pFbxObject,
kFbxObjectStore pStoreWhat )
override;
virtual bool FbxRetrieve( FBFbxObject* pFbxObject,
kFbxObjectStore pStoreWhat )
override;
bool Init ();
bool Start ();
bool Stop ();
bool Reset ();
bool Done ();
void RigidBodySetup ();
void SetNetworkUse(bool pUse) { mHardware.SetNetworkUse( pUse ); }
bool GetNetworkUse() { return mHardware.GetNetworkUse(); }
void SetNetworkAddress (const char* pIPAddress){ mHardware.SetNetworkAddress(pIPAddress); }
const char* GetNetworkAddress () { return mHardware.GetNetworkAddress(); }
void SetNetworkPort (int pPort) { mHardware.SetNetworkPort(pPort); }
int GetNetworkPort () { return mHardware.GetNetworkPort(); }
int GetMarkerCount () { return mHardware.GetMarkerCount(); }
const char* GetMarkerName (int pMarkerIndex) { return mHardware.GetMarkerName(pMarkerIndex); }
double GetDataX (int pMarker) { return mHardware.GetDataX(pMarker); }
double GetDataY (int pMarker) { return mHardware.GetDataY(pMarker); }
double GetDataZ (int pMarker) { return mHardware.GetDataZ(pMarker); }
double GetDataO (int pMarker) { return mHardware.GetDataO(pMarker); }
private:
ORDeviceOptical_Template_Hardware mHardware;
};
#endif