//=========================================================================== int cPhantomDevice::getPosition(cVector3d& a_position) { // check if drivers are installed if (!m_driverInstalled) return (-1); double x,y,z; int error = hdPhantomGetPosition(m_deviceID, &x, &y, &z); a_position.set(x, y, z); estimateLinearVelocity(a_position); return (error); }
//=========================================================================== int cHydraDevice::getPosition(cVector3d& a_position) { //std::cout << "get pos"; /************************************************************************ STEP 7: Here you may implement code which reads the position (X,Y,Z) from your haptic device. Read the values from your device and modify the local variable (x,y,z) accordingly. If the operation fails return an error code such as -1 for instance. Note: For consistency, units must be in meters. If your device is located in front of you, the x-axis is pointing towards you (the operator). The y-axis points towards your right hand side and the z-axis points up towards the sky. *************************************************************************/ int error = 0; double x,y,z; // *** INSERT YOUR CODE HERE, MODIFY CODE BELLOW ACCORDINGLY *** sixenseAllControllerData acd; sixenseGetAllNewestData( &acd ); y = acd.controllers[a_deviceNumber].pos[0] / 1000.0f; z = acd.controllers[a_deviceNumber].pos[1] / 1000.0f - 0.3; x = acd.controllers[a_deviceNumber].pos[2] / 1000.0f - 0.3; // offset cMatrix3d r; getRotation(r); cVector3d v(-0.08,0,0); v = r * v; // store new position values a_position.set(x+v.x(), y+v.y(), z+v.z()); // estimate linear velocity estimateLinearVelocity(a_position); // exit return (error); }
//============================================================================== bool cMyCustomDevice::getPosition(cVector3d& a_position) { //////////////////////////////////////////////////////////////////////////// /* STEP 7: Here you shall implement code that reads the position (X,Y,Z) from your haptic device. Read the values from your device and modify the local variable (x,y,z) accordingly. If the operation fails return an C_ERROR, C_SUCCESS otherwise Note: For consistency, units must be in meters. If your device is located in front of you, the x-axis is pointing towards you (the operator). The y-axis points towards your right hand side and the z-axis points up towards the sky. */ //////////////////////////////////////////////////////////////////////////// bool result = C_SUCCESS; double x,y,z; // *** INSERT YOUR CODE HERE, MODIFY CODE BELLOW ACCORDINGLY *** x = 0.0; // x = getMyDevicePositionX() y = 0.0; // y = getMyDevicePositionY() z = 0.0; // z = getMyDevicePositionZ() // store new position values a_position.set(x, y, z); // estimate linear velocity estimateLinearVelocity(a_position); // exit return (result); }
//=========================================================================== int cMyCustomDevice::getPosition(cVector3d& a_position) { /************************************************************************ STEP 7: Here you may implement code which reads the position (X,Y,Z) from your haptic device. Read the values from your device and modify the local variable (x,y,z) accordingly. If the operation fails return an error code such as -1 for instance. Note: For consistency, units must be in meters. If your device is located in front of you, the x-axis is pointing towards you (the operator). The y-axis points towards your right hand side and the z-axis points up towards the sky. *************************************************************************/ int error = 0; double x,y,z; // *** INSERT YOUR CODE HERE, MODIFY CODE BELLOW ACCORDINGLY *** x = 0.0; // x = getMyDevicePositionX() y = 0.0; // y = getMyDevicePositionY() z = 0.0; // z = getMyDevicePositionZ() // store new position values a_position.set(x, y, z); // estimate linear velocity estimateLinearVelocity(a_position); // exit return (error); }