1 /* NAME: 2 E3Controller.h 3 4 DESCRIPTION: 5 Header file for E3Controller.c. 6 7 COPYRIGHT: 8 Copyright (c) 1999-2004, Quesa Developers. All rights reserved. 9 10 For the current release of Quesa, please see: 11 12 <http://www.quesa.org/> 13 14 Redistribution and use in source and binary forms, with or without 15 modification, are permitted provided that the following conditions 16 are met: 17 18 o Redistributions of source code must retain the above copyright 19 notice, this list of conditions and the following disclaimer. 20 21 o Redistributions in binary form must reproduce the above 22 copyright notice, this list of conditions and the following 23 disclaimer in the documentation and/or other materials provided 24 with the distribution. 25 26 o Neither the name of Quesa nor the names of its contributors 27 may be used to endorse or promote products derived from this 28 software without specific prior written permission. 29 30 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 31 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 32 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 33 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 34 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 35 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 36 TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 37 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 38 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 39 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 40 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 41 ___________________________________________________________________________ 42 */ 43 #ifndef E3CONTROLLER_HDR 44 #define E3CONTROLLER_HDR 45 //============================================================================= 46 // Include files 47 //----------------------------------------------------------------------------- 48 // Include files go here 49 50 51 52 53 54 //============================================================================= 55 // C++ preamble 56 //----------------------------------------------------------------------------- 57 #ifdef __cplusplus 58 extern "C" { 59 #endif 60 61 62 63 64 65 //============================================================================= 66 // Function prototypes 67 //----------------------------------------------------------------------------- 68 TQ3Status E3Controller_GetListChanged(TQ3Boolean *listChanged, TQ3Uns32 *serialNumber); 69 TQ3Status E3Controller_Next(TQ3ControllerRef controllerRef, TQ3ControllerRef *nextControllerRef); 70 TQ3ControllerRef E3Controller_New(const TQ3ControllerData *controllerData); 71 TQ3Status E3Controller_Decommission(TQ3ControllerRef controllerRef); 72 TQ3Status E3Controller_SetActivation(TQ3ControllerRef controllerRef, TQ3Boolean active); 73 TQ3Status E3Controller_GetActivation(TQ3ControllerRef controllerRef, TQ3Boolean *active); 74 TQ3Status E3Controller_GetSignature(TQ3ControllerRef controllerRef, char *signature, TQ3Uns32 numChars); 75 TQ3Status E3Controller_SetChannel(TQ3ControllerRef controllerRef, TQ3Uns32 channel, const void *data, TQ3Uns32 dataSize); 76 TQ3Status E3Controller_GetChannel(TQ3ControllerRef controllerRef, TQ3Uns32 channel, void *data, TQ3Uns32 *dataSize); 77 TQ3Status E3Controller_GetValueCount(TQ3ControllerRef controllerRef, TQ3Uns32 *valueCount); 78 TQ3Status E3Controller_SetTracker(TQ3ControllerRef controllerRef, TQ3TrackerObject tracker); 79 TQ3Status E3Controller_HasTracker(TQ3ControllerRef controllerRef, TQ3Boolean *hasTracker); 80 TQ3Status E3Controller_Track2DCursor(TQ3ControllerRef controllerRef, TQ3Boolean *track2DCursor); 81 TQ3Status E3Controller_Track3DCursor(TQ3ControllerRef controllerRef, TQ3Boolean *track3DCursor); 82 TQ3Status E3Controller_GetButtons(TQ3ControllerRef controllerRef, TQ3Uns32 *buttons); 83 TQ3Status E3Controller_SetButtons(TQ3ControllerRef controllerRef, TQ3Uns32 buttons); 84 TQ3Status E3Controller_GetTrackerPosition(TQ3ControllerRef controllerRef, TQ3Point3D *position); 85 TQ3Status E3Controller_SetTrackerPosition(TQ3ControllerRef controllerRef, const TQ3Point3D *position); 86 TQ3Status E3Controller_MoveTrackerPosition(TQ3ControllerRef controllerRef, const TQ3Vector3D *delta); 87 TQ3Status E3Controller_GetTrackerOrientation(TQ3ControllerRef controllerRef, TQ3Quaternion *orientation); 88 TQ3Status E3Controller_SetTrackerOrientation(TQ3ControllerRef controllerRef, const TQ3Quaternion *orientation); 89 TQ3Status E3Controller_MoveTrackerOrientation(TQ3ControllerRef controllerRef, const TQ3Quaternion *delta); 90 TQ3Status E3Controller_GetValues(TQ3ControllerRef controllerRef, TQ3Uns32 valueCount, float *values, TQ3Boolean *changed, TQ3Uns32 *serialNumber); 91 TQ3Status E3Controller_SetValues(TQ3ControllerRef controllerRef, const float *values, TQ3Uns32 valueCount); 92 TQ3ControllerStateObject E3ControllerState_New(TQ3ControllerRef controllerRef); 93 TQ3Status E3ControllerState_SaveAndReset(TQ3ControllerStateObject controllerStateObject); 94 TQ3Status E3ControllerState_Restore(TQ3ControllerStateObject controllerStateObject); 95 TQ3TrackerObject E3Tracker_New(TQ3TrackerNotifyFunc notifyFunc); 96 TQ3Status E3Tracker_SetNotifyThresholds(TQ3TrackerObject trackerObject, float positionThresh, float orientationThresh); 97 TQ3Status E3Tracker_GetNotifyThresholds(TQ3TrackerObject trackerObject, float *positionThresh, float *orientationThresh); 98 TQ3Status E3Tracker_SetActivation(TQ3TrackerObject trackerObject, TQ3Boolean active); 99 TQ3Status E3Tracker_GetActivation(TQ3TrackerObject trackerObject, TQ3Boolean *active); 100 TQ3Status E3Tracker_GetButtons(TQ3TrackerObject trackerObject, TQ3Uns32 *buttons); 101 TQ3Status E3Tracker_ChangeButtons(TQ3TrackerObject trackerObject, TQ3ControllerRef controllerRef, TQ3Uns32 buttons, TQ3Uns32 buttonMask); 102 TQ3Status E3Tracker_GetPosition(TQ3TrackerObject trackerObject, TQ3Point3D *position, TQ3Vector3D *delta, TQ3Boolean *changed, TQ3Uns32 *serialNumber); 103 TQ3Status E3Tracker_SetPosition(TQ3TrackerObject trackerObject, TQ3ControllerRef controllerRef, const TQ3Point3D *position); 104 TQ3Status E3Tracker_MovePosition(TQ3TrackerObject trackerObject, TQ3ControllerRef controllerRef, const TQ3Vector3D *delta); 105 TQ3Status E3Tracker_GetOrientation(TQ3TrackerObject trackerObject, TQ3Quaternion *orientation, TQ3Quaternion *delta, TQ3Boolean *changed, TQ3Uns32 *serialNumber); 106 TQ3Status E3Tracker_SetOrientation(TQ3TrackerObject trackerObject, TQ3ControllerRef controllerRef, const TQ3Quaternion *orientation); 107 TQ3Status E3Tracker_MoveOrientation(TQ3TrackerObject trackerObject, TQ3ControllerRef controllerRef, const TQ3Quaternion *delta); 108 TQ3Status E3Tracker_SetEventCoordinates(TQ3TrackerObject trackerObject, TQ3Uns32 timeStamp, TQ3Uns32 buttons, const TQ3Point3D *position, const TQ3Quaternion *orientation); 109 TQ3Status E3Tracker_GetEventCoordinates(TQ3TrackerObject trackerObject, TQ3Uns32 timeStamp, TQ3Uns32 *buttons, TQ3Point3D *position, TQ3Quaternion *orientation); 110 TQ3Status E3CursorTracker_PrepareTracking(void); 111 TQ3Status E3CursorTracker_SetTrackDeltas(TQ3Boolean trackDeltas); 112 TQ3Status E3CursorTracker_GetAndClearDeltas(float *depth, TQ3Quaternion *orientation, TQ3Boolean *hasOrientation, TQ3Boolean *changed, TQ3Uns32 *serialNumber); 113 TQ3Status E3CursorTracker_SetNotifyFunc(TQ3CursorTrackerNotifyFunc notifyFunc); 114 TQ3Status E3CursorTracker_GetNotifyFunc(TQ3CursorTrackerNotifyFunc *notifyFunc); 115 116 117 118 119 120 //============================================================================= 121 // C++ postamble 122 //----------------------------------------------------------------------------- 123 #ifdef __cplusplus 124 } 125 #endif 126 127 #endif 128 129