void LLCCEP_tools::commandLineParametersParser::parse(int argn, char **argv) { for (int i = 1; i < argn; i++) { auto param = isParam(argv[i]); if (param != flags.end()) { bool follow = followed(argv[i]); if (follow && i == argn - 1) { throw RUNTIME_EXCEPTION(CONSTRUCT_MSG( "Sudden end after '%s'", argv[i])); } else if (follow) { param->following = argv[++i]; } else if (!follow) { param->following = "1"; } } else if (maxFreeParams != (static_cast<size_t>(-1)) && freeParams.size() > maxFreeParams) { throw RUNTIME_EXCEPTION(CONSTRUCT_MSG( "Too many free parameters")); } else { freeParams.push_back(argv[i]); } } }
//----------------------------------------------------------------------------- // physx::PxTransform FollowPoseComponent::updatePose() { GameObjectRef wTargetGO = followed(); if (wTargetGO == nullptr) return _lastPose; IPoseInterfaceRef wPoseInterface = wTargetGO->as<IPoseInterface>(); if (wPoseInterface == nullptr) return _lastPose; physx::PxTransform wPose = wPoseInterface->pose(); if (_poseAdjustment == nullptr) return wPose; wPose = _poseAdjustment(wPose); return wPose; }