MCDriver.h

Go to the documentation of this file.
00001 // RC  4/24/2002  \HRandy95\Include\MCDriver.h
00002 
00003 #define __MCDRIVER_H
00004 
00005 #ifndef __VECTOR_H
00006 #include "Vector.h"
00007 #endif
00008 #ifndef __EXPORTS_H
00009 #include "EXPORTS.H"
00010 #endif
00011 #include "DLLPlugi.h"
00012 
00013 class MCDevice;
00014 class Matrix34;
00015 class Time;
00016 
00017 #define MCDLLVERSION 2
00018 
00019 class PLUGINEXPORT MCDriver : public DLLPlugin {
00020 private:
00021    MCDevice *device;
00022    
00023 public:
00024    // RETURN VALUES FOR LiveCaptureFrame()
00025    enum FrameError { FE_FAILED, FE_SUCCESS, FE_TRYAGAIN };
00026 
00027    // CHANNEL INDEXES FOR SETVALUE
00028    enum { XTRANS, YTRANS, ZTRANS, XSCALE, YSCALE, ZSCALE, XORIENT, YORIENT, ZORIENT, ROLL };
00029    
00030    MCDriver(HTreeObject *htreeobject) : DLLPlugin(htreeobject) {}
00031 
00032    void SetDevice( MCDevice *pdevice ) { device = pdevice; }
00033    MCDevice *GetDevice() { return device; }
00034    
00035    // UTILITY FUNCTIONS FOR LIVE & STATIC CAPTURE
00036    BOOL  BuildSensorArray( int count );
00037    BOOL  InsertSensor( int index, char *name, int parentindex=-1 );
00038    BOOL  InsertSensor( int index, char *name, Vector start, Vector end, int parentindex=-1 );
00039    void DoneInsertingSensors();
00040    void  FreeSensorArray();
00041    BOOL  SetValue( int sensorindex, int channelindex, float value );
00042    BOOL  StoreRotate( int sensorindex, const Matrix34 &matrix );
00043    BOOL  StoreRotateStandard( int sensorindex, const Matrix34 &matrix );
00044    BOOL  StoreTranslateStandard( int sensorindex, const Vector translate );
00045    BOOL  StorePose( MCDevice *device, char *name, float percent );
00046 
00047    // UTILITY FUNCTIONS FOR STATIC CAPTURE
00048    Time  GetTime();
00049    void  SetTime( Time time );
00050    float GetFrame();
00051    void  SetFrame( float frame );
00052    float GetSystemRate();
00053    float GetCaptureRate();
00054 
00055    void  Redraw();
00056    BOOL  EscapeKeyDown();
00057 
00058    // CAPABILITIES
00059    virtual BOOL         SupportsLiveCaptureSequence()   { return FALSE; }
00060    virtual BOOL         SupportsLiveCaptureFrame()      { return FALSE; }
00061    virtual BOOL         SupportsStaticCaptureSequence() { return FALSE; } 
00062 
00063    // IMPLEMENTATION OF LIVE CAPTURE
00064    virtual BOOL         LiveCaptureInit() { return FALSE; }
00065    virtual FrameError   LiveCaptureFrame() { return FE_FAILED; }
00066    virtual void         LiveCaptureClose() {}
00067 
00068    // IMPLEMENTATION OF STATIC CAPTURE
00069    virtual BOOL         StaticCaptureSequence() { return FALSE; }
00070 };

This A:M SDK v12.0 documentation is maintained by Hash Inc. Please address any comments concerning this documentation to AMReports. If you have any information, knowledge, or documentation to share with the A:M developer community, please post them on the Hash SDK forum.

Generated on Thu Oct 27 11:46:44 2005 with doxygen 1.4.5 written by Dimitri van Heesch, © 1997-2001