void PlayerInputSystem::update() { if (_currentPlayer != NULL && glfwGetInputMode(_window, GLFW_CURSOR) == GLFW_CURSOR_DISABLED) { if (glfwGetKey(_window, GLFW_KEY_W)) { _currentPlayer->setPosition(addVector3(_currentPlayer->getPosition(), scalerMultiplyVector3(_eyeVector, 0.07f))); } if (glfwGetKey(_window, GLFW_KEY_S)) { _currentPlayer->setPosition(subtractVector3(_currentPlayer->getPosition(), scalerMultiplyVector3(_eyeVector, 0.07f))); } if (glfwGetKey(_window, GLFW_KEY_A)) { _currentPlayer->setPosition(subtractVector3(_currentPlayer->getPosition(), scalerMultiplyVector3(crossProductVector3(_eyeVector, makeVector3(0.0f, 1.0f, 0.0f)), 0.07f))); } if (glfwGetKey(_window, GLFW_KEY_D)) { _currentPlayer->setPosition(addVector3(_currentPlayer->getPosition(), scalerMultiplyVector3(crossProductVector3(_eyeVector, makeVector3(0.0f, 1.0f, 0.0f)), 0.07f))); } Vector2 currentMousePosition; glfwGetCursorPos(_window, ¤tMousePosition.x, ¤tMousePosition.y); _eyeVector = transformVector3(_eyeVector, makeRotationMatrix3((3.14f/(4.0f*45.0f))*-(currentMousePosition.x - _lastMousePosition.x), 0.0f, 1.0f, 0.0f)); glfwGetCursorPos(_window, &_lastMousePosition.x, &_lastMousePosition.y); _currentPlayer->setEyeVector(addVector3(_currentPlayer->getPosition(), _eyeVector)); } }
void CVectorTree::addVector2(_In_ NVEC2 vVector, _In_ nfUint32 value) { NVEC3 vVector3; vVector3.m_fields[0] = vVector.m_fields[0]; vVector3.m_fields[1] = vVector.m_fields[1]; vVector3.m_fields[2] = 0.0f; addVector3(vVector3, value); }
ListInfo::ListInfo () : Engine () { ML_TRACE_IN("ListInfo::ListInfo () : Engine (), _needsCompleteRebuild(true)"); handleNotificationOff(); (_inListFld = addBase("inList1", NULL))->addAllowedType<ListBase>(); _listTypeFld = addString("listType", ""); _lengthFld = addInt("listLength",0); _typeMinFld = addInt("typeMinValue",0); _typeMaxFld = addInt("typeMaxValue",0); _numDifferentTypesFld = addInt("numDifferentTypes",0); _boundingBoxMinFld = addVector3("boundingBoxMin",0,0,0); _boundingBoxMaxFld = addVector3("boundingBoxMax",0,0,0); handleNotificationOn(); }
PDFCalcCamera::PDFCalcCamera() : Module(0, 0) { // Suppress calls of handleNotification on field changes to // avoid side effects during initialization phase. handleNotificationOff(); //! Inventor camera fields (needed for calculation of PDF view camera from Inventor camera settings) _calculateCameraFromInventorSceneFld = addNotify("calculateCameraFromInventorScene"); (_autoCalculateCameraFromInventorSceneFld = addBool("autoCalculateCameraFromInventorScene"))->setBoolValue(false); (_inventorCameraPositionFld = addVector3("inventorCameraPosition"))->setVector3Value(Vector3(0, 0, 0)); (_inventorCameraOrientationFld = addVector4("inventorCameraOrientation"))->setVector4Value(Vector4(0, 0, 1, 0)); (_inventorCameraFocalDistanceFld = addFloat("inventorCameraFocalDistance"))->setFloatValue(0); (_inventorCameraHeightFld = addFloat("inventorCameraHeight"))->setFloatValue(0); //! PDF view camera fields (_cameraCenterOfOrbitFld = addVector3("cameraCenterOfOrbit"))->setVector3Value(Vector3(0)); (_cameraCenterToCameraFld = addVector3("cameraCenterToCamera"))->setVector3Value(Vector3(0)); (_cameraRadiusOfOrbitFld = addFloat("cameraRadiusOfOrbit"))->setFloatValue(0); (_cameraFOVAngleFld = addFloat("cameraFOVAngle"))->setFloatValue(90.0f); (_cameraRollAngleFld = addFloat("cameraRollAngle"))->setFloatValue(0); // Reactivate calls of handleNotification on field changes. handleNotificationOn(); }
void LLSDMessageBuilder::copyFromMessageData(const LLMsgData& data) { // copy the blocks // counting variables used to encode multiple block info S32 block_count = 0; char* block_name = NULL; // loop through msg blocks to loop through variables, totalling up size // data and filling the new (send) message LLMsgData::msg_blk_data_map_t::const_iterator iter = data.mMemberBlocks.begin(); LLMsgData::msg_blk_data_map_t::const_iterator end = data.mMemberBlocks.end(); for(; iter != end; ++iter) { const LLMsgBlkData* mbci = iter->second; if(!mbci) continue; // do we need to encode a block code? if (block_count == 0) { block_count = mbci->mBlockNumber; block_name = (char*)mbci->mName; } // counting down mutliple blocks block_count--; nextBlock(block_name); // now loop through the variables LLMsgBlkData::msg_var_data_map_t::const_iterator dit = mbci->mMemberVarData.begin(); LLMsgBlkData::msg_var_data_map_t::const_iterator dend = mbci->mMemberVarData.end(); for(; dit != dend; ++dit) { const LLMsgVarData& mvci = *dit; const char* varname = mvci.getName(); switch(mvci.getType()) { case MVT_FIXED: addBinaryData(varname, mvci.getData(), mvci.getSize()); break; case MVT_VARIABLE: { const char end = ((const char*)mvci.getData())[mvci.getSize()-1]; // Ensure null terminated if (mvci.getDataSize() == 1 && end == 0) { addString(varname, (const char*)mvci.getData()); } else { addBinaryData(varname, mvci.getData(), mvci.getSize()); } break; } case MVT_U8: addU8(varname, *(U8*)mvci.getData()); break; case MVT_U16: addU16(varname, *(U16*)mvci.getData()); break; case MVT_U32: addU32(varname, *(U32*)mvci.getData()); break; case MVT_U64: addU64(varname, *(U64*)mvci.getData()); break; case MVT_S8: addS8(varname, *(S8*)mvci.getData()); break; case MVT_S16: addS16(varname, *(S16*)mvci.getData()); break; case MVT_S32: addS32(varname, *(S32*)mvci.getData()); break; // S64 not supported in LLSD so we just truncate it case MVT_S64: addS32(varname, *(S64*)mvci.getData()); break; case MVT_F32: addF32(varname, *(F32*)mvci.getData()); break; case MVT_F64: addF64(varname, *(F64*)mvci.getData()); break; case MVT_LLVector3: addVector3(varname, *(LLVector3*)mvci.getData()); break; case MVT_LLVector3d: addVector3d(varname, *(LLVector3d*)mvci.getData()); break; case MVT_LLVector4: addVector4(varname, *(LLVector4*)mvci.getData()); break; case MVT_LLQuaternion: { LLVector3 v = *(LLVector3*)mvci.getData(); LLQuaternion q; q.unpackFromVector3(v); addQuat(varname, q); break; } case MVT_LLUUID: addUUID(varname, *(LLUUID*)mvci.getData()); break; case MVT_BOOL: addBOOL(varname, *(BOOL*)mvci.getData()); break; case MVT_IP_ADDR: addIPAddr(varname, *(U32*)mvci.getData()); break; case MVT_IP_PORT: addIPPort(varname, *(U16*)mvci.getData()); break; case MVT_U16Vec3: //treated as an array of 6 bytes addBinaryData(varname, mvci.getData(), 6); break; case MVT_U16Quat: //treated as an array of 8 bytes addBinaryData(varname, mvci.getData(), 8); break; case MVT_S16Array: addBinaryData(varname, mvci.getData(), mvci.getSize()); break; default: llwarns << "Unknown type in conversion of message to LLSD" << llendl; break; } } } }