From 90b77030d5c7da0e88454b503de783bb7e85a080 Mon Sep 17 00:00:00 2001 From: Thijs Wenker Date: Wed, 7 Mar 2018 02:55:47 +0100 Subject: [PATCH 001/300] MyAvatar.hasScriptedBlendshapes property --- interface/src/avatar/MyAvatar.h | 4 ++++ interface/src/avatar/MyHead.cpp | 7 ++++--- libraries/avatars/src/AvatarData.cpp | 3 ++- libraries/avatars/src/AvatarData.h | 2 ++ 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index fa5206e128..f2d1baf0aa 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -133,6 +133,7 @@ class MyAvatar : public Avatar { Q_PROPERTY(AudioListenerMode audioListenerModeHead READ getAudioListenerModeHead) Q_PROPERTY(AudioListenerMode audioListenerModeCamera READ getAudioListenerModeCamera) Q_PROPERTY(AudioListenerMode audioListenerModeCustom READ getAudioListenerModeCustom) + Q_PROPERTY(bool hasScriptedBlendshapes READ getHasScriptedBlendshapes WRITE setHasScriptedBlendshapes) //TODO: make gravity feature work Q_PROPERTY(glm::vec3 gravity READ getGravity WRITE setGravity) Q_PROPERTY(glm::vec3 leftHandPosition READ getLeftHandPosition) @@ -654,6 +655,8 @@ private: virtual bool shouldRenderHead(const RenderArgs* renderArgs) const override; void setShouldRenderLocally(bool shouldRender) { _shouldRender = shouldRender; setEnableMeshVisible(shouldRender); } bool getShouldRenderLocally() const { return _shouldRender; } + void setHasScriptedBlendshapes(bool hasScriptedBlendshapes) { _hasScriptedBlendShapes = hasScriptedBlendshapes; } + bool getHasScriptedBlendshapes() const override { return _hasScriptedBlendShapes; } bool isMyAvatar() const override { return true; } virtual int parseDataFromBuffer(const QByteArray& buffer) override; virtual glm::vec3 getSkeletonPosition() const override; @@ -764,6 +767,7 @@ private: bool _hmdRollControlEnabled { true }; float _hmdRollControlDeadZone { ROLL_CONTROL_DEAD_ZONE_DEFAULT }; float _hmdRollControlRate { ROLL_CONTROL_RATE_DEFAULT }; + bool _hasScriptedBlendShapes { false }; // working copy -- see AvatarData for thread-safe _sensorToWorldMatrixCache, used for outward facing access glm::mat4 _sensorToWorldMatrix { glm::mat4() }; diff --git a/interface/src/avatar/MyHead.cpp b/interface/src/avatar/MyHead.cpp index cad2f9e5d0..b7b8aa5e52 100644 --- a/interface/src/avatar/MyHead.cpp +++ b/interface/src/avatar/MyHead.cpp @@ -46,9 +46,10 @@ void MyHead::simulate(float deltaTime) { auto player = DependencyManager::get(); // Only use face trackers when not playing back a recording. if (!player->isPlaying()) { - FaceTracker* faceTracker = qApp->getActiveFaceTracker(); - _isFaceTrackerConnected = faceTracker != nullptr && !faceTracker->isMuted(); - if (_isFaceTrackerConnected) { + auto faceTracker = qApp->getActiveFaceTracker(); + bool hasActualFaceTrackerConnected = faceTracker && !faceTracker->isMuted(); + _isFaceTrackerConnected = hasActualFaceTrackerConnected || _owningAvatar->getHasScriptedBlendshapes(); + if (hasActualFaceTrackerConnected) { _transientBlendshapeCoefficients = faceTracker->getBlendshapeCoefficients(); if (typeid(*faceTracker) == typeid(DdeFaceTracker)) { diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index 1bbc8cc1a5..dcaae59a38 100644 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -300,7 +300,8 @@ QByteArray AvatarData::toByteArray(AvatarDataDetail dataDetail, quint64 lastSent tranlationChangedSince(lastSentTime) || parentInfoChangedSince(lastSentTime)); - hasFaceTrackerInfo = !dropFaceTracking && hasFaceTracker() && (sendAll || faceTrackerInfoChangedSince(lastSentTime)); + hasFaceTrackerInfo = !dropFaceTracking && (hasFaceTracker() || getHasScriptedBlendshapes()) && + (sendAll || faceTrackerInfoChangedSince(lastSentTime)); hasJointData = sendAll || !sendMinimum; hasJointDefaultPoseFlags = hasJointData; } diff --git a/libraries/avatars/src/AvatarData.h b/libraries/avatars/src/AvatarData.h index e927120b07..1f6d2e3630 100644 --- a/libraries/avatars/src/AvatarData.h +++ b/libraries/avatars/src/AvatarData.h @@ -497,6 +497,8 @@ public: float getDomainLimitedScale() const; + virtual bool getHasScriptedBlendshapes() const { return false; } + /**jsdoc * returns the minimum scale allowed for this avatar in the current domain. * This value can change as the user changes avatars or when changing domains. From 704499a76d16a8f3881f3181f89a6a6743b781d7 Mon Sep 17 00:00:00 2001 From: Triplelexx Date: Mon, 9 Apr 2018 18:22:48 +0100 Subject: [PATCH 002/300] remove Limitless API --- .../src/scripting/LimitlessConnection.cpp | 93 --------- interface/src/scripting/LimitlessConnection.h | 46 ----- ...lessVoiceRecognitionScriptingInterface.cpp | 65 ------- ...itlessVoiceRecognitionScriptingInterface.h | 49 ----- unpublishedScripts/interaction/Interaction.js | 179 ------------------ unpublishedScripts/interaction/NPCHelpers.js | 179 ------------------ unpublishedScripts/interaction/NPC_AC.js | 102 ---------- unpublishedScripts/interaction/Sphinx.json | 159 ---------------- 8 files changed, 872 deletions(-) delete mode 100644 interface/src/scripting/LimitlessConnection.cpp delete mode 100644 interface/src/scripting/LimitlessConnection.h delete mode 100644 interface/src/scripting/LimitlessVoiceRecognitionScriptingInterface.cpp delete mode 100644 interface/src/scripting/LimitlessVoiceRecognitionScriptingInterface.h delete mode 100644 unpublishedScripts/interaction/Interaction.js delete mode 100644 unpublishedScripts/interaction/NPCHelpers.js delete mode 100644 unpublishedScripts/interaction/NPC_AC.js delete mode 100644 unpublishedScripts/interaction/Sphinx.json diff --git a/interface/src/scripting/LimitlessConnection.cpp b/interface/src/scripting/LimitlessConnection.cpp deleted file mode 100644 index f504136489..0000000000 --- a/interface/src/scripting/LimitlessConnection.cpp +++ /dev/null @@ -1,93 +0,0 @@ -#include "LimitlessConnection.h" - -#include -#include -#include -#include -#include -#include "LimitlessVoiceRecognitionScriptingInterface.h" - -LimitlessConnection::LimitlessConnection() : - _streamingAudioForTranscription(false) -{ -} - -void LimitlessConnection::startListening(QString authCode) { - _transcribeServerSocket.reset(new QTcpSocket(this)); - connect(_transcribeServerSocket.get(), &QTcpSocket::readyRead, this, - &LimitlessConnection::transcriptionReceived); - connect(_transcribeServerSocket.get(), &QTcpSocket::disconnected, this, [this](){stopListening();}); - - static const auto host = "gserv_devel.studiolimitless.com"; - _transcribeServerSocket->connectToHost(host, 1407); - _transcribeServerSocket->waitForConnected(); - QString requestHeader = QString::asprintf("Authorization: %s\r\nfs: %i\r\n", - authCode.toLocal8Bit().data(), AudioConstants::SAMPLE_RATE); - qCDebug(interfaceapp) << "Sending Limitless Audio Stream Request: " << requestHeader; - _transcribeServerSocket->write(requestHeader.toLocal8Bit()); - _transcribeServerSocket->waitForBytesWritten(); -} - -void LimitlessConnection::stopListening() { - emit onFinishedSpeaking(_currentTranscription); - _streamingAudioForTranscription = false; - _currentTranscription = ""; - if (!isConnected()) - return; - _transcribeServerSocket->close(); - disconnect(_transcribeServerSocket.get(), &QTcpSocket::readyRead, this, - &LimitlessConnection::transcriptionReceived); - _transcribeServerSocket.release()->deleteLater(); - disconnect(DependencyManager::get().data(), &AudioClient::inputReceived, this, - &LimitlessConnection::audioInputReceived); - qCDebug(interfaceapp) << "Connection to Limitless Voice Server closed."; -} - -void LimitlessConnection::audioInputReceived(const QByteArray& inputSamples) { - if (isConnected()) { - _transcribeServerSocket->write(inputSamples.data(), inputSamples.size()); - _transcribeServerSocket->waitForBytesWritten(); - } -} - -void LimitlessConnection::transcriptionReceived() { - while (_transcribeServerSocket && _transcribeServerSocket->bytesAvailable() > 0) { - const QByteArray data = _transcribeServerSocket->readAll(); - _serverDataBuffer.append(data); - int begin = _serverDataBuffer.indexOf('<'); - int end = _serverDataBuffer.indexOf('>'); - while (begin > -1 && end > -1) { - const int len = end - begin; - const QByteArray serverMessage = _serverDataBuffer.mid(begin+1, len-1); - if (serverMessage.contains("1407")) { - qCDebug(interfaceapp) << "Limitless Speech Server denied the request."; - // Don't spam the server with further false requests please. - DependencyManager::get()->setListeningToVoice(true); - stopListening(); - return; - } else if (serverMessage.contains("1408")) { - qCDebug(interfaceapp) << "Limitless Audio request authenticated!"; - _serverDataBuffer.clear(); - connect(DependencyManager::get().data(), &AudioClient::inputReceived, this, - &LimitlessConnection::audioInputReceived); - return; - } - QJsonObject json = QJsonDocument::fromJson(serverMessage.data()).object(); - _serverDataBuffer.remove(begin, len+1); - _currentTranscription = json["alternatives"].toArray()[0].toObject()["transcript"].toString(); - emit onReceivedTranscription(_currentTranscription); - if (json["isFinal"] == true) { - qCDebug(interfaceapp) << "Final transcription: " << _currentTranscription; - stopListening(); - return; - } - begin = _serverDataBuffer.indexOf('<'); - end = _serverDataBuffer.indexOf('>'); - } - } -} - -bool LimitlessConnection::isConnected() const { - return _transcribeServerSocket.get() && _transcribeServerSocket->isWritable() - && _transcribeServerSocket->state() != QAbstractSocket::SocketState::UnconnectedState; -} diff --git a/interface/src/scripting/LimitlessConnection.h b/interface/src/scripting/LimitlessConnection.h deleted file mode 100644 index 9ed39bd653..0000000000 --- a/interface/src/scripting/LimitlessConnection.h +++ /dev/null @@ -1,46 +0,0 @@ -// -// SpeechRecognitionScriptingInterface.h -// interface/src/scripting -// -// Created by Trevor Berninger on 3/24/17. -// Copyright 2017 Limitless ltd. -// -// Distributed under the Apache License, Version 2.0. -// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html -// - -#ifndef hifi_LimitlessConnection_h -#define hifi_LimitlessConnection_h - -#include -#include -#include - -#include - -class LimitlessConnection : public QObject { - Q_OBJECT -public: - LimitlessConnection(); - - Q_INVOKABLE void startListening(QString authCode); - Q_INVOKABLE void stopListening(); - - std::atomic _streamingAudioForTranscription; - -signals: - void onReceivedTranscription(QString speech); - void onFinishedSpeaking(QString speech); - -private: - void transcriptionReceived(); - void audioInputReceived(const QByteArray& inputSamples); - - bool isConnected() const; - - std::unique_ptr _transcribeServerSocket; - QByteArray _serverDataBuffer; - QString _currentTranscription; -}; - -#endif //hifi_LimitlessConnection_h diff --git a/interface/src/scripting/LimitlessVoiceRecognitionScriptingInterface.cpp b/interface/src/scripting/LimitlessVoiceRecognitionScriptingInterface.cpp deleted file mode 100644 index ebb5ca9280..0000000000 --- a/interface/src/scripting/LimitlessVoiceRecognitionScriptingInterface.cpp +++ /dev/null @@ -1,65 +0,0 @@ -// -// SpeechRecognitionScriptingInterface.h -// interface/src/scripting -// -// Created by Trevor Berninger on 3/20/17. -// Copyright 2017 Limitless ltd. -// -// Distributed under the Apache License, Version 2.0. -// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html -// - -#include - -#include -#include -#include - -#include "LimitlessVoiceRecognitionScriptingInterface.h" - -const float LimitlessVoiceRecognitionScriptingInterface::_audioLevelThreshold = 0.33f; -const int LimitlessVoiceRecognitionScriptingInterface::_voiceTimeoutDuration = 2000; - -LimitlessVoiceRecognitionScriptingInterface::LimitlessVoiceRecognitionScriptingInterface() : - _shouldStartListeningForVoice(false) -{ - _voiceTimer.setSingleShot(true); - connect(&_voiceTimer, &QTimer::timeout, this, &LimitlessVoiceRecognitionScriptingInterface::voiceTimeout); - connect(&_connection, &LimitlessConnection::onReceivedTranscription, this, [this](QString transcription){emit onReceivedTranscription(transcription);}); - connect(&_connection, &LimitlessConnection::onFinishedSpeaking, this, [this](QString transcription){emit onFinishedSpeaking(transcription);}); - moveToNewNamedThread(&_connection, "Limitless Connection"); -} - -void LimitlessVoiceRecognitionScriptingInterface::update() { - const float audioLevel = AvatarInputs::getInstance()->loudnessToAudioLevel(DependencyManager::get()->getAudioAverageInputLoudness()); - - if (_shouldStartListeningForVoice) { - if (_connection._streamingAudioForTranscription) { - if (audioLevel > _audioLevelThreshold) { - if (_voiceTimer.isActive()) { - _voiceTimer.stop(); - } - } else if (!_voiceTimer.isActive()){ - _voiceTimer.start(_voiceTimeoutDuration); - } - } else if (audioLevel > _audioLevelThreshold) { - // to make sure invoke doesn't get called twice before the method actually gets called - _connection._streamingAudioForTranscription = true; - QMetaObject::invokeMethod(&_connection, "startListening", Q_ARG(QString, authCode)); - } - } -} - -void LimitlessVoiceRecognitionScriptingInterface::setListeningToVoice(bool listening) { - _shouldStartListeningForVoice = listening; -} - -void LimitlessVoiceRecognitionScriptingInterface::setAuthKey(QString key) { - authCode = key; -} - -void LimitlessVoiceRecognitionScriptingInterface::voiceTimeout() { - if (_connection._streamingAudioForTranscription) { - QMetaObject::invokeMethod(&_connection, "stopListening"); - } -} diff --git a/interface/src/scripting/LimitlessVoiceRecognitionScriptingInterface.h b/interface/src/scripting/LimitlessVoiceRecognitionScriptingInterface.h deleted file mode 100644 index 2a35c37ab0..0000000000 --- a/interface/src/scripting/LimitlessVoiceRecognitionScriptingInterface.h +++ /dev/null @@ -1,49 +0,0 @@ -// -// SpeechRecognitionScriptingInterface.h -// interface/src/scripting -// -// Created by Trevor Berninger on 3/20/17. -// Copyright 2017 Limitless ltd. -// -// Distributed under the Apache License, Version 2.0. -// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html -// - -#ifndef hifi_SpeechRecognitionScriptingInterface_h -#define hifi_SpeechRecognitionScriptingInterface_h - -#include -#include -#include -#include "LimitlessConnection.h" - -class LimitlessVoiceRecognitionScriptingInterface : public QObject, public Dependency { - Q_OBJECT -public: - LimitlessVoiceRecognitionScriptingInterface(); - - void update(); - - QString authCode; - -public slots: - void setListeningToVoice(bool listening); - void setAuthKey(QString key); - -signals: - void onReceivedTranscription(QString speech); - void onFinishedSpeaking(QString speech); - -private: - - bool _shouldStartListeningForVoice; - static const float _audioLevelThreshold; - static const int _voiceTimeoutDuration; - - QTimer _voiceTimer; - LimitlessConnection _connection; - - void voiceTimeout(); -}; - -#endif //hifi_SpeechRecognitionScriptingInterface_h diff --git a/unpublishedScripts/interaction/Interaction.js b/unpublishedScripts/interaction/Interaction.js deleted file mode 100644 index bb763c01e7..0000000000 --- a/unpublishedScripts/interaction/Interaction.js +++ /dev/null @@ -1,179 +0,0 @@ -// -// Interaction.js -// scripts/interaction -// -// Created by Trevor Berninger on 3/20/17. -// Copyright 2017 High Fidelity, Inc. -// -// Distributed under the Apache License, Version 2.0. -// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html -// - -(function(){ - print("loading interaction script"); - - var Avatar = false; - var NPC = false; - var previousNPC = false; - var hasCenteredOnNPC = false; - var distance = 10; - var r = 8; - var player = false; - - var baselineX = 0; - var baselineY = 0; - var nodRange = 20; - var shakeRange = 20; - - var ticker = false; - var heartbeatTimer = false; - - function callOnNPC(message) { - if(NPC) - Messages.sendMessage("interactionComs", NPC + ":" + message); - else - Messages.sendMessage("interactionComs", previousNPC + ":" + message); - } - - LimitlessSpeechRecognition.onFinishedSpeaking.connect(function(speech) { - print("Got: " + speech); - callOnNPC("voiceData:" + speech); - }); - - LimitlessSpeechRecognition.onReceivedTranscription.connect(function(speech) { - callOnNPC("speaking"); - }); - - function setBaselineRotations(rot) { - baselineX = rot.x; - baselineY = rot.y; - } - - function findLookedAtNPC() { - var intersection = AvatarList.findRayIntersection({origin: MyAvatar.position, direction: Quat.getFront(Camera.getOrientation())}, true); - if (intersection.intersects && intersection.distance <= distance){ - var npcAvatar = AvatarList.getAvatar(intersection.avatarID); - if (npcAvatar.displayName.search("NPC") != -1) { - setBaselineRotations(Quat.safeEulerAngles(Camera.getOrientation())); - return intersection.avatarID; - } - } - return false; - } - - function isStillFocusedNPC() { - var avatar = AvatarList.getAvatar(NPC); - if (avatar) { - var avatarPosition = avatar.position; - return Vec3.distance(MyAvatar.position, avatarPosition) <= distance && Math.abs(Quat.dot(Camera.getOrientation(), Quat.lookAtSimple(MyAvatar.position, avatarPosition))) > 0.6; - } - return false; // NPC reference died. Maybe it crashed or we teleported to a new world? - } - - function onWeLostFocus() { - print("lost NPC: " + NPC); - callOnNPC("onLostFocused"); - var baselineX = 0; - var baselineY = 0; - } - - function onWeGainedFocus() { - print("found NPC: " + NPC); - callOnNPC("onFocused"); - var rotation = Quat.safeEulerAngles(Camera.getOrientation()); - baselineX = rotation.x; - baselineY = rotation.y; - LimitlessSpeechRecognition.setListeningToVoice(true); - } - - function checkFocus() { - var newNPC = findLookedAtNPC(); - - if (NPC && newNPC != NPC && !isStillFocusedNPC()) { - onWeLostFocus(); - previousNPC = NPC; - NPC = false; - } - if (!NPC && newNPC != false) { - NPC = newNPC; - onWeGainedFocus(); - } - } - - function checkGesture() { - var rotation = Quat.safeEulerAngles(Camera.getOrientation()); - - var deltaX = Math.abs(rotation.x - baselineX); - if (deltaX > 180) { - deltaX -= 180; - } - var deltaY = Math.abs(rotation.y - baselineY); - if (deltaY > 180) { - deltaY -= 180; - } - - if (deltaX >= nodRange && deltaY <= shakeRange) { - callOnNPC("onNodReceived"); - } else if (deltaY >= shakeRange && deltaX <= nodRange) { - callOnNPC("onShakeReceived"); - } - } - - function tick() { - checkFocus(); - if (NPC) { - checkGesture(); - } - } - - function heartbeat() { - callOnNPC("beat"); - } - - Messages.subscribe("interactionComs"); - - Messages.messageReceived.connect(function (channel, message, sender) { - if(channel === "interactionComs" && player) { - var codeIndex = message.search('clientexec'); - if(codeIndex != -1) { - var code = message.substr(codeIndex+11); - Script.evaluate(code, ''); - } - } - }); - - this.enterEntity = function(id) { - player = true; - print("Something entered me: " + id); - LimitlessSpeechRecognition.setAuthKey("testKey"); - if (!ticker) { - ticker = Script.setInterval(tick, 333); - } - if(!heartbeatTimer) { - heartbeatTimer = Script.setInterval(heartbeat, 1000); - } - }; - this.leaveEntity = function(id) { - LimitlessSpeechRecognition.setListeningToVoice(false); - player = false; - print("Something left me: " + id); - if (previousNPC) - Messages.sendMessage("interactionComs", previousNPC + ":leftArea"); - if (ticker) { - ticker.stop(); - ticker = false; - } - if (heartbeatTimer) { - heartbeatTimer.stop(); - heartbeatTimer = false; - } - }; - this.unload = function() { - print("Okay. I'm Unloading!"); - if (ticker) { - ticker.stop(); - ticker = false; - } - }; - print("finished loading interaction script"); -}); diff --git a/unpublishedScripts/interaction/NPCHelpers.js b/unpublishedScripts/interaction/NPCHelpers.js deleted file mode 100644 index 188178b281..0000000000 --- a/unpublishedScripts/interaction/NPCHelpers.js +++ /dev/null @@ -1,179 +0,0 @@ -// -// NPCHelpers.js -// scripts/interaction -// -// Created by Trevor Berninger on 3/20/17. -// Copyright 2017 High Fidelity Inc. -// -// Distributed under the Apache License, Version 2.0. -// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html -// - -var audioInjector = false; -var blocked = false; -var playingResponseAnim = false; -var storyURL = ""; -var _qid = "start"; - -print("TESTTEST"); - -function strContains(str, sub) { - return str.search(sub) != -1; -} - -function callbackOnCondition(conditionFunc, ms, callback, count) { - var thisCount = 0; - if (typeof count !== 'undefined') { - thisCount = count; - } - if (conditionFunc()) { - callback(); - } else if (thisCount < 10) { - Script.setTimeout(function() { - callbackOnCondition(conditionFunc, ms, callback, thisCount + 1); - }, ms); - } else { - print("callbackOnCondition timeout"); - } -} - -function playAnim(animURL, looping, onFinished) { - print("got anim: " + animURL); - print("looping: " + looping); - // Start caching the animation if not already cached. - AnimationCache.getAnimation(animURL); - - // Tell the avatar to animate so that we can tell if the animation is ready without crashing - Avatar.startAnimation(animURL, 30, 1, false, false, 0, 1); - - // Continually check if the animation is ready - callbackOnCondition(function(){ - var details = Avatar.getAnimationDetails(); - // if we are running the request animation and are past the first frame, the anim is loaded properly - print("running: " + details.running); - print("url and animURL: " + details.url.trim().replace(/ /g, "%20") + " | " + animURL.trim().replace(/ /g, "%20")); - print("currentFrame: " + details.currentFrame); - return details.running && details.url.trim().replace(/ /g, "%20") == animURL.trim().replace(/ /g, "%20") && details.currentFrame > 0; - }, 250, function(){ - var timeOfAnim = ((AnimationCache.getAnimation(animURL).frames.length / 30) * 1000) + 100; // frames to miliseconds plus a small buffer - print("animation loaded. length: " + timeOfAnim); - // Start the animation again but this time with frame information - Avatar.startAnimation(animURL, 30, 1, looping, true, 0, AnimationCache.getAnimation(animURL).frames.length); - if (typeof onFinished !== 'undefined') { - print("onFinished defined. setting the timeout with timeOfAnim"); - timers.push(Script.setTimeout(onFinished, timeOfAnim)); - } - }); -} - -function playSound(soundURL, onFinished) { - callbackOnCondition(function() { - return SoundCache.getSound(soundURL).downloaded; - }, 250, function() { - if (audioInjector) { - audioInjector.stop(); - } - audioInjector = Audio.playSound(SoundCache.getSound(soundURL), {position: Avatar.position, volume: 1.0}); - if (typeof onFinished !== 'undefined') { - audioInjector.finished.connect(onFinished); - } - }); -} - -function npcRespond(soundURL, animURL, onFinished) { - if (typeof soundURL !== 'undefined' && soundURL != '') { - print("npcRespond got soundURL!"); - playSound(soundURL, function(){ - print("sound finished"); - var animDetails = Avatar.getAnimationDetails(); - print("animDetails.lastFrame: " + animDetails.lastFrame); - print("animDetails.currentFrame: " + animDetails.currentFrame); - if (animDetails.lastFrame < animDetails.currentFrame + 1 || !playingResponseAnim) { - onFinished(); - } - audioInjector = false; - }); - } - if (typeof animURL !== 'undefined' && animURL != '') { - print("npcRespond got animURL!"); - playingResponseAnim = true; - playAnim(animURL, false, function() { - print("anim finished"); - playingResponseAnim = false; - print("injector: " + audioInjector); - if (!audioInjector || !audioInjector.isPlaying()) { - print("resetting Timer"); - print("about to call onFinished"); - onFinished(); - } - }); - } -} - -function npcRespondBlocking(soundURL, animURL, onFinished) { - print("blocking response requested"); - if (!blocked) { - print("not already blocked"); - blocked = true; - npcRespond(soundURL, animURL, function(){ - if (onFinished){ - onFinished(); - }blocked = false; - }); - } -} - -function npcContinueStory(soundURL, animURL, nextID, onFinished) { - if (!nextID) { - nextID = _qid; - } - npcRespondBlocking(soundURL, animURL, function(){ - if (onFinished){ - onFinished(); - }setQid(nextID); - }); -} - -function setQid(newQid) { - print("setting quid"); - print("_qid: " + _qid); - _qid = newQid; - print("_qid: " + _qid); - doActionFromServer("init"); -} - -function runOnClient(code) { - Messages.sendMessage("interactionComs", "clientexec:" + code); -} - -function doActionFromServer(action, data, useServerCache) { - if (action == "start") { - ignoreCount = 0; - _qid = "start"; - } - var xhr = new XMLHttpRequest(); - xhr.open("POST", "http://gserv_devel.studiolimitless.com/story", true); - xhr.onreadystatechange = function(){ - if (xhr.readyState == 4){ - if (xhr.status == 200) { - print("200!"); - print("evaluating: " + xhr.responseText); - Script.evaluate(xhr.responseText, ""); - } else if (xhr.status == 444) { - print("Limitless Serv 444: API error: " + xhr.responseText); - } else { - print("HTTP Code: " + xhr.status + ": " + xhr.responseText); - } - } - }; - xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); - var postData = "url=" + storyURL + "&action=" + action + "&qid=" + _qid; - if (typeof data !== 'undefined' && data != '') { - postData += "&data=" + data; - } - if (typeof useServerCache !== 'undefined' && !useServerCache) { - postData += "&nocache=true"; - } - print("Sending: " + postData); - xhr.send(postData); -} diff --git a/unpublishedScripts/interaction/NPC_AC.js b/unpublishedScripts/interaction/NPC_AC.js deleted file mode 100644 index eb2d9f4caf..0000000000 --- a/unpublishedScripts/interaction/NPC_AC.js +++ /dev/null @@ -1,102 +0,0 @@ -// -// NPC_AC.js -// scripts/interaction -// -// Created by Trevor Berninger on 3/20/17. -// Copyright 2017 High Fidelity Inc. -// -// Distributed under the Apache License, Version 2.0. -// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html -// - -var currentlyUsedIndices = []; -var timers = []; -var currentlyEngaged = false; -var questionNumber = 0; -var heartbeatTimeout = false; -function getRandomRiddle() { - var randIndex = null; - do { - randIndex = Math.floor(Math.random() * 15) + 1; - } while (randIndex in currentlyUsedIndices); - - currentlyUsedIndices.push(randIndex); - return randIndex.toString(); -} - -Script.include("https://raw.githubusercontent.com/Delamare2112/hifi/Interaction/unpublishedScripts/interaction/NPCHelpers.js", function(){ - print("NPCHelpers included.");main(); -}); - -var idleAnim = "https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/idle.fbx"; -var FST = "https://s3.amazonaws.com/hifi-public/tony/fixed-sphinx/sphinx.fst"; - -Agent.isAvatar = true; -Avatar.skeletonModelURL = FST; -Avatar.displayName = "NPC"; -Avatar.position = {x: 0.3, y: -23.4, z: 8.0}; -Avatar.orientation = {x: 0, y: 1, z: 0, w: 0}; -// Avatar.position = {x: 1340.3555, y: 4.078, z: -420.1562}; -// Avatar.orientation = {x: 0, y: -0.707, z: 0, w: 0.707}; -Avatar.scale = 2; - -Messages.subscribe("interactionComs"); - -function endInteraction() { - print("ending interaction"); - blocked = false; - currentlyEngaged = false; - if(audioInjector) - audioInjector.stop(); - for (var t in timers) { - Script.clearTimeout(timers[t]); - } - if(_qid != "Restarting") { - npcRespondBlocking( - 'https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/ScratchDialogue/EarlyExit_0' + (Math.floor(Math.random() * 2) + 1).toString() + '.wav', - 'https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/Animation/reversedSphinx.fbx', - function(){ - Avatar.startAnimation('https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/Animation/Hifi_Sphinx_Anim_Entrance_Kneel_Combined_with_Intro.fbx', 0); - } - ); - } -} - -function main() { - storyURL = "https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/Sphinx.json"; - Messages.messageReceived.connect(function (channel, message, sender) { - if(!strContains(message, 'beat')) - print(sender + " -> NPC @" + Agent.sessionUUID + ": " + message); - if (channel === "interactionComs" && strContains(message, Agent.sessionUUID)) { - if (strContains(message, 'beat')) { - if(heartbeatTimeout) { - Script.clearTimeout(heartbeatTimeout); - heartbeatTimeout = false; - } - heartbeatTimeout = Script.setTimeout(endInteraction, 1500); - } - else if (strContains(message, "onFocused") && !currentlyEngaged) { - blocked = false; - currentlyEngaged = true; - currentlyUsedIndices = []; - doActionFromServer("start"); - } else if (strContains(message, "leftArea")) { - - } else if (strContains(message, "speaking")) { - - } else { - var voiceDataIndex = message.search("voiceData"); - if (voiceDataIndex != -1) { - var words = message.substr(voiceDataIndex+10); - if (!isNaN(_qid) && (strContains(words, "repeat") || (strContains(words, "say") && strContains(words, "again")))) { - doActionFromServer("init"); - } else { - doActionFromServer("words", words); - } - } - } - } - }); - // Script.update.connect(updateGem); - Avatar.startAnimation("https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/Animation/Hifi_Sphinx_Anim_Entrance_Kneel_Combined_with_Intro.fbx", 0); -} diff --git a/unpublishedScripts/interaction/Sphinx.json b/unpublishedScripts/interaction/Sphinx.json deleted file mode 100644 index 2a76417fd7..0000000000 --- a/unpublishedScripts/interaction/Sphinx.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "Name": "10 Questions", - "Defaults": - { - "Actions": - { - "positive": "var x=function(){if(questionNumber>=2){setQid('Finished');return;}var suffix=['A', 'B'][questionNumber++] + '_0' + (Math.floor(Math.random() * 2) + 2).toString() + '.wav';npcContinueStory('https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/ScratchDialogue/RightAnswer'+suffix, 'https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/Animation/RightAnswerB_02.fbx', getRandomRiddle());};x();", - "unknown": "var suffix=(Math.floor(Math.random() * 3) + 1).toString();npcContinueStory('https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/ScratchDialogue/WrongAnswer_0' + suffix + '.wav','https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/Animation/WrongAnswer_0' + suffix + '.fbx', getRandomRiddle());", - "hint": "var suffix=(Math.floor(Math.random() * 2) + 1).toString();npcContinueStory('https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/ScratchDialogue/Hint_0' + suffix + '.wav','https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/Animation/Hint_0' + suffix + '.fbx')" - }, - "Responses": - { - "positive": ["yes","yup","yeah","yahoo","sure","affirmative","okay","aye","right","exactly","course","naturally","unquestionably","positively","yep","definitely","certainly","fine","absolutely","positive","love","fantastic"], - "thinking": ["oh", "think about", "i know", "what was", "well", "not sure", "one before", "hold", "one moment", "one second", "1 second", "1 sec", "one sec"], - "hint": ["hint", "heads"] - } - }, - "Story": - [ - { - "QID": "start", - "init": "questionNumber=0;npcContinueStory('https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/ScratchDialogue/HiFi_Sphinx_Anim_Combined_Entrance_Audio.wav', 'https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/Animation/Hifi_Sphinx_Anim_Entrance_Kneel_Combined_with_Intro.fbx', getRandomRiddle());" - }, - { - "QID": "1", - "init": "npcRespondBlocking('https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/ScratchDialogue/Riddle_Blackboard.wav', 'https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/Animation/Riddle_Blackboard.fbx');", - "responses": - { - "positive": ["blackboard", "chalkboard", "chalk board", "slate"] - } - }, - { - "QID": "2", - "init": "npcRespondBlocking('https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/ScratchDialogue/Riddle_Breath.wav', 'https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/Animation/Riddle_Breath.fbx');", - "responses": - { - "positive": ["breath", "death"] - } - }, - { - "QID": "3", - "init": "npcRespondBlocking('https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/ScratchDialogue/Riddle_Clock.wav', 'https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/Animation/Riddle_Clock.fbx');", - "responses": - { - "positive": ["clock", "cock"] - } - }, - { - "QID": "4", - "init": "npcRespondBlocking('https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/ScratchDialogue/Riddle_Coffin.wav', 'https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/Animation/Riddle_Coffin.fbx');", - "responses": - { - "positive": ["coffin", "casket", "possum"] - } - }, - { - "QID": "5", - "init": "npcRespondBlocking('https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/ScratchDialogue/Riddle_Coin.wav', 'https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/Animation/Riddle_Coin.fbx');", - "responses": - { - "positive": ["coin", "boing", "coinage", "coin piece", "change", "join"] - } - }, - { - "QID": "6", - "init": "npcRespondBlocking('https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/ScratchDialogue/Riddle_Corn.wav', 'https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/Animation/Riddle_Corn.fbx');", - "responses": - { - "positive": ["corn", "born", "maize", "maze", "means", "torn", "horn", "worn", "porn"] - } - }, - { - "QID": "7", - "init": "npcRespondBlocking('https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/ScratchDialogue/Riddle_Darkness.wav', 'https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/Animation/Riddle_Darkness.fbx');", - "responses": - { - "positive": ["darkness", "dark", "blackness"] - } - }, - { - "QID": "8", - "init": "npcRespondBlocking('https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/ScratchDialogue/Riddle_Gloves.wav', 'https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/Animation/Riddle_Gloves.fbx');", - "responses": - { - "positive": ["gloves", "love"] - } - }, - { - "QID": "9", - "init": "npcRespondBlocking('https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/ScratchDialogue/Riddle_Gold.wav', 'https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/Animation/Riddle_Gold.fbx');", - "responses": - { - "positive": ["gold", "old", "bold", "cold", "told"] - } - }, - { - "QID": "10", - "init": "npcRespondBlocking('https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/ScratchDialogue/Riddle_River.wav', 'https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/Animation/Riddle_River.fbx');", - "responses": - { - "positive": ["river", "bigger", "stream", "creek", "brook"] - } - }, - { - "QID": "11", - "init": "npcRespondBlocking('https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/ScratchDialogue/Riddle_Secret.wav', 'https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/Animation/Riddle_Secret.fbx');", - "responses": - { - "positive": ["secret"] - } - }, - { - "QID": "12", - "init": "npcRespondBlocking('https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/ScratchDialogue/Riddle_Shadow.wav', 'https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/Animation/Riddle_Shadow.fbx');", - "responses": - { - "positive": ["shadow"] - } - }, - { - "QID": "13", - "init": "npcRespondBlocking('https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/ScratchDialogue/Riddle_Silence.wav', 'https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/Animation/Riddle_Silence.fbx');", - "responses": - { - "positive": ["silence", "lance", "quiet"] - } - }, - { - "QID": "14", - "init": "npcRespondBlocking('https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/ScratchDialogue/Riddle_Stairs.wav', 'https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/Animation/Riddle_Stairs.fbx');", - "responses": - { - "positive": ["stairs", "steps", "stair", "stairwell", "there's", "stairway"] - } - }, - { - "QID": "15", - "init": "npcRespondBlocking('https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/ScratchDialogue/Riddle_Umbrella.wav', 'https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/Animation/Riddle_Umbrella.fbx');", - "responses": - { - "positive": ["umbrella"] - } - }, - { - "QID": "Finished", - "init": "Script.clearTimeout(heartbeatTimeout);heartbeatTimeout = false;npcRespondBlocking('https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/ScratchDialogue/ConclusionRight_02.wav', 'https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/Animation/ConclusionRight_02.fbx', function(){runOnClient('MyAvatar.goToLocation({x: 5, y: -29, z: -63}, true, true);');setQid('Restarting');});", - "positive": "", - "negative": "", - "unknown": "" - }, - { - "QID": "Restarting", - "init": "npcRespondBlocking('', 'https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/Animation/reversedSphinx.fbx', function(){Avatar.startAnimation('https://storage.googleapis.com/limitlessserv-144100.appspot.com/hifi%20assets/Animation/Hifi_Sphinx_Anim_Entrance_Kneel_Combined_with_Intro.fbx', 0);_qid='';});", - "positive": "", - "negative": "", - "unknown": "" - } - ] -} From aef0c29a31cafe95fbc17d9ec638c803fed53e6b Mon Sep 17 00:00:00 2001 From: Triplelexx Date: Mon, 9 Apr 2018 18:23:33 +0100 Subject: [PATCH 003/300] remove Limitless API --- interface/src/Application.cpp | 8 -------- 1 file changed, 8 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 343074f61c..820f231d4a 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -197,7 +197,6 @@ #include #include -#include #include #include #include @@ -871,7 +870,6 @@ bool setupEssentials(int& argc, char** argv, bool runningMarkerExisted) { DependencyManager::set(); DependencyManager::set(); DependencyManager::set(); - DependencyManager::set(); DependencyManager::set(); DependencyManager::set(nullptr, qApp->getOcteeSceneStats()); DependencyManager::set(); @@ -5592,11 +5590,6 @@ void Application::update(float deltaTime) { AnimDebugDraw::getInstance().update(); } - { - PerformanceTimer perfTimer("limitless"); - DependencyManager::get()->update(); - } - { // Game loop is done, mark the end of the frame for the scene transactions and the render loop to take over PerformanceTimer perfTimer("enqueueFrame"); getMain3DScene()->enqueueFrame(); @@ -6179,7 +6172,6 @@ void Application::registerScriptEngineWithApplicationServices(ScriptEnginePointe scriptEngine->registerGlobalObject("UserActivityLogger", DependencyManager::get().data()); scriptEngine->registerGlobalObject("Users", DependencyManager::get().data()); - scriptEngine->registerGlobalObject("LimitlessSpeechRecognition", DependencyManager::get().data()); scriptEngine->registerGlobalObject("GooglePoly", DependencyManager::get().data()); if (auto steamClient = PluginManager::getInstance()->getSteamClientPlugin()) { From 883cd7b8d00e0a1cb529a32a1bbb91bc9b25bceb Mon Sep 17 00:00:00 2001 From: Triplelexx Date: Mon, 9 Apr 2018 18:24:20 +0100 Subject: [PATCH 004/300] rename performance timer --- interface/src/Application.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 820f231d4a..59783f223b 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -5586,7 +5586,7 @@ void Application::update(float deltaTime) { }); { - PerformanceTimer perfTimer("limitless"); + PerformanceTimer perfTimer("AnimDebugDraw"); AnimDebugDraw::getInstance().update(); } From e61044335360d57c971378c2ce593b6971c782d3 Mon Sep 17 00:00:00 2001 From: Oren Hurvitz Date: Mon, 16 Apr 2018 15:36:37 +0300 Subject: [PATCH 005/300] Fixed banning users: it didn't work because we tried to send a Reliable packet using sendUnreliablePacket() --- libraries/networking/src/LimitedNodeList.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/libraries/networking/src/LimitedNodeList.cpp b/libraries/networking/src/LimitedNodeList.cpp index 0803e380f2..e818fa96ac 100644 --- a/libraries/networking/src/LimitedNodeList.cpp +++ b/libraries/networking/src/LimitedNodeList.cpp @@ -769,8 +769,14 @@ unsigned int LimitedNodeList::broadcastToNodes(std::unique_ptr packet, eachNode([&](const SharedNodePointer& node){ if (node && destinationNodeTypes.contains(node->getType())) { - sendUnreliablePacket(*packet, *node); - ++n; + if (packet->isReliable()) { + auto packet1 = NLPacket::createCopy(*packet); + sendPacket(std::move(packet1), *node); + } + else { + sendUnreliablePacket(*packet, *node); + } + ++n; } }); From 5cdcf1c53e6b158d3619a71903b4476a9d20164a Mon Sep 17 00:00:00 2001 From: Oren Hurvitz Date: Tue, 17 Apr 2018 11:53:37 +0300 Subject: [PATCH 006/300] Eliminated spurious "resolved_item" warnings in CMake Previously, building the project produced many warnings with this message: "resolved_item == resolved_embedded_item - not copying..." These warnings are distracting as they make it difficult to see actual warnings. This commit changes the warnings to status messages. This fix was copied from: https://github.com/jherico/OculusMinimalExample/blob/master/cmake/templates/FixupBundlePostBuild.cmake.in --- cmake/templates/FixupBundlePostBuild.cmake.in | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/cmake/templates/FixupBundlePostBuild.cmake.in b/cmake/templates/FixupBundlePostBuild.cmake.in index 57379bb48b..4ebb0ea1a6 100644 --- a/cmake/templates/FixupBundlePostBuild.cmake.in +++ b/cmake/templates/FixupBundlePostBuild.cmake.in @@ -11,6 +11,36 @@ include(BundleUtilities) +# replace copy_resolved_item_into_bundle +# +# The official version of copy_resolved_item_into_bundle will print out a "warning:" when +# the resolved item matches the resolved embedded item. This not not really an issue that +# should rise to the level of a "warning" so we replace this message with a "status:" +# +# Source: https://github.com/jherico/OculusMinimalExample/blob/master/cmake/templates/FixupBundlePostBuild.cmake.in +# +function(copy_resolved_item_into_bundle resolved_item resolved_embedded_item) + if (WIN32) + # ignore case on Windows + string(TOLOWER "${resolved_item}" resolved_item_compare) + string(TOLOWER "${resolved_embedded_item}" resolved_embedded_item_compare) + else() + set(resolved_item_compare "${resolved_item}") + set(resolved_embedded_item_compare "${resolved_embedded_item}") + endif() + + if ("${resolved_item_compare}" STREQUAL "${resolved_embedded_item_compare}") + # this is our only change from the original version + message(STATUS "status: resolved_item == resolved_embedded_item - not copying...") + else() + #message(STATUS "copying COMMAND ${CMAKE_COMMAND} -E copy ${resolved_item} ${resolved_embedded_item}") + execute_process(COMMAND ${CMAKE_COMMAND} -E copy "${resolved_item}" "${resolved_embedded_item}") + if(UNIX AND NOT APPLE) + file(RPATH_REMOVE FILE "${resolved_embedded_item}") + endif() + endif() +endfunction() + function(gp_resolved_file_type_override resolved_file type_var) if( file MATCHES ".*VCRUNTIME140.*" ) set(type "system" PARENT_SCOPE) From 50eaf3e166bbe76cac76214788be2c4120cd1e9b Mon Sep 17 00:00:00 2001 From: Oren Hurvitz Date: Tue, 17 Apr 2018 12:14:45 +0300 Subject: [PATCH 007/300] Fixed CMakeLists.txt for 'oven' to work in Linux --- tools/oven/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/oven/CMakeLists.txt b/tools/oven/CMakeLists.txt index 71bb997303..1b77a2585f 100644 --- a/tools/oven/CMakeLists.txt +++ b/tools/oven/CMakeLists.txt @@ -11,7 +11,7 @@ if (WIN32) elseif (UNIX AND NOT APPLE) find_package(Threads REQUIRED) if(THREADS_HAVE_PTHREAD_ARG) - target_compile_options(PUBLIC oven "-pthread") + target_compile_options(oven PUBLIC "-pthread") endif() elseif (APPLE) # Fix up the rpath so macdeployqt works From cd06067030ad1d7ab791361df35aa41fd456bf11 Mon Sep 17 00:00:00 2001 From: Oren Hurvitz Date: Wed, 18 Apr 2018 10:18:29 +0300 Subject: [PATCH 008/300] Fixed based on PR review --- cmake/templates/FixupBundlePostBuild.cmake.in | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/cmake/templates/FixupBundlePostBuild.cmake.in b/cmake/templates/FixupBundlePostBuild.cmake.in index 4ebb0ea1a6..bb96fe49f3 100644 --- a/cmake/templates/FixupBundlePostBuild.cmake.in +++ b/cmake/templates/FixupBundlePostBuild.cmake.in @@ -33,10 +33,9 @@ function(copy_resolved_item_into_bundle resolved_item resolved_embedded_item) # this is our only change from the original version message(STATUS "status: resolved_item == resolved_embedded_item - not copying...") else() - #message(STATUS "copying COMMAND ${CMAKE_COMMAND} -E copy ${resolved_item} ${resolved_embedded_item}") execute_process(COMMAND ${CMAKE_COMMAND} -E copy "${resolved_item}" "${resolved_embedded_item}") - if(UNIX AND NOT APPLE) - file(RPATH_REMOVE FILE "${resolved_embedded_item}") + if (UNIX AND NOT APPLE) + file(RPATH_REMOVE FILE "${resolved_embedded_item}") endif() endif() endfunction() From de0ea15f0aadf02de1b105315f18633339c9f846 Mon Sep 17 00:00:00 2001 From: Oren Hurvitz Date: Wed, 18 Apr 2018 10:26:55 +0300 Subject: [PATCH 009/300] Fixed based on PR review --- libraries/networking/src/LimitedNodeList.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/libraries/networking/src/LimitedNodeList.cpp b/libraries/networking/src/LimitedNodeList.cpp index e818fa96ac..c54e14b125 100644 --- a/libraries/networking/src/LimitedNodeList.cpp +++ b/libraries/networking/src/LimitedNodeList.cpp @@ -770,10 +770,9 @@ unsigned int LimitedNodeList::broadcastToNodes(std::unique_ptr packet, eachNode([&](const SharedNodePointer& node){ if (node && destinationNodeTypes.contains(node->getType())) { if (packet->isReliable()) { - auto packet1 = NLPacket::createCopy(*packet); - sendPacket(std::move(packet1), *node); - } - else { + auto packetCopy = NLPacket::createCopy(*packet); + sendPacket(std::move(packetCopy), *node); + } else { sendUnreliablePacket(*packet, *node); } ++n; From a2e2d1bd6fa9aaba380ed187b67b4f0ff3445030 Mon Sep 17 00:00:00 2001 From: Alexia Mandeville Date: Mon, 23 Apr 2018 14:05:23 -0700 Subject: [PATCH 010/300] Updating emote app with sit and love emotes. Renaming emotes and adjusting HTML and emote behaviors --- .../animations/{Cheering.fbx => Cheer.fbx} | Bin .../animations/{Clapping.fbx => Clap.fbx} | Bin .../assets/animations/{Crying.fbx => Cry.fbx} | Bin 727680 -> 727504 bytes .../animations/{Dancing.fbx => Dance.fbx} | Bin scripts/system/assets/animations/Love.fbx | Bin 0 -> 2085904 bytes .../animations/{Pointing.fbx => Point.fbx} | Bin scripts/system/assets/animations/Sit1.fbx | Bin 0 -> 628720 bytes scripts/system/assets/animations/Sit2.fbx | Bin 0 -> 2418736 bytes scripts/system/assets/animations/Sit3.fbx | Bin 0 -> 2417280 bytes .../animations/{Waving.fbx => Wave.fbx} | Bin scripts/system/emote.js | 79 ++++++++++++++---- scripts/system/html/EmoteApp.html | 22 ++--- 12 files changed, 75 insertions(+), 26 deletions(-) rename scripts/system/assets/animations/{Cheering.fbx => Cheer.fbx} (100%) rename scripts/system/assets/animations/{Clapping.fbx => Clap.fbx} (100%) rename scripts/system/assets/animations/{Crying.fbx => Cry.fbx} (67%) rename scripts/system/assets/animations/{Dancing.fbx => Dance.fbx} (100%) create mode 100644 scripts/system/assets/animations/Love.fbx rename scripts/system/assets/animations/{Pointing.fbx => Point.fbx} (100%) create mode 100644 scripts/system/assets/animations/Sit1.fbx create mode 100644 scripts/system/assets/animations/Sit2.fbx create mode 100644 scripts/system/assets/animations/Sit3.fbx rename scripts/system/assets/animations/{Waving.fbx => Wave.fbx} (100%) diff --git a/scripts/system/assets/animations/Cheering.fbx b/scripts/system/assets/animations/Cheer.fbx similarity index 100% rename from scripts/system/assets/animations/Cheering.fbx rename to scripts/system/assets/animations/Cheer.fbx diff --git a/scripts/system/assets/animations/Clapping.fbx b/scripts/system/assets/animations/Clap.fbx similarity index 100% rename from scripts/system/assets/animations/Clapping.fbx rename to scripts/system/assets/animations/Clap.fbx diff --git a/scripts/system/assets/animations/Crying.fbx b/scripts/system/assets/animations/Cry.fbx similarity index 67% rename from scripts/system/assets/animations/Crying.fbx rename to scripts/system/assets/animations/Cry.fbx index 2e60ba2450442cfac86b78bebc9ea0d3e29dda2f..7ecd6415a50549add15a928c6a0d945abdbd94a8 100644 GIT binary patch delta 67923 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

KLqdZ z7MTz1Vt#03K6s1xWJh=AW%p6+*D6Kv4LuW?4?F`t^V!IJ@Ga(tGcWsrVt)yVi2WJhb7X$l_&`4YzKlN`AG}O_l4Bs-mw!_s_A8h}6JmTx z{&|u4Kqv4y3nKHuvEUt}nJ?fSBC-ED`25!+^MPZ;CudKO%m<76D87z2nU`P*;VXs2cMD?nGam&_TrzdeXvR*{C|(z%a>cR-xYlJ zJCXUoc<}x)k@;XQ`26|I%coSaf0Fp5%nu{;fmpLw=@?&9&ij%1U`z1%qF=skiv2;% z&*k0idYSth2Uv!q$JY)pCAiZW)?vN2V=94r&#a5)?fufyRe-tpx=y#_rw zU~s>VDW}`liB|s@V|w!b%Po|hvetDayY_pb->`l|`t*x%?W{`PDznnO(Q&sneC9Z^ Wr(odbSME)V|M!8h=9#iF^Zp;ooXAK3 delta 68453 zcmb@vXIK+k_qd(elK=_Qlp>)Bf>IO+h=7O?Bv`Sc$F5+*IGMfgb+6rKGPtg%aCgnjy*0C4Sdzs&w|~cT z3WdUsQz)dLDuqJ98268x0yZq_Lesp@=E>sadm>)M4qp8rM`P6z$4? zp4h9$pwym?t0@$U^m3nDHcJ^WAY~|C94iG>D1;GQee>`@U0`sc#cm^4pJNRygkyUBK&j2684ppMNH3PoIG=Yc~rhK7Z9?mK8;ug=M->3s*KW_0c`sAsRveN%d;bRODc zNJ?7z(9T0MhNkx#*g1LV&|c|7J13{63`|Z>8I(G-bKH=Ol+->UfxWwr)F}}^P8iRJ zwEjQGcNebn!Q3vvT-k#ACA3pERyS5*z!+hZGD@vfC=?;O;P7=qu`

S0_jp92BAp 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⪙C1UbxNSKYaB+TYo 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�xVUV1MoY^L47+7)~!U9X!9ay4(j36SC7Lcqmq6mn}Dk6ws2UO4(kwsJ_=_o2H z0z;B4zh`G|6a^malbe%%l-hW8z}lPMb14x|^#uQQDkA2ZDs8ON z#wu;B(&q7&Hv1o1rH$3Bmci{eh*jv)rmR+4%cN=PC~dj|GvylQN}KvQ)ul~Db)vL+ z2QG=0HizIJ<yP@&4?AtUkahLsf{hzY+j6`~u0;ix=AP`!o%L+p=1mrDOZ>d~ z^q*SfD0Z;>gyvtwPucSP;^xcNzf>oxLa~M2I{kg?!Tsy+_8EHmVEH%uFPi=C!;hBw zPma6Z?aSD=-rCpHJ@>@XHh+~=mo^E-iEnL2!zIzuW)A$LT-w|yYLzxtX=9Z(R%!Ei zOPj7G(^%SA&1zOlYnukK3SHXl0;KuU=B(iw=Kdh{c?F`hDMOStk)?un3$(Q95C15a zHpj|YrHxhESf!0s+C1LUrg8u@Su}T}Ow6RK?$6MNDs%e!rRs-kfaXh^PQXmLhPl$l-jOJ6N)V;ZPPimm+I$B8D3>

_T=yrs>go>pmNHLGQCTL-ZUUD_N6r1{e3Kf^W5 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 literal 0 HcmV?d00001 diff --git a/scripts/system/assets/animations/Pointing.fbx b/scripts/system/assets/animations/Point.fbx similarity index 100% rename from scripts/system/assets/animations/Pointing.fbx rename to scripts/system/assets/animations/Point.fbx diff --git a/scripts/system/assets/animations/Sit1.fbx b/scripts/system/assets/animations/Sit1.fbx new file mode 100644 index 0000000000000000000000000000000000000000..db75219980fd93920dd33b70683cd14e549db261 GIT binary patch literal 628720 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

S);Xb0tN8pEu7zm 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

jyKuNaV1grL2I|hiGK=2> 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 z%0A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

P)W!Qs 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 z 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

>d5vPFL~NLPn|$Pu^;i57fj$A}D*f4O)d+ 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 literal 0 HcmV?d00001 diff --git a/scripts/system/assets/animations/Sit3.fbx b/scripts/system/assets/animations/Sit3.fbx new file mode 100644 index 0000000000000000000000000000000000000000..174fd75c4efe83805aff8c4813adb080ea7f514f GIT binary patch literal 2417280 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%0ALmXm<9M> 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 jY!JI{_YMBf|K~q{2DkS8{I^9{e*bNqEmote App

From 36df9d7de86a067ef045c459403b7b5cb1041430 Mon Sep 17 00:00:00 2001 From: Alexia Mandeville Date: Mon, 23 Apr 2018 14:31:53 -0700 Subject: [PATCH 011/300] Removing sit functionality from teleport --- .../controllers/controllerModules/teleport.js | 46 +------------------ 1 file changed, 2 insertions(+), 44 deletions(-) diff --git a/scripts/system/controllers/controllerModules/teleport.js b/scripts/system/controllers/controllerModules/teleport.js index 560da57b20..1dc7990f6e 100644 --- a/scripts/system/controllers/controllerModules/teleport.js +++ b/scripts/system/controllers/controllerModules/teleport.js @@ -23,7 +23,6 @@ Script.include("/~/system/libraries/controllers.js"); var TARGET_MODEL_URL = Script.resolvePath("../../assets/models/teleport-destination.fbx"); var TOO_CLOSE_MODEL_URL = Script.resolvePath("../../assets/models/teleport-cancel.fbx"); - var SEAT_MODEL_URL = Script.resolvePath("../../assets/models/teleport-seat.fbx"); var TARGET_MODEL_DIMENSIONS = { x: 1.15, @@ -31,12 +30,6 @@ Script.include("/~/system/libraries/controllers.js"); z: 1.15 }; - var COLORS_TELEPORT_SEAT = { - red: 255, - green: 0, - blue: 170 - }; - var COLORS_TELEPORT_CAN_TELEPORT = { red: 97, green: 247, @@ -79,15 +72,6 @@ Script.include("/~/system/libraries/controllers.js"); drawInFront: true, glow: 1.0 }; - var seatPath = { - type: "line3d", - color: COLORS_TELEPORT_SEAT, - ignoreRayIntersection: true, - alpha: 1, - solid: true, - drawInFront: true, - glow: 1.0 - }; var cancelEnd = { type: "model", url: TOO_CLOSE_MODEL_URL, @@ -100,17 +84,10 @@ Script.include("/~/system/libraries/controllers.js"); dimensions: TARGET_MODEL_DIMENSIONS, ignoreRayIntersection: true }; - var seatEnd = { - type: "model", - url: SEAT_MODEL_URL, - dimensions: TARGET_MODEL_DIMENSIONS, - ignoreRayIntersection: true - }; var teleportRenderStates = [{name: "cancel", path: cancelPath, end: cancelEnd}, - {name: "teleport", path: teleportPath, end: teleportEnd}, - {name: "seat", path: seatPath, end: seatEnd}]; + {name: "teleport", path: teleportPath, end: teleportEnd}]; var DEFAULT_DISTANCE = 50; var teleportDefaultRenderStates = [{name: "cancel", distance: DEFAULT_DISTANCE, path: cancelPath}]; @@ -131,7 +108,6 @@ Script.include("/~/system/libraries/controllers.js"); INVISIBLE: 'invisible', // The current target is an invvsible surface INVALID: 'invalid', // The current target is invalid (wall, ceiling, etc.) SURFACE: 'surface', // The current target is a valid surface - SEAT: 'seat' // The current target is a seat }; function Teleporter(hand) { @@ -219,11 +195,9 @@ Script.include("/~/system/libraries/controllers.js"); if (!Vec3.equal(AVATAR_PROPORTIONAL_TARGET_MODEL_DIMENSIONS, cancelEnd.dimensions)) { cancelEnd.dimensions = AVATAR_PROPORTIONAL_TARGET_MODEL_DIMENSIONS; teleportEnd.dimensions = AVATAR_PROPORTIONAL_TARGET_MODEL_DIMENSIONS; - seatEnd.dimensions = AVATAR_PROPORTIONAL_TARGET_MODEL_DIMENSIONS; teleportRenderStates = [{name: "cancel", path: cancelPath, end: cancelEnd}, - {name: "teleport", path: teleportPath, end: teleportEnd}, - {name: "seat", path: seatPath, end: seatEnd}]; + {name: "teleport", path: teleportPath, end: teleportEnd}]; Pointers.editRenderState(this.teleportRayHandVisible, "cancel", teleportRenderStates[0]); Pointers.editRenderState(this.teleportRayHandInvisible, "cancel", teleportRenderStates[0]); @@ -235,10 +209,6 @@ Script.include("/~/system/libraries/controllers.js"); Pointers.editRenderState(this.teleportRayHeadVisible, "teleport", teleportRenderStates[1]); Pointers.editRenderState(this.teleportRayHeadInvisible, "teleport", teleportRenderStates[1]); - Pointers.editRenderState(this.teleportRayHandVisible, "seat", teleportRenderStates[2]); - Pointers.editRenderState(this.teleportRayHandInvisible, "seat", teleportRenderStates[2]); - Pointers.editRenderState(this.teleportRayHeadVisible, "seat", teleportRenderStates[2]); - Pointers.editRenderState(this.teleportRayHeadInvisible, "seat", teleportRenderStates[2]); } }; @@ -306,8 +276,6 @@ Script.include("/~/system/libraries/controllers.js"); } else { this.setTeleportState(mode, "teleport", ""); } - } else if (teleportLocationType === TARGET.SEAT) { - this.setTeleportState(mode, "", "seat"); } return this.teleport(result, teleportLocationType); }; @@ -320,8 +288,6 @@ Script.include("/~/system/libraries/controllers.js"); if (target === TARGET.NONE || target === TARGET.INVALID || this.state === TELEPORTER_STATES.COOL_IN) { // Do nothing - } else if (target === TARGET.SEAT) { - Entities.callEntityMethod(result.objectID, 'sit'); } else if (target === TARGET.SURFACE) { var offset = getAvatarFootOffset(); result.intersection.y += offset; @@ -409,14 +375,6 @@ Script.include("/~/system/libraries/controllers.js"); var props = Entities.getEntityProperties(result.objectID, ['userData', 'visible']); var data = parseJSON(props.userData); - if (data !== undefined && data.seat !== undefined) { - var avatarUuid = Uuid.fromString(data.seat.user); - if (Uuid.isNull(avatarUuid) || !AvatarList.getAvatar(avatarUuid).sessionUUID) { - return TARGET.SEAT; - } else { - return TARGET.INVALID; - } - } if (!props.visible) { return TARGET.INVISIBLE; From b0187ecfd3dfdceb084884a72cc1a432f6018ebf Mon Sep 17 00:00:00 2001 From: Thijs Wenker Date: Tue, 24 Apr 2018 19:24:23 +0200 Subject: [PATCH 012/300] add MyAvatar.hasAudioEnabledFaceMovement API property which is enabled by default --- interface/src/avatar/MyAvatar.h | 4 +++ interface/src/avatar/MyHead.cpp | 45 ++++++++++++++++-------------- libraries/avatars/src/AvatarData.h | 1 + 3 files changed, 29 insertions(+), 21 deletions(-) diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index b8c9e4d595..537b5de8d8 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -134,6 +134,7 @@ class MyAvatar : public Avatar { Q_PROPERTY(AudioListenerMode audioListenerModeCamera READ getAudioListenerModeCamera) Q_PROPERTY(AudioListenerMode audioListenerModeCustom READ getAudioListenerModeCustom) Q_PROPERTY(bool hasScriptedBlendshapes READ getHasScriptedBlendshapes WRITE setHasScriptedBlendshapes) + Q_PROPERTY(bool hasAudioEnabledFaceMovement READ getHasAudioEnabledFaceMovement WRITE setHasAudioEnabledFaceMovement) //TODO: make gravity feature work Q_PROPERTY(glm::vec3 gravity READ getGravity WRITE setGravity) Q_PROPERTY(glm::vec3 leftHandPosition READ getLeftHandPosition) @@ -684,6 +685,8 @@ private: bool getShouldRenderLocally() const { return _shouldRender; } void setHasScriptedBlendshapes(bool hasScriptedBlendshapes) { _hasScriptedBlendShapes = hasScriptedBlendshapes; } bool getHasScriptedBlendshapes() const override { return _hasScriptedBlendShapes; } + void setHasAudioEnabledFaceMovement(bool hasAudioEnabledFaceMovement) { _hasAudioEnabledFaceMovement = hasAudioEnabledFaceMovement; } + bool getHasAudioEnabledFaceMovement() const override { return _hasAudioEnabledFaceMovement; } bool isMyAvatar() const override { return true; } virtual int parseDataFromBuffer(const QByteArray& buffer) override; virtual glm::vec3 getSkeletonPosition() const override; @@ -793,6 +796,7 @@ private: float _hmdRollControlDeadZone { ROLL_CONTROL_DEAD_ZONE_DEFAULT }; float _hmdRollControlRate { ROLL_CONTROL_RATE_DEFAULT }; bool _hasScriptedBlendShapes { false }; + bool _hasAudioEnabledFaceMovement { true }; // working copy -- see AvatarData for thread-safe _sensorToWorldMatrixCache, used for outward facing access glm::mat4 _sensorToWorldMatrix { glm::mat4() }; diff --git a/interface/src/avatar/MyHead.cpp b/interface/src/avatar/MyHead.cpp index b7b8aa5e52..ed38fdd004 100644 --- a/interface/src/avatar/MyHead.cpp +++ b/interface/src/avatar/MyHead.cpp @@ -47,29 +47,32 @@ void MyHead::simulate(float deltaTime) { // Only use face trackers when not playing back a recording. if (!player->isPlaying()) { auto faceTracker = qApp->getActiveFaceTracker(); - bool hasActualFaceTrackerConnected = faceTracker && !faceTracker->isMuted(); + const bool hasActualFaceTrackerConnected = faceTracker && !faceTracker->isMuted(); _isFaceTrackerConnected = hasActualFaceTrackerConnected || _owningAvatar->getHasScriptedBlendshapes(); - if (hasActualFaceTrackerConnected) { - _transientBlendshapeCoefficients = faceTracker->getBlendshapeCoefficients(); - - if (typeid(*faceTracker) == typeid(DdeFaceTracker)) { - - if (Menu::getInstance()->isOptionChecked(MenuOption::UseAudioForMouth)) { - calculateMouthShapes(deltaTime); - - const int JAW_OPEN_BLENDSHAPE = 21; - const int MMMM_BLENDSHAPE = 34; - const int FUNNEL_BLENDSHAPE = 40; - const int SMILE_LEFT_BLENDSHAPE = 28; - const int SMILE_RIGHT_BLENDSHAPE = 29; - _transientBlendshapeCoefficients[JAW_OPEN_BLENDSHAPE] += _audioJawOpen; - _transientBlendshapeCoefficients[SMILE_LEFT_BLENDSHAPE] += _mouth4; - _transientBlendshapeCoefficients[SMILE_RIGHT_BLENDSHAPE] += _mouth4; - _transientBlendshapeCoefficients[MMMM_BLENDSHAPE] += _mouth2; - _transientBlendshapeCoefficients[FUNNEL_BLENDSHAPE] += _mouth3; - } - applyEyelidOffset(getFinalOrientationInWorldFrame()); + if (_isFaceTrackerConnected) { + if (hasActualFaceTrackerConnected) { + _transientBlendshapeCoefficients = faceTracker->getBlendshapeCoefficients(); + } else { + _transientBlendshapeCoefficients.fill(0, _blendshapeCoefficients.size()); } + + if (_owningAvatar->getHasAudioEnabledFaceMovement() || (faceTracker && (typeid(*faceTracker) == typeid(DdeFaceTracker)) + && Menu::getInstance()->isOptionChecked(MenuOption::UseAudioForMouth))) { + + calculateMouthShapes(deltaTime); + + const int JAW_OPEN_BLENDSHAPE = 21; + const int MMMM_BLENDSHAPE = 34; + const int FUNNEL_BLENDSHAPE = 40; + const int SMILE_LEFT_BLENDSHAPE = 28; + const int SMILE_RIGHT_BLENDSHAPE = 29; + _transientBlendshapeCoefficients[JAW_OPEN_BLENDSHAPE] += _audioJawOpen; + _transientBlendshapeCoefficients[SMILE_LEFT_BLENDSHAPE] += _mouth4; + _transientBlendshapeCoefficients[SMILE_RIGHT_BLENDSHAPE] += _mouth4; + _transientBlendshapeCoefficients[MMMM_BLENDSHAPE] += _mouth2; + _transientBlendshapeCoefficients[FUNNEL_BLENDSHAPE] += _mouth3; + } + applyEyelidOffset(getFinalOrientationInWorldFrame()); } auto eyeTracker = DependencyManager::get(); _isEyeTrackerConnected = eyeTracker->isTracking(); diff --git a/libraries/avatars/src/AvatarData.h b/libraries/avatars/src/AvatarData.h index fbef083dcd..fe4ff364ae 100644 --- a/libraries/avatars/src/AvatarData.h +++ b/libraries/avatars/src/AvatarData.h @@ -503,6 +503,7 @@ public: float getDomainLimitedScale() const; virtual bool getHasScriptedBlendshapes() const { return false; } + virtual bool getHasAudioEnabledFaceMovement() const { return false; } /**jsdoc * returns the minimum scale allowed for this avatar in the current domain. From 192e48a376026b565ce89b39992b6060fc48d1c6 Mon Sep 17 00:00:00 2001 From: Thijs Wenker Date: Wed, 25 Apr 2018 13:47:00 +0200 Subject: [PATCH 013/300] style fix + JSDocs --- interface/src/avatar/MyAvatar.h | 2 ++ interface/src/avatar/MyHead.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 537b5de8d8..9bccc93fbf 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -80,6 +80,8 @@ class MyAvatar : public Avatar { * MyAvatar.audioListenerModeCamera - the listener is relative to the camera. * MyAvatar.audioListenerModeCustom - the listener is at a custom location specified by the MyAvatar.customListenPosition * and MyAvatar.customListenOrientation properties. + * @property hasScriptedBlendshapes {bool} Blendshapes will be transmitted over the network if set to true. + * @property hasAudioEnabledFaceMovement {bool} If set to true, voice audio will move the mouth Blendshapes while MyAvatar.hasScriptedBlendshapes is enabled. * @property customListenPosition {Vec3} If MyAvatar.audioListenerMode == MyAvatar.audioListenerModeHead, then this determines the position * of audio spatialization listener. * @property customListenOrientation {Quat} If MyAvatar.audioListenerMode == MyAvatar.audioListenerModeHead, then this determines the orientation diff --git a/interface/src/avatar/MyHead.cpp b/interface/src/avatar/MyHead.cpp index ed38fdd004..44d679f3f8 100644 --- a/interface/src/avatar/MyHead.cpp +++ b/interface/src/avatar/MyHead.cpp @@ -72,7 +72,7 @@ void MyHead::simulate(float deltaTime) { _transientBlendshapeCoefficients[MMMM_BLENDSHAPE] += _mouth2; _transientBlendshapeCoefficients[FUNNEL_BLENDSHAPE] += _mouth3; } - applyEyelidOffset(getFinalOrientationInWorldFrame()); + applyEyelidOffset(getFinalOrientationInWorldFrame()); } auto eyeTracker = DependencyManager::get(); _isEyeTrackerConnected = eyeTracker->isTracking(); From 484e20ea55dc6027b06447e6ca56baeabed88f52 Mon Sep 17 00:00:00 2001 From: Thijs Wenker Date: Wed, 25 Apr 2018 19:01:18 +0200 Subject: [PATCH 014/300] JSDOC - change bool type to boolean, to match JS type --- interface/src/avatar/MyAvatar.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 9bccc93fbf..23faff88ee 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -80,8 +80,8 @@ class MyAvatar : public Avatar { * MyAvatar.audioListenerModeCamera - the listener is relative to the camera. * MyAvatar.audioListenerModeCustom - the listener is at a custom location specified by the MyAvatar.customListenPosition * and MyAvatar.customListenOrientation properties. - * @property hasScriptedBlendshapes {bool} Blendshapes will be transmitted over the network if set to true. - * @property hasAudioEnabledFaceMovement {bool} If set to true, voice audio will move the mouth Blendshapes while MyAvatar.hasScriptedBlendshapes is enabled. + * @property hasScriptedBlendshapes {boolean} Blendshapes will be transmitted over the network if set to true. + * @property hasAudioEnabledFaceMovement {boolean} If set to true, voice audio will move the mouth Blendshapes while MyAvatar.hasScriptedBlendshapes is enabled. * @property customListenPosition {Vec3} If MyAvatar.audioListenerMode == MyAvatar.audioListenerModeHead, then this determines the position * of audio spatialization listener. * @property customListenOrientation {Quat} If MyAvatar.audioListenerMode == MyAvatar.audioListenerModeHead, then this determines the orientation From f3f29bb6611146319b3e9860ccf10cb052014314 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Wed, 25 Apr 2018 12:13:46 -0700 Subject: [PATCH 015/300] allow avatar data to use full segment size --- .../src/avatars/AvatarMixerSlave.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/assignment-client/src/avatars/AvatarMixerSlave.cpp b/assignment-client/src/avatars/AvatarMixerSlave.cpp index fb4b65726a..ece0ab9616 100644 --- a/assignment-client/src/avatars/AvatarMixerSlave.cpp +++ b/assignment-client/src/avatars/AvatarMixerSlave.cpp @@ -392,21 +392,26 @@ void AvatarMixerSlave::broadcastAvatarDataToAgent(const SharedNodePointer& node) quint64 end = usecTimestampNow(); _stats.toByteArrayElapsedTime += (end - start); - static const int MAX_ALLOWED_AVATAR_DATA = (1400 - NUM_BYTES_RFC4122_UUID); - if (bytes.size() > MAX_ALLOWED_AVATAR_DATA) { - qCWarning(avatars) << "otherAvatar.toByteArray() resulted in very large buffer:" << bytes.size() << "... attempt to drop facial data"; + auto maxAvatarDataBytes = avatarPacketList->getMaxSegmentSize() - NUM_BYTES_RFC4122_UUID; + if (bytes.size() > maxAvatarDataBytes) { + qCWarning(avatars) << "otherAvatar.toByteArray() for" << otherNode->getUUID() + << "resulted in very large buffer of" << bytes.size() << "bytes - dropping facial data"; dropFaceTracking = true; // first try dropping the facial data bytes = otherAvatar->toByteArray(detail, lastEncodeForOther, lastSentJointsForOther, hasFlagsOut, dropFaceTracking, distanceAdjust, viewerPosition, &lastSentJointsForOther); - if (bytes.size() > MAX_ALLOWED_AVATAR_DATA) { - qCWarning(avatars) << "otherAvatar.toByteArray() without facial data resulted in very large buffer:" << bytes.size() << "... reduce to MinimumData"; + if (bytes.size() > maxAvatarDataBytes) { + qCWarning(avatars) << "otherAvatar.toByteArray() for" << otherNode->getUUID() + << "without facial data resulted in very large buffer of" << bytes.size() + << "bytes - reducing to MinimumData"; bytes = otherAvatar->toByteArray(AvatarData::MinimumData, lastEncodeForOther, lastSentJointsForOther, hasFlagsOut, dropFaceTracking, distanceAdjust, viewerPosition, &lastSentJointsForOther); - if (bytes.size() > MAX_ALLOWED_AVATAR_DATA) { - qCWarning(avatars) << "otherAvatar.toByteArray() MinimumData resulted in very large buffer:" << bytes.size() << "... FAIL!!"; + if (bytes.size() > maxAvatarDataBytes) { + qCWarning(avatars) << "otherAvatar.toByteArray() for" << otherNode->getUUID() + << "MinimumData resulted in very large buffer of" << bytes.size() + << "bytes - refusing to send avatar"; includeThisAvatar = false; } } From bbd31d590bb5f465fa5f906ac7dbf756abf7af53 Mon Sep 17 00:00:00 2001 From: Thijs Wenker Date: Thu, 26 Apr 2018 03:12:44 +0200 Subject: [PATCH 016/300] defaults --- interface/src/avatar/MyAvatar.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index ef2b0cd042..512273aee6 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -82,8 +82,8 @@ class MyAvatar : public Avatar { * @property {number} audioListenerModeCamera=1 - The audio listening position is at the camera. Read-only. * @property {number} audioListenerModeCustom=2 - The audio listening position is at a the position specified by set by the * customListenPosition and customListenOrientation property values. Read-only. - * @property hasScriptedBlendshapes {boolean} Blendshapes will be transmitted over the network if set to true. - * @property hasAudioEnabledFaceMovement {boolean} If set to true, voice audio will move the mouth Blendshapes while MyAvatar.hasScriptedBlendshapes is enabled. + * @property {boolean} hasScriptedBlendshapes=false - Blendshapes will be transmitted over the network if set to true. + * @property {boolean} hasAudioEnabledFaceMovement=true - If set to true, voice audio will move the mouth Blendshapes while MyAvatar.hasScriptedBlendshapes is enabled. * @property {Vec3} customListenPosition=Vec3.ZERO - The listening position used when the audioListenerMode * property value is audioListenerModeCustom. * @property {Quat} customListenOrientation=Quat.IDENTITY - The listening orientation used when the From 9773b928ac57e0f39ecae029a0287d4f2351cadd Mon Sep 17 00:00:00 2001 From: milad nazeri Date: Sat, 28 Apr 2018 00:25:07 -0700 Subject: [PATCH 017/300] copying to dir working --- tools/jsdoc/gravPrep.js | 272 ++++++++++++++++++++++++++++++++++++ tools/jsdoc/package.json | 6 +- tools/jsdoc/plugins/hifi.js | 12 +- 3 files changed, 283 insertions(+), 7 deletions(-) create mode 100644 tools/jsdoc/gravPrep.js diff --git a/tools/jsdoc/gravPrep.js b/tools/jsdoc/gravPrep.js new file mode 100644 index 0000000000..634f529891 --- /dev/null +++ b/tools/jsdoc/gravPrep.js @@ -0,0 +1,272 @@ +const htmlclean = require('htmlclean'); +const fs = require('fs'); +const path = require('path'); +const pretty = require('pretty'); +const cheerio = require('cheerio'); +const rimraf = require('rimraf'); + +// required directories +let dir_out = path.join(__dirname, 'out'); + +let dir_grav = path.join(dir_out, 'grav'); +let dir_css = path.join(dir_grav, 'css'); +let dir_js = path.join(dir_grav, 'js'); +let dir_twig = path.join(dir_grav, 'templates'); + +let dir_md = path.join(dir_grav, '06.api-reference'); +let dir_md_classes = path.join(dir_md, 'Objects'); +let dir_md_namespaces = path.join(dir_md, 'Namespaces'); +let dir_md_globals = path.join(dir_md, 'Globals'); + +// maps for sorting +let map_dir_md = { + "Class": dir_md_classes, + "Namespace": dir_md_namespaces, + "Global": dir_md_globals +} + +// html variables to be replaced +const html_reg_static = /\(static)\<\/span>/g; +const html_reg_title = /\.+?\<\/h1\>/g; +const html_reg_htmlExt = /\.html/g; + +// remove grav directory if exists to make sure old files aren't kept +if (fs.existsSync(dir_grav)){ + console.log("dir_grav exists"); + rimraf.sync(dir_grav); +} + +// array to itterate over and create if doesn't exist +let dirArray = [dir_grav, dir_css, dir_js, dir_twig, dir_md, dir_md_classes, dir_md_namespaces, dir_md_globals]; + +dirArray.forEach(function(dir){ + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir); + } +}) + +// read jsdoc output folder + +/* + +let files = fs.readdirSync(dir_out); +files.forEach(function (file){ + let curSource = path.join(dir_out, file); + if (path.extname(curSource) == ".html") { + + // clean up the html source + + let loadedHtml = prepareHtml(curSource); + + // extract the title and the main div + + let splitTile = loadedHtml("title").text().split(": "); + let groupName = splitTitle[0]; + let htmlTitle = splitTile.pop(); + console.log(groupName); + // let mainDiv = loadedHtml("#main").html(); + // let mainDivNoTitle = mainDiv.replace(/\.+?\<\/h1\>/g, ""); + // let mainDivStripLinks = mainDivNoTitle.replace(/\.html/g, ""); + + // create the .md file and corresponding folder + + // let mdSource = makeMdSource(htmlTitle); + // let destinationDirectory = path.join(dir_md, htmlTitle); + // if (!fs.existsSync(destinationDirectory)) { + // fs.mkdirSync(destinationDirectory); + // } + // let destinationMDFile = path.join(destinationDirectory, `API_${htmlTitle}.md`); + // fs.writeFileSync(destinationMDFile, mdSource); + + // create the twig template + + // let twigBasePartial = makeTwigFile(mainDivStripLinks); + // let destinationFile = path.join(dir_twig, `API_${htmlTitle}.html.twig`); + // fs.writeFileSync(destinationFile, twigBasePartial); + } +}) + +*/ + +let curSource = path.join(dir_out, "Camera.html"); + +// clean up the html source + +let loadedHtml = prepareHtml(curSource); + +// extract the title, groupename, and the main div + +let splitTitle = loadedHtml("title").text().split(": "); +let groupName = splitTitle[1]; +let htmlTitle = splitTitle.pop(); +console.log("groupname:", groupName); +console.log("htmlTitle:", htmlTitle); + +// strip out undesired regex +let mainDiv = loadedHtml("#main").html(); +let mainDivRegexed = mainDiv.replace(html_reg_static,"") + .replace(html_reg_title,"") + .replace(html_reg_htmlExt,"") + +// create the .md file and corresponding folder + +console.log(map_dir_md[groupName]); +let mdSource = makeMdSource(htmlTitle); +let destinationDirectory = path.join(map_dir_md[groupName], htmlTitle); +if (!fs.existsSync(destinationDirectory)) { + fs.mkdirSync(destinationDirectory); +} +let destinationMDFile = path.join(destinationDirectory, `API_${htmlTitle}.md`); +fs.writeFileSync(destinationMDFile, mdSource); + +// create the twig template + +let twigBasePartial = makeTwigFile(mainDivRegexed); +let destinationFile = path.join(dir_twig, `API_${htmlTitle}.html.twig`); +fs.writeFileSync(destinationFile, twigBasePartial); + +function prepareHtml(source){ + let htmlBefore = fs.readFileSync(source, {encoding: 'utf8'}); + let htmlAfter = htmlclean(htmlBefore); + let htmlAfterPretty = pretty(htmlAfter); + return cheerio.load(htmlAfterPretty); +} + +function makeMdSource(title){ + return ( +`--- +title: '${title}' +taxonomy: + category: + - docs +visible: true +--- +` + ) +} + +function makeTwigFile(contentHtml){ + return ( +` +{% extends 'partials/base_noGit.html.twig' %} +{% set tags = page.taxonomy.tag %} +{% if tags %} + {% set progress = page.collection({'items':{'@taxonomy':{'category': 'docs', 'tag': tags}},'order': {'by': 'default', 'dir': 'asc'}}) %} +{% else %} + {% set progress = page.collection({'items':{'@taxonomy':{'category': 'docs'}},'order': {'by': 'default', 'dir': 'asc'}}) %} +{% endif %} + +{% block navigation %} + +{% endblock %} + +{% block content %} +
+

{{ page.title }}

+ ${contentHtml} +
+{% endblock %} +` + ) +} + +let targertTwigDirectory = "D:/ROLC/Organize/O_Projects/Hifi/Docs/hifi-docs-grav/user/themes/learn2/"; +let targetMDDirectory = "D:/ROLC/Organize/O_Projects/Hifi/Docs/hifi-docs-grav-content/"; + +let chapterMD = +`--- +title: 'High Fidelity API Reference' +taxonomy: + category: + - docs +--- + +### + +# API Reference + +**Under Construction**: We're currently working on creating an API Reference where you can access functions and events easily. + +Check out our latest API Reference here. We're doing our best to keep this reference up-to-date with each release. If you don't find information you are looking for, contact us at [docs@highfidelity.io](mailto:docs@highfidelity.io). + +` + +// Copy files to the Twig Directory +let files = fs.readdirSync(path.resolve(targertTwigDirectory)); +files.forEach(function(file){ + let curSource = path.join(targertTwigDirectory, file); + if(path.basename(file, '.html').indexOf("API") > -1){ + fs.unlink(curSource); + } +}) + +copyFolderRecursiveSync(dir_twig, targertTwigDirectory); + +// Copy files to the Md Directory + +let baseMdRefDir = path.join(targetMDDirectory,"06.api-reference"); + +if (fs.existsSync(targetMDDirectory)){ + rimraf.sync(baseMdRefDir); +} + +copyFolderRecursiveSync(dir_md, targetMDDirectory); +let chapterDestinationFile = path.join(baseMdRefDir, `chapter.md`); +fs.writeFileSync(chapterDestinationFile, chapterMD); + + +// helper functions +function copyFileSync( source, target ) { + console.log("sourece:" + source); + let targetFile = target; + + //if target is a directory a new file with the same name will be created + if ( fs.existsSync( target ) ) { + console.log("target exists"); + if ( fs.lstatSync( target ).isDirectory() ) { + console.log("target is a directory"); + + targetFile = path.join( target, path.basename( source ) ); + console.log("targetFile:" + targetFile); + + } + } + + fs.writeFileSync(targetFile, fs.readFileSync(source)); +} + +function copyFolderRecursiveSync( source, target ) { + var files = []; + + //check if folder needs to be created or integrated + console.log("target:" + target) + console.log("source:" + source) + console.log("basename source:" + path.basename( source )) + + var targetFolder = path.join( target, path.basename( source ) ); + console.log("targetFolder:" + targetFolder); + if ( !fs.existsSync( targetFolder ) ) { + fs.mkdirSync( targetFolder ); + } + + //copy + if ( fs.lstatSync( source ).isDirectory() ) { + files = fs.readdirSync( source ); + files.forEach( function ( file ) { + var curSource = path.join( source, file ); + if ( fs.lstatSync( curSource ).isDirectory() ) { + copyFolderRecursiveSync( curSource, targetFolder ); + } else { + copyFileSync( curSource, targetFolder ); + } + } ); + } +} diff --git a/tools/jsdoc/package.json b/tools/jsdoc/package.json index 215ceec177..d921762f72 100644 --- a/tools/jsdoc/package.json +++ b/tools/jsdoc/package.json @@ -1,7 +1,11 @@ { "name": "hifiJSDoc", "dependencies": { - "jsdoc": "^3.5.5" + "cheerio": "^1.0.0-rc.2", + "htmlclean": "^3.0.8", + "jsdoc": "^3.5.5", + "pretty": "^2.0.0", + "rimraf": "^2.6.2" }, "private": true } diff --git a/tools/jsdoc/plugins/hifi.js b/tools/jsdoc/plugins/hifi.js index 7c643d398c..b34247bd29 100644 --- a/tools/jsdoc/plugins/hifi.js +++ b/tools/jsdoc/plugins/hifi.js @@ -94,19 +94,19 @@ exports.handlers = { if (e.doclet.hifiInterface) { rows.push("Interface Scripts"); } - if (e.doclet.hifiAssignmentClient) { - rows.push("Assignment Client Scripts"); - } if (e.doclet.hifiClientEntity) { rows.push("Client Entity Scripts"); } if (e.doclet.hifiServerEntity) { rows.push("Server Entity Scripts"); } + if (e.doclet.hifiAssignmentClient) { + rows.push("Assignment Client Scripts"); + } // Append an Available In: table at the end of the namespace description. if (rows.length > 0) { - var table = "

Available In:" + rows.join("") + "
"; + var table = "

Available in:" + rows.join("") + "
"; e.doclet.description = e.doclet.description + table; } } @@ -124,7 +124,7 @@ exports.defineTags = function (dictionary) { }); // @hifi-assignment-client - dictionary.defineTag("hifi-assigment-client", { + dictionary.defineTag("hifi-assignment-client", { onTagged: function (doclet, tag) { doclet.hifiAssignmentClient = true; } @@ -143,4 +143,4 @@ exports.defineTags = function (dictionary) { doclet.hifiServerEntity = true; } }); -}; +}; \ No newline at end of file From 9db67229b93e72950b7441042ae3b5f87076f494 Mon Sep 17 00:00:00 2001 From: milad nazeri Date: Sat, 28 Apr 2018 09:29:16 -0700 Subject: [PATCH 018/300] Name groupings working correctly, pre-adding ctrlAtlDavid's new tags --- tools/jsdoc/gravPrep.js | 161 ++++++++++++++++------------------------ 1 file changed, 66 insertions(+), 95 deletions(-) diff --git a/tools/jsdoc/gravPrep.js b/tools/jsdoc/gravPrep.js index 634f529891..482a90c8b8 100644 --- a/tools/jsdoc/gravPrep.js +++ b/tools/jsdoc/gravPrep.js @@ -11,22 +11,22 @@ let dir_out = path.join(__dirname, 'out'); let dir_grav = path.join(dir_out, 'grav'); let dir_css = path.join(dir_grav, 'css'); let dir_js = path.join(dir_grav, 'js'); -let dir_twig = path.join(dir_grav, 'templates'); +let dir_template = path.join(dir_grav, 'templates'); let dir_md = path.join(dir_grav, '06.api-reference'); -let dir_md_classes = path.join(dir_md, 'Objects'); -let dir_md_namespaces = path.join(dir_md, 'Namespaces'); -let dir_md_globals = path.join(dir_md, 'Globals'); +let dir_md_objects = path.join(dir_md, '02.Objects'); +let dir_md_namespaces = path.join(dir_md, '01.Namespaces'); +let dir_md_globals = path.join(dir_md, '03.Globals'); // maps for sorting let map_dir_md = { - "Class": dir_md_classes, + "Class": dir_md_objects, "Namespace": dir_md_namespaces, - "Global": dir_md_globals + "Global": dir_md_globals, } // html variables to be replaced -const html_reg_static = /\(static)\<\/span>/g; +const html_reg_static = /\(static\)<\/span>/g const html_reg_title = /\.+?\<\/h1\>/g; const html_reg_htmlExt = /\.html/g; @@ -37,7 +37,7 @@ if (fs.existsSync(dir_grav)){ } // array to itterate over and create if doesn't exist -let dirArray = [dir_grav, dir_css, dir_js, dir_twig, dir_md, dir_md_classes, dir_md_namespaces, dir_md_globals]; +let dirArray = [dir_grav, dir_css, dir_js, dir_template, dir_md, dir_md_objects, dir_md_namespaces, dir_md_globals]; dirArray.forEach(function(dir){ if (!fs.existsSync(dir)) { @@ -45,85 +45,77 @@ dirArray.forEach(function(dir){ } }) -// read jsdoc output folder +function createMD(title, directory){ + let mdSource = makeMdSource(title); + let destinationMDFile = path.join(directory, `API_${title}.md`); + fs.writeFileSync(destinationMDFile, mdSource); +} -/* +function createTemplate(title,directory, content ){ + let twigBasePartial = makeTwigFile(content); + let destinationFile = path.join(directory, `API_${title}.html.twig`); + fs.writeFileSync(destinationFile, twigBasePartial); +} + +createMD("API-Reference", dir_md); +createTemplate("API-Reference", dir_template,""); +createMD("Globals", dir_md_globals); +createTemplate("Globals", dir_template,""); +createMD("Namespaces", dir_md_namespaces); +createTemplate("Namespaces", dir_template,""); +createMD("Objects", dir_md_objects); +createTemplate("Objects", dir_template,""); + +// read jsdoc output folder let files = fs.readdirSync(dir_out); files.forEach(function (file){ let curSource = path.join(dir_out, file); - if (path.extname(curSource) == ".html") { - + if (path.extname(curSource) == ".html" && path.basename(curSource, '.html') !== "index") { // clean up the html source let loadedHtml = prepareHtml(curSource); - // extract the title and the main div + // extract the title, groupename, and the main div - let splitTile = loadedHtml("title").text().split(": "); - let groupName = splitTitle[0]; - let htmlTitle = splitTile.pop(); - console.log(groupName); - // let mainDiv = loadedHtml("#main").html(); - // let mainDivNoTitle = mainDiv.replace(/\.+?\<\/h1\>/g, ""); - // let mainDivStripLinks = mainDivNoTitle.replace(/\.html/g, ""); + let splitTitle = loadedHtml("title").text().split(": "); + // console.log(splitTitle); + let groupName = splitTitle[1]; + let htmlTitle = splitTitle.pop(); + // strip out undesired regex + let mainDiv = loadedHtml("#main").html(); + let mainDivRegexed = mainDiv.replace(html_reg_static,"") + .replace(html_reg_title,"") + .replace(html_reg_htmlExt,"") // create the .md file and corresponding folder - // let mdSource = makeMdSource(htmlTitle); - // let destinationDirectory = path.join(dir_md, htmlTitle); - // if (!fs.existsSync(destinationDirectory)) { - // fs.mkdirSync(destinationDirectory); - // } - // let destinationMDFile = path.join(destinationDirectory, `API_${htmlTitle}.md`); - // fs.writeFileSync(destinationMDFile, mdSource); + if (htmlTitle !== "Global"){ + let mdSource = makeMdSource(htmlTitle); + let destinationDirectory = path.join(map_dir_md[groupName], htmlTitle); + if (!fs.existsSync(destinationDirectory)) { + fs.mkdirSync(destinationDirectory); + } + let destinationMDFile = path.join(destinationDirectory, `API_${htmlTitle}.md`); + fs.writeFileSync(destinationMDFile, mdSource); + } else { + let mdSource = makeMdSource(htmlTitle); + let destinationMDFile = path.join(map_dir_md[groupName], `API_Globals.md`); + fs.writeFileSync(destinationMDFile, mdSource); + } + // create the twig template - // let twigBasePartial = makeTwigFile(mainDivStripLinks); - // let destinationFile = path.join(dir_twig, `API_${htmlTitle}.html.twig`); - // fs.writeFileSync(destinationFile, twigBasePartial); + let twigBasePartial = makeTwigFile(mainDivRegexed); + let destinationFile = path.join(dir_template, `API_${htmlTitle}.html.twig`); + fs.writeFileSync(destinationFile, twigBasePartial); } }) -*/ +// let curSource = path.join(dir_out, "Camera.html"); -let curSource = path.join(dir_out, "Camera.html"); -// clean up the html source - -let loadedHtml = prepareHtml(curSource); - -// extract the title, groupename, and the main div - -let splitTitle = loadedHtml("title").text().split(": "); -let groupName = splitTitle[1]; -let htmlTitle = splitTitle.pop(); -console.log("groupname:", groupName); -console.log("htmlTitle:", htmlTitle); - -// strip out undesired regex -let mainDiv = loadedHtml("#main").html(); -let mainDivRegexed = mainDiv.replace(html_reg_static,"") - .replace(html_reg_title,"") - .replace(html_reg_htmlExt,"") - -// create the .md file and corresponding folder - -console.log(map_dir_md[groupName]); -let mdSource = makeMdSource(htmlTitle); -let destinationDirectory = path.join(map_dir_md[groupName], htmlTitle); -if (!fs.existsSync(destinationDirectory)) { - fs.mkdirSync(destinationDirectory); -} -let destinationMDFile = path.join(destinationDirectory, `API_${htmlTitle}.md`); -fs.writeFileSync(destinationMDFile, mdSource); - -// create the twig template - -let twigBasePartial = makeTwigFile(mainDivRegexed); -let destinationFile = path.join(dir_twig, `API_${htmlTitle}.html.twig`); -fs.writeFileSync(destinationFile, twigBasePartial); function prepareHtml(source){ let htmlBefore = fs.readFileSync(source, {encoding: 'utf8'}); @@ -181,47 +173,26 @@ function makeTwigFile(contentHtml){ let targertTwigDirectory = "D:/ROLC/Organize/O_Projects/Hifi/Docs/hifi-docs-grav/user/themes/learn2/"; let targetMDDirectory = "D:/ROLC/Organize/O_Projects/Hifi/Docs/hifi-docs-grav-content/"; -let chapterMD = -`--- -title: 'High Fidelity API Reference' -taxonomy: - category: - - docs ---- - -### - -# API Reference - -**Under Construction**: We're currently working on creating an API Reference where you can access functions and events easily. - -Check out our latest API Reference here. We're doing our best to keep this reference up-to-date with each release. If you don't find information you are looking for, contact us at [docs@highfidelity.io](mailto:docs@highfidelity.io). - -` - // Copy files to the Twig Directory -let files = fs.readdirSync(path.resolve(targertTwigDirectory)); -files.forEach(function(file){ +let templateFiles = fs.readdirSync(path.resolve(targertTwigDirectory)); +templateFiles.forEach(function(file){ let curSource = path.join(targertTwigDirectory, file); if(path.basename(file, '.html').indexOf("API") > -1){ fs.unlink(curSource); } }) -copyFolderRecursiveSync(dir_twig, targertTwigDirectory); +copyFolderRecursiveSync(dir_template, targertTwigDirectory); // Copy files to the Md Directory let baseMdRefDir = path.join(targetMDDirectory,"06.api-reference"); -if (fs.existsSync(targetMDDirectory)){ +if (fs.existsSync(baseMdRefDir)){ rimraf.sync(baseMdRefDir); } copyFolderRecursiveSync(dir_md, targetMDDirectory); -let chapterDestinationFile = path.join(baseMdRefDir, `chapter.md`); -fs.writeFileSync(chapterDestinationFile, chapterMD); - // helper functions function copyFileSync( source, target ) { @@ -247,12 +218,12 @@ function copyFolderRecursiveSync( source, target ) { var files = []; //check if folder needs to be created or integrated - console.log("target:" + target) - console.log("source:" + source) - console.log("basename source:" + path.basename( source )) + // console.log("target:" + target) + // console.log("source:" + source) + // console.log("basename source:" + path.basename( source )) var targetFolder = path.join( target, path.basename( source ) ); - console.log("targetFolder:" + targetFolder); + // console.log("targetFolder:" + targetFolder); if ( !fs.existsSync( targetFolder ) ) { fs.mkdirSync( targetFolder ); } From f35fffb97558d18f7dfea86e2e9f5f31d7042ade Mon Sep 17 00:00:00 2001 From: milad nazeri Date: Sat, 28 Apr 2018 13:55:42 -0700 Subject: [PATCH 019/300] Added toc --- tools/jsdoc/gravPrep.js | 149 ++++++++++++++++++++++++++-------------- 1 file changed, 96 insertions(+), 53 deletions(-) diff --git a/tools/jsdoc/gravPrep.js b/tools/jsdoc/gravPrep.js index 841b61417e..04aeaa9069 100644 --- a/tools/jsdoc/gravPrep.js +++ b/tools/jsdoc/gravPrep.js @@ -5,6 +5,7 @@ const pretty = require('pretty'); const cheerio = require('cheerio'); const rimraf = require('rimraf'); + const dedent = require('dedent-js'); // Required directories let dir_out = path.join(__dirname, 'out'); @@ -46,16 +47,31 @@ const html_reg_htmlExt = /\.html/g; const html_reg_objectHeader = /
[\s\S]+?<\/header>/; const html_reg_objectSpanNew = /

<\/h4>/; + const html_reg_brRemove = /
[\s\S]+?
/; + +// Mapping for GroupNames and Members + let groupNameMemberMap = { + "Objects": [], + "Namespaces": [], + "Globals": [] + } // Procedural functions - function createMD(title, directory, needsDir){ + function createMD(title, directory, needsDir, isGlobal){ let mdSource = makeMdSource(title); + + // if (isGlobal){ + // mdSource = + // destinationMDFile = path.join(directory, `Globals.md`); + // } + if (needsDir){ if (!fs.existsSync(directory)) { fs.mkdirSync(directory); } } - let destinationMDFile = path.join(directory, `API_${title}.md`); + + let destinationMDFile = path.join(directory, `API_${title}.md`); fs.writeFileSync(destinationMDFile, mdSource); } @@ -112,71 +128,97 @@ } function makeMdSource(title){ - return ( - `--- - title: '${title}' - taxonomy: - category: - - docs - visible: true - --- - ` - ) + return dedent( + ` + --- + title: ${title} + taxonomy: + category: + - docs + visible: true + --- + ` + ) } function makeTwigFile(contentHtml){ - return ( - ` - {% extends 'partials/base_noGit.html.twig' %} - {% set tags = page.taxonomy.tag %} - {% if tags %} - {% set progress = page.collection({'items':{'@taxonomy':{'category': 'docs', 'tag': tags}},'order': {'by': 'default', 'dir': 'asc'}}) %} - {% else %} - {% set progress = page.collection({'items':{'@taxonomy':{'category': 'docs'}},'order': {'by': 'default', 'dir': 'asc'}}) %} - {% endif %} - - {% block navigation %} - - {% endblock %} - - {% block content %} -
-

{{ page.title }}

- ${contentHtml} -
- {% endblock %} - ` - ) + + {% block navigation %} + + {% endblock %} + + {% block content %} +
+

{{ page.title }}

+ ${contentHtml} +
+ {% endblock %} + ` + ) } function handleNamespace(title, content){ + groupNameMemberMap["Namespaces"].push(title); let destinationDirectory = path.join(map_dir_md["Namespace"], title); createMD(title, destinationDirectory, true); createTemplate(title, content); } function handleClass(title, content){ + groupNameMemberMap["Objects"].push(title); let destinationDirectory = path.join(map_dir_md["Class"], title); createMD(title, destinationDirectory, true) let formatedHtml = content - .replace(html_reg_objectHeader,"") - .replace(html_reg_objectSpanNew,""); + .replace(html_reg_objectSpanNew,"") + .replace(html_reg_brRemove, ""); createTemplate(title, formatedHtml); - } function handleGlobal(title, content){ - createMD("API_Globals", map_dir_md["Global"], false); - createTemplate("API_Globals", content); + groupNameMemberMap["Globals"].push("Globals"); + createMD("Globals", map_dir_md["Global"], false, true); + createTemplate("Globals", content); + } + + function makeGroupTOC(group){ + let mappedGroup; + if (!Array.isArray(group)){ + mappedGroup = groupNameMemberMap[group]; + } else { + mappedGroup = group; + } + let htmlGroup = mappedGroup.map( item => { + return dedent( + ` +
+ ${item} +
+ ` + ) + }) + return htmlGroup.join("\n"); } // Remove grav directory if exists to make sure old files aren't kept @@ -212,9 +254,11 @@ let mainDiv = loadedHtml("#main").html(); // Strip out undesired regex - let mainDivRegexed = mainDiv.replace(html_reg_static,"") - .replace(html_reg_title,"") - .replace(html_reg_htmlExt,""); + let mainDivRegexed = mainDiv + .replace(html_reg_static,"") + .replace(html_reg_title,"") + .replace(html_reg_objectHeader,"") + .replace(html_reg_htmlExt,""); // Handle Unique Categories switch(groupName){ case "Namespace": @@ -233,10 +277,9 @@ }) // Create the base Templates after processing individual files - createTemplate("API-Reference",""); - createTemplate("Globals",""); - createTemplate("Namespaces",""); - createTemplate("Objects",""); + createTemplate("API-Reference", makeGroupTOC(["Namespaces", "Objects", "Globals"])); + createTemplate("Namespaces", makeGroupTOC("Namespaces")); + createTemplate("Objects", makeGroupTOC("Objects")); // Copy files to the Twig Directory let templateFiles = fs.readdirSync(path.resolve(targetTemplateDirectory)); From 1ce4c9d1405c00b5b08e58dd16a2ce7b05f25d78 Mon Sep 17 00:00:00 2001 From: milad nazeri Date: Sun, 29 Apr 2018 14:52:56 -0700 Subject: [PATCH 020/300] GravPrep working through first round of editing, starting explore file and jsdoc quality tests --- tools/jsdoc/Check.js | 140 +++++++++++++++ tools/jsdoc/gravPrep-Explore.js | 308 ++++++++++++++++++++++++++++++++ tools/jsdoc/gravPrep.js | 33 ++-- 3 files changed, 470 insertions(+), 11 deletions(-) create mode 100644 tools/jsdoc/Check.js create mode 100644 tools/jsdoc/gravPrep-Explore.js diff --git a/tools/jsdoc/Check.js b/tools/jsdoc/Check.js new file mode 100644 index 0000000000..b7e0fb1298 --- /dev/null +++ b/tools/jsdoc/Check.js @@ -0,0 +1,140 @@ +var fs = require('fs'); +var path = require('path'); + +function endsWith(path, exts) { + var result = false; + exts.forEach(function(ext) { + if (path.endsWith(ext)) { + result = true; + } + }); + return result; +} + +function WarningObject(file, type, issues){ + this.file = file; + this.type = type; + this.issues = issues; +} + +var warnings = []; + +function parse() { + var rootFolder = __dirname; + console.log("Scanning hifi source for jsdoc comments..."); + + // directories to scan for jsdoc comments + var dirList = [ + '../../interface/src', + '../../interface/src/assets', + '../../interface/src/audio', + '../../interface/src/avatar', + '../../interface/src/commerce', + '../../interface/src/devices', + '../../interface/src/java', + '../../interface/src/networking', + '../../interface/src/ui/', + '../../interface/src/scripting', + '../../interface/src/ui/overlays', + '../../interface/src/raypick', + '../../libraries/animation/src', + '../../libraries/audio-client/src', + '../../libraries/audio/src', + '../../libraries/avatars/src', + '../../libraries/avatars-renderer/src/avatars-renderer', + '../../libraries/controllers/src/controllers/', + '../../libraries/controllers/src/controllers/impl/', + '../../libraries/display-plugins/src/display-plugins/', + '../../libraries/entities/src', + '../../libraries/graphics-scripting/src/graphics-scripting/', + '../../libraries/input-plugins/src/input-plugins', + '../../libraries/model-networking/src/model-networking/', + '../../libraries/networking/src', + '../../libraries/octree/src', + '../../libraries/physics/src', + '../../libraries/pointers/src', + '../../libraries/script-engine/src', + '../../libraries/shared/src', + '../../libraries/shared/src/shared', + '../../libraries/trackers/src/trackers', + '../../libraries/ui/src/ui', + '../../plugins/oculus/src', + '../../plugins/openvr/src' + ]; + + // only files with this extension will be searched for jsdoc comments. + var exts = ['.h', '.cpp']; + + dirList.forEach(function (dir) { + var joinedDir = path.join(rootFolder, dir); + var files = fs.readdirSync(joinedDir); + files.forEach(function (file) { + var pathDir = path.join(joinedDir, file); + if (fs.lstatSync(pathDir).isFile() && endsWith(pathDir, exts)) { + // load entire file into a string + var data = fs.readFileSync(pathDir, "utf8"); + var fileName = path.basename(file); + var badJSDocWarnings = checkForBadJSDoc(data, fileName); + if (badJSDocWarnings.length > 0){ + warnings.push(badJSDocWarnings); + } + var badWordsList = checkForBadwordlist(data, fileName); + if (badWordsList){ + warnings.push(badWordsList); + } + + } + }); + }); +} + +function checkForBadJSDoc(dataToSearch, file){ + var warningList = []; + var reg = /\/\*\*js.*/g; + var matches = dataToSearch.match(reg); + if (matches) { + // add to source, but strip off c-comment asterisks + var filtered = matches.filter( item => { + return item.trim() !== '/**jsdoc'; + }); + if (filtered.length > 0){ + warningList.push(new WarningObject(file, "badJSDOC", filtered)); + } + } + return warningList; +} + +var badWordList = ["@params", "@return", "@bool"]; + +function checkForBadwordlist(dataToSearch, file){ + var warningList = []; + var reg = /(\/\*\*jsdoc(.|[\r\n])*?\*\/)/g; + var matches = dataToSearch.match(reg); + if (matches) { + var filtered = matches.forEach( item => { + var split = item.split(" "); + var filterList = []; + item.split(" ").forEach( item => { + badWordList.forEach(searchTerm => { + if (item === searchTerm) { + filterList.push(searchTerm); + } + }) + }) + if (filterList.length > 0) { + warningList.push(filterList); + } + }); + } + let flatten = warningList.reduce( (prev, cur) => { + return [...prev, ...cur]; + },[]) + let unique = [...new Set(flatten)]; + if (warningList.length > 0) { + return new WarningObject(file, "badWordList", unique); + } + +} + +parse(); +fs.writeFileSync(path.join(__dirname, "warningLog"), warnings.map( item => JSON.stringify(item)).join("\n")); \ No newline at end of file diff --git a/tools/jsdoc/gravPrep-Explore.js b/tools/jsdoc/gravPrep-Explore.js new file mode 100644 index 0000000000..4f31928923 --- /dev/null +++ b/tools/jsdoc/gravPrep-Explore.js @@ -0,0 +1,308 @@ +// Dependencies + const htmlclean = require('htmlclean'); + const fs = require('fs'); + const path = require('path'); + const pretty = require('pretty'); + const cheerio = require('cheerio'); + const rimraf = require('rimraf'); + const dedent = require('dedent-js'); + +// Required directories + let dir_out = path.join(__dirname, 'out'); + + let dir_grav = path.join(dir_out, 'grav'); + let dir_css = path.join(dir_grav, 'css'); + let dir_js = path.join(dir_grav, 'js'); + let dir_template = path.join(dir_grav, 'templates'); + + let dir_md = path.join(dir_grav, '06.api-reference'); + let dir_md_objects = path.join(dir_md, '02.Objects'); + let dir_md_namespaces = path.join(dir_md, '01.Namespaces'); + let dir_md_globals = path.join(dir_md, '03.Globals'); + +// Target Copy Directories + let targetTemplateDirectory = "D:/ROLC/Organize/O_Projects/Hifi/Docs/hifi-docs-grav/user/themes/learn2/"; + let targetMDDirectory = "D:/ROLC/Organize/O_Projects/Hifi/Docs/hifi-docs-grav-content/"; + +// Array to itterate over and create if doesn't exist + let dirArray = [dir_grav, dir_css, dir_js, dir_template, dir_md, dir_md_objects, dir_md_namespaces, dir_md_globals]; + +// Maps for directory names + let map_dir_md = { + "API-Reference": dir_md, + "Globals": dir_md_globals, + "Objects": dir_md_objects, + "Namespaces": dir_md_namespaces, + "Class": dir_md_objects, + "Namespace": dir_md_namespaces, + "Global": dir_md_globals + } + +// Base Grouping Directories for MD files + let baseMDDirectories = ["API-Reference", "Globals", "Namespaces", "Objects"] + +// Html variables to be handle regex replacements + const html_reg_static = /\(static\)<\/span>/g + const html_reg_title = /\.+?\<\/h1\>/g; + const html_reg_htmlExt = /\.html/g; + const html_reg_objectHeader = /
[\s\S]+?<\/header>/; + const html_reg_objectSpanNew = /

<\/h4>/; + const html_reg_brRemove = /
[\s\S]+?
/; + +// Mapping for GroupNames and Members + let groupNameMemberMap = { + "Objects": [], + "Namespaces": [], + "Globals": [] + } + +// Procedural functions + function createMD(title, directory, needsDir, isGlobal){ + let mdSource = makeMdSource(title); + + if (needsDir){ + if (!fs.existsSync(directory)) { + fs.mkdirSync(directory); + } + } + + let destinationMDFile = path.join(directory, `API_${title}.md`); + fs.writeFileSync(destinationMDFile, mdSource); + } + + function createTemplate(title,content){ + let twigBasePartial = makeTwigFile(content); + let destinationFile = path.join(dir_template, `API_${title}.html.twig`); + fs.writeFileSync(destinationFile, twigBasePartial); + } + + function copyFileSync( source, target ) { + let targetFile = target; + + // If target is a directory a new file with the same name will be created + if ( fs.existsSync( target ) ) { + // console.log("target exists"); + if ( fs.lstatSync( target ).isDirectory() ) { + // console.log("target is a directory"); + + targetFile = path.join( target, path.basename( source ) ); + } + } + + fs.writeFileSync(targetFile, fs.readFileSync(source)); + } + + function copyFolderRecursiveSync( source, target ) { + var files = []; + + // Check if folder needs to be created or integrated + var targetFolder = path.join( target, path.basename( source ) ); + if ( !fs.existsSync( targetFolder ) ) { + fs.mkdirSync( targetFolder ); + } + + // Copy + if ( fs.lstatSync( source ).isDirectory() ) { + files = fs.readdirSync( source ); + files.forEach( function ( file ) { + var curSource = path.join( source, file ); + if ( fs.lstatSync( curSource ).isDirectory() ) { + copyFolderRecursiveSync( curSource, targetFolder ); + } else { + copyFileSync( curSource, targetFolder ); + } + } ); + } + } + + function prepareHtml(source){ + let htmlBefore = fs.readFileSync(source, {encoding: 'utf8'}); + let htmlAfter = htmlclean(htmlBefore); + let htmlAfterPretty = pretty(htmlAfter); + return cheerio.load(htmlAfterPretty); + } + + function makeMdSource(title){ + return dedent( + ` + --- + title: ${title} + taxonomy: + category: + - docs + visible: true + --- + ` + ) + } + + function makeTwigFile(contentHtml){ + return dedent( + ` + {% extends 'partials/base_noGit.html.twig' %} + {% set tags = page.taxonomy.tag %} + {% if tags %} + {% set progress = page.collection({'items':{'@taxonomy':{'category': 'docs', 'tag': tags}},'order': {'by': 'default', 'dir': 'asc'}}) %} + {% else %} + {% set progress = page.collection({'items':{'@taxonomy':{'category': 'docs'}},'order': {'by': 'default', 'dir': 'asc'}}) %} + {% endif %} + + {% block navigation %} + + {% endblock %} + + {% block content %} +
+

{{ page.title }}

+ ${contentHtml} +
+ {% endblock %} + ` + ) + } + + function handleNamespace(title, content){ + groupNameMemberMap["Namespaces"].push(title); + let destinationDirectory = path.join(map_dir_md["Namespace"], title); + + createMD(title, destinationDirectory, true); + createTemplate(title, content); + } + + function handleClass(title, content){ + groupNameMemberMap["Objects"].push(title); + let destinationDirectory = path.join(map_dir_md["Class"], title); + createMD(title, destinationDirectory, true) + + let formatedHtml = content + .replace(html_reg_objectSpanNew,"") + .replace(html_reg_brRemove, ""); + createTemplate(title, formatedHtml); + } + + function handleGlobal(title, content){ + groupNameMemberMap["Globals"].push("Globals"); + createMD("Globals", map_dir_md["Global"], false, true); + createTemplate("Globals", content); + } + + function makeGroupTOC(group){ + let mappedGroup; + if (!Array.isArray(group)){ + mappedGroup = groupNameMemberMap[group]; + } else { + mappedGroup = group; + } + let htmlGroup = mappedGroup.map( item => { + return dedent( + ` +
+ ${item} +
+ ` + ) + }) + return htmlGroup.join("\n"); + } + +// Remove grav directory if exists to make sure old files aren't kept + if (fs.existsSync(dir_grav)){ + console.log("dir_grav exists"); + rimraf.sync(dir_grav); + } + +// Create Grav directories in JSDOC output + dirArray.forEach(function(dir){ + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir); + } + }) + +// Create baseMD files + baseMDDirectories.forEach( md => { + createMD(md, map_dir_md[md]); + }) + +// Read jsdoc output folder and process html files + let curSource = path.join(dir_out, "Selection.html"); + // Clean up the html source + let loadedHtml = prepareHtml(curSource); + + // Extract the title, group name, and the main div + let splitTitle = loadedHtml("title").text().split(": "); + let groupName = splitTitle[1]; + let htmlTitle = splitTitle.pop(); + let mainDiv = loadedHtml("#main") + + // Exploring Extractions + let array = mainDiv.find('h4').toArray(); + + // console.log(array[2]) + var reducedArray = array.reduce((prev, cur) => { + try { + // console.log(cur.children[1]); + prev.push(cur.children[1].data); + } catch(e) { + + } + return prev; + }, []) + console.log("name", reducedArray.length); + + // Strip out undesired regex + let mainDivRegexed = mainDiv.html() + .replace(html_reg_static,"") + .replace(html_reg_title,"") + .replace(html_reg_objectHeader,"") + .replace(html_reg_htmlExt,""); + // Handle Unique Categories + switch(groupName){ + case "Namespace": + handleNamespace(htmlTitle, mainDivRegexed); + break; + case "Class": + handleClass(htmlTitle, mainDivRegexed); + break; + case "Global": + handleGlobal(htmlTitle, mainDivRegexed); + break; + default: + console.log(`Case not handled for ${groupName}`); + } + +// Create the base Templates after processing individual files + createTemplate("API-Reference", makeGroupTOC(["Namespaces", "Objects", "Globals"])); + createTemplate("Namespaces", makeGroupTOC("Namespaces")); + createTemplate("Objects", makeGroupTOC("Objects")); + +// Copy files to the Twig Directory + let templateFiles = fs.readdirSync(path.resolve(targetTemplateDirectory)); + // Remove Existing API files + templateFiles.forEach(function(file){ + let curSource = path.join(targetTemplateDirectory, file); + + if(path.basename(file, '.html').indexOf("API") > -1){ + fs.unlink(curSource); + } + }) + copyFolderRecursiveSync(dir_template, targetTemplateDirectory); + +// Copy files to the Md Directory + let baseMdRefDir = path.join(targetMDDirectory,"06.api-reference"); + // Remove existing MD directory + if (fs.existsSync(baseMdRefDir)){ + rimraf.sync(baseMdRefDir); + } + copyFolderRecursiveSync(dir_md, targetMDDirectory); diff --git a/tools/jsdoc/gravPrep.js b/tools/jsdoc/gravPrep.js index 04aeaa9069..d02116a02f 100644 --- a/tools/jsdoc/gravPrep.js +++ b/tools/jsdoc/gravPrep.js @@ -48,6 +48,16 @@ const html_reg_objectHeader = /
[\s\S]+?<\/header>/; const html_reg_objectSpanNew = /

<\/h4>/; const html_reg_brRemove = /
[\s\S]+?
/; + const html_reg_methodEdit = /

Methods<\/h3>/; + const html_reg_methodEdit_replace = '

Methods
'; + const html_reg_classesEdit = /

Classes<\/h3>/; + const html_reg_classesEdit_replace = '

Classes
'; + const html_reg_typeEdit = /(
Returns[\s\S]*?Type)(<\/dt[\s\S]*?type">)(.*?)(<\/span><\/dd>[\s\S]*?<\/dl>)/g; + const html_reg_typeEdit_replace = '$1: $3' + const html_reg_methodSize = /()(<\/h4>)/g; + const html_reg_methodSize_replace = ''; + const html_reg_returnSize = /
Returns:<\/h5>/g; + const html_reg_returnSize_replace = '
Returns:<\/h6>'; // Mapping for GroupNames and Members let groupNameMemberMap = { @@ -60,11 +70,6 @@ function createMD(title, directory, needsDir, isGlobal){ let mdSource = makeMdSource(title); - // if (isGlobal){ - // mdSource = - // destinationMDFile = path.join(directory, `Globals.md`); - // } - if (needsDir){ if (!fs.existsSync(directory)) { fs.mkdirSync(directory); @@ -188,7 +193,6 @@ let formatedHtml = content .replace(html_reg_objectSpanNew,"") - .replace(html_reg_brRemove, ""); createTemplate(title, formatedHtml); } @@ -251,14 +255,21 @@ let splitTitle = loadedHtml("title").text().split(": "); let groupName = splitTitle[1]; let htmlTitle = splitTitle.pop(); - let mainDiv = loadedHtml("#main").html(); - - // Strip out undesired regex - let mainDivRegexed = mainDiv + let mainDiv = loadedHtml("#main") + + // regex edits + let mainDivRegexed = mainDiv.html() .replace(html_reg_static,"") .replace(html_reg_title,"") .replace(html_reg_objectHeader,"") - .replace(html_reg_htmlExt,""); + .replace(html_reg_htmlExt,"") + .replace(html_reg_brRemove, "") + .replace(html_reg_methodEdit, html_reg_methodEdit_replace) + .replace(html_reg_classesEdit, html_reg_classesEdit_replace) + .replace(html_reg_typeEdit, html_reg_typeEdit_replace) + .replace(html_reg_returnSize, html_reg_returnSize_replace) + .replace(html_reg_methodSize, html_reg_methodSize_replace); + // Handle Unique Categories switch(groupName){ case "Namespace": From f520d13242ef09931193fab4af3f5be135e326c6 Mon Sep 17 00:00:00 2001 From: milad nazeri Date: Mon, 30 Apr 2018 16:32:15 -0700 Subject: [PATCH 021/300] pre TOC add --- tools/jsdoc/.gitignore | 4 +- tools/jsdoc/grav.bat | 1 + tools/jsdoc/gravPrep-Explore.js | 118 ++++++++++++++++++--- tools/jsdoc/gravPrep.js | 176 ++++++++++++++++++++++++++------ 4 files changed, 251 insertions(+), 48 deletions(-) create mode 100644 tools/jsdoc/grav.bat diff --git a/tools/jsdoc/.gitignore b/tools/jsdoc/.gitignore index c585e19389..bfca56353a 100644 --- a/tools/jsdoc/.gitignore +++ b/tools/jsdoc/.gitignore @@ -1 +1,3 @@ -out \ No newline at end of file +out +grav.bat +gravPrep-Explore \ No newline at end of file diff --git a/tools/jsdoc/grav.bat b/tools/jsdoc/grav.bat new file mode 100644 index 0000000000..08c75edb8e --- /dev/null +++ b/tools/jsdoc/grav.bat @@ -0,0 +1 @@ +cmd /k node gravPrep true "D:/ROLC/Organize/O_Projects/Hifi/Docs/hifi-docs-grav/user/themes/learn2/" "D:/ROLC/Organize/O_Projects/Hifi/Docs/hifi-docs-grav-content/" \ No newline at end of file diff --git a/tools/jsdoc/gravPrep-Explore.js b/tools/jsdoc/gravPrep-Explore.js index 4f31928923..c8fea0a4df 100644 --- a/tools/jsdoc/gravPrep-Explore.js +++ b/tools/jsdoc/gravPrep-Explore.js @@ -48,6 +48,20 @@ const html_reg_objectHeader = /
[\s\S]+?<\/header>/; const html_reg_objectSpanNew = /

<\/h4>/; const html_reg_brRemove = /
[\s\S]+?
/; + const html_reg_subsectionEdit = /()([\s\S]*?)(<\/h.>)/g; + const html_reg_subsectionEdit_replace = '

$2

'; + const html_reg_typeEdit = /(
Returns[\s\S]*?Type)(<\/dt[\s\S]*?type">)(.*?)(<\/span><\/dd>[\s\S]*?<\/dl>)/g; + const html_reg_typeEdit_replace = '$1: $3' + const html_reg_methodSize = /()(<\/h4>)/g; + const html_reg_methodSize_replace = ''; + const html_reg_returnSize = /
Returns:<\/h5>/g; + const html_reg_returnSize_replace = '
Returns:<\/h6>'; + const html_reg_findByName = '
Methods
` + const html_reg_findByArticleClose = `` + const html_reg_signalTitle = `

Signals

`; + + // Mapping for GroupNames and Members let groupNameMemberMap = { @@ -71,7 +85,9 @@ } function createTemplate(title,content){ + // console.log("content:", content) let twigBasePartial = makeTwigFile(content); + // console.log("TWIG BASE:", twigBasePartial) let destinationFile = path.join(dir_template, `API_${title}.html.twig`); fs.writeFileSync(destinationFile, twigBasePartial); } @@ -170,6 +186,7 @@ } function handleNamespace(title, content){ + // console.log("Content from namespcae:", content) groupNameMemberMap["Namespaces"].push(title); let destinationDirectory = path.join(map_dir_md["Namespace"], title); @@ -236,7 +253,7 @@ }) // Read jsdoc output folder and process html files - let curSource = path.join(dir_out, "Selection.html"); + let curSource = path.join(dir_out, "AvatarInputs.html"); // Clean up the html source let loadedHtml = prepareHtml(curSource); @@ -244,29 +261,102 @@ let splitTitle = loadedHtml("title").text().split(": "); let groupName = splitTitle[1]; let htmlTitle = splitTitle.pop(); + // console.log("first loaded:", loadedHtml("#main").html()) let mainDiv = loadedHtml("#main") - + + // let signatures = mainDiv.find(".name") // Exploring Extractions - let array = mainDiv.find('h4').toArray(); + // let array = mainDiv.find('h4').toArray(); // console.log(array[2]) - var reducedArray = array.reduce((prev, cur) => { - try { - // console.log(cur.children[1]); - prev.push(cur.children[1].data); - } catch(e) { + // var reducedArray = array.reduce((prev, cur) => { + // try { + // // console.log(cur.children[1]); + // prev.push(cur.children[1].data); + // } catch(e) { - } - return prev; - }, []) - console.log("name", reducedArray.length); + // } + // return prev; + // }, []) + // console.log("name", reducedArray.length); - // Strip out undesired regex + // regex edits let mainDivRegexed = mainDiv.html() .replace(html_reg_static,"") .replace(html_reg_title,"") .replace(html_reg_objectHeader,"") - .replace(html_reg_htmlExt,""); + .replace(html_reg_htmlExt,"") + .replace(html_reg_brRemove, "") + .replace(html_reg_subsectionEdit, html_reg_subsectionEdit_replace) + .replace(html_reg_typeEdit, html_reg_typeEdit_replace) + .replace(html_reg_returnSize, html_reg_returnSize_replace) + .replace(html_reg_methodSize, html_reg_methodSize_replace); + + function splitBy(content, searchTerm){ + let foundArray = []; + let curIndex = -1; + let nextIndex = 0; + let findbyNameLength = searchTerm.length; + let curfoundArrayIndex = 0; + let curArticleCloseIndex = -1; + do { + curArticleCloseIndex = content.indexOf(""); + curIndex = content.indexOf(searchTerm); + nextIndex = content.indexOf(searchTerm,curIndex+findbyNameLength); + if (nextIndex === -1){ + nextIndex = curArticleCloseIndex + } + foundArray.push(content.slice(curIndex, nextIndex)) + content = content.replace(foundArray[curfoundArrayIndex], ""); + curfoundArrayIndex++; + } while (curIndex > -1) + return [content, foundArray]; + } + + function extractSignals(methodArray){ + let newMethodArray = []; + let signalArray = []; + methodArray.forEach( method => { + method.indexOf("Signal") > -1 + ? signalArray.push(method) + : newMethodArray.push(method); + }) + return [newMethodArray, signalArray] + } + + function append(content, areaToAppendTo, contentToAppend, appendBefore){ + var contentArray = content.split("\n"); + // console.log("contentArray:", contentArray) + // console.log("areaToAppendTo:", areaToAppendTo) + var foundIndex = findArrayTrim(contentArray, areaToAppendTo) + console.log(foundIndex) + foundIndex = appendBefore ? foundIndex : foundIndex +1 + + contentArray.splice(foundIndex,0,contentToAppend) + return contentArray.join("\n") + } + + function findArrayTrim(array, searchTerm){ + var index = -1; + for (var i = 0; i < array.length; i++){ + index = array[i].trim().indexOf(searchTerm.trim()); + if (index > -1){ + return i + } + } + return index; + } + + var nameArray = splitBy(mainDivRegexed, html_reg_findByName); + let currentContent = nameArray[0]; + let separatedMethods = extractSignals(nameArray[1]); + let methodsToAppend = separatedMethods[0].join("\n"); + separatedMethods[1].unshift(html_reg_signalTitle) + let signalsToAppend = separatedMethods[1].join("\n"); + currentContent = append(currentContent, html_reg_findByMethod, methodsToAppend); + mainDivRegexed = append(currentContent, html_reg_findByArticleClose, signalsToAppend,true); + + // console.log(mainDivRegexed); // Handle Unique Categories switch(groupName){ case "Namespace": diff --git a/tools/jsdoc/gravPrep.js b/tools/jsdoc/gravPrep.js index d02116a02f..4fa2a7b310 100644 --- a/tools/jsdoc/gravPrep.js +++ b/tools/jsdoc/gravPrep.js @@ -7,6 +7,16 @@ const rimraf = require('rimraf'); const dedent = require('dedent-js'); +// Arg Vars + const copyLocal = process.argv[2]; + console.log("copyLocal:", copyLocal); + let targetTemplateDirectory = '' + let targetMDDirectory = '' + if (copyLocal){ + targetTemplateDirectory = process.argv[3]; + targetMDDirectory = process.argv[4];; + } + // Required directories let dir_out = path.join(__dirname, 'out'); @@ -19,11 +29,7 @@ let dir_md_objects = path.join(dir_md, '02.Objects'); let dir_md_namespaces = path.join(dir_md, '01.Namespaces'); let dir_md_globals = path.join(dir_md, '03.Globals'); - -// Target Copy Directories - let targetTemplateDirectory = "D:/ROLC/Organize/O_Projects/Hifi/Docs/hifi-docs-grav/user/themes/learn2/"; - let targetMDDirectory = "D:/ROLC/Organize/O_Projects/Hifi/Docs/hifi-docs-grav-content/"; - + // Array to itterate over and create if doesn't exist let dirArray = [dir_grav, dir_css, dir_js, dir_template, dir_md, dir_md_objects, dir_md_namespaces, dir_md_globals]; @@ -48,16 +54,21 @@ const html_reg_objectHeader = /
[\s\S]+?<\/header>/; const html_reg_objectSpanNew = /

<\/h4>/; const html_reg_brRemove = /
[\s\S]+?
/; - const html_reg_methodEdit = /

Methods<\/h3>/; - const html_reg_methodEdit_replace = '

Methods
'; - const html_reg_classesEdit = /

Classes<\/h3>/; - const html_reg_classesEdit_replace = '

Classes
'; + const html_reg_subsectionEdit = /()([\s\S]*?)(<\/h.>)/g; + const html_reg_subsectionEdit_replace = '

$2

'; + const html_reg_propertiesHeaderEdit = '

Properties:

'; + const html_reg_propertiesHeaderEdit_Replace = '

Properties

'; const html_reg_typeEdit = /(
Returns[\s\S]*?Type)(<\/dt[\s\S]*?type">)(.*?)(<\/span><\/dd>[\s\S]*?<\/dl>)/g; const html_reg_typeEdit_replace = '$1: $3' const html_reg_methodSize = /()(<\/h4>)/g; const html_reg_methodSize_replace = ''; const html_reg_returnSize = /
Returns:<\/h5>/g; const html_reg_returnSize_replace = '
Returns:<\/h6>'; + const html_reg_findByName = '
Methods
` + const html_reg_findByArticleClose = `` + const html_reg_signalTitle = `

Signals

`; + // Mapping for GroupNames and Members let groupNameMemberMap = { @@ -67,6 +78,7 @@ } // Procedural functions + // Create the actual MD file function createMD(title, directory, needsDir, isGlobal){ let mdSource = makeMdSource(title); @@ -80,12 +92,14 @@ fs.writeFileSync(destinationMDFile, mdSource); } + // Create the actual Template file function createTemplate(title,content){ let twigBasePartial = makeTwigFile(content); let destinationFile = path.join(dir_template, `API_${title}.html.twig`); fs.writeFileSync(destinationFile, twigBasePartial); } + // Copy file from source to target - used for recurssive call function copyFileSync( source, target ) { let targetFile = target; @@ -102,6 +116,7 @@ fs.writeFileSync(targetFile, fs.readFileSync(source)); } + // Copy file from source to target function copyFolderRecursiveSync( source, target ) { var files = []; @@ -125,6 +140,7 @@ } } + // Clean up the Html function prepareHtml(source){ let htmlBefore = fs.readFileSync(source, {encoding: 'utf8'}); let htmlAfter = htmlclean(htmlBefore); @@ -132,6 +148,7 @@ return cheerio.load(htmlAfterPretty); } + // Base file for MD's function makeMdSource(title){ return dedent( ` @@ -146,6 +163,7 @@ ) } + // Base file for Templates function makeTwigFile(contentHtml){ return dedent( ` @@ -179,6 +197,7 @@ ) } + // Handle NameSpace Group function handleNamespace(title, content){ groupNameMemberMap["Namespaces"].push(title); let destinationDirectory = path.join(map_dir_md["Namespace"], title); @@ -186,6 +205,7 @@ createTemplate(title, content); } + // Handle Class Group function handleClass(title, content){ groupNameMemberMap["Objects"].push(title); let destinationDirectory = path.join(map_dir_md["Class"], title); @@ -196,12 +216,14 @@ createTemplate(title, formatedHtml); } + // Handle Global Group function handleGlobal(title, content){ groupNameMemberMap["Globals"].push("Globals"); createMD("Globals", map_dir_md["Global"], false, true); createTemplate("Globals", content); } + // Handle Group TOCs function makeGroupTOC(group){ let mappedGroup; if (!Array.isArray(group)){ @@ -225,6 +247,69 @@ return htmlGroup.join("\n"); } + // Helper for splitting up html + // Takes: Content to split, SearchTerm to Split by, and term to End Splitting By + // Returns: [newContent after Split, Array of extracted ] + function splitBy(content, searchTerm, endSplitTerm){ + let foundArray = []; + let curIndex = -1; + let nextIndex = 0; + let findbyNameLength = searchTerm.length; + let curfoundArrayIndex = 0; + let curEndSplitTermIndex = -1; + do { + curEndSplitTermIndex = content.indexOf(endSplitTerm); + curIndex = content.indexOf(searchTerm); + // Search after initial index + length of searchterm + nextIndex = content.indexOf(searchTerm,curIndex+findbyNameLength); + if (nextIndex === -1){ + nextIndex = curEndSplitTermIndex + } + foundArray.push(content.slice(curIndex, nextIndex)) + // remove that content + content = content.replace(foundArray[curfoundArrayIndex], ""); + curfoundArrayIndex++; + } while (curIndex > -1) + return [content, foundArray]; + } + + // Split the signals and methods [Might make this more generic] + function splitMethodsAndSignals(methodArray){ + let newMethodArray = []; + let signalArray = []; + methodArray.forEach( method => { + method.indexOf("Signal") > -1 + ? signalArray.push(method) + : newMethodArray.push(method);2 + }) + return [newMethodArray, signalArray] + } + + // Helper to append + // Takes content, the search term to appendTo, the content to append, + // and bool if the append is before the found area + function append(content, searchTermToAppendto, contentToAppend, appendBefore){ + let contentArray = content.split("\n"); + let foundIndex = findArrayTrim(contentArray, searchTermToAppendto) + foundIndex = appendBefore ? foundIndex : foundIndex +1 + + contentArray.splice(foundIndex,0,contentToAppend) + return contentArray.join("\n") + } + + // Helper function for append + function findArrayTrim(array, searchTerm){ + var index = -1; + for (var i = 0; i < array.length; i++){ + index = array[i].trim().indexOf(searchTerm.trim()); + if (index > -1){ + return i + } + } + return index; + } + + // Remove grav directory if exists to make sure old files aren't kept if (fs.existsSync(dir_grav)){ console.log("dir_grav exists"); @@ -257,29 +342,51 @@ let htmlTitle = splitTitle.pop(); let mainDiv = loadedHtml("#main") - // regex edits + // Basic Regex HTML edits let mainDivRegexed = mainDiv.html() .replace(html_reg_static,"") .replace(html_reg_title,"") .replace(html_reg_objectHeader,"") .replace(html_reg_htmlExt,"") .replace(html_reg_brRemove, "") - .replace(html_reg_methodEdit, html_reg_methodEdit_replace) - .replace(html_reg_classesEdit, html_reg_classesEdit_replace) + .replace(html_reg_subsectionEdit, html_reg_subsectionEdit_replace) + .replace(html_reg_propertiesHeaderEdit, html_reg_propertiesHeaderEdit_Replace) .replace(html_reg_typeEdit, html_reg_typeEdit_replace) .replace(html_reg_returnSize, html_reg_returnSize_replace) .replace(html_reg_methodSize, html_reg_methodSize_replace); - + + // Further HTML Manipulation + // Split HTML by Each named entry + let contentSplitArray = splitBy(mainDivRegexed, html_reg_findByName); + // Create a reference to the current content after split and the split functions + let currentContent = contentSplitArray[0]; + // Create references to the split methods and signals + let splitSignalsAndMethods = splitMethodsAndSignals(contentSplitArray[1]); + let splitMethods = splitSignalsAndMethods[0]; + let splitSignals = splitSignalsAndMethods[1]; + // Append Signals and Methods to the current Content + currentContent = append(currentContent, html_reg_findByMethod, splitMethods.join('\n')); + console.log(path.basename(curSource, '.html'), splitSignals.length); + if (splitSignals.length > 0) { + // Add the Signals header to the Signals HTML + splitSignals.unshift(html_reg_signalTitle) + currentContent = append(currentContent, html_reg_findByArticleClose, splitSignals.join('\n',true)); + } + + // Final Pretty Content + currentContent = htmlclean(currentContent); + currentContent = pretty(currentContent); + // Handle Unique Categories switch(groupName){ case "Namespace": - handleNamespace(htmlTitle, mainDivRegexed); + handleNamespace(htmlTitle, currentContent); break; case "Class": - handleClass(htmlTitle, mainDivRegexed); + handleClass(htmlTitle, currentContent); break; case "Global": - handleGlobal(htmlTitle, mainDivRegexed); + handleGlobal(htmlTitle, currentContent); break; default: console.log(`Case not handled for ${groupName}`); @@ -292,22 +399,25 @@ createTemplate("Namespaces", makeGroupTOC("Namespaces")); createTemplate("Objects", makeGroupTOC("Objects")); -// Copy files to the Twig Directory - let templateFiles = fs.readdirSync(path.resolve(targetTemplateDirectory)); - // Remove Existing API files - templateFiles.forEach(function(file){ - let curSource = path.join(targetTemplateDirectory, file); - - if(path.basename(file, '.html').indexOf("API") > -1){ - fs.unlink(curSource); +// Copy the files to the target Directories if Local + if (copyLocal){ + // Copy files to the Twig Directory + let templateFiles = fs.readdirSync(path.resolve(targetTemplateDirectory)); + // Remove Existing API files + templateFiles.forEach(function(file){ + let curSource = path.join(targetTemplateDirectory, file); + + if(path.basename(file, '.html').indexOf("API") > -1){ + fs.unlink(curSource); + } + }) + copyFolderRecursiveSync(dir_template, targetTemplateDirectory); + + // Copy files to the Md Directory + let baseMdRefDir = path.join(targetMDDirectory,"06.api-reference"); + // Remove existing MD directory + if (fs.existsSync(baseMdRefDir)){ + rimraf.sync(baseMdRefDir); } - }) - copyFolderRecursiveSync(dir_template, targetTemplateDirectory); - -// Copy files to the Md Directory - let baseMdRefDir = path.join(targetMDDirectory,"06.api-reference"); - // Remove existing MD directory - if (fs.existsSync(baseMdRefDir)){ - rimraf.sync(baseMdRefDir); + copyFolderRecursiveSync(dir_md, targetMDDirectory); } - copyFolderRecursiveSync(dir_md, targetMDDirectory); From ae935dcda52b40244d1973a0497c2734c5c5de33 Mon Sep 17 00:00:00 2001 From: milad nazeri Date: Tue, 1 May 2018 16:23:50 -0700 Subject: [PATCH 022/300] saved before laptop acts up more --- tools/jsdoc/.gitignore | 1 + tools/jsdoc/ControllerExamine | 4792 ------------------------------- tools/jsdoc/gravPrep-Explore.js | 300 +- tools/jsdoc/gravPrep.js | 184 +- 4 files changed, 323 insertions(+), 4954 deletions(-) delete mode 100644 tools/jsdoc/ControllerExamine diff --git a/tools/jsdoc/.gitignore b/tools/jsdoc/.gitignore index 62238942c4..3f338a63fb 100644 --- a/tools/jsdoc/.gitignore +++ b/tools/jsdoc/.gitignore @@ -1,4 +1,5 @@ out grav.bat +gravE.bat gravPrep-Explore Examine \ No newline at end of file diff --git a/tools/jsdoc/ControllerExamine b/tools/jsdoc/ControllerExamine deleted file mode 100644 index 15f9f77f3f..0000000000 --- a/tools/jsdoc/ControllerExamine +++ /dev/null @@ -1,4792 +0,0 @@ - - -
- -
-
-
The Controller API provides facilities to interact with computer and controller hardware. -
Functions:
-

Properties

- -

Mappings

- -

Input, Hardware, and Action Reflection

- -

Input, Hardware, and Action Events

- -

Mouse, Keyboard, and Touch Events

- -

Control Capturing

- -

Action Capturing

- -

Controller and Action Values

- -

Haptics

- -

Display Information

- -

Virtual Game Pad

- -

Input Recordings

- - - - - - - - -
Available in:Interface ScriptsClient Entity Scripts
-
-

Properties

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
Actions Controller.ActionsPredefined actions on Interface and the user's avatar. These can be used as end points in a - RouteObject mapping. A synonym for Controller.Hardware.Actions. Read-only. -
Default mappings are provided from the Controller.Hardware.Keyboard and Controller.Standard to actions in - keyboardMouse.json and - standard.json, respectively.
Hardware Controller.HardwareStandard and hardware-specific controller and computer outputs, plus predefined actions on Interface and the user's avatar. The outputs can be mapped to Actions or functions in a - RouteObject mapping. Additionally, hardware-specific controller outputs can be mapped to Standard controller outputs. Read-only.
Standard Controller.StandardStandard controller outputs that can be mapped to Actions or functions in a - RouteObject mapping. Read-only. -
Each hardware device has a mapping from its outputs to Controller.Standard items, specified in a JSON file. For example, - leapmotion.json and - vive.json.
-
-
-

Methods

-
actionEvent(actionID, value) → {Signal}
-
Triggered when an action occurs.
-
Parameters:
- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
actionID numberThe ID of the action, per - findAction.
value numberThe value associated with the action.
-
-
Returns:
-
-
Type: Signal
-
Example
-

Report action events as they occur.

var actionNamesForID = {};
-var actionNames = Controller.getActionNames();
-for (var i = 0, length = actionNames.length; i < length; i++) {
-    actionNamesForID[Controller.findAction(actionNames[i])] = actionNames[i];
-}
-
-function onActionEvent(action, value) {
-    print("onActionEvent() : " + action + " ( " + actionNamesForID[action] + " ) ; " + value);
-}
-
-Controller.actionEvent.connect(onActionEvent);
-
-Script.scriptEnding.connect(function () {
-    Controller.actionEvent.disconnect(onActionEvent);
-});
-
captureActionEvents()
-
Disable translating and rotating the user's avatar in response to keyboard and controller controls.
-
-
Example
-

Disable avatar translation and rotation for a short period.

Script.setTimeout(function () {
-    Controller.captureActionEvents();
-}, 5000);
-
-Script.setTimeout(function () {
-    Controller.releaseActionEvents();
-}, 10000);
-
captureEntityClickEvents()
- -
-
Example
-

Disable entity click events for a short period.

Entities.mousePressOnEntity.connect(function (entityID, event) {
-    print("Clicked on entity: " + entityID);
-});
-
-Script.setTimeout(function () {
-    Controller.captureEntityClickEvents();
-}, 5000);
-
-Script.setTimeout(function () {
-    Controller.releaseEntityClickEvents();
-}, 10000);
-
captureJoystick(joystickID)
-
Disable default Interface actions for a joystick.
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
joystickID numberThe integer ID of the joystick.
-
-
Deprecated:
-
-
    -
  • This function no longer has any effect.
  • -
-
-
-
captureKeyEvents(event)
-
Disable default Interface actions for a particular key event.
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
event KeyEventDetails of the key event to be captured. The key property must be specified. The text property is ignored. The other properties default to false.
-
-
Example
-

Disable left and right strafing.

var STRAFE_LEFT = { "key": 16777234, isShifted: true };
-var STRAFE_RIGHT = { "key": 16777236, isShifted: true };
-
-Controller.captureKeyEvents(STRAFE_LEFT);
-Controller.captureKeyEvents(STRAFE_RIGHT);
-
-Script.scriptEnding.connect(function () {
-    Controller.releaseKeyEvents(STRAFE_LEFT);
-    Controller.releaseKeyEvents(STRAFE_RIGHT);
-});
-
captureMouseEvents()
-
Disable processing of mouse "move", "press", "double-press", and "release" events into - Controller.Hardware.Keyboard outputs.
-
-
Example
-

Disable Controller.Hardware.Keyboard mouse events for a short period.

var MAPPING_NAME = "com.highfidelity.controllers.example.newMapping";
-var mapping = Controller.newMapping(MAPPING_NAME);
-mapping.from(Controller.Hardware.Keyboard.MouseX).to(function (x) {
-    print("Mouse x = " + x);
-});
-mapping.from(Controller.Hardware.Keyboard.MouseY).to(function (y) {
-    print("Mouse y = " + y);
-});
-Controller.enableMapping(MAPPING_NAME);
-Script.scriptEnding.connect(function () {
-    Controller.disableMapping(MAPPING_NAME);
-});
-
-Script.setTimeout(function () {
-    Controller.captureMouseEvents();
-}, 5000);
-
-Script.setTimeout(function () {
-    Controller.releaseMouseEvents();
-}, 10000);
-
captureTouchEvents()
-
Disable processing of touch "begin", "update", and "end" events into - Controller.Hardware.Keyboard, - Controller.Hardware.Touchscreen, and - Controller.Hardware.TouchscreenVirtualPad outputs.
-
-
captureWheelEvents()
-
Disable processing of mouse wheel rotation events into - Controller.Hardware.Keyboard outputs.
-
-
disableMapping(mappingName)
-
Disable a controller mapping. When disabled, the routes in the mapping have no effect.
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
mappingName stringThe name of the mapping.
-
-
enableMapping(mappingName, enable)
-
Enable or disable a controller mapping. When enabled, the routes in the mapping have effect.
-
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDefaultDescription
mappingName stringThe name of the mapping.
enable boolean trueIf true then the mapping is enabled, otherwise it is disabled.
-
-
findAction(actionName) → {number}
-
Find the ID of an action from its name.
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
actionName stringThe name of the action: one of the - Controller.Actions property names.
-
-
Returns:
-
The integer ID of the action if found, otherwise 4095. Note that this value is not the same as the value of the relevant - Controller.Actions property.
-
-
Type: number
-
Example
-

Get the ID of the "TranslateY" action. Compare with the property value.

var actionID = Controller.findAction("TranslateY");
-print("Action ID = " + actionID);  // 1
-print("Property value = " + Controller.Actions.TranslateY);  // 537001728 or similar value.
-
findDevice(deviceName) → {number}
-
Find the ID of a specific controller from its device name.
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
deviceName stringThe name of the device to find.
-
-
Returns:
-
The integer ID of the device if available, otherwise 65535.
-
-
Type: number
-
Example
-

Get the ID of the Oculus Touch.

var deviceID = Controller.findDevice("OculusTouch");
-print("Device ID = " + deviceID);
-
getActionNames() → {Array.<string>}
-
Get the names of all actions available as properties of - Controller.Actions.
-
-
Returns:
-
An array of action names.
-
-
Type: Array.<string>
-
Example
-

Get the names of all actions.

var actionNames = Controller.getActionNames();
-print("Action names: " + JSON.stringify(actionNames));
-// ["TranslateX","TranslateY","TranslateZ","Roll", ...
-
getActions() → {Controller.Actions}
-
Get the - Controller.Actions property tree. Calling this function is the same as using the - Controller property, Controller.Actions.
-
-
Returns:
-
The - Controller.Actions property tree.
-
-
Type: Controller.Actions
-
getActionValue(actionID) → {number}
-
Get the current value of an action.
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
actionID numberThe integer ID of the action.
-
-
Returns:
-
The current value of the action.
-
-
Type: number
-
Example
-

Periodically report the value of the "TranslateX" action.

var actionID = Controller.findAction("TranslateX");
-
-function reportValue() {
-    print(Controller.getActionValue(actionID));
-}
-reportTimer = Script.setInterval(reportValue, 1000);
-
getAllActions() → {Array.<Action>}
-
Get a list of all available actions.
-
-
Deprecated:
-
-
    -
  • This function no longer works.
  • -
-
-
-
Returns:
-
All available actions.
-
-
Type: Array.<Action>
-
getAvailableInputs(deviceID) → {Array.<NamedPair>}
-
Get a list of all available inputs for a hardware device.
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
deviceID numberInteger ID of the hardware device.
-
-
Deprecated:
-
-
    -
  • This function no longer works.
  • -
-
-
-
Returns:
-
All available inputs for the device.
-
-
Type: Array.<NamedPair>
-
getAxisValue(source) → {number}
-
Get the value of a controller axis output. Note: Also gets the value of a controller button output.
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
source numberThe - Controller.Standard or - Controller.Hardware item.
-
-
Returns:
-
The current value of the controller item output if source is valid, otherwise 0.
-
-
Type: number
-
getAxisValue(source, deviceopt) → {number}
-
Get the value of an axis control on a particular device.
-
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeAttributesDefaultDescription
source StandardAxisChannelThe axis to get the value of.
device number <optional> -
-
0The ID of the hardware device to get the value from. The default value of 0 corresponds to Standard.
-
-
Deprecated:
-
-
    -
  • This function no longer works.
  • -
-
-
-
Returns:
-
The current value of the axis if the parameters are valid, otherwise 0.
-
-
Type: number
-
getButtonValue(source, deviceopt) → {number}
-
Get the value of a button on a particular device.
-
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeAttributesDefaultDescription
source StandardButtonChannelThe button to get the value of.
device number <optional> -
-
0The ID of the hardware device to get the value from. The default value of 0 corresponds to Standard.
-
-
Deprecated:
-
-
    -
  • This function no longer works.
  • -
-
-
-
Returns:
-
The current value of the button if the parameters are valid, otherwise 0.
-
-
Type: number
-
getDeviceName(deviceID) → {string}
-
Find the name of a particular controller from its device ID.
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
deviceID numberThe integer ID of the device.
-
-
Returns:
-
The name of the device if found, otherwise "unknown".
-
-
Type: string
-
Example
-

Get the name of the Oculus Touch controller from its ID.

var deviceID = Controller.findDevice("OculusTouch");
-print("Device ID = " + deviceID);
-
-var deviceName = Controller.getDeviceName(deviceID);
-print("Device name = " + deviceName);
-
getDeviceNames() → {Array.<string>}
-
Get the names of all currently available controller devices plus "Actions", "Application", and "Standard".
-
-
Returns:
-
An array of device names.
-
-
Type: Array.<string>
-
Example
-

Get the names of all currently available controller devices.

var deviceNames = Controller.getDeviceNames();
-print(JSON.stringify(deviceNames));
-// ["Standard","Keyboard","LeapMotion","OculusTouch","Application","Actions"] or similar.
-
getHardware() → {Controller.Hardware}
-
Get the - Controller.Hardware property tree. Calling this function is the same as using the - Controller property, Controller.Hardware.
-
-
Returns:
-
The - Controller.Hardware property tree.
-
-
Type: Controller.Hardware
-
getInputRecorderSaveDirectory() → {string}
-
Get the directory in which input recordings are saved.
-
-
Returns:
-
The directory in which input recordings are saved.
-
-
Type: string
-
getPoseValue(source) → {Pose}
-
Get the value of a controller pose output.
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
source numberThe - Controller.Standard or - Controller.Hardware pose output.
-
-
Returns:
-
The current value of the controller pose output if source is a pose output, otherwise an invalid pose with Pose.valid == false.
-
-
Type: Pose
-
getPoseValue(source, deviceopt) → {Pose}
-
- Get the value of an pose control on a particular device.
-
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeAttributesDefaultDescription
source StandardPoseChannelThe pose to get the value of.
device number <optional> -
-
0The ID of the hardware device to get the value from. The default value of 0 corresponds to Standard.
-
-
Deprecated:
-
-
    -
  • This function no longer works.
  • -
-
-
-
Returns:
-
The current value of the controller pose output if the parameters are valid, otherwise an invalid pose with Pose.valid == false.
-
-
Type: Pose
-
getRecommendedHUDRect() → {Rect}
-
Get the recommended area to position UI on the HUD surface if in HMD mode or Interface's window interior if in desktop mode.
-
-
Returns:
-
The recommended area in which to position UI.
-
-
Type: Rect
-
getStandard() → {Controller.Standard}
-
Get the - Controller.Standard property tree. Calling this function is the same as using the - Controller property, Controller.Standard.
-
-
Returns:
-
The - Controller.Standard property tree.
-
-
Type: Controller.Standard
-
getValue(source) → {number}
-
Get the value of a controller button or axis output. Note: Also gets the value of a controller axis output.
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
source numberThe - Controller.Standard or - Controller.Hardware item.
-
-
Returns:
-
The current value of the controller item output if source is valid, otherwise 0.
-
-
Type: number
-
Example
-

Report the Standard and Vive right trigger values.

var triggerValue = Controller.getValue(Controller.Standard.RT);
-print("Trigger value: " + triggerValue);
-
-if (Controller.Hardware.Vive) {
-    triggerValue = Controller.getValue(Controller.Hardware.Vive.RT);
-    print("Vive trigger value: " + triggerValue);
-} else {
-    print("No Vive present");
-}
-
getViewportDimensions() → {Vec2}
-
Get the dimensions of the Interface window's interior if in desktop mode or the HUD surface if in HMD mode.
-
-
Returns:
-
The dimensions of the Interface window interior if in desktop mode or HUD surface if in HMD mode.
-
-
Type: Vec2
-
hardwareChanged() → {Signal}
-
Triggered when a device is registered or unregistered by a plugin. Not all plugins generate hardwareChanged events: for example connecting or disconnecting a mouse will not generate an event but connecting or disconnecting an Xbox - controller will.
-
-
Returns:
-
-
Type: Signal
-
inputEvent(action, value) → {Signal}
-
Triggered when there is a new controller input event.
-
Parameters:
- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
action numberThe input action, per - Controller.Standard.
value numberThe value associated with the input action.
-
-
Returns:
-
-
Type: Signal
-
Example
-

Report input events as they occur.

var inputNamesForID = {};
-for (var property in Controller.Standard) {
-    inputNamesForID[Controller.Standard[property]] = "Controller.Standard." + property;
-}
-
-function onInputEvent(input, value) {
-    print("onInputEvent() : " + input + " ( " + inputNamesForID[input] + " ) ; " + value);
-}
-
-Controller.inputEvent.connect(onInputEvent);
-
-Script.scriptEnding.connect(function () {
-    Controller.inputEvent.disconnect(onInputEvent);
-});
-
keyPressEvent(event) → {Signal}
-
Triggered when a keyboard key is pressed.
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
event KeyEventDetails of the key press.
-
-
Returns:
-
-
Type: Signal
-
Example
-

Report the KeyEvent details for each key press.

Controller.keyPressEvent.connect(function (event) {
-    print(JSON.stringify(event));
-});
-
keyReleaseEvent(event) → {Signal}
-
Triggered when a keyboard key is released from being pressed.
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
event KeyEventDetails of the key release.
-
-
Returns:
-
-
Type: Signal
-
loadInputRecording(file)
-
Load an input recording, ready for play back.
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
file stringThe path to the recording file, prefixed by "file:///".
-
-
loadMapping(jsonURL) → {MappingObject}
-
Create a new controller mapping from a - MappingJSON JSON file at a URL. Use - enableMapping to enable the mapping for it to take effect.
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
jsonURL stringThe URL the - MappingJSON JSON file.
-
-
To Do:
-
-
    -
  • Implement this function. It currently does not load the mapping from the file; it just returns null.
  • -
-
-
-
Returns:
-
A controller mapping object.
-
-
Type: MappingObject
-
mouseDoublePressEvent(event) → {Signal}
-
Triggered when a mouse button is double-pressed.
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
event MouseEventDetails of the button double-press.
-
-
Returns:
-
-
Type: Signal
-
mouseMoveEvent(event) → {Signal}
-
Triggered when the mouse moves.
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
event MouseEventDetails of the mouse movement.
-
-
Returns:
-
-
Type: Signal
-
Example
-

Report the MouseEvent details for each mouse move.

Controller.mouseMoveEvent.connect(function (event) {
-    print(JSON.stringify(event));
-});
-
mousePressEvent(event) → {Signal}
-
Triggered when a mouse button is pressed.
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
event MouseEventDetails of the button press.
-
-
Returns:
-
-
Type: Signal
-
mouseReleaseEvent(event) → {Signal}
-
Triggered when a mouse button is released from being pressed.
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
event MouseEventDetails of the button release.
-
-
Returns:
-
-
Type: Signal
-
newMapping(mappingName) → {MappingObject}
-
Create a new controller mapping. Routes can then be added to the mapping using - MappingObject methods and routed to Standard controls, Actions, or script functions using - RouteObject methods. The mapping can then be enabled using - enableMapping for it to take effect.
-
Parameters:
- - - - - - - - - - - - - - - - - -
NameTypeDefaultDescription
mappingName string Uuid.generate()A unique name for the mapping. If not specified a new UUID generated by - Uuid.generate is used.
-
-
Returns:
-
A controller mapping object.
-
-
Type: MappingObject
-
Example
-

Create a simple mapping that makes the right trigger move your avatar up.

var MAPPING_NAME = "com.highfidelity.controllers.example.newMapping";
-var mapping = Controller.newMapping(MAPPING_NAME);
-
-mapping.from(Controller.Standard.RT).to(Controller.Actions.TranslateY);
-Controller.enableMapping(MAPPING_NAME);
-
-Script.scriptEnding.connect(function () {
-    Controller.disableMapping(MAPPING_NAME);
-});
-
parseMapping(jsonString) → {MappingObject}
-
Create a new controller mapping from a - MappingJSON string. Use - enableMapping to enable the mapping for it to take effect.
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
jsonString stringA JSON string of the - MappingJSON.
-
-
Returns:
-
A controller mapping object.
-
-
Type: MappingObject
-
Example
-

Create a simple mapping that makes the right trigger move your avatar up.

var mappingJSON = {
-    "name": "com.highfidelity.controllers.example.jsonMapping",
-    "channels": [
-        { "from": "Standard.RT", "to": "Actions.TranslateY" }
-    ]
-};
-
-var mapping = Controller.parseMapping(JSON.stringify(mappingJSON));
-mapping.enable();
-
-Script.scriptEnding.connect(function () {
-    mapping.disable();
-});
-
releaseActionEvents()
-
Enable translating and rotating the user's avatar in response to keyboard and controller controls that were disabled using - captureActionEvents.
-
-
releaseEntityClickEvents()
-
Re-enable - Entities.mousePressOnEntity and - Entities.mouseDoublePressOnEntity events on entities that were disabled using - captureEntityClickEvents.
-
-
releaseJoystick(joystickID)
-
Re-enable default Interface actions for a joystick that has been disabled using - captureJoystick.
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
joystickID numberThe integer ID of the joystick.
-
-
Deprecated:
-
-
    -
  • This function no longer has any effect.
  • -
-
-
-
releaseKeyEvents(event)
-
Re-enable default Interface actions for a particular key event that has been disabled using - captureKeyEvents.
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
event KeyEventDetails of the key event to release from capture. The key property must be specified. The text property is ignored. The other properties default to false.
-
-
releaseMouseEvents()
-
Enable processing of mouse "move", "press", "double-press", and "release" events into - Controller.Hardware.Keyboard outputs that were disabled using - captureMouseEvents.
-
-
releaseTouchEvents()
-
Enable processing of touch "begin", "update", and "end" events into - Controller.Hardware.Keyboard, - Controller.Hardware.Touchscreen, and - Controller.Hardware.TouchscreenVirtualPad outputs that were disabled using - captureTouchEvents.
-
-
releaseWheelEvents()
-
Enable processing of mouse wheel rotation events into - Controller.Hardware.Keyboard outputs that wer disabled using - captureWheelEvents.
-
-
saveInputRecording()
-
Save the current recording to a file. The current recording may have been recorded by - startInputRecording and - stopInputRecording, or loaded by - loadInputRecording. It is saved in the directory returned by - getInputRecorderSaveDirectory.
-
-
setVPadEnabled(enable)
-
Enables or disables the virtual game pad that is displayed on certain devices (e.g., Android).
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
enable booleanIf true then the virtual game pad doesn't work, otherwise it does work provided that it is not hidden by - setVPadHidden.
-
-
setVPadExtraBottomMargin(margin)
-
Sets the amount of extra margin between the virtual game pad that is displayed on certain devices (e.g., Android) and the bottom of the display.
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
margin numberInteger number of pixels in the extra margin.
-
-
setVPadHidden(hidden)
-
Shows or hides the virtual game pad that is displayed on certain devices (e.g., Android).
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
hidden booleanIf true then the virtual game pad is hidden, otherwise it is shown.
-
-
startInputPlayback()
-
Play back the current recording from the beginning. The current recording may have been recorded by - startInputRecording and - stopInputRecording, or loaded by - loadInputRecording. Playback repeats in a loop until - stopInputPlayback is called.
-
-
Example
-

Play back a controller recording.

var file = Window.browse("Select Recording", Controller.getInputRecorderSaveDirectory());
-if (file !== null) {
-    print("Play recording: " + file);
-    Controller.loadInputRecording("file:///" + file);
-    Controller.startInputPlayback();
-
-    // Stop playback after 20s.
-    Script.setTimeout(function () {
-        print("Stop playing recording");
-        Controller.stopInputPlayback();
-    }, 20000);
-}
-
startInputRecording()
-
Start making a recording of currently active controllers.
-
-
Example
-

Make a controller recording.

// Delay start of recording for 2s.
-Script.setTimeout(function () {
-    print("Start input recording");
-    Controller.startInputRecording();
-}, 2000);
-
-// Make a 10s recording.
-Script.setTimeout(function () {
-    print("Stop input recording");
-    Controller.stopInputRecording();
-    Controller.saveInputRecording();
-    print("Input recording saved in: " + Controller.getInputRecorderSaveDirectory());
-}, 12000);
-
stopInputPlayback()
-
Stop play back of a recording started by - startInputPlayback.
-
-
stopInputRecording()
-
Stop making a recording started by - startInputRecording.
-
-
touchBeginEvent(event) → {Signal}
-
Triggered when a touch event starts in the Interface window on a touch-enabled display or device.
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
event TouchEventDetails of the touch begin.
-
-
Returns:
-
-
Type: Signal
-
Example
-

Report the TouchEvent details when a touch event starts.

Controller.touchBeginEvent.connect(function (event) {
-    print(JSON.stringify(event));
-});
-
touchEndEvent(event) → {Signal}
-
Triggered when a touch event ends in the Interface window on a touch-enabled display or device.
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
event TouchEventDetails of the touch end.
-
-
Returns:
-
-
Type: Signal
-
touchUpdateEvent(event) → {Signal}
-
Triggered when a touch event update occurs in the Interface window on a touch-enabled display or device.
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
event TouchEventDetails of the touch update.
-
-
Returns:
-
-
Type: Signal
-
triggerHapticPulse(strength, duration, hand)
-
Triggers a haptic pulse on connected and enabled devices that have the capability.
-
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDefaultDescription
strength numberThe strength of the haptic pulse, 0.01.0.
duration numberThe duration of the haptic pulse, in milliseconds.
hand Controller.Hand 2The hand or hands to trigger the haptic pulse on.
-
-
Example
-

Trigger a haptic pulse on the right hand.

var HAPTIC_STRENGTH = 0.5;
-var HAPTIC_DURATION = 10;
-var RIGHT_HAND = 1;
-Controller.triggerHapticPulse(HAPTIC_STRENGTH, HAPTIC_DURATION, RIGHT_HAND);
-
triggerHapticPulseOnDevice(deviceID, strength, duration, hand)
-
Triggers a haptic pulse on a particular device if connected and enabled and it has the capability.
-
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDefaultDescription
deviceID numberThe ID of the device to trigger the haptic pulse on.
strength numberThe strength of the haptic pulse, 0.01.0.
duration numberThe duration of the haptic pulse, in milliseconds.
hand Controller.Hand 2The hand or hands to trigger the haptic pulse on.
-
-
Example
-

Trigger a haptic pulse on an Oculus Touch controller.

var HAPTIC_STRENGTH = 0.5;
-var deviceID = Controller.findDevice("OculusTouch");
-var HAPTIC_DURATION = 10;
-var RIGHT_HAND = 1;
-Controller.triggerHapticPulseOnDevice(deviceID, HAPTIC_STRENGTH, HAPTIC_DURATION, RIGHT_HAND);
-
triggerShortHapticPulse(strength, hand)
-
Triggers a 250ms haptic pulse on connected and enabled devices that have the capability.
-
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDefaultDescription
strength numberThe strength of the haptic pulse, 0.01.0.
hand Controller.Hand 2The hand or hands to trigger the haptic pulse on.
-
-
triggerShortHapticPulseOnDevice(deviceID, strength, hand)
-
Triggers a 250ms haptic pulse on a particular device if connected and enabled and it has the capability.
-
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDefaultDescription
deviceID numberThe ID of the device to trigger the haptic pulse on.
strength numberThe strength of the haptic pulse, 0.01.0.
hand Controller.Hand 2The hand or hands to trigger the haptic pulse on.
-
-
wheelEvent(event) → {Signal}
-
Triggered when the mouse wheel is rotated.
-
Parameters:
- - - - - - - - - - - - - - - -
NameTypeDescription
event WheelEventDetails of the wheel movement.
-
-
Returns:
-
-
Type: Signal
-
Example
-

Report the WheelEvent details for each wheel rotation.

Controller.wheelEvent.connect(function (event) {
-    print(JSON.stringify(event));
-});
-     
-

Type Definitions

-

Actions

-
-

The Controller.Actions object has properties representing predefined actions on the user's avatar and Interface. The property values are integer IDs, uniquely identifying each action. Read-only. These can be used as end - points in the routes of a - MappingObject. The data routed to each action is either a number or a - Pose.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyTypeDataDescription
Avatar Movement
TranslateXnumbernumberMove the user's avatar in the direction of its x-axis, if the camera isn't in independent or mirror modes.
TranslateYnumbernumberMove the user's avatar in the direction of its y-axis, if the camera isn't in independent or mirror modes.
TranslateZnumbernumberMove the user's avatar in the direction of its z-axis, if the camera isn't in independent or mirror modes.
PitchnumbernumberRotate the user's avatar head and attached camera about its negative x-axis (i.e., positive values pitch down), if the camera isn't in HMD, independent, or mirror modes.
YawnumbernumberRotate the user's avatar about its y-axis, if the camera isn't in independent or mirror modes.
RollnumbernumberNo action.
StepTranslateXnumbernumberNo action.
StepTranslateYnumbernumberNo action.
StepTranslateZnumbernumberNo action.
StepPitchnumbernumberNo action.
StepYawnumbernumberRotate the user's avatar about its y-axis in a step increment, if the camera isn't in independent or mirror modes.
StepRollnumbernumberNo action.
Avatar Skeleton
Hipsnumber - Pose - Set the hips pose of the user's avatar.
Spine2number - Pose - Set the spine2 pose of the user's avatar.
Headnumber - Pose - Set the head pose of the user's avatar.
LeftArmnumber - Pose - Set the left arm pose of the user's avatar.
RightArmnumber - Pose - Set the right arm pose of the user's avatar.
LeftHandnumber - Pose - Set the left hand pose of the user's avatar.
LeftHandThumb1number - Pose - Set the left thumb 1 finger joint pose of the user's avatar.
LeftHandThumb2number - Pose - Set the left thumb 2 finger joint pose of the user's avatar.
LeftHandThumb3number - Pose - Set the left thumb 3 finger joint pose of the user's avatar.
LeftHandThumb4number - Pose - Set the left thumb 4 finger joint pose of the user's avatar.
LeftHandIndex1number - Pose - Set the left index 1 finger joint pose of the user's avatar.
LeftHandIndex2number - Pose - Set the left index 2 finger joint pose of the user's avatar.
LeftHandIndex3number - Pose - Set the left index 3 finger joint pose of the user's avatar.
LeftHandIndex4number - Pose - Set the left index 4 finger joint pose of the user's avatar.
LeftHandMiddle1number - Pose - Set the left middle 1 finger joint pose of the user's avatar.
LeftHandMiddle2number - Pose - Set the left middle 2 finger joint pose of the user's avatar.
LeftHandMiddle3number - Pose - Set the left middle 3 finger joint pose of the user's avatar.
LeftHandMiddle4number - Pose - Set the left middle 4 finger joint pose of the user's avatar.
LeftHandRing1number - Pose - Set the left ring 1 finger joint pose of the user's avatar.
LeftHandRing2number - Pose - Set the left ring 2 finger joint pose of the user's avatar.
LeftHandRing3number - Pose - Set the left ring 3 finger joint pose of the user's avatar.
LeftHandRing4number - Pose - Set the left ring 4 finger joint pose of the user's avatar.
LeftHandPinky1number - Pose - Set the left pinky 1 finger joint pose of the user's avatar.
LeftHandPinky2number - Pose - Set the left pinky 2 finger joint pose of the user's avatar.
LeftHandPinky3number - Pose - Set the left pinky 3 finger joint pose of the user's avatar.
LeftHandPinky4number - Pose - Set the left pinky 4 finger joint pose of the user's avatar.
RightHandnumber - Pose - Set the right hand of the user's avatar.
RightHandThumb1number - Pose - Set the right thumb 1 finger joint pose of the user's avatar.
RightHandThumb2number - Pose - Set the right thumb 2 finger joint pose of the user's avatar.
RightHandThumb3number - Pose - Set the right thumb 3 finger joint pose of the user's avatar.
RightHandThumb4number - Pose - Set the right thumb 4 finger joint pose of the user's avatar.
RightHandIndex1number - Pose - Set the right index 1 finger joint pose of the user's avatar.
RightHandIndex2number - Pose - Set the right index 2 finger joint pose of the user's avatar.
RightHandIndex3number - Pose - Set the right index 3 finger joint pose of the user's avatar.
RightHandIndex4number - Pose - Set the right index 4 finger joint pose of the user's avatar.
RightHandMiddle1number - Pose - Set the right middle 1 finger joint pose of the user's avatar.
RightHandMiddle2number - Pose - Set the right middle 2 finger joint pose of the user's avatar.
RightHandMiddle3number - Pose - Set the right middle 3 finger joint pose of the user's avatar.
RightHandMiddle4number - Pose - Set the right middle 4 finger joint pose of the user's avatar.
RightHandRing1number - Pose - Set the right ring 1 finger joint pose of the user's avatar.
RightHandRing2number - Pose - Set the right ring 2 finger joint pose of the user's avatar.
RightHandRing3number - Pose - Set the right ring 3 finger joint pose of the user's avatar.
RightHandRing4number - Pose - Set the right ring 4 finger joint pose of the user's avatar.
RightHandPinky1number - Pose - Set the right pinky 1 finger joint pose of the user's avatar.
RightHandPinky2number - Pose - Set the right pinky 2 finger joint pose of the user's avatar.
RightHandPinky3number - Pose - Set the right pinky 3 finger joint pose of the user's avatar.
RightHandPinky4number - Pose - Set the right pinky 4 finger joint pose of the user's avatar.
LeftFootnumber - Pose - Set the left foot pose of the user's avatar.
RightFootnumber - Pose - Set the right foot pose of the user's avatar.
Application
BoomInnumbernumberZoom camera in from third person toward first person view.
BoomOutnumbernumberZoom camera out from first person to third person view.
CycleCameranumbernumberCycle the camera view from first person, to third person, to full screen mirror, then back to first person and repeat.
ContextMenunumbernumberShow / hide the tablet.
ToggleMutenumbernumberToggle the microphone mute.
ToggleOverlaynumbernumberToggle the display of overlays.
SprintnumbernumberSet avatar sprint mode.
ReticleClicknumbernumberSet mouse-pressed.
ReticleXnumbernumberMove the cursor left/right in the x direction.
ReticleYnumbernumbermove the cursor up/down in the y direction.
ReticleLeftnumbernumberMove the cursor left.
ReticleRightnumbernumberMove the cursor right.
ReticleUpnumbernumberMove the cursor up.
ReticleDownnumbernumberMove the cursor down.
UiNavLateralnumbernumberGenerate a keyboard left or right arrow key event.
UiNavVerticalnumbernumberGenerate a keyboard up or down arrow key event.
UiNavGroupnumbernumberGenerate a keyboard tab or back-tab key event.
UiNavSelectnumbernumberGenerate a keyboard Enter key event.
UiNavBacknumbernumberGenerate a keyboard Esc key event.
LeftHandClicknumbernumberDeprecated: No action.
RightHandClicknumbernumberDeprecated: No action.
ShiftnumbernumberDeprecated: No action.
PrimaryActionnumbernumberDeprecated: No action.
SecondaryActionnumbernumberDeprecated: No action.
Aliases
BackwardnumbernumberAlias for TranslateZ in the positive direction.
ForwardnumbernumberAlias for TranslateZ in the negative direction.
StrafeRightnumbernumberAlias for TranslateX in the positive direction.
StrafeLeftnumbernumberAlias for TranslateX in the negative direction.
UpnumbernumberAlias for TranslateY in the positive direction.
DownnumbernumberAlias for TranslateY in the negative direction.
PitchDownnumbernumberAlias for Pitch in the positive direction.
PitchUpnumbernumberAlias for Pitch in the negative direction.
YawLeftnumbernumberAlias for Yaw in the positive direction.
YawRightnumbernumberAlias for Yaw in the negative direction.
Deprecated Aliases
LEFT_HANDnumber - Pose - Deprecated: Use LeftHand instead.
RIGHT_HANDnumber - Pose - Deprecated: Use RightHand instead.
BOOM_INnumbernumberDeprecated: Use BoomIn instead.
BOOM_OUTnumbernumberDeprecated: Use BoomOut instead.
CONTEXT_MENUnumbernumberDeprecated: Use ContextMenu instead.
TOGGLE_MUTEnumbernumberDeprecated: Use ToggleMute instead.
SPRINTnumbernumberDeprecated: Use Sprint instead.
LONGITUDINAL_BACKWARDnumbernumberDeprecated: Use Backward instead.
LONGITUDINAL_FORWARDnumbernumberDeprecated: Use Forward instead.
LATERAL_LEFTnumbernumberDeprecated: Use StrafeLeft instead.
LATERAL_RIGHTnumbernumberDeprecated: Use StrafeRight instead.
VERTICAL_UPnumbernumberDeprecated: Use Up instead.
VERTICAL_DOWNnumbernumberDeprecated: Use Down instead.
PITCH_DOWNnumbernumberDeprecated: Use PitchDown instead.
PITCH_UPnumbernumberDeprecated: Use PitchUp instead.
YAW_LEFTnumbernumberDeprecated: Use YawLeft instead.
YAW_RIGHTnumbernumberDeprecated: Use YawRight instead.
LEFT_HAND_CLICKnumbernumberDeprecated: Use LeftHandClick instead.
RIGHT_HAND_CLICKnumbernumberDeprecated: Use RightHandClick instead.
SHIFTnumbernumberDeprecated: Use Shift instead.
ACTION1numbernumberDeprecated: Use PrimaryAction instead.
ACTION2numbernumberDeprecated: Use SecondaryAction instead.
Deprecated Trackers
TrackedObject00number - Pose - Deprecated: No action.
TrackedObject01number - Pose - Deprecated: No action.
TrackedObject02number - Pose - Deprecated: No action.
TrackedObject03number - Pose - Deprecated: No action.
TrackedObject04number - Pose - Deprecated: No action.
TrackedObject05number - Pose - Deprecated: No action.
TrackedObject06number - Pose - Deprecated: No action.
TrackedObject07number - Pose - Deprecated: No action.
TrackedObject08number - Pose - Deprecated: No action.
TrackedObject09number - Pose - Deprecated: No action.
TrackedObject10number - Pose - Deprecated: No action.
TrackedObject11number - Pose - Deprecated: No action.
TrackedObject12number - Pose - Deprecated: No action.
TrackedObject13number - Pose - Deprecated: No action.
TrackedObject14number - Pose - Deprecated: No action.
TrackedObject15number - Pose - Deprecated: No action.
-
-
-

Hand

-
-

Some controller actions may be associated with one or both hands:

- - - - - - - - - - - - - - - - - - - - - -
ValueDescription
0Left hand.
1Right hand.
2Both hands.
-
-
Type:
-
    -
  • number
  • -
-
-

Hardware

-
-

The Controller.Hardware object has properties representing standard and hardware-specific controller and computer outputs, plus predefined actions on Interface and the user's avatar. Read-only. The outputs can be mapped - to actions or functions in a - RouteObject mapping. Additionally, hardware-specific controller outputs can be mapped to standard controller outputs. -

Controllers typically implement a subset of the - Controller.Standard controls, plus they may implement some extras. Some common controllers are included in the table. You can see the outputs provided by these and others by viewing their - MappingJSON files at - https://github.com/highfidelity/hifi/tree/master/interface/resources/controllers.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyTypeDescription
Controller.Hardware.ActionsobjectSynonym for - Controller.Actions.
Controller.Hardware.ApplicationobjectInterface state outputs. See - Controller.Hardware-Application.
Controller.Hardware.KeyboardobjectKeyboard, mouse, and touch pad outputs. See - Controller.Hardware-Keyboard.
Controller.Hardware.OculusTouchobjectOculus Rift HMD outputs. See - Controller.Hardware-OculusTouch.
Controller.Hardware.ViveobjectVive HMD outputs. See - Controller.Hardware-Vive.
-
-
-
Example
-

List all the currently available Controller.Hardware properties.

function printProperties(string, item) {
-    print(string);
-    for (var key in item) {
-        if (item.hasOwnProperty(key)) {
-            printProperties(string + "." + key, item[key]);
-        }
-    }
-}
-
-printProperties("Controller.Hardware", Controller.Hardware);
- 
-

Hardware-Application

-
-

The Controller.Hardware.Application object has properties representing Interface's state. The property values are integer IDs, uniquely identifying each output. Read-only. These can be mapped to actions or functions or - Controller.Standard items in a - RouteObject mapping (e.g., using the - RouteObject#when method). Each data value is either 1.0 for "true" or 0.0 for "false".

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyTypeDataDescription
CameraFirstPersonnumbernumberThe camera is in first-person mode.
CameraThirdPersonnumbernumberThe camera is in third-person mode.
CameraFSMnumbernumberThe camera is in full screen mirror mode.
CameraIndependentnumbernumberThe camera is in independent mode.
CameraEntitynumbernumberThe camera is in entity mode.
InHMDnumbernumberThe user is in HMD mode.
AdvancedMovementnumbernumberAdvanced movement controls are enabled.
SnapTurnnumbernumberSnap turn is enabled.
GroundednumbernumberThe user's avatar is on the ground.
NavigationFocusednumbernumberNot used.
-
-
-

Hardware-Keyboard

-
-

The Controller.Hardware.Keyboard object has properties representing keyboard, mouse, and display touch events. The property values are integer IDs, uniquely identifying each output. Read-only. These can be mapped to actions - or functions or Controller.Standard items in a - RouteObject mapping. For presses, each data value is either 1.0 for "true" or 0.0 for "false".

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyTypeData - Description
09numbernumberA "0" – "1" key on the keyboard or keypad is pressed.
AZnumbernumberA "A" – "Z" key on the keyboard is pressed.
SpacenumbernumberThe space bar on the keyboard is pressed.
TabnumbernumberThe tab key on the keyboard is pressed.
ShiftnumbernumberThe shift key on the keyboard is pressed.
ControlnumbernumberThe control key on the keyboard is pressed. (The "Command" key on OSX.)
LeftnumbernumberThe left arrow key on the keyboard or keypad is pressed.
RightnumbernumberThe right arrow key on the keyboard or keypad is pressed.
UpnumbernumberThe up arrow key on the keyboard or keypad is pressed.
DownnumbernumberThe down arrow key on the keyboard or keypad is pressed.
PgUpnumbernumberThe page up key on the keyboard or keypad is pressed.
PgDownnumbernumberThe page down key on the keyboard or keypad is pressed.
LeftMouseButtonnumbernumberThe left mouse button pressed.
MiddleMouseButtonnumbernumberThe middle mouse button pressed.
RightMouseButtonnumbernumberThe right mouse button pressed.
LeftMouseClickednumbernumberThe left mouse button clicked.
MiddleMouseClickednumbernumberThe middle mouse button clicked.
RightMouseClickednumbernumberThe right mouse button clicked.
MouseMoveRightnumbernumberThe mouse moved right.
MouseMoveLeftnumbernumberThe mouse moved left.
MouseMoveUpnumbernumberThe mouse moved up.
MouseMoveDownnumbernumberThe mouse moved down.
MouseXnumbernumberThe mouse x-coordinate changed. The data value is its new x-coordinate value.
MouseYnumbernumberThe mouse y-coordinate changed. The data value is its new y-coordinate value.
MouseWheelRightnumbernumberThe mouse wheel rotated left. The data value is the number of units rotated (typically 1.0).
MouseWheelLeftnumbernumberThe mouse wheel rotated left. The data value is the number of units rotated (typically 1.0).
MouseWheelUpnumbernumberThe mouse wheel rotated up. The data value is the number of units rotated (typically 1.0).
MouseWheelDownnumbernumberThe mouse wheel rotated down. The data value is the number of units rotated (typically 1.0).
TouchpadRightnumbernumberThe average touch on a touch-enabled device moved right. The data value is how far the average position of all touch points moved.
TouchpadLeftnumbernumberThe average touch on a touch-enabled device moved left. The data value is how far the average position of all touch points moved.
TouchpadUpnumbernumberThe average touch on a touch-enabled device moved up. The data value is how far the average position of all touch points moved.
TouchpadDownnumbernumberThe average touch on a touch-enabled device moved down. The data value is how far the average position of all touch points moved.
-
-
-
To Do:
-
-
    -
  • Currently, the mouse wheel in an ordinary mouse generates left/right wheel events instead of up/down.
  • -
-
-
-

Hardware-OculusTouch

-
-

The Controller.Hardware.OculusTouch object has properties representing Oculus Rift. The property values are integer IDs, uniquely identifying each output. Read-only. These can be mapped to actions or functions or Controller.Standard items in a - RouteObject mapping.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyTypeDataDescription
Buttons
Anumbernumber"A" button pressed.
Bnumbernumber"B" button pressed.
Xnumbernumber"X" button pressed.
Ynumbernumber"Y" button pressed.
LeftApplicationMenunumbernumberLeft application menu button pressed.
RightApplicationMenunumbernumberRight application menu button pressed.
Sticks
LXnumbernumberLeft stick x-axis scale.
LYnumbernumberLeft stick y-axis scale.
RXnumbernumberRight stick x-axis scale.
RYnumbernumberRight stick y-axis scale.
LSnumbernumberLeft stick button pressed.
RSnumbernumberRight stick button pressed.
LSTouchnumbernumberLeft stick is touched.
RSTouchnumbernumberRight stick is touched.
Triggers
LTnumbernumberLeft trigger scale.
RTnumbernumberRight trigger scale.
LeftGripnumbernumberLeft grip scale.
RightGripnumbernumberRight grip scale.
Finger Abstractions
LeftPrimaryThumbTouchnumbernumberLeft thumb touching primary thumb button.
LeftSecondaryThumbTouchnumbernumberLeft thumb touching secondary thumb button.
LeftThumbUpnumbernumberLeft thumb not touching primary or secondary thumb buttons.
RightPrimaryThumbTouchnumbernumberRight thumb touching primary thumb button.
RightSecondaryThumbTouchnumbernumberRight thumb touching secondary thumb button.
RightThumbUpnumbernumberRight thumb not touching primary or secondary thumb buttons.
LeftPrimaryIndexTouchnumbernumberLeft index finger is touching primary index finger control.
LeftIndexPointnumbernumberLeft index finger is pointing, not touching primary or secondary index finger controls.
RightPrimaryIndexTouchnumbernumberRight index finger is touching primary index finger control.
RightIndexPointnumbernumberRight index finger is pointing, not touching primary or secondary index finger controls.
Avatar Skeleton
Headnumber - Pose - Head pose.
LeftHandnumber - Pose - Left hand pose.
RightHandnumber - Pose - right hand pose.
-
-
-

Hardware-Vive

-
-

The Controller.Hardware.Vive object has properties representing Vive. The property values are integer IDs, uniquely identifying each output. Read-only. These can be mapped to actions or functions or Controller.Standard items in a - RouteObject mapping.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyTypeDataDescription
Touch Pad (Sticks)
LXnumbernumberLeft touch pad x-axis scale.
LYnumbernumberLeft touch pad y-axis scale.
RXnumbernumberRight stick x-axis scale.
RYnumbernumberRight stick y-axis scale.
LSnumbernumberLeft touch pad pressed.
LS_CENTERnumbernumberLeft touch pad center pressed.
LS_XnumbernumberLeft touch pad pressed x-coordinate.
LS_YnumbernumberLeft touch pad pressed y-coordinate.
RSnumbernumberRight touch pad pressed.
RS_CENTERnumbernumberRight touch pad center pressed.
RS_XnumbernumberRight touch pad pressed x-coordinate.
RS_YnumbernumberRight touch pad pressed y-coordinate.
LSTouchnumbernumberLeft touch pad is touched.
RSTouchnumbernumberRight touch pad is touched.
Triggers
LTnumbernumberLeft trigger scale.
RTnumbernumberRight trigger scale.
LTClicknumbernumberLeft trigger click.
RTClicknumbernumberRight trigger click.
LeftGripnumbernumberLeft grip scale.
RightGripnumbernumberRight grip scale.
Avatar Skeleton
Hipsnumber - Pose - Hips pose.
Spine2number - Pose - Spine2 pose.
Headnumber - Pose - Head pose.
LeftArmnumber - Pose - Left arm pose.
RightArmnumber - Pose - Right arm pose
LeftHandnumber - Pose - Left hand pose.
RightHandnumber - Pose - Right hand pose.
Trackers
TrackedObject00number - Pose - Tracker 0 pose.
TrackedObject01number - Pose - Tracker 1 pose.
TrackedObject02number - Pose - Tracker 2 pose.
TrackedObject03number - Pose - Tracker 3 pose.
TrackedObject04number - Pose - Tracker 4 pose.
TrackedObject05number - Pose - Tracker 5 pose.
TrackedObject06number - Pose - Tracker 6 pose.
TrackedObject07number - Pose - Tracker 7 pose.
TrackedObject08number - Pose - Tracker 8 pose.
TrackedObject09number - Pose - Tracker 9 pose.
TrackedObject10number - Pose - Tracker 10 pose.
TrackedObject11number - Pose - Tracker 11 pose.
TrackedObject12number - Pose - Tracker 12 pose.
TrackedObject13number - Pose - Tracker 13 pose.
TrackedObject14number - Pose - Tracker 14 pose.
TrackedObject15number - Pose - Tracker 15 pose.
-
-
-

MappingJSON

-
A - MappingObject can be specified in JSON format. A simple example is provided below. Full examples — the default mappings provided in Interface — can be found at - https://github.com/highfidelity/hifi/tree/master/interface/resources/controllers.
-
Type:
-
    -
  • object
  • -
-

Properties:

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
name stringThe name of the mapping.
channels Array.<Controller.MappingJSONRoute>An array of routes.
-
-
Example
-

A simple mapping JSON that makes the right trigger move your avatar up after a dead zone.

{
-    "name": "com.highfidelity.controllers.example.jsonMapping",
-    "channels": [
-        { 
-            "from": "Standard.RT", 
-            "filters": { "type": "deadZone", "min": 0.05 },
-            "to": "Actions.TranslateY"
-        }
-    ]
-}
-

MappingJSONAxis

-
An axis pair in a - Controller.MappingJSONRoute.
-
Type:
-
    -
  • object
  • -
-

Properties:

- - - - - - - - - - - - - - - -
NameTypeDescription
makeAxis Array.<Array.<string>>A two-member array of single-member arrays of - Controller.Hardware property names. The leading "Controller.Hardware." can be omitted from the property names.
-
-
Example
-

An axis using the keyboard's left and right keys.

{ "makeAxis" : [
-        ["Keyboard.Left"],
-        ["Keyboard.Right"]
-    ]
-}
-

MappingJSONFilter

-
A filter in a - Controller.MappingJSONRoute.
-
Type:
-
    -
  • object
  • -
-

Properties:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeAttributesDescription
type stringThe name of the filter, being the name of the one of the - RouteObject's filter methods.
? string <optional> -
-
If the filter method has a first parameter, the property name is the name of that parameter and the property value is the value to use.
? string <optional> -
-
If the filter method has a second parameter, the property name is the name of that parameter and the property value is the value to use.
-
-
Example
-

A hysteresis filter.

{ 
-    "type": "hysteresis", 
-    "min": 0.85, 
-    "max": 0.9
-}
-

MappingJSONRoute

-
A route in a - Controller.MappingJSON.
-
Type:
-
    -
  • object
  • -
-

Properties:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeAttributesDefaultDescription
from string | Controller.MappingJSONAxisThe name of a - Controller.Hardware property name or an axis made from them. If a property name, the leading "Controller.Hardware." can be omitted.
peek boolean <optional> -
-
falseIf - true then peeking is enabled per - RouteObject#peek.
debug boolean <optional> -
-
falseIf true then debug is enabled per - RouteObject#debug.
when string | Array.<string> <optional> -
-
[]One or more numeric - Controller.Hardware property names which are evaluated as booleans and ANDed together. Prepend with a ! to use the logical NOT of the property value. The leading "Controller.Hardware." can be omitted from - the property names.
filters Controller.MappingJSONFilter | Array.<Controller.MappingJSONFilter> <optional> -
-
[]One or more filters in the route.
to stringThe name of a - Controller.Actions or - Controller.Standard property. The leading "Controller." can be omitted.
-
-

Standard

-
-

The Controller.Standard object has properties representing standard controller outputs. Those for physical controllers are based on the XBox controller, with aliases for PlayStation. The property values are integer IDs, uniquely - identifying each output. Read-only. These can be mapped to actions or functions in a - RouteObject mapping.

-

The data value provided by each control is either a number or a - Pose. Numbers are typically normalized to 0.0 or 1.0 for button states, the range 0.0 – 1.0 for unidirectional scales, and the range -1.0 – 1.0 for bidirectional scales.

-

Each hardware device has a mapping from its outputs to Controller.Standard items, specified in a JSON file. For example, - leapmotion.json and - vive.json.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyTypeDataDescription
Buttons
Anumbernumber"A" button pressed.
Bnumbernumber"B" button pressed.
Xnumbernumber"X" button pressed.
Ynumbernumber"Y" button pressed.
DLnumbernumberD-pad left pressed.
DRnumbernumberD-pad right pressed.
DUnumbernumberD-pad up pressed.
DDnumbernumberD-pad down pressed.
Startnumbernumber"Start" center button pressed.
Backnumbernumber"Back" center button pressed.
LBnumbernumberLeft bumper button pressed.
RBnumbernumberRight bumper button pressed.
Sticks
LXnumbernumberLeft stick x-axis scale.
LYnumbernumberLeft stick y-axis scale.
RXnumbernumberRight stick x-axis scale.
RYnumbernumberRight stick y-axis scale.
LSnumbernumberLeft stick button pressed.
RSnumbernumberRight stick button pressed.
LSTouchnumbernumberLeft stick is touched.
RSTouchnumbernumberRight stick is touched.
Triggers
LTnumbernumberLeft trigger scale.
RTnumbernumberRight trigger scale.
LTClicknumbernumberLeft trigger click.
RTClicknumbernumberRight trigger click.
LeftGripnumbernumberLeft grip scale.
RightGripnumbernumberRight grip scale.
LeftGripTouchnumbernumberLeft grip is touched.
RightGripTouchnumbernumberRight grip is touched.
Aliases, PlayStation Style Names
CrossnumbernumberAlias for A.
CirclenumbernumberAlias for B.
SquarenumbernumberAlias for X.
TrianglenumbernumberAlias for Y.
LeftnumbernumberAlias for DL.
RightnumbernumberAlias for DR.
UpnumbernumberAlias for DU.
DownnumbernumberAlias for DD.
SelectnumbernumberAlias for Back.
L1numbernumberAlias for LB.
R1numbernumberAlias for RB.
L3numbernumberAlias for LS.
R3numbernumberAlias for RS.
L2numbernumberAlias for LT.
R2numbernumberAlias for RT.
Finger Abstractions
LeftPrimaryThumbnumbernumberLeft primary thumb button pressed.
LeftSecondaryThumbnumbernumberLeft secondary thumb button pressed.
RightPrimaryThumbnumbernumberRight primary thumb button pressed.
RightSecondaryThumbnumbernumberRight secondary thumb button pressed.
LeftPrimaryThumbTouchnumbernumberLeft thumb touching primary thumb button.
LeftSecondaryThumbTouchnumbernumberLeft thumb touching secondary thumb button.
LeftThumbUpnumbernumberLeft thumb not touching primary or secondary thumb buttons.
RightPrimaryThumbTouchnumbernumberRight thumb touching primary thumb button.
RightSecondaryThumbTouchnumbernumberRight thumb touching secondary thumb button.
RightThumbUpnumbernumberRight thumb not touching primary or secondary thumb buttons.
LeftPrimaryIndexnumbernumberLeft primary index control pressed. To Do: Implement this for current controllers.
LeftSecondaryIndexnumbernumberLeft secondary index control pressed.
RightPrimaryIndexnumbernumberRight primary index control pressed. To Do: Implement this for current controllers.
RightSecondaryIndexnumbernumberRight secondary index control pressed.
LeftPrimaryIndexTouchnumbernumberLeft index finger is touching primary index finger control.
LeftSecondaryIndexTouchnumbernumberLeft index finger is touching secondary index finger control.
LeftIndexPointnumbernumberLeft index finger is pointing, not touching primary or secondary index finger controls.
RightPrimaryIndexTouchnumbernumberRight index finger is touching primary index finger control.
RightSecondaryIndexTouchnumbernumberRight index finger is touching secondary index finger control.
RightIndexPointnumbernumberRight index finger is pointing, not touching primary or secondary index finger controls.
Avatar Skeleton
Hipsnumber - Pose - Hips pose.
Spine2number - Pose - Spine2 pose.
Headnumber - Pose - Head pose.
LeftArmnumber - Pose - Left arm pose.
RightArmnumber - Pose - Right arm pose
LeftHandnumber - Pose - Left hand pose.
LeftHandThumb1number - Pose - Left thumb 1 finger joint pose.
LeftHandThumb2number - Pose - Left thumb 2 finger joint pose.
LeftHandThumb3number - Pose - Left thumb 3 finger joint pose.
LeftHandThumb4number - Pose - Left thumb 4 finger joint pose.
LeftHandIndex1number - Pose - Left index 1 finger joint pose.
LeftHandIndex2number - Pose - Left index 2 finger joint pose.
LeftHandIndex3number - Pose - Left index 3 finger joint pose.
LeftHandIndex4number - Pose - Left index 4 finger joint pose.
LeftHandMiddle1number - Pose - Left middle 1 finger joint pose.
LeftHandMiddle2number - Pose - Left middle 2 finger joint pose.
LeftHandMiddle3number - Pose - Left middle 3 finger joint pose.
LeftHandMiddle4number - Pose - Left middle 4 finger joint pose.
LeftHandRing1number - Pose - Left ring 1 finger joint pose.
LeftHandRing2number - Pose - Left ring 2 finger joint pose.
LeftHandRing3number - Pose - Left ring 3 finger joint pose.
LeftHandRing4number - Pose - Left ring 4 finger joint pose.
LeftHandPinky1number - Pose - Left pinky 1 finger joint pose.
LeftHandPinky2number - Pose - Left pinky 2 finger joint pose.
LeftHandPinky3number - Pose - Left pinky 3 finger joint pose.
LeftHandPinky4number - Pose - Left pinky 4 finger joint pose.
RightHandnumber - Pose - Right hand pose.
RightHandThumb1number - Pose - Right thumb 1 finger joint pose.
RightHandThumb2number - Pose - Right thumb 2 finger joint pose.
RightHandThumb3number - Pose - Right thumb 3 finger joint pose.
RightHandThumb4number - Pose - Right thumb 4 finger joint pose.
RightHandIndex1number - Pose - Right index 1 finger joint pose.
RightHandIndex2number - Pose - Right index 2 finger joint pose.
RightHandIndex3number - Pose - Right index 3 finger joint pose.
RightHandIndex4number - Pose - Right index 4 finger joint pose.
RightHandMiddle1number - Pose - Right middle 1 finger joint pose.
RightHandMiddle2number - Pose - Right middle 2 finger joint pose.
RightHandMiddle3number - Pose - Right middle 3 finger joint pose.
RightHandMiddle4number - Pose - Right middle 4 finger joint pose.
RightHandRing1number - Pose - Right ring 1 finger joint pose.
RightHandRing2number - Pose - Right ring 2 finger joint pose.
RightHandRing3number - Pose - Right ring 3 finger joint pose.
RightHandRing4number - Pose - Right ring 4 finger joint pose.
RightHandPinky1number - Pose - Right pinky 1 finger joint pose.
RightHandPinky2number - Pose - Right pinky 2 finger joint pose.
RightHandPinky3number - Pose - Right pinky 3 finger joint pose.
RightHandPinky4number - Pose - Right pinky 4 finger joint pose.
LeftFootnumber - Pose - Left foot pose.
RightFootnumber - Pose - Right foot pose.
Trackers
TrackedObject00number - Pose - Tracker 0 pose.
TrackedObject01number - Pose - Tracker 1 pose.
TrackedObject02number - Pose - Tracker 2 pose.
TrackedObject03number - Pose - Tracker 3 pose.
TrackedObject04number - Pose - Tracker 4 pose.
TrackedObject05number - Pose - Tracker 5 pose.
TrackedObject06number - Pose - Tracker 6 pose.
TrackedObject07number - Pose - Tracker 7 pose.
TrackedObject08number - Pose - Tracker 8 pose.
TrackedObject09number - Pose - Tracker 9 pose.
TrackedObject10number - Pose - Tracker 10 pose.
TrackedObject11number - Pose - Tracker 11 pose.
TrackedObject12number - Pose - Tracker 12 pose.
TrackedObject13number - Pose - Tracker 13 pose.
TrackedObject14number - Pose - Tracker 14 pose.
TrackedObject15number - Pose - Tracker 15 pose.
-
-
-
-
- \ No newline at end of file diff --git a/tools/jsdoc/gravPrep-Explore.js b/tools/jsdoc/gravPrep-Explore.js index c8fea0a4df..6e58bea51f 100644 --- a/tools/jsdoc/gravPrep-Explore.js +++ b/tools/jsdoc/gravPrep-Explore.js @@ -7,6 +7,16 @@ const rimraf = require('rimraf'); const dedent = require('dedent-js'); +// Arg Vars + const copyLocal = process.argv[2]; + console.log("copyLocal:", copyLocal); + let targetTemplateDirectory = '' + let targetMDDirectory = '' + if (copyLocal){ + targetTemplateDirectory = process.argv[3]; + targetMDDirectory = process.argv[4];; + } + // Required directories let dir_out = path.join(__dirname, 'out'); @@ -19,11 +29,7 @@ let dir_md_objects = path.join(dir_md, '02.Objects'); let dir_md_namespaces = path.join(dir_md, '01.Namespaces'); let dir_md_globals = path.join(dir_md, '03.Globals'); - -// Target Copy Directories - let targetTemplateDirectory = "D:/ROLC/Organize/O_Projects/Hifi/Docs/hifi-docs-grav/user/themes/learn2/"; - let targetMDDirectory = "D:/ROLC/Organize/O_Projects/Hifi/Docs/hifi-docs-grav-content/"; - + // Array to itterate over and create if doesn't exist let dirArray = [dir_grav, dir_css, dir_js, dir_template, dir_md, dir_md_objects, dir_md_namespaces, dir_md_globals]; @@ -50,18 +56,22 @@ const html_reg_brRemove = /
[\s\S]+?
/; const html_reg_subsectionEdit = /()([\s\S]*?)(<\/h.>)/g; const html_reg_subsectionEdit_replace = '

$2

'; + const html_reg_propertiesHeaderEdit = '

Properties:

'; + const html_reg_propertiesHeaderEdit_Replace = '

Properties

'; const html_reg_typeEdit = /(
Returns[\s\S]*?Type)(<\/dt[\s\S]*?type">)(.*?)(<\/span><\/dd>[\s\S]*?<\/dl>)/g; const html_reg_typeEdit_replace = '$1: $3' const html_reg_methodSize = /()(<\/h4>)/g; const html_reg_methodSize_replace = ''; + const html_reg_typeDefSize = /()/g; + const html_reg_typeDefSize_replace = ''; const html_reg_returnSize = /
Returns:<\/h5>/g; const html_reg_returnSize_replace = '
Returns:<\/h6>'; const html_reg_findByName = '
Methods
` + const html_reg_findByTitle = '

'; + const html_reg_findByMethod = `

Methods

`; const html_reg_findByArticleClose = `` const html_reg_signalTitle = `

Signals

`; - - + const html_reg_typeDefinitonsTitle = `

Type Definitions

`; // Mapping for GroupNames and Members let groupNameMemberMap = { @@ -71,6 +81,7 @@ } // Procedural functions + // Create the actual MD file function createMD(title, directory, needsDir, isGlobal){ let mdSource = makeMdSource(title); @@ -84,14 +95,14 @@ fs.writeFileSync(destinationMDFile, mdSource); } + // Create the actual Template file function createTemplate(title,content){ - // console.log("content:", content) let twigBasePartial = makeTwigFile(content); - // console.log("TWIG BASE:", twigBasePartial) let destinationFile = path.join(dir_template, `API_${title}.html.twig`); fs.writeFileSync(destinationFile, twigBasePartial); } + // Copy file from source to target - used for recurssive call function copyFileSync( source, target ) { let targetFile = target; @@ -108,6 +119,7 @@ fs.writeFileSync(targetFile, fs.readFileSync(source)); } + // Copy file from source to target function copyFolderRecursiveSync( source, target ) { var files = []; @@ -131,6 +143,7 @@ } } + // Clean up the Html function prepareHtml(source){ let htmlBefore = fs.readFileSync(source, {encoding: 'utf8'}); let htmlAfter = htmlclean(htmlBefore); @@ -138,6 +151,7 @@ return cheerio.load(htmlAfterPretty); } + // Base file for MD's function makeMdSource(title){ return dedent( ` @@ -152,6 +166,7 @@ ) } + // Base file for Templates function makeTwigFile(contentHtml){ return dedent( ` @@ -185,15 +200,15 @@ ) } + // Handle NameSpace Group function handleNamespace(title, content){ - // console.log("Content from namespcae:", content) groupNameMemberMap["Namespaces"].push(title); let destinationDirectory = path.join(map_dir_md["Namespace"], title); - createMD(title, destinationDirectory, true); createTemplate(title, content); } + // Handle Class Group function handleClass(title, content){ groupNameMemberMap["Objects"].push(title); let destinationDirectory = path.join(map_dir_md["Class"], title); @@ -201,18 +216,19 @@ let formatedHtml = content .replace(html_reg_objectSpanNew,"") - .replace(html_reg_brRemove, ""); createTemplate(title, formatedHtml); } + // Handle Global Group function handleGlobal(title, content){ groupNameMemberMap["Globals"].push("Globals"); createMD("Globals", map_dir_md["Global"], false, true); createTemplate("Globals", content); } + // Handle Group TOCs function makeGroupTOC(group){ - let mappedGroup; + let mappedGroup; if (!Array.isArray(group)){ mappedGroup = groupNameMemberMap[group]; } else { @@ -234,6 +250,112 @@ return htmlGroup.join("\n"); } + // Handle Class TOCS + function makeClassTOC(group){ + let linkArray = [] + group.forEach( item => { + linkArray.push(`
${item.type}
`) + item.array.forEach( link => { + linkArray.push(``) + }) + }) + return linkArray.join("\n"); + } + + // Extract IDS for TOC + function extractIDs(groupToExtract){ + let firstLine = ""; + let id = ""; + let extractedIDs = []; + groupToExtract.forEach((item)=>{ + firstLine = item.split("\n")[0]; + try { + id = firstLine.split('id="')[1].split(`"`)[0]; + } catch (e){ + + } + extractedIDs.push(id) + }) + return extractedIDs; + } + + // Helper for splitting up html + // Takes: Content to split, SearchTerm to Split by, term to End Splitting By, and negate Term object array + // negateTermObject { term: "", distance: "3"} + // Returns: [newContent after Split, Array of extracted ] + function splitBy(content, searchTerm, endSplitTerm){ + let foundArray = []; + let curIndex = -1; + let afterCurSearchIndex = -1 + let negateTermIndex = -1; + let nextIndex = 0; + let findbyNameLength = searchTerm.length; + let curfoundArrayIndex = 0; + let curEndSplitTermIndex = -1; + do { + curEndSplitTermIndex = content.indexOf(endSplitTerm); + curIndex = content.indexOf(searchTerm); + afterCurSearchIndex = curIndex+findbyNameLength; + nextIndex = content.indexOf(searchTerm,afterCurSearchIndex); + if (nextIndex === -1){ + nextIndex = curEndSplitTermIndex; + } + foundArray.push(content.slice(curIndex, nextIndex)) + // remove that content + content = content.replace(foundArray[curfoundArrayIndex], ""); + curfoundArrayIndex++; + } while (curIndex > -1) + return [content, foundArray]; + } + + // Split the signals, methods, and typeDefs [Might make this more generic] + function splitMethodsSignalsAndTypeDefs(allItemToSplit){ + let methodArray = []; + let signalArray = []; + let typeDefArray = []; + console.log(allItemToSplit.length); + allItemToSplit.forEach( method => { + firstLine = method.split("\n")[0]; + if (firstLine.indexOf("Signal") > -1){ + console.log("Found signal") + signalArray.push(method); + } else if (firstLine.indexOf("span") > -1) { + // console.log("Found method") + methodArray.push(method); + } else { + // console.log("Found typeDef") + + typeDefArray.push(method); + } + }) + return [methodArray, signalArray, typeDefArray]; + } + + // Helper to append + // Takes content, the search term to appendTo, the content to append, + // and bool if the append is before the found area + function append(content, searchTermToAppendto, contentToAppend, appendBefore){ + let contentArray = content.split("\n"); + let foundIndex = findArrayTrim(contentArray, searchTermToAppendto) + foundIndex = appendBefore ? foundIndex : foundIndex +1 + + contentArray.splice(foundIndex,0,contentToAppend) + return contentArray.join("\n") + } + + // Helper function for append + function findArrayTrim(array, searchTerm){ + var index = -1; + for (var i = 0; i < array.length; i++){ + index = array[i].trim().indexOf(searchTerm.trim()); + if (index > -1){ + return i + } + } + return index; + } + + // Remove grav directory if exists to make sure old files aren't kept if (fs.existsSync(dir_grav)){ console.log("dir_grav exists"); @@ -253,7 +375,8 @@ }) // Read jsdoc output folder and process html files - let curSource = path.join(dir_out, "AvatarInputs.html"); + let curSource = path.join(dir_out, "Controller.html"); + if (path.extname(curSource) == ".html" && path.basename(curSource, '.html') !== "index") { // Clean up the html source let loadedHtml = prepareHtml(curSource); @@ -261,26 +384,12 @@ let splitTitle = loadedHtml("title").text().split(": "); let groupName = splitTitle[1]; let htmlTitle = splitTitle.pop(); - // console.log("first loaded:", loadedHtml("#main").html()) let mainDiv = loadedHtml("#main") - // let signatures = mainDiv.find(".name") - // Exploring Extractions - // let array = mainDiv.find('h4').toArray(); - - // console.log(array[2]) - // var reducedArray = array.reduce((prev, cur) => { - // try { - // // console.log(cur.children[1]); - // prev.push(cur.children[1].data); - // } catch(e) { - - // } - // return prev; - // }, []) - // console.log("name", reducedArray.length); - - // regex edits + let methodIDs = []; + let signalIDs = []; + let typeDefIDs = []; + // Basic Regex HTML edits let mainDivRegexed = mainDiv.html() .replace(html_reg_static,"") .replace(html_reg_title,"") @@ -288,96 +397,74 @@ .replace(html_reg_htmlExt,"") .replace(html_reg_brRemove, "") .replace(html_reg_subsectionEdit, html_reg_subsectionEdit_replace) + .replace(html_reg_propertiesHeaderEdit, html_reg_propertiesHeaderEdit_Replace) .replace(html_reg_typeEdit, html_reg_typeEdit_replace) .replace(html_reg_returnSize, html_reg_returnSize_replace) - .replace(html_reg_methodSize, html_reg_methodSize_replace); - - function splitBy(content, searchTerm){ - let foundArray = []; - let curIndex = -1; - let nextIndex = 0; - let findbyNameLength = searchTerm.length; - let curfoundArrayIndex = 0; - let curArticleCloseIndex = -1; - do { - curArticleCloseIndex = content.indexOf(""); - curIndex = content.indexOf(searchTerm); - nextIndex = content.indexOf(searchTerm,curIndex+findbyNameLength); - if (nextIndex === -1){ - nextIndex = curArticleCloseIndex - } - foundArray.push(content.slice(curIndex, nextIndex)) - content = content.replace(foundArray[curfoundArrayIndex], ""); - curfoundArrayIndex++; - } while (curIndex > -1) - return [content, foundArray]; + .replace(html_reg_methodSize, html_reg_methodSize_replace) + .replace(html_reg_typeDefSize, html_reg_typeDefSize_replace) + .replace(html_reg_typeDefinitonsTitle, ""); + + + // Further HTML Manipulation + // Split HTML by Each named entry + let contentSplitArray = splitBy(mainDivRegexed, html_reg_findByName, html_reg_findByArticleClose); + // Create a reference to the current content after split and the split functions + let currentContent = contentSplitArray[0]; + // Create references to the split methods and signals + let splitMethodsSignalsAndTypeDefs = splitMethodsSignalsAndTypeDefs(contentSplitArray[1]); + let splitMethods = splitMethodsSignalsAndTypeDefs[0]; + let splitSignals = splitMethodsSignalsAndTypeDefs[1]; + let splitTypeDefintions = splitMethodsSignalsAndTypeDefs[2]; + let splitMethodIDS = extractIDs(splitMethods); + let splitSignalIDS = extractIDs(splitSignals); + let splitTypeDefinitionIDS = extractIDs(splitTypeDefintions); + let classTOC = makeClassTOC([ + {type: "Methods", array: splitMethodIDS}, + {type: "Signals", array: splitSignalIDS}, + {type: "Type Definitions", array: splitTypeDefinitionIDS} + ]); + + // Append Signals and Methods to the current Content + currentContent = append(currentContent, html_reg_findByTitle, classTOC); + currentContent = append(currentContent, html_reg_findByMethod, splitMethods.join('\n')); + if (splitSignals.length > 0) { + // Add the Signals header to the Signals HTML + splitSignals.unshift(html_reg_signalTitle) + currentContent = append(currentContent, html_reg_findByArticleClose, splitSignals.join('\n'),true); + } + if (splitTypeDefintions.length > 0) { + // Add the Signals header to the Signals HTML + splitTypeDefintions.unshift(html_reg_typeDefinitonsTitle) + currentContent = append(currentContent, html_reg_findByArticleClose, splitTypeDefintions.join('\n'), true); } - function extractSignals(methodArray){ - let newMethodArray = []; - let signalArray = []; - methodArray.forEach( method => { - method.indexOf("Signal") > -1 - ? signalArray.push(method) - : newMethodArray.push(method); - }) - return [newMethodArray, signalArray] - } - - function append(content, areaToAppendTo, contentToAppend, appendBefore){ - var contentArray = content.split("\n"); - // console.log("contentArray:", contentArray) - // console.log("areaToAppendTo:", areaToAppendTo) - var foundIndex = findArrayTrim(contentArray, areaToAppendTo) - console.log(foundIndex) - foundIndex = appendBefore ? foundIndex : foundIndex +1 - - contentArray.splice(foundIndex,0,contentToAppend) - return contentArray.join("\n") - } - - function findArrayTrim(array, searchTerm){ - var index = -1; - for (var i = 0; i < array.length; i++){ - index = array[i].trim().indexOf(searchTerm.trim()); - if (index > -1){ - return i - } - } - return index; - } - - var nameArray = splitBy(mainDivRegexed, html_reg_findByName); - let currentContent = nameArray[0]; - let separatedMethods = extractSignals(nameArray[1]); - let methodsToAppend = separatedMethods[0].join("\n"); - separatedMethods[1].unshift(html_reg_signalTitle) - let signalsToAppend = separatedMethods[1].join("\n"); - currentContent = append(currentContent, html_reg_findByMethod, methodsToAppend); - mainDivRegexed = append(currentContent, html_reg_findByArticleClose, signalsToAppend,true); - - // console.log(mainDivRegexed); + // Final Pretty Content + currentContent = htmlclean(currentContent); + currentContent = pretty(currentContent); // Handle Unique Categories switch(groupName){ case "Namespace": - handleNamespace(htmlTitle, mainDivRegexed); + handleNamespace(htmlTitle, currentContent); break; case "Class": - handleClass(htmlTitle, mainDivRegexed); + handleClass(htmlTitle, currentContent); break; case "Global": - handleGlobal(htmlTitle, mainDivRegexed); + handleGlobal(htmlTitle, currentContent); break; default: console.log(`Case not handled for ${groupName}`); } + } // Create the base Templates after processing individual files - createTemplate("API-Reference", makeGroupTOC(["Namespaces", "Objects", "Globals"])); - createTemplate("Namespaces", makeGroupTOC("Namespaces")); - createTemplate("Objects", makeGroupTOC("Objects")); +createTemplate("API-Reference", makeGroupTOC(["Namespaces", "Objects", "Globals"])); +createTemplate("Namespaces", makeGroupTOC("Namespaces")); +createTemplate("Objects", makeGroupTOC("Objects")); -// Copy files to the Twig Directory +// Copy the files to the target Directories if Local +if (copyLocal){ + // Copy files to the Twig Directory let templateFiles = fs.readdirSync(path.resolve(targetTemplateDirectory)); // Remove Existing API files templateFiles.forEach(function(file){ @@ -389,10 +476,11 @@ }) copyFolderRecursiveSync(dir_template, targetTemplateDirectory); -// Copy files to the Md Directory + // Copy files to the Md Directory let baseMdRefDir = path.join(targetMDDirectory,"06.api-reference"); // Remove existing MD directory if (fs.existsSync(baseMdRefDir)){ rimraf.sync(baseMdRefDir); } copyFolderRecursiveSync(dir_md, targetMDDirectory); +} diff --git a/tools/jsdoc/gravPrep.js b/tools/jsdoc/gravPrep.js index 9aecf1af0f..adb1625e9a 100644 --- a/tools/jsdoc/gravPrep.js +++ b/tools/jsdoc/gravPrep.js @@ -62,12 +62,17 @@ const html_reg_typeEdit_replace = '$1: $3' const html_reg_methodSize = /()(<\/h4>)/g; const html_reg_methodSize_replace = ''; + const html_reg_typeDefSize = /()/g; + const html_reg_typeDefSize_replace = ''; const html_reg_returnSize = /
Returns:<\/h5>/g; const html_reg_returnSize_replace = '
Returns:<\/h6>'; const html_reg_findByName = '
Methods
` + const html_reg_findByTitle = '

'; + const html_reg_findByMethod = `

Methods

`; const html_reg_findByArticleClose = `` const html_reg_signalTitle = `

Signals

`; + const html_reg_typeDefinitonsTitle = `

Type Definitions

`; + const html_reg_firstTableClose = ``; // Mapping for GroupNames and Members @@ -136,7 +141,7 @@ } else { copyFileSync( curSource, targetFolder ); } - } ); + }); } } @@ -247,23 +252,55 @@ return htmlGroup.join("\n"); } + // Handle Class TOCS + function makeClassTOC(group){ + let linkArray = [] + group.forEach( item => { + linkArray.push(`
${item.type}
`) + item.array.forEach( link => { + linkArray.push(``) + }) + linkArray.push("
"); + }) + return linkArray.join("\n"); + } + + // Extract IDS for TOC + function extractIDs(groupToExtract){ + let firstLine = ""; + let id = ""; + let extractedIDs = []; + groupToExtract.forEach((item)=>{ + firstLine = item.split("\n")[0]; + try { + id = firstLine.split('id="')[1].split(`"`)[0]; + } catch (e){ + + } + extractedIDs.push(id) + }) + return extractedIDs; + } + // Helper for splitting up html // Takes: Content to split, SearchTerm to Split by, and term to End Splitting By // Returns: [newContent after Split, Array of extracted ] function splitBy(content, searchTerm, endSplitTerm){ let foundArray = []; let curIndex = -1; + let afterCurSearchIndex = -1 + let negateTermIndex = -1; let nextIndex = 0; let findbyNameLength = searchTerm.length; let curfoundArrayIndex = 0; let curEndSplitTermIndex = -1; do { - curEndSplitTermIndex = content.indexOf(endSplitTerm); + curEndSplitTermIndex = content.indexOf(endSplitTerm); curIndex = content.indexOf(searchTerm); - // Search after initial index + length of searchterm - nextIndex = content.indexOf(searchTerm,curIndex+findbyNameLength); + afterCurSearchIndex = curIndex+findbyNameLength; + nextIndex = content.indexOf(searchTerm,afterCurSearchIndex); if (nextIndex === -1){ - nextIndex = curEndSplitTermIndex + nextIndex = curEndSplitTermIndex; } foundArray.push(content.slice(curIndex, nextIndex)) // remove that content @@ -274,15 +311,27 @@ } // Split the signals and methods [Might make this more generic] - function splitMethodsAndSignals(methodArray){ - let newMethodArray = []; + function splitMethodsSignalsAndTypeDefs(allItemToSplit){ + let methodArray = []; let signalArray = []; - methodArray.forEach( method => { - method.indexOf("Signal") > -1 - ? signalArray.push(method) - : newMethodArray.push(method);2 + let typeDefArray = []; + // console.log(allItemToSplit.length); + allItemToSplit.forEach( method => { + firstLine = method.split("\n")[0]; + if (firstLine.indexOf("Signal") > -1){ + // console.log("Found signal") + signalArray.push(method); + } else if (firstLine.indexOf("span") > -1) { + // console.log("Found method") + methodArray.push(method); + } else { + // console.log("Found typeDef") + if(firstLine.trim() !== ""){ + typeDefArray.push(method); + } + } }) - return [newMethodArray, signalArray] + return [methodArray, signalArray, typeDefArray]; } // Helper to append @@ -337,51 +386,74 @@ let loadedHtml = prepareHtml(curSource); // Extract the title, group name, and the main div - let splitTitle = loadedHtml("title").text().split(": "); - let groupName = splitTitle[1]; - let htmlTitle = splitTitle.pop(); - let mainDiv = loadedHtml("#main") - - // Basic Regex HTML edits - let mainDivRegexed = mainDiv.html() - .replace(html_reg_static,"") - .replace(html_reg_title,"") - .replace(html_reg_objectHeader,"") - .replace(html_reg_htmlExt,"") - .replace(html_reg_brRemove, "") - .replace(html_reg_subsectionEdit, html_reg_subsectionEdit_replace) - .replace(html_reg_propertiesHeaderEdit, html_reg_propertiesHeaderEdit_Replace) - .replace(html_reg_typeEdit, html_reg_typeEdit_replace) - .replace(html_reg_returnSize, html_reg_returnSize_replace) - .replace(html_reg_methodSize, html_reg_methodSize_replace); - - // Further HTML Manipulation - // Split HTML by Each named entry - if (path.basename(curSource, '.html') === "Controller"){ - var cleanup = htmlclean(mainDivRegexed); - cleanup = pretty(cleanup) - fs.writeFileSync(__dirname+'/Examine/ControllerExamine', cleanup); - } + let splitTitle = loadedHtml("title").text().split(": "); + let groupName = splitTitle[1]; + let htmlTitle = splitTitle.pop(); + let mainDiv = loadedHtml("#main") - let contentSplitArray = splitBy(mainDivRegexed, html_reg_findByName); - // Create a reference to the current content after split and the split functions - let currentContent = contentSplitArray[0]; - // Create references to the split methods and signals - let splitSignalsAndMethods = splitMethodsAndSignals(contentSplitArray[1]); - let splitMethods = splitSignalsAndMethods[0]; - let splitSignals = splitSignalsAndMethods[1]; - // Append Signals and Methods to the current Content - currentContent = append(currentContent, html_reg_findByMethod, splitMethods.join('\n')); - console.log(path.basename(curSource, '.html'), splitSignals.length); - if (splitSignals.length > 0) { - // Add the Signals header to the Signals HTML - splitSignals.unshift(html_reg_signalTitle) - currentContent = append(currentContent, html_reg_findByArticleClose, splitSignals.join('\n',true)); - } + let methodIDs = []; + let signalIDs = []; + let typeDefIDs = []; + // Basic Regex HTML edits + let mainDivRegexed = mainDiv.html() + .replace(html_reg_static,"") + .replace(html_reg_title,"") + .replace(html_reg_objectHeader,"") + .replace(html_reg_htmlExt,"") + .replace(html_reg_brRemove, "") + .replace(html_reg_subsectionEdit, html_reg_subsectionEdit_replace) + .replace(html_reg_propertiesHeaderEdit, html_reg_propertiesHeaderEdit_Replace) + .replace(html_reg_typeEdit, html_reg_typeEdit_replace) + .replace(html_reg_returnSize, html_reg_returnSize_replace) + .replace(html_reg_methodSize, html_reg_methodSize_replace) + .replace(html_reg_typeDefSize, html_reg_typeDefSize_replace) + .replace(html_reg_typeDefinitonsTitle, "") + .replace(html_reg_findByMethod, ""); + + // Further HTML Manipulation + // Split HTML by Each named entry + let contentSplitArray = splitBy(mainDivRegexed, html_reg_findByName, html_reg_findByArticleClose); + // Create a reference to the current content after split and the split functions + let currentContent = contentSplitArray[0]; + // Create references to the split methods and signals + let processedMethodsSignalsAndTypeDefs = splitMethodsSignalsAndTypeDefs(contentSplitArray[1]); + let splitMethods = processedMethodsSignalsAndTypeDefs[0]; + let splitSignals = processedMethodsSignalsAndTypeDefs[1]; + let splitTypeDefintions = processedMethodsSignalsAndTypeDefs[2]; + let splitMethodIDS = extractIDs(splitMethods); + let splitSignalIDS = extractIDs(splitSignals); + let splitTypeDefinitionIDS = extractIDs(splitTypeDefintions); + let arrayToPassToClassToc = []; - // Final Pretty Content - currentContent = htmlclean(currentContent); - currentContent = pretty(currentContent); + // Append Signals and Methods to the current Content + if (splitMethods.length > 0) { + arrayToPassToClassToc.push({type: "Methods", array: splitMethodIDS}); + // Add the Signals header to the Signals HTML + splitMethods.unshift(html_reg_findByMethod) + currentContent = append(currentContent, html_reg_findByArticleClose, splitMethods.join('\n'), true); + } + if (splitSignals.length > 0) { + arrayToPassToClassToc.push({type: "Signals", array: splitSignalIDS}); + // Add the Signals header to the Signals HTML + splitSignals.unshift(html_reg_signalTitle) + currentContent = append(currentContent, html_reg_findByArticleClose, splitSignals.join('\n'),true); + } + if (splitTypeDefintions.length > 0) { + + // console.log(path.basename(curSource, '.html')); + // console.log(splitTypeDefintions.length); + arrayToPassToClassToc.push({type: "Type Definitions", array: splitTypeDefinitionIDS}); + // Add the Signals header to the Signals HTML + splitTypeDefintions.unshift(html_reg_typeDefinitonsTitle) + currentContent = append(currentContent, html_reg_findByArticleClose, splitTypeDefintions.join('\n'), true); + } + + let classTOC = makeClassTOC(arrayToPassToClassToc); + currentContent = append(currentContent, html_reg_firstTableClose, classTOC); + + // Final Pretty Content + currentContent = htmlclean(currentContent); + currentContent = pretty(currentContent); // Handle Unique Categories switch(groupName){ From 22065ad611d38612e0883a4d310087dccb7cab2b Mon Sep 17 00:00:00 2001 From: milad nazeri Date: Sun, 6 May 2018 21:39:37 -0700 Subject: [PATCH 023/300] Links fixed --- tools/jsdoc/Check.js | 97 +- tools/jsdoc/Links-Untouched | 1484 +++++++++++++++++++++++++++++++ tools/jsdoc/badLinks | 0 tools/jsdoc/gravPrep-Explore.js | 831 ++++++++--------- tools/jsdoc/gravPrep.js | 178 +++- tools/jsdoc/package.json | 1 + tools/jsdoc/warningLog | 0 7 files changed, 2144 insertions(+), 447 deletions(-) create mode 100644 tools/jsdoc/Links-Untouched create mode 100644 tools/jsdoc/badLinks create mode 100644 tools/jsdoc/warningLog diff --git a/tools/jsdoc/Check.js b/tools/jsdoc/Check.js index b7e0fb1298..af449dafc1 100644 --- a/tools/jsdoc/Check.js +++ b/tools/jsdoc/Check.js @@ -1,5 +1,71 @@ var fs = require('fs'); var path = require('path'); +var request = require('request'); + +var badLinks = []; +var baseLink = `http://localhost:8000/api-reference/`; +var linkList = fs.readFileSync(__dirname + '/Links-Untouched','utf8').split('\n'); +console.log("link list", linkList); +// console.log("filtered List", JSON.stringify(filteredList)); +var linkHash = {}; + +var currentGroup; +linkList.forEach( link => { + link = link.trim() + console.log("link", link) + if (link.slice(-1) === ':'){ + currentGroup = link.slice(0, link.length-1); + // console.log("current Group: ", currentGroup); + linkHash[currentGroup] = {}; + } else { + if (!linkHash[currentGroup][link]){ + linkHash[currentGroup][link] = link; + } + } +}); + +// console.log("linkHash:", JSON.stringify(linkHash)) +var badLinks = []; + + +var stream = fs.createWriteStream("badLinks", {flags: 'a'}); +var linkReg = /="([\s\S]*?)"/g +var keys = Object.keys(linkHash); + +keys.forEach( key => { + for (var linkKey in linkHash[key]){ + var link = linkHash[key][linkKey]; + console.log("link", link); + var extractLink = link.split(`"`)[1]; + console.log("extractLink", extractLink) + if (!extractLink.indexOf('http') > -1){ + extractLink = baseLink + extractLink; + } + console.log("about to make a request for", extractLink) + setTimeout(function(){ + request.get(extractLink) + .on('response', response => { + if (response.statusCode(404)){ + console.log("found bad link") + console.log(JSON.stringify({file: key, link: extractLink})) + + // badLinks.push({file: key, link: link}) + stream.write(JSON.stringify({file: key, link: extractLink})); + } + }, 4000) + }) + + } + +}) +stream.end(); +// */ + +/* + +*/ + + function endsWith(path, exts) { var result = false; @@ -74,14 +140,19 @@ function parse() { // load entire file into a string var data = fs.readFileSync(pathDir, "utf8"); var fileName = path.basename(file); - var badJSDocWarnings = checkForBadJSDoc(data, fileName); - if (badJSDocWarnings.length > 0){ - warnings.push(badJSDocWarnings); - } - var badWordsList = checkForBadwordlist(data, fileName); - if (badWordsList){ - warnings.push(badWordsList); - } + // var badJSDocWarnings = checkForBadJSDoc(data, fileName); + // if (badJSDocWarnings.length > 0){ + // warnings.push(badJSDocWarnings); + // } + // var badWordsList = checkForBadwordlist(data, fileName); + // if (badWordsList){ + // warnings.push(badWordsList); + // } + // var dotDescriptionList = checkForDotDescription(data, fileName); + // if (dotDescriptionList.length > 0){ + // warnings.push(dotDescriptionList); + // } + } }); @@ -104,6 +175,16 @@ function checkForBadJSDoc(dataToSearch, file){ return warningList; } +function checkForDotDescription(dataToSearch, file){ + var warningList = []; + var reg = /@property {.+?\..+?}/g + var matches = dataToSearch.match(reg); + if (matches) { + warningList.push(new WarningObject(file, "dotDescription", matches)); + } + return warningList; +} + var badWordList = ["@params", "@return", "@bool"]; function checkForBadwordlist(dataToSearch, file){ diff --git a/tools/jsdoc/Links-Untouched b/tools/jsdoc/Links-Untouched new file mode 100644 index 0000000000..9da3060726 --- /dev/null +++ b/tools/jsdoc/Links-Untouched @@ -0,0 +1,1484 @@ +AnimationCache: + Resource +Resource +Resource +Resource +Resource +Resource +Assets: + Assets~downloadDataCallback +Assets~getAssetCallback +Assets~getMappingCallback +Assets~setMappingCallback +Assets~uploadDataCallback +AudioStats: + AudioStats.AudioStreamStats +AudioStats.AudioStreamStats +AudioStreamStats +AvatarManager: + Uuid +Uuid +Uuid +Uuid +PickRay +Uuid +Uuid +PickRay +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Vec3 +Uuid +Uuid +Uuid +Uuid +Camera: + Vec3 +Quat +ViewFrustum +Uuid +PickRay +PickRay +PickRay +PickRay +PickRay +Uuid +Uuid +Quat +Quat +Vec3 +Vec3 +Vec3 +Vec3 +Uuid +Quat +Vec3 +Clipboard: + Uuid +Vec3 +Vec3 +Uuid +Vec3 +Uuid +Controller: + MyAvatar.sessionUUID +RouteObject +keyboardMouse.json +standard.json +RouteObject +RouteObject +leapmotion.json +vive.json +KeyEvent +Controller +Controller +Pose +Pose +Pose +Pose +Rect +Rect +Controller +Vec2 +Vec2 +KeyEvent +KeyEvent +MappingObject +MappingObject +MouseEvent +MouseEvent +MouseEvent +MouseEvent +MappingObject +MappingObject +RouteObject +MappingObject +MappingObject +MappingObject +KeyEvent +Controller.Hardware.Keyboard +TouchEvent +TouchEvent +TouchEvent +WheelEvent +MappingObject +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +RouteObject +https://github.com/highfidelity/hifi/tree/master/interface/resources/controllers +Controller.Hardware-Application +Controller.Hardware-Keyboard +Controller.Hardware-OculusTouch +Controller.Hardware-Vive +RouteObject +RouteObject +RouteObject +Pose +Pose +Pose +RouteObject +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +MappingObject +https://github.com/highfidelity/hifi/tree/master/interface/resources/controllers +RouteObject +RouteObject +Pose +leapmotion.json +vive.json +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +Pose +DebugDraw: + Quat +Vec3 +Vec4 +Quat +Vec3 +Vec4 +Vec3 +Vec3 +Vec4 +Entities: + Uuid +Uuid.NULL +Vec3 +Vec3 +Vec3 +Vec3 +Uuid +Uuid +Uuid +Uuid +Uuid.NULL +Uuid +Uuid +Uuid +Vec3 +Uuid +Uuid +Uuid +Uuid +Uuid +PointerEvent +Uuid +PointerEvent +Uuid +Uuid +Collision +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Vec3 +Uuid +Uuid +Vec3 +Uuid +Uuid +Vec3 +Uuid +Uuid +Vec3 +Uuid +Uuid +Vec3 +Vec3 +Uuid +Uuid +ViewFrustum +Uuid +PickRay +PickRay +Uuid +Uuid +PickRay +PickRay +Uuid +Uuid +Quat +Uuid +Quat.IDENTITY +Quat +Vec3 +Uuid +Vec3.ZERO +Vec3 +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Picks +Quat +Uuid +Quat.IDENTITY +Quat +Vec3 +Uuid +Vec3.ZERO +Vec3 +Uuid +Entities~getMeshesCallback +Graphics +Uuid +Uuid +Entities~getServerScriptStatusCallback +Uuid +Picks +Uuid +PointerEvent +Uuid +PointerEvent +Uuid +PointerEvent +Uuid +PointerEvent +Uuid +Uuid +Uuid +Vec3 +Uuid +Vec3 +Vec3.ZERO +Vec3 +PointerEvent +Uuid +PointerEvent +Uuid +PointerEvent +PointerEvent +Uuid +PointerEvent +Uuid +PointerEvent +Uuid +Uuid +Entities~queryPropertyMetadataCallback +Uuid +Entities~queryPropertyMetadataCallback +Uuid +Uuid +PointerEvent +Uuid +PointerEvent +Uuid +PointerEvent +Uuid +PointerEvent +Uuid +PointerEvent +Uuid +PointerEvent +Uuid +PointerEvent +Uuid +PointerEvent +Uuid +PointerEvent +Uuid +Quat +Uuid +Vec3 +Uuid +Vec3 +Uuid +Uuid +Uuid.NULL +Picks +Uuid +Quat +Uuid +Quat +Uuid +Quat +Vec3 +Uuid +Vec3 +Uuid +Vec3 +Uuid +Vec3 +Uuid +Vec3 +Vec3 +Uuid +Vec3 +Vec3 +Uuid +Vec3 +Picks +Uuid +Uuid +Uuid +Vec3 +Uuid +Vec3 +Vec3.ZERO +Vec3 +Vec3 +Uuid +Vec3 +Vec3.ZERO +Vec3 +Uuid +Uuid +Vec3 +Uuid +Vec3 +Vec3.ZERO +Vec3 +ActionArguments-FarGrab +ActionArguments-Hold +ActionArguments-Offset +ActionArguments-Tractor +ActionArguments-TravelOriented +ActionArguments-Hinge +ActionArguments-Slider +ActionArguments-ConeTwist +ActionArguments-BallSocket +Vec3 +Uuid +Vec3 +Vec3 +Vec3 +Uuid +Vec3 +Vec3 +Vec3 +Quat +Uuid +Vec3 +Vec3 +Uuid +Vec3 +Vec3 +Uuid +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Uuid +Vec3 +Vec3 +Vec3 +Quat +Uuid +Vec3 +Entities.ActionArguments-FarGrab +Entities.ActionArguments-Hold +Entities.ActionArguments-Offset +Entities.ActionArguments-Tractor +Entities.ActionArguments-TravelOriented +Entities.ActionArguments-Hinge +ActionArguments-Slider +Entities.ActionArguments-ConeTwist +Entities.ActionArguments-BallSocket +Vec3 +Vec3 +Vec3 +Vec3 +Uuid +Uuid +Uuid.NULL +Uuid +keyLight +Vec3 +Quat +Vec3 +Vec3.ZERO +Vec3.ONE +Vec3.ZERO +Vec3.ONE +Vec3 +Vec3.ZERO +Vec3 +Vec3.ONE +Vec3 +Vec3 +Vec3 +Vec3.ZERO +Vec3 +Vec3.ZERO +SoundCache +Uuid +Uuid.NULL +Vec3 +Quat +Vec3 +Vec3 +Vec3 +AACube +EntityProperties-Box +EntityProperties-Light +EntityProperties-Line +EntityProperties-Material +EntityProperties-Model +EntityProperties-ParticleEffect +EntityProperties-PolyLine +EntityProperties-PolyVox +EntityProperties-Shape +EntityProperties-Sphere +EntityProperties-Text +EntityProperties-Web +EntityProperties-Zone +Vec3 +Color +Vec3 +Vec3 +Color +MaterialResource +MaterialResource +MaterialResource +Vec2 +Vec2 +MaterialResource +Vec3 +Color +ShapeType +Quat +Vec3 +Vec3 +Quat +Color +Color +Color +Color +ShapeType +Vec3 +Vec3 +Vec3 +Vec3 +Color +Volumes of Fun +library documentation +Vec3 +Vec3 +Uuid +Uuid.NULL +Uuid +Uuid.NULL +Uuid +Uuid.NULL +Uuid +Uuid.NULL +Uuid +Uuid.NULL +Uuid +Uuid.NULL +Vec3 +Color +Vec3 +Color +Color +Vec3 +Vec3 +ShapeType +EntityProperties-Box +EntityProperties-Light +EntityProperties-Line +EntityProperties-Material +EntityProperties-Model +EntityProperties-ParticleEffect +EntityProperties-PolyLine +EntityProperties-PolyVox +EntityProperties-Shape +EntityProperties-Sphere +EntityProperties-Text +EntityProperties-Web +EntityProperties-Zone +Color +Color +Color +Vec3 +PickRay +PickRay +Uuid +PickRay +Vec3 +Vec3 +BoxFace +Color +MeshProxy +MeshProxy +Graphics +Global: + ContactEventType +Uuid +Uuid +Vec3 +Vec3 +Vec3 +http://doc.qt.io/qt-5/qt#Key-enum +Vec3Color +RGBS +Vec3Color +RGBS +Vec3Color +RGBS +Vec3Color +RGBS +Material +Material +Vec3 +Vec3 +Vec2 +Vec3 +Vec3 +Vec3 +KeyboardModifiers +Vec3 +Quat +Vec3 +Vec3 +Quat +Vec3 +Quat +Vec3 +Vec2 +Vec3 +Vec3 +Vec3 +Quat +Graphics: + Vec3 +Vec3 +Vec3 +Vec2 +Material +Uuid +HMD: + Vec3 +Vec3.ZERO +Quat +Quat.IDENTITY +Uuid +Uuid +Uuid +Uuid +Vec3 +Vec3 +Vec3 +Vec3.ZERO +Vec3 +Vec2 +Vec3 +Vec2 +Vec2 +Vec2 +Vec2 +Vec2 +Vec2 +Vec2 +Vec3 +Vec2 +Vec3 +location: + Uuid +Uuid.NULL +Uuid +Vec3 +Quat +Quat.IDENTITY +Uuid +Uuid +Uuid +Settings +MappingObject: + Controller +RouteObject +MappingObject +MappingObject +MappingObject +MappingObject +RouteObject +RouteObject +Pose +RouteObject +RouteObject +RouteObject +RouteObject +Pose +RouteObject +RouteObject +RouteObject +RouteObject +RouteObject +RouteObject +RouteObject +RouteObject +RouteObject +RouteObject +Menu: + KeyEvent +KeyEvent +MeshProxy: + Graphics +Graphics +Vec3 +Graphics +Vec3 +Messages: + Uuid +Uuid +ModelCache: + Resource +Resource +Resource +Resource +MyAvatar: + Vec3 +Vec3 +Vec3 +Quat +Vec3 +Vec3.ZERO +Vec3 +Vec3.ZERO +Vec3 +Vec3.ZERO +Vec3 +Vec3.ZERO +Pose +Pose +Pose +Pose +Uuid +Vec3 +Vec3 +Vec3 +Quat +Quat +Vec3 +Vec3 +Uuid +Vec3 +Entities +Vec3 +Quat +Uuid +Collision +Quat +Quat +Vec3 +Vec3 +Quat +Quat +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Quat +Quat +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Quat +Avatar Standards +Quat +Quat +Avatar Standards +Quat +Quat +Quat +Vec3 +Avatar Standards +Vec3 +Vec3 +Avatar Standards +Vec3 +Vec3 +Vec3 +Pose +Pose +Vec3 +Vec3.ZERO +Vec3 +Pose +Pose +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Quat +Quat +Uuid +Uuid +Vec3 +Vec3 +Pose +Pose +Vec3 +Vec3.ZERO +Vec3 +Pose +Pose +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Quat +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Quat +Quat +Quat +Avatar Standards +Avatar Standards +Vec3 +Quat +Vec3 +Quat +Vec3 +Quat +Vec3 +Quat +Vec3 +Quat +Quat +Quat +Vec3 +Vec3 +Vec3 +Uuid +Uuid +Vec3 +Vec3 +MyAvatar.hmdLeanRecenterEnabled +MyAvatar.hmdLeanRecenterEnabled +Uuid +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Quat +Quat +Quat +Vec3 +Vec3 +Overlays: + Uuid +Uuid.NULL +Uuid +Uuid.NULL +Uuid +Uuid +Uuid +Uuid.NULL +Uuid +Uuid +Uuid +Uuid +Uuid +Vec3 +Uuid +PickRay +PickRay +Uuid +Uuid +Uuid +Uuid +Uuid +Vec2 +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +PointerEvent +Uuid +PointerEvent +Uuid +PointerEvent +Uuid +Uuid +Uuid +PointerEvent +Uuid +PointerEvent +Uuid +PointerEvent +Uuid +PointerEvent +Uuid +Uuid +PointerEvent +Uuid +PointerEvent +Uuid +PointerEvent +Uuid +PointerEvent +Uuid +PointerEvent +Uuid +PointerEvent +Uuid +Uuid.NULL +Size +Uuid +Size +Vec3 +Vec3 +Quat +Quat +Uuid +Vec2 +Color +Color +Color +Color +Color +Color +Color +Color +Color +Color +Color +Color +Vec3 +Vec3 +Quat +Quat +Uuid +Vec3 +Color +Vec3 +Vec3 +Quat +Quat +Uuid +Vec2 +Color +Vec3 +Vec3 +Quat +Quat +Uuid +Vec2 +Rect +Rect +Vec2 +Color +Color +Vec3 +Vec3 +Quat +Quat +Uuid +Uuid +Vec3 +Vec3 +Vec3 +Vec3 +Color +Vec3 +Vec3 +Quat +Quat +Uuid +Vec3 +Vec3 +Quat +Vec3 +Quat +Vec3 +PickRay +PickRay +Uuid +PickRay +Vec3 +Vec3 +Color +Vec3 +Vec3 +Quat +Quat +Uuid +Vec2 +Rect +Color +Color +Color +Vec3 +Vec3 +Quat +Quat +Uuid +Vec3 +Color +Vec3 +Vec3 +Quat +Quat +Uuid +Vec3 +Color +Vec3 +Vec3 +Quat +Quat +Uuid +Vec2 +Color +Rect +Color +Color +Color +Vec3 +Vec3 +Quat +Quat +Uuid +Vec2 +Picks: + Uuid +Uuid +Vec3 +Vec3 +Vec3 +Vec3 +Uuid +Vec3 +Vec3 +PickRay +Uuid +Vec3 +Vec3 +StylusTip +Pointers: + Uuid +Uuid +Quat: + Quat +Quat +Quat +Vec3 +Quat +Vec3 +Quat +Vec3 +Quat +Quat +Quat +Quat +Quat +Quat +Quat +Quat +Quat +Quat +Quat +Quat +Quat +Quat +Quat +Quat +Quat +Quat +Vec3 +Vec3 +Quat +Quat +Vec3 +Vec3 +Quat +Vec3 +Quat +Vec3 +Vec3 +Quat +Vec3 +Vec3 +Quat +Vec3 +Vec3 +Quat +Vec3 +Quat +Quat +Quat +Quat +Vec3 +Vec3 +Vec3 +Quat +Quat +Vec3 +Vec3 +Quat +Quat +Quat +Quat +Quat +Quat +Quat +Quat +Quat +Quat +Quat +Quat +Quat +Quat +Vec3 +Vec3 +Quat +Vec3 +Quat +Vec3 +Vec3 +Quat +Quat +Quat +Quat +Quat +Quat +Quat +Quat +Quat +Quat +Recording: + Recording~loadRecordingCallback +Reticle: + Vec2 +Vec2 +Vec2 +Vec2 +Vec2 +Vec2 +Vec2 +RouteObject: + MappingObject +Controller +MappingObject +Pose +RouteObject +RouteObject +RouteObject +RouteObject +RouteObject +RouteObject +RouteObject +RouteObject +RouteObject +RouteObject +RouteObject +Pose +RouteObject +RouteObject +RouteObject +RouteObject +Pose +RouteObject +RouteObject +RouteObject +RouteObject +Pose +RouteObject +RouteObject +RouteObject +RouteObject +Pose +RouteObject +RouteObject +RouteObject +RouteObject +Pose +Quat +RouteObject +RouteObject +Pose +RouteObject +RouteObject +Pose +RouteObject +RouteObject +Pose +Vec3 +RouteObject +RouteObject +RouteObject +RouteObject +RouteObject +Scene: + Scene.Stage +Stage +Stage: + Scene.Stage.KeyLight +Scene.Stage.Location +Scene.Stage.Time +Quat +Vec3 +Vec3 +Script: + Uuid +Uuid +Uuid +Collision +Uuid +PointerEvent +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +ScriptDiscoveryService: + ScriptsModel +ScriptsModelFilter +ScriptsModel: + ScriptDiscoveryService +http://doc.qt.io/qt-5/qabstractitemmodel +ScriptsModelFilter: + ScriptDiscoveryService +http://doc.qt.io/qt-5/qsortfilterproxymodel +Selection: + Uuid +Uuid +Color +Color +Color +Color +Uuid +Uuid +Uuid +SoundCache: + Resource +Resource +Resource +Resource +Tablet: + TabletProxy +TabletProxy +TabletButtonProxy: + Uuid +TabletProxy: + TabletButtonProxy +TabletButtonProxy +TabletButtonProxy +TextureCache: + Resource +Resource +Resource +Resource +Resource +Resource +Users: + Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid: + Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Uuid +Vec3: + Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Quat +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Vec3 +Window: + location +Rect +Vec2 +Vec2 +Vec2 +Camera.mode \ No newline at end of file diff --git a/tools/jsdoc/badLinks b/tools/jsdoc/badLinks new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tools/jsdoc/gravPrep-Explore.js b/tools/jsdoc/gravPrep-Explore.js index 6e58bea51f..e0f56de1f2 100644 --- a/tools/jsdoc/gravPrep-Explore.js +++ b/tools/jsdoc/gravPrep-Explore.js @@ -1,446 +1,474 @@ // Dependencies - const htmlclean = require('htmlclean'); - const fs = require('fs'); - const path = require('path'); - const pretty = require('pretty'); - const cheerio = require('cheerio'); - const rimraf = require('rimraf'); - const dedent = require('dedent-js'); +const htmlclean = require('htmlclean'); +const fs = require('fs'); +const path = require('path'); +const pretty = require('pretty'); +const cheerio = require('cheerio'); +const rimraf = require('rimraf'); +const dedent = require('dedent-js'); // Arg Vars - const copyLocal = process.argv[2]; - console.log("copyLocal:", copyLocal); - let targetTemplateDirectory = '' - let targetMDDirectory = '' - if (copyLocal){ - targetTemplateDirectory = process.argv[3]; - targetMDDirectory = process.argv[4];; - } +const copyLocal = process.argv[2]; +console.log("copyLocal:", copyLocal); +let targetTemplateDirectory = '' +let targetMDDirectory = '' +if (copyLocal){ + targetTemplateDirectory = process.argv[3]; + targetMDDirectory = process.argv[4];; +} // Required directories - let dir_out = path.join(__dirname, 'out'); +let dir_out = path.join(__dirname, 'out'); - let dir_grav = path.join(dir_out, 'grav'); - let dir_css = path.join(dir_grav, 'css'); - let dir_js = path.join(dir_grav, 'js'); - let dir_template = path.join(dir_grav, 'templates'); +let dir_grav = path.join(dir_out, 'grav'); +let dir_css = path.join(dir_grav, 'css'); +let dir_js = path.join(dir_grav, 'js'); +let dir_template = path.join(dir_grav, 'templates'); + +let dir_md = path.join(dir_grav, '06.api-reference'); +let dir_md_objects = path.join(dir_md, '02.Objects'); +let dir_md_namespaces = path.join(dir_md, '01.Namespaces'); +let dir_md_globals = path.join(dir_md, '03.Globals'); - let dir_md = path.join(dir_grav, '06.api-reference'); - let dir_md_objects = path.join(dir_md, '02.Objects'); - let dir_md_namespaces = path.join(dir_md, '01.Namespaces'); - let dir_md_globals = path.join(dir_md, '03.Globals'); - // Array to itterate over and create if doesn't exist - let dirArray = [dir_grav, dir_css, dir_js, dir_template, dir_md, dir_md_objects, dir_md_namespaces, dir_md_globals]; +let dirArray = [dir_grav, dir_css, dir_js, dir_template, dir_md, dir_md_objects, dir_md_namespaces, dir_md_globals]; // Maps for directory names - let map_dir_md = { - "API-Reference": dir_md, - "Globals": dir_md_globals, - "Objects": dir_md_objects, - "Namespaces": dir_md_namespaces, - "Class": dir_md_objects, - "Namespace": dir_md_namespaces, - "Global": dir_md_globals - } +let map_dir_md = { + "API-Reference": dir_md, + "Globals": dir_md_globals, + "Objects": dir_md_objects, + "Namespaces": dir_md_namespaces, + "Class": dir_md_objects, + "Namespace": dir_md_namespaces, + "Global": dir_md_globals +} // Base Grouping Directories for MD files - let baseMDDirectories = ["API-Reference", "Globals", "Namespaces", "Objects"] +let baseMDDirectories = ["API-Reference", "Globals", "Namespaces", "Objects"] // Html variables to be handle regex replacements - const html_reg_static = /\(static\)<\/span>/g - const html_reg_title = /\.+?\<\/h1\>/g; - const html_reg_htmlExt = /\.html/g; - const html_reg_objectHeader = /
[\s\S]+?<\/header>/; - const html_reg_objectSpanNew = /

<\/h4>/; - const html_reg_brRemove = /
[\s\S]+?
/; - const html_reg_subsectionEdit = /()([\s\S]*?)(<\/h.>)/g; - const html_reg_subsectionEdit_replace = '

$2

'; - const html_reg_propertiesHeaderEdit = '

Properties:

'; - const html_reg_propertiesHeaderEdit_Replace = '

Properties

'; - const html_reg_typeEdit = /(
Returns[\s\S]*?Type)(<\/dt[\s\S]*?type">)(.*?)(<\/span><\/dd>[\s\S]*?<\/dl>)/g; - const html_reg_typeEdit_replace = '$1: $3' - const html_reg_methodSize = /()(<\/h4>)/g; - const html_reg_methodSize_replace = ''; - const html_reg_typeDefSize = /()/g; - const html_reg_typeDefSize_replace = ''; - const html_reg_returnSize = /
Returns:<\/h5>/g; - const html_reg_returnSize_replace = '
Returns:<\/h6>'; - const html_reg_findByName = '
Methods
`; - const html_reg_findByArticleClose = `` - const html_reg_signalTitle = `

Signals

`; - const html_reg_typeDefinitonsTitle = `

Type Definitions

`; +const html_reg_static = /\(static\)<\/span>/g +const html_reg_title = /\.+?\<\/h1\>/g; +const html_reg_htmlExt = /\.html/g; +const html_reg_objectHeader = /
[\s\S]+?<\/header>/; +const html_reg_objectSpanNew = /

<\/h4>/; +const html_reg_brRemove = /
[\s\S]+?
/; +const html_reg_subsectionEdit = /()([\s\S]*?)(<\/h.>)/g; +const html_reg_subsectionEdit_replace = '

$2

'; +const html_reg_propertiesHeaderEdit = '

Properties:

'; +const html_reg_propertiesHeaderEdit_Replace = '

Properties

'; +const html_reg_typeEdit = /(
Returns[\s\S]*?Type)(<\/dt[\s\S]*?type">)(.*?)(<\/span><\/dd>[\s\S]*?<\/dl>)/g; +const html_reg_typeEdit_replace = '$1: $3' +const html_reg_methodSize = /()(<\/h4>)/g; +const html_reg_methodSize_replace = ''; +const html_reg_typeDefSize = /()/g; +const html_reg_typeDefSize_replace = ''; +const html_reg_returnSize = /
Returns:<\/h5>/g; +const html_reg_returnSize_replace = '
Returns:<\/h6>'; +const html_reg_findByName = '
Methods
`; +const html_reg_findByArticleClose = `` +const html_reg_signalTitle = `

Signals

`; +const html_reg_typeDefinitonsTitle = `

Type Definitions

`; +const html_reg_firstTableClose = ``; + // Mapping for GroupNames and Members - let groupNameMemberMap = { - "Objects": [], - "Namespaces": [], - "Globals": [] - } +let groupNameMemberMap = { + "Objects": [], + "Namespaces": [], + "Globals": [] +} // Procedural functions - // Create the actual MD file - function createMD(title, directory, needsDir, isGlobal){ - let mdSource = makeMdSource(title); - - if (needsDir){ - if (!fs.existsSync(directory)) { - fs.mkdirSync(directory); - } - } - - let destinationMDFile = path.join(directory, `API_${title}.md`); - fs.writeFileSync(destinationMDFile, mdSource); - } - - // Create the actual Template file - function createTemplate(title,content){ - let twigBasePartial = makeTwigFile(content); - let destinationFile = path.join(dir_template, `API_${title}.html.twig`); - fs.writeFileSync(destinationFile, twigBasePartial); - } - - // Copy file from source to target - used for recurssive call - function copyFileSync( source, target ) { - let targetFile = target; - - // If target is a directory a new file with the same name will be created - if ( fs.existsSync( target ) ) { - // console.log("target exists"); - if ( fs.lstatSync( target ).isDirectory() ) { - // console.log("target is a directory"); - - targetFile = path.join( target, path.basename( source ) ); - } - } - - fs.writeFileSync(targetFile, fs.readFileSync(source)); - } - - // Copy file from source to target - function copyFolderRecursiveSync( source, target ) { - var files = []; - - // Check if folder needs to be created or integrated - var targetFolder = path.join( target, path.basename( source ) ); - if ( !fs.existsSync( targetFolder ) ) { - fs.mkdirSync( targetFolder ); - } - - // Copy - if ( fs.lstatSync( source ).isDirectory() ) { - files = fs.readdirSync( source ); - files.forEach( function ( file ) { - var curSource = path.join( source, file ); - if ( fs.lstatSync( curSource ).isDirectory() ) { - copyFolderRecursiveSync( curSource, targetFolder ); - } else { - copyFileSync( curSource, targetFolder ); - } - } ); +// Create the actual MD file +function createMD(title, directory, needsDir, isGlobal){ + let mdSource = makeMdSource(title); + + if (needsDir){ + if (!fs.existsSync(directory)) { + fs.mkdirSync(directory); } } - // Clean up the Html - function prepareHtml(source){ - let htmlBefore = fs.readFileSync(source, {encoding: 'utf8'}); - let htmlAfter = htmlclean(htmlBefore); - let htmlAfterPretty = pretty(htmlAfter); - return cheerio.load(htmlAfterPretty); - } + let destinationMDFile = path.join(directory, `API_${title}.md`); + fs.writeFileSync(destinationMDFile, mdSource); +} - // Base file for MD's - function makeMdSource(title){ - return dedent( - ` - --- - title: ${title} - taxonomy: - category: - - docs - visible: true - --- - ` - ) - } +// Create the actual Template file +function createTemplate(title,content){ + let twigBasePartial = makeTwigFile(content); + let destinationFile = path.join(dir_template, `API_${title}.html.twig`); + fs.writeFileSync(destinationFile, twigBasePartial); +} - // Base file for Templates - function makeTwigFile(contentHtml){ - return dedent( - ` - {% extends 'partials/base_noGit.html.twig' %} - {% set tags = page.taxonomy.tag %} - {% if tags %} - {% set progress = page.collection({'items':{'@taxonomy':{'category': 'docs', 'tag': tags}},'order': {'by': 'default', 'dir': 'asc'}}) %} - {% else %} - {% set progress = page.collection({'items':{'@taxonomy':{'category': 'docs'}},'order': {'by': 'default', 'dir': 'asc'}}) %} - {% endif %} +// Copy file from source to target - used for recurssive call +function copyFileSync( source, target ) { + let targetFile = target; + + // If target is a directory a new file with the same name will be created + if ( fs.existsSync( target ) ) { + // console.log("target exists"); + if ( fs.lstatSync( target ).isDirectory() ) { + // console.log("target is a directory"); - {% block navigation %} - - {% endblock %} - - {% block content %} -
-

{{ page.title }}

- ${contentHtml} -
- {% endblock %} - ` - ) - } - - // Handle NameSpace Group - function handleNamespace(title, content){ - groupNameMemberMap["Namespaces"].push(title); - let destinationDirectory = path.join(map_dir_md["Namespace"], title); - createMD(title, destinationDirectory, true); - createTemplate(title, content); - } - - // Handle Class Group - function handleClass(title, content){ - groupNameMemberMap["Objects"].push(title); - let destinationDirectory = path.join(map_dir_md["Class"], title); - createMD(title, destinationDirectory, true) - - let formatedHtml = content - .replace(html_reg_objectSpanNew,"") - createTemplate(title, formatedHtml); - } - - // Handle Global Group - function handleGlobal(title, content){ - groupNameMemberMap["Globals"].push("Globals"); - createMD("Globals", map_dir_md["Global"], false, true); - createTemplate("Globals", content); - } - - // Handle Group TOCs - function makeGroupTOC(group){ - let mappedGroup; - if (!Array.isArray(group)){ - mappedGroup = groupNameMemberMap[group]; - } else { - mappedGroup = group; + targetFile = path.join( target, path.basename( source ) ); } - let htmlGroup = mappedGroup.map( item => { - return dedent( - ` -
- ${item} -
- ` - ) - }) - return htmlGroup.join("\n"); } - // Handle Class TOCS - function makeClassTOC(group){ - let linkArray = [] - group.forEach( item => { - linkArray.push(`
${item.type}
`) - item.array.forEach( link => { - linkArray.push(``) - }) - }) - return linkArray.join("\n"); + fs.writeFileSync(targetFile, fs.readFileSync(source)); +} + +// Copy file from source to target +function copyFolderRecursiveSync( source, target ) { + var files = []; + + // Check if folder needs to be created or integrated + var targetFolder = path.join( target, path.basename( source ) ); + if ( !fs.existsSync( targetFolder ) ) { + fs.mkdirSync( targetFolder ); } - // Extract IDS for TOC - function extractIDs(groupToExtract){ - let firstLine = ""; - let id = ""; - let extractedIDs = []; - groupToExtract.forEach((item)=>{ - firstLine = item.split("\n")[0]; - try { - id = firstLine.split('id="')[1].split(`"`)[0]; - } catch (e){ - - } - extractedIDs.push(id) - }) - return extractedIDs; - } - - // Helper for splitting up html - // Takes: Content to split, SearchTerm to Split by, term to End Splitting By, and negate Term object array - // negateTermObject { term: "", distance: "3"} - // Returns: [newContent after Split, Array of extracted ] - function splitBy(content, searchTerm, endSplitTerm){ - let foundArray = []; - let curIndex = -1; - let afterCurSearchIndex = -1 - let negateTermIndex = -1; - let nextIndex = 0; - let findbyNameLength = searchTerm.length; - let curfoundArrayIndex = 0; - let curEndSplitTermIndex = -1; - do { - curEndSplitTermIndex = content.indexOf(endSplitTerm); - curIndex = content.indexOf(searchTerm); - afterCurSearchIndex = curIndex+findbyNameLength; - nextIndex = content.indexOf(searchTerm,afterCurSearchIndex); - if (nextIndex === -1){ - nextIndex = curEndSplitTermIndex; - } - foundArray.push(content.slice(curIndex, nextIndex)) - // remove that content - content = content.replace(foundArray[curfoundArrayIndex], ""); - curfoundArrayIndex++; - } while (curIndex > -1) - return [content, foundArray]; - } - - // Split the signals, methods, and typeDefs [Might make this more generic] - function splitMethodsSignalsAndTypeDefs(allItemToSplit){ - let methodArray = []; - let signalArray = []; - let typeDefArray = []; - console.log(allItemToSplit.length); - allItemToSplit.forEach( method => { - firstLine = method.split("\n")[0]; - if (firstLine.indexOf("Signal") > -1){ - console.log("Found signal") - signalArray.push(method); - } else if (firstLine.indexOf("span") > -1) { - // console.log("Found method") - methodArray.push(method); + // Copy + if ( fs.lstatSync( source ).isDirectory() ) { + files = fs.readdirSync( source ); + files.forEach( function ( file ) { + var curSource = path.join( source, file ); + if ( fs.lstatSync( curSource ).isDirectory() ) { + copyFolderRecursiveSync( curSource, targetFolder ); } else { - // console.log("Found typeDef") - - typeDefArray.push(method); + copyFileSync( curSource, targetFolder ); } - }) - return [methodArray, signalArray, typeDefArray]; + }); } +} - // Helper to append - // Takes content, the search term to appendTo, the content to append, - // and bool if the append is before the found area - function append(content, searchTermToAppendto, contentToAppend, appendBefore){ - let contentArray = content.split("\n"); - let foundIndex = findArrayTrim(contentArray, searchTermToAppendto) - foundIndex = appendBefore ? foundIndex : foundIndex +1 +// Clean up the Html +function prepareHtml(source){ + let htmlBefore = fs.readFileSync(source, {encoding: 'utf8'}); + let htmlAfter = htmlclean(htmlBefore); + let htmlAfterPretty = pretty(htmlAfter); + return cheerio.load(htmlAfterPretty); +} + +// Base file for MD's +function makeMdSource(title){ + return dedent( + ` + --- + title: ${title} + taxonomy: + category: + - docs + visible: true + --- + ` + ) +} + +// Base file for Templates +function makeTwigFile(contentHtml){ + return dedent( + ` + {% extends 'partials/base_noGit.html.twig' %} + {% set tags = page.taxonomy.tag %} + {% if tags %} + {% set progress = page.collection({'items':{'@taxonomy':{'category': 'docs', 'tag': tags}},'order': {'by': 'default', 'dir': 'asc'}}) %} + {% else %} + {% set progress = page.collection({'items':{'@taxonomy':{'category': 'docs'}},'order': {'by': 'default', 'dir': 'asc'}}) %} + {% endif %} - contentArray.splice(foundIndex,0,contentToAppend) - return contentArray.join("\n") - } + {% block navigation %} + + {% endblock %} + + {% block content %} +
+

{{ page.title }}

+ ${contentHtml} +
+ {% endblock %} + ` + ) +} - // Helper function for append - function findArrayTrim(array, searchTerm){ - var index = -1; - for (var i = 0; i < array.length; i++){ - index = array[i].trim().indexOf(searchTerm.trim()); - if (index > -1){ - return i +// Handle NameSpace Group +function handleNamespace(title, content){ + groupNameMemberMap["Namespaces"].push(title); + let destinationDirectory = path.join(map_dir_md["Namespace"], title); + createMD(title, destinationDirectory, true); + createTemplate(title, content); +} + +// Handle Class Group +function handleClass(title, content){ + groupNameMemberMap["Objects"].push(title); + let destinationDirectory = path.join(map_dir_md["Class"], title); + createMD(title, destinationDirectory, true) + + let formatedHtml = content + .replace(html_reg_objectSpanNew,"") + createTemplate(title, formatedHtml); +} + +// Handle Global Group +function handleGlobal(title, content){ + groupNameMemberMap["Globals"].push("Globals"); + createMD("Globals", map_dir_md["Global"], false, true); + createTemplate("Globals", content); +} + +// Handle Group TOCs +function makeGroupTOC(group){ + let mappedGroup; + if (!Array.isArray(group)){ + mappedGroup = groupNameMemberMap[group]; + } else { + mappedGroup = group; + } + let htmlGroup = mappedGroup.map( item => { + return dedent( + ` +
+ ${item} +
+ ` + ) + }) + return htmlGroup.join("\n"); +} + +// Handle Class TOCS +function makeClassTOC(group){ + console.log("group", group) + let linkArray = [] + group.forEach( item => { + linkArray.push(`
${item.type}
`) + item.array.forEach( link => { + if ( link.indexOf('.') > -1 ){ + linkArray.push(``); + } else { + linkArray.push(``); + } + + }) + linkArray.push("
"); + }) + return linkArray.join("\n"); +} + +// Extract IDS for TOC +function extractIDs(groupToExtract){ + let firstLine = ""; + let id = ""; + let extractedIDs = []; + groupToExtract.forEach((item)=>{ + firstLine = item.split("\n")[0]; + try { + id = firstLine.split('id="')[1].split(`"`)[0]; + } catch (e){ + + } + extractedIDs.push(id) + }) + return extractedIDs; +} + +// Helper for splitting up html +// Takes: Content to split, SearchTerm to Split by, and term to End Splitting By +// Returns: [newContent after Split, Array of extracted ] +function splitBy(content, searchTerm, endSplitTerm){ + let foundArray = []; + let curIndex = -1; + let afterCurSearchIndex = -1 + let negateTermIndex = -1; + let nextIndex = 0; + let findbyNameLength = searchTerm.length; + let curfoundArrayIndex = 0; + let curEndSplitTermIndex = -1; + do { + curEndSplitTermIndex = content.indexOf(endSplitTerm); + curIndex = content.indexOf(searchTerm); + afterCurSearchIndex = curIndex+findbyNameLength; + nextIndex = content.indexOf(searchTerm,afterCurSearchIndex); + if (nextIndex === -1){ + nextIndex = curEndSplitTermIndex; + } + foundArray.push(content.slice(curIndex, nextIndex)) + // remove that content + content = content.replace(foundArray[curfoundArrayIndex], ""); + curfoundArrayIndex++; + } while (curIndex > -1) + return [content, foundArray]; +} + +// Split the signals and methods [Might make this more generic] +function splitMethodsSignalsAndTypeDefs(allItemToSplit){ + let methodArray = []; + let signalArray = []; + let typeDefArray = []; + let description; + // console.log(allItemToSplit.length); + allItemToSplit.forEach( content => { + firstLine = content.split("\n")[0]; + if (firstLine.indexOf("Signal") > -1){ + // console.log("Found signal") + signalArray.push(content); + } else if (firstLine.indexOf("span") > -1) { + // console.log("Found method") + if (content.indexOf("Available") > -1){ + console.log("found Available"); + description = content; + } else { + methodArray.push(content); + } + } else { + // console.log("Found typeDef") + if(firstLine.trim() !== ""){ + typeDefArray.push(content); } } - return index; + }) + return [methodArray, signalArray, typeDefArray, description]; +} + +// Helper to append +// Takes content, the search term to appendTo, the content to append, +// and bool if the append is before the found area +function append(content, searchTermToAppendto, contentToAppend, appendBefore){ + let contentArray = content.split("\n"); + let foundIndex = findArrayTrim(contentArray, searchTermToAppendto) + foundIndex = appendBefore ? foundIndex : foundIndex +1 + + contentArray.splice(foundIndex,0,contentToAppend) + return contentArray.join("\n") +} + +// Helper function for append +function findArrayTrim(array, searchTerm){ + var index = -1; + for (var i = 0; i < array.length; i++){ + index = array[i].trim().indexOf(searchTerm.trim()); + if (index > -1){ + return i + } } + return index; +} // Remove grav directory if exists to make sure old files aren't kept - if (fs.existsSync(dir_grav)){ - console.log("dir_grav exists"); - rimraf.sync(dir_grav); - } +if (fs.existsSync(dir_grav)){ + console.log("dir_grav exists"); + rimraf.sync(dir_grav); +} // Create Grav directories in JSDOC output - dirArray.forEach(function(dir){ - if (!fs.existsSync(dir)) { - fs.mkdirSync(dir); - } - }) +dirArray.forEach(function(dir){ + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir); + } +}) // Create baseMD files - baseMDDirectories.forEach( md => { - createMD(md, map_dir_md[md]); - }) +baseMDDirectories.forEach( md => { + createMD(md, map_dir_md[md]); +}) // Read jsdoc output folder and process html files - let curSource = path.join(dir_out, "Controller.html"); + let curSource = path.join(dir_out, 'global.html'); if (path.extname(curSource) == ".html" && path.basename(curSource, '.html') !== "index") { // Clean up the html source - let loadedHtml = prepareHtml(curSource); + let loadedHtml = prepareHtml(curSource); // Extract the title, group name, and the main div - let splitTitle = loadedHtml("title").text().split(": "); - let groupName = splitTitle[1]; - let htmlTitle = splitTitle.pop(); - let mainDiv = loadedHtml("#main") + let splitTitle = loadedHtml("title").text().split(": "); + let groupName = splitTitle[1]; + let htmlTitle = splitTitle.pop(); + let mainDiv = loadedHtml("#main") - let methodIDs = []; - let signalIDs = []; - let typeDefIDs = []; - // Basic Regex HTML edits - let mainDivRegexed = mainDiv.html() - .replace(html_reg_static,"") - .replace(html_reg_title,"") - .replace(html_reg_objectHeader,"") - .replace(html_reg_htmlExt,"") - .replace(html_reg_brRemove, "") - .replace(html_reg_subsectionEdit, html_reg_subsectionEdit_replace) - .replace(html_reg_propertiesHeaderEdit, html_reg_propertiesHeaderEdit_Replace) - .replace(html_reg_typeEdit, html_reg_typeEdit_replace) - .replace(html_reg_returnSize, html_reg_returnSize_replace) - .replace(html_reg_methodSize, html_reg_methodSize_replace) - .replace(html_reg_typeDefSize, html_reg_typeDefSize_replace) - .replace(html_reg_typeDefinitonsTitle, ""); - + let methodIDs = []; + let signalIDs = []; + let typeDefIDs = []; + // Basic Regex HTML edits + let mainDivRegexed = mainDiv.html() + .replace(html_reg_static,"") + .replace(html_reg_title,"") + .replace(html_reg_objectHeader,"") + .replace(html_reg_htmlExt,"") + .replace(html_reg_brRemove, "") + .replace(html_reg_subsectionEdit, html_reg_subsectionEdit_replace) + .replace(html_reg_propertiesHeaderEdit, html_reg_propertiesHeaderEdit_Replace) + .replace(html_reg_typeEdit, html_reg_typeEdit_replace) + .replace(html_reg_returnSize, html_reg_returnSize_replace) + .replace(html_reg_methodSize, html_reg_methodSize_replace) + .replace(html_reg_typeDefSize, html_reg_typeDefSize_replace) + .replace(html_reg_typeDefinitonsTitle, "") + .replace(html_reg_findByMethod, ""); + fs.writeFileSync(__dirname + "/Examine/global.html", mainDivRegexed); + // Further HTML Manipulation + // Split HTML by Each named entry + let contentSplitArray = splitBy(mainDivRegexed, html_reg_findByName, html_reg_findByArticleClose); + // Create a reference to the current content after split and the split functions + let currentContent = contentSplitArray[0]; + // Create references to the split methods and signals + let processedMethodsSignalsAndTypeDefs = splitMethodsSignalsAndTypeDefs(contentSplitArray[1]); + let splitMethods = processedMethodsSignalsAndTypeDefs[0]; + let splitSignals = processedMethodsSignalsAndTypeDefs[1]; + let splitTypeDefintions = processedMethodsSignalsAndTypeDefs[2]; + let splitDescription = processedMethodsSignalsAndTypeDefs[3]; + let splitMethodIDS = extractIDs(splitMethods); + let splitSignalIDS = extractIDs(splitSignals); + let splitTypeDefinitionIDS = extractIDs(splitTypeDefintions); + let arrayToPassToClassToc = []; + + // Append Signals and Methods to the current Content + if (!splitDescription) { + currentContent = append(currentContent, html_reg_title, splitDescription); + } + if (splitMethods.length > 0) { + arrayToPassToClassToc.push({type: "Methods", array: splitMethodIDS}); + // Add the Signals header to the Signals HTML + splitMethods.unshift(html_reg_findByMethod) + currentContent = append(currentContent, html_reg_findByArticleClose, splitMethods.join('\n'), true); + } + if (splitSignals.length > 0) { + arrayToPassToClassToc.push({type: "Signals", array: splitSignalIDS}); + // Add the Signals header to the Signals HTML + splitSignals.unshift(html_reg_signalTitle) + currentContent = append(currentContent, html_reg_findByArticleClose, splitSignals.join('\n'),true); + } + if (splitTypeDefintions.length > 0) { + + // console.log(path.basename(curSource, '.html')); + // console.log(splitTypeDefintions.length); + arrayToPassToClassToc.push({type: "Type Definitions", array: splitTypeDefinitionIDS}); + // Add the Signals header to the Signals HTML + splitTypeDefintions.unshift(html_reg_typeDefinitonsTitle) + currentContent = append(currentContent, html_reg_findByArticleClose, splitTypeDefintions.join('\n'), true); + } + + let classTOC = makeClassTOC(arrayToPassToClassToc); + currentContent = append(currentContent, html_reg_firstTableClose, classTOC); - // Further HTML Manipulation - // Split HTML by Each named entry - let contentSplitArray = splitBy(mainDivRegexed, html_reg_findByName, html_reg_findByArticleClose); - // Create a reference to the current content after split and the split functions - let currentContent = contentSplitArray[0]; - // Create references to the split methods and signals - let splitMethodsSignalsAndTypeDefs = splitMethodsSignalsAndTypeDefs(contentSplitArray[1]); - let splitMethods = splitMethodsSignalsAndTypeDefs[0]; - let splitSignals = splitMethodsSignalsAndTypeDefs[1]; - let splitTypeDefintions = splitMethodsSignalsAndTypeDefs[2]; - let splitMethodIDS = extractIDs(splitMethods); - let splitSignalIDS = extractIDs(splitSignals); - let splitTypeDefinitionIDS = extractIDs(splitTypeDefintions); - let classTOC = makeClassTOC([ - {type: "Methods", array: splitMethodIDS}, - {type: "Signals", array: splitSignalIDS}, - {type: "Type Definitions", array: splitTypeDefinitionIDS} - ]); - - // Append Signals and Methods to the current Content - currentContent = append(currentContent, html_reg_findByTitle, classTOC); - currentContent = append(currentContent, html_reg_findByMethod, splitMethods.join('\n')); - if (splitSignals.length > 0) { - // Add the Signals header to the Signals HTML - splitSignals.unshift(html_reg_signalTitle) - currentContent = append(currentContent, html_reg_findByArticleClose, splitSignals.join('\n'),true); - } - if (splitTypeDefintions.length > 0) { - // Add the Signals header to the Signals HTML - splitTypeDefintions.unshift(html_reg_typeDefinitonsTitle) - currentContent = append(currentContent, html_reg_findByArticleClose, splitTypeDefintions.join('\n'), true); - } - - // Final Pretty Content - currentContent = htmlclean(currentContent); - currentContent = pretty(currentContent); + // Final Pretty Content + currentContent = htmlclean(currentContent); + currentContent = pretty(currentContent); + // Handle Unique Categories switch(groupName){ case "Namespace": @@ -462,25 +490,4 @@ createTemplate("API-Reference", makeGroupTOC(["Namespaces", "Objects", "Globals" createTemplate("Namespaces", makeGroupTOC("Namespaces")); createTemplate("Objects", makeGroupTOC("Objects")); -// Copy the files to the target Directories if Local -if (copyLocal){ - // Copy files to the Twig Directory - let templateFiles = fs.readdirSync(path.resolve(targetTemplateDirectory)); - // Remove Existing API files - templateFiles.forEach(function(file){ - let curSource = path.join(targetTemplateDirectory, file); - - if(path.basename(file, '.html').indexOf("API") > -1){ - fs.unlink(curSource); - } - }) - copyFolderRecursiveSync(dir_template, targetTemplateDirectory); - - // Copy files to the Md Directory - let baseMdRefDir = path.join(targetMDDirectory,"06.api-reference"); - // Remove existing MD directory - if (fs.existsSync(baseMdRefDir)){ - rimraf.sync(baseMdRefDir); - } - copyFolderRecursiveSync(dir_md, targetMDDirectory); -} +// Copy the files to the target Directories if Local \ No newline at end of file diff --git a/tools/jsdoc/gravPrep.js b/tools/jsdoc/gravPrep.js index adb1625e9a..0193f781ae 100644 --- a/tools/jsdoc/gravPrep.js +++ b/tools/jsdoc/gravPrep.js @@ -43,6 +43,12 @@ "Namespace": dir_md_namespaces, "Global": dir_md_globals } +// Map for Links + let map_links = { + "Global": "globals", + "Namespace": "namespaces", + "Class": "objects" + } // Base Grouping Directories for MD files let baseMDDirectories = ["API-Reference", "Globals", "Namespaces", "Objects"] @@ -52,7 +58,7 @@ const html_reg_title = /\.+?\<\/h1\>/g; const html_reg_htmlExt = /\.html/g; const html_reg_objectHeader = /
[\s\S]+?<\/header>/; - const html_reg_objectSpanNew = /

<\/h4>/; + const html_reg_objectSpanNew = /

<\/h5>/; const html_reg_brRemove = /
[\s\S]+?
/; const html_reg_subsectionEdit = /()([\s\S]*?)(<\/h.>)/g; const html_reg_subsectionEdit_replace = '

$2

'; @@ -69,11 +75,21 @@ const html_reg_findByName = '
Methods
`; + const html_reg_containerOverview = `
` + const html_reg_findByArticleOpen = `
` const html_reg_findByArticleClose = `
` const html_reg_signalTitle = `

Signals

`; const html_reg_typeDefinitonsTitle = `

Type Definitions

`; const html_reg_firstTableClose = ``; - + const html_reg_fixLinkHashIssue = /()/g; + const html_reg_fixLinkHashIssue_replace = "$1$2#$4" + const html_reg_findLinks = /([\s\S]+?<\/a>)/g; + const html_reg_findGlobalLinks = /()/g; + const html_reg_findClassLinks = /([\s\S]+?<\/a>)/g; + // Mapping for GroupNames and Members let groupNameMemberMap = { @@ -83,7 +99,73 @@ } // Procedural functions + + function isMultipleDots(content){ + let count = 0; + let regEx = /\./g + let tempArray; + while ((tempArray = regEx.exec(content)) !== null){ + count++; + } + if (count > 1){ + return true; + } + } + + function modifyClassLinks(match, p1,p2,p3,p4){ + let matchedp = [p2,p3].join(""); + if(!isMultipleDots(matchedp)){ + return; + } + p2 = p2.split('.')[1].toLowerCase(); + return [p1,p2,p3,p4].join(""); + } + + function lowerCaseGeneralLinks(match, p1, p2, p3, p4){ + let modifiedString = [p1,p2.toLowerCase(),p3,p4].join(""); + return modifiedString; + } + + function contentReplace(content, title){ + var linksNoHashes = []; + var tempArray; + while(( tempArray = html_reg_findLinksNoHashes.exec(content)) !== null ){ + let tempArrayToPush = tempArray.slice(0,4) + tempArrayToPush.push(tempArray.index); + linksNoHashes.push(tempArrayToPush); + } + if (!linksNoHashes){ + return content; + } + for(var i = linksNoHashes.length-1; i > -1; i--){ + if (linksNoHashes[i][0].indexOf("http") > -1){ + continue; + } + let linkLength = linksNoHashes[i][0].length; + let group1 = linksNoHashes[i][1]; + let group2 = linksNoHashes[i][2]; + if (group2.indexOf(".") > -1){ + group2 = group2.split(".")[1].toLowerCase(); + } + let group3 = linksNoHashes[i][3]; + let index = linksNoHashes[i][4]; + let newString = `${group1}/api-reference/${returnRightGroup(group2)}/${group2.toLowerCase()}${group3}`; + content = [content.slice(0,index), newString, content.slice(index+linkLength)].join(""); + } + return content; + } + // Create the actual MD file + function returnRightGroup(methodToCheck){ + for ( var key in groupNameMemberMap ){ + for (i = 0; i < groupNameMemberMap[key].length; i++ ){ + if (methodToCheck.toLowerCase() === groupNameMemberMap[key][i].toLowerCase()){ + return key.toLowerCase(); + } + } + } + } + function createMD(title, directory, needsDir, isGlobal){ let mdSource = makeMdSource(title); @@ -110,10 +192,7 @@ // If target is a directory a new file with the same name will be created if ( fs.existsSync( target ) ) { - // console.log("target exists"); if ( fs.lstatSync( target ).isDirectory() ) { - // console.log("target is a directory"); - targetFile = path.join( target, path.basename( source ) ); } } @@ -204,7 +283,6 @@ // Handle NameSpace Group function handleNamespace(title, content){ - groupNameMemberMap["Namespaces"].push(title); let destinationDirectory = path.join(map_dir_md["Namespace"], title); createMD(title, destinationDirectory, true); createTemplate(title, content); @@ -212,7 +290,6 @@ // Handle Class Group function handleClass(title, content){ - groupNameMemberMap["Objects"].push(title); let destinationDirectory = path.join(map_dir_md["Class"], title); createMD(title, destinationDirectory, true) @@ -223,7 +300,6 @@ // Handle Global Group function handleGlobal(title, content){ - groupNameMemberMap["Globals"].push("Globals"); createMD("Globals", map_dir_md["Global"], false, true); createTemplate("Globals", content); } @@ -258,7 +334,12 @@ group.forEach( item => { linkArray.push(`
${item.type}
`) item.array.forEach( link => { - linkArray.push(`
`) + if ( link.indexOf('.') > -1 ){ + linkArray.push(``); + } else { + linkArray.push(``); + + } }) linkArray.push("
"); }) @@ -315,23 +396,25 @@ let methodArray = []; let signalArray = []; let typeDefArray = []; - // console.log(allItemToSplit.length); - allItemToSplit.forEach( method => { - firstLine = method.split("\n")[0]; + let description; + + allItemToSplit.forEach( content => { + firstLine = content.split("\n")[0]; if (firstLine.indexOf("Signal") > -1){ - // console.log("Found signal") - signalArray.push(method); + signalArray.push(content); } else if (firstLine.indexOf("span") > -1) { - // console.log("Found method") - methodArray.push(method); + if (content.indexOf("Available in:") > -1){ + description = content; + } else { + methodArray.push(content); + } } else { - // console.log("Found typeDef") if(firstLine.trim() !== ""){ - typeDefArray.push(method); + typeDefArray.push(content); } } }) - return [methodArray, signalArray, typeDefArray]; + return [methodArray, signalArray, typeDefArray, description]; } // Helper to append @@ -378,12 +461,34 @@ }) // Read jsdoc output folder and process html files + let links = []; + let unTouchedLinks = []; let files = fs.readdirSync(dir_out); + // Create initial Group name member map to handle individual link :: TODO find better way to do this + files.forEach(function (file){ + let curSource = path.join(dir_out, file); + if (path.extname(curSource) == ".html" && path.basename(curSource, '.html') !== "index") { + let loadedHtml = prepareHtml(curSource); + let splitTitle = loadedHtml("title").text().split(": "); + let groupName = splitTitle[1]; + let htmlTitle = splitTitle.pop(); + switch(groupName){ + case "Namespace": + groupNameMemberMap["Namespaces"].push(htmlTitle); + break; + case "Class": + groupNameMemberMap["Objects"].push(htmlTitle); + break; + default: + console.log(`Case not handled for ${groupName}`); + } + } + }) files.forEach(function (file){ let curSource = path.join(dir_out, file); if (path.extname(curSource) == ".html" && path.basename(curSource, '.html') !== "index") { // Clean up the html source - let loadedHtml = prepareHtml(curSource); + let loadedHtml = prepareHtml(curSource); // Extract the title, group name, and the main div let splitTitle = loadedHtml("title").text().split(": "); @@ -408,8 +513,20 @@ .replace(html_reg_methodSize, html_reg_methodSize_replace) .replace(html_reg_typeDefSize, html_reg_typeDefSize_replace) .replace(html_reg_typeDefinitonsTitle, "") - .replace(html_reg_findByMethod, ""); - + .replace(html_reg_findGlobalLinks, html_reg_findGlobalLinks_replace) + .replace(html_reg_findGeneralLinks, lowerCaseGeneralLinks) + .replace(html_reg_findClassLinks, modifyClassLinks) + .replace(html_reg_findByMethod, ""); + + // Fix for namespace and object links + mainDivRegexed = contentReplace(mainDivRegexed, htmlTitle); + + // Grab all links for link changes + let matches = mainDivRegexed.match(html_reg_findLinks); + if (matches){ + unTouchedLinks.push(`${htmlTitle}:\n ${matches.join('\n')}`); + } + // Further HTML Manipulation // Split HTML by Each named entry let contentSplitArray = splitBy(mainDivRegexed, html_reg_findByName, html_reg_findByArticleClose); @@ -420,12 +537,15 @@ let splitMethods = processedMethodsSignalsAndTypeDefs[0]; let splitSignals = processedMethodsSignalsAndTypeDefs[1]; let splitTypeDefintions = processedMethodsSignalsAndTypeDefs[2]; + let splitDescription = processedMethodsSignalsAndTypeDefs[3]; let splitMethodIDS = extractIDs(splitMethods); let splitSignalIDS = extractIDs(splitSignals); let splitTypeDefinitionIDS = extractIDs(splitTypeDefintions); let arrayToPassToClassToc = []; - // Append Signals and Methods to the current Content + if (splitDescription) { + currentContent = append(currentContent, html_reg_containerOverview, splitDescription); + } if (splitMethods.length > 0) { arrayToPassToClassToc.push({type: "Methods", array: splitMethodIDS}); // Add the Signals header to the Signals HTML @@ -439,9 +559,6 @@ currentContent = append(currentContent, html_reg_findByArticleClose, splitSignals.join('\n'),true); } if (splitTypeDefintions.length > 0) { - - // console.log(path.basename(curSource, '.html')); - // console.log(splitTypeDefintions.length); arrayToPassToClassToc.push({type: "Type Definitions", array: splitTypeDefinitionIDS}); // Add the Signals header to the Signals HTML splitTypeDefintions.unshift(html_reg_typeDefinitonsTitle) @@ -449,7 +566,11 @@ } let classTOC = makeClassTOC(arrayToPassToClassToc); - currentContent = append(currentContent, html_reg_firstTableClose, classTOC); + if (groupName === "Global"){ + currentContent = append(currentContent, html_reg_findByTitle, classTOC); + } else { + currentContent = append(currentContent, html_reg_firstTableClose, classTOC); + } // Final Pretty Content currentContent = htmlclean(currentContent); @@ -477,6 +598,8 @@ createTemplate("Namespaces", makeGroupTOC("Namespaces")); createTemplate("Objects", makeGroupTOC("Objects")); + fs.writeFileSync('Links-Untouched', unTouchedLinks.join('\n')); + // Copy the files to the target Directories if Local if (copyLocal){ // Copy files to the Twig Directory @@ -488,6 +611,7 @@ if(path.basename(file, '.html').indexOf("API") > -1){ fs.unlink(curSource); } + }) copyFolderRecursiveSync(dir_template, targetTemplateDirectory); diff --git a/tools/jsdoc/package.json b/tools/jsdoc/package.json index 14ef88390b..f30fa707ab 100644 --- a/tools/jsdoc/package.json +++ b/tools/jsdoc/package.json @@ -6,6 +6,7 @@ "htmlclean": "^3.0.8", "jsdoc": "^3.5.5", "pretty": "^2.0.0", + "request": "^2.85.0", "rimraf": "^2.6.2" }, "private": true diff --git a/tools/jsdoc/warningLog b/tools/jsdoc/warningLog new file mode 100644 index 0000000000..e69de29bb2 From d8257dcfd3ca497898e8a198aa15816616ca985a Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Mon, 7 May 2018 11:45:17 -0700 Subject: [PATCH 024/300] Add 010 fbx template --- tools/010-templates/fbx.bt | 102 +++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 tools/010-templates/fbx.bt diff --git a/tools/010-templates/fbx.bt b/tools/010-templates/fbx.bt new file mode 100644 index 0000000000..dcb620066e --- /dev/null +++ b/tools/010-templates/fbx.bt @@ -0,0 +1,102 @@ +// +// fbx.bt +// tools/010-templates +// +// Created by Ryan Huffman +// Copyright 2018 High Fidelity, Inc. +// +// FBX file template +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +local char use64BitAddresses = 1; + +struct Header { + char prefix[23]; + int32 version; +}; + +struct Property { + char type; + if (type == 'Y') { + int16 value; + } else if (type == 'C') { + char value; + } else if (type == 'I') { + int32 value; + } else if (type == 'F') { + float value; + } else if (type == 'D') { + double value; + } else if (type == 'L') { + int64 value; + } else if (type == 'S' || type == 'R') { + uint32 size; + char value[size]; + } else { + uint32 length; + uint32 encoding; + uint32 compressedLength; + if (encoding == 1) { + char compressedData[compressedLength]; + } else if (type == 'f') { + float values[this.length]; + } else if (type == 'd') { + double values[this.length]; + } else if (type == 'l') { + int64 values[this.length]; + } else if (type == 'i') { + int32 values[this.length]; + } else if (type == 'b') { + char values[this.length]; + } else { + Printf("%c", type); + Assert(false, "Error, unknown property type"); + } + } +}; + +struct Node; + +string nodeName(Node& node) { + if (!exists(node.name)) { + return "Node ----- "; + } + local string s; + SPrintf(s, "Node (%s) ", node.name); + return s; +} + +struct Node { + if (use64BitAddresses) { + int64 endOffset; + uint64 propertyCount; + uint64 propertyListLength; + } else { + int32 endOffset; + uint32 propertyCount; + uint32 propertyListLength; + } + uchar nameLength; + char name[this.nameLength]; + Property properties[this.propertyCount]; + while (FTell() < endOffset) { + Node children; + } +}; + +struct File { + Header header; + use64BitAddresses = header.version >= 7500; + local int i = 0; + Node node; + local string name = node.name; + while (name != "") { + Node node; + i++; + name = exists(node[i].name) ? node[i].name : ""; + } + +} file; From b9fb9875a7462f3262237c8ead48feac565324a5 Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Mon, 7 May 2018 11:48:50 -0700 Subject: [PATCH 025/300] Add 010 ktx template --- tools/010-templates/ktx.bt | 52 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 tools/010-templates/ktx.bt diff --git a/tools/010-templates/ktx.bt b/tools/010-templates/ktx.bt new file mode 100644 index 0000000000..9690dbb391 --- /dev/null +++ b/tools/010-templates/ktx.bt @@ -0,0 +1,52 @@ +// +// ktx.bt +// tools/010-templates +// +// Created by Ryan Huffman +// Copyright 2018 High Fidelity, Inc. +// +// KTX file template +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +struct Header { + char identifier[12]; + uint32 endianness; + uint32 glType; + uint32 glTypeSize; + uint32 glFormat; + uint32 glInternalFormat; + uint32 glBaseInternalFormat; + uint32 pixelWidth; + uint32 pixelHeight; + uint32 pixelDepth; + uint32 numberOfArrayElements; + uint32 numberOfFaces; + uint32 numberOfMipmapLevels; + uint32 bytesOfKeyValueData; +}; + +struct KV { + uint32 byteSize; + local uint32 keyLength = ReadStringLength(FTell()); + char key[keyLength]; + char value[byteSize - keyLength] ; + char padding[3 - ((byteSize + 3) % 4)]; +}; + +string kvName(KV& kv) { + local string s; + SPrintf(s, "KeyValue (%s) ", kv.key); + return s; +} + +struct File { + Header header; + local uint32 endOfKV = FTell() + header.bytesOfKeyValueData; + while (FTell() < endOfKV) { + KV keyValue ; + } + char imageData[FileSize() - FTell()]; +} file; From 894cd3ed76b3d870e391a406f3173d9f8f833b3d Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Mon, 7 May 2018 11:52:29 -0700 Subject: [PATCH 026/300] Add 010-templates/README.md --- tools/010-templates/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 tools/010-templates/README.md diff --git a/tools/010-templates/README.md b/tools/010-templates/README.md new file mode 100644 index 0000000000..df3ce6d0e5 --- /dev/null +++ b/tools/010-templates/README.md @@ -0,0 +1 @@ +This directory contains [010 editor](https://www.sweetscape.com/010editor/) templates for parsing and inspecting different file types. From 6cb4901baecfe3d9961bf6c0aaf35a432e8746db Mon Sep 17 00:00:00 2001 From: milad nazeri Date: Mon, 7 May 2018 15:49:53 -0700 Subject: [PATCH 027/300] fixed undefined errors --- tools/jsdoc/Check.js | 64 ++-- tools/jsdoc/Links-Untouched | 680 +++++++++++++++++++++++++++++++++++- tools/jsdoc/gravPrep.js | 15 +- tools/jsdoc/package.json | 1 + 4 files changed, 710 insertions(+), 50 deletions(-) diff --git a/tools/jsdoc/Check.js b/tools/jsdoc/Check.js index af449dafc1..8005db743a 100644 --- a/tools/jsdoc/Check.js +++ b/tools/jsdoc/Check.js @@ -1,18 +1,20 @@ var fs = require('fs'); var path = require('path'); var request = require('request'); +var axios = require('axios'); var badLinks = []; -var baseLink = `http://localhost:8000/api-reference/`; +// var baseLink = `http://localhost:8000/api-reference/`; +var baseLink = `https://docs.highfidelity.com`; var linkList = fs.readFileSync(__dirname + '/Links-Untouched','utf8').split('\n'); -console.log("link list", linkList); +// console.log("link list", linkList); // console.log("filtered List", JSON.stringify(filteredList)); var linkHash = {}; var currentGroup; linkList.forEach( link => { link = link.trim() - console.log("link", link) + // console.log("link", link) if (link.slice(-1) === ':'){ currentGroup = link.slice(0, link.length-1); // console.log("current Group: ", currentGroup); @@ -35,37 +37,39 @@ var keys = Object.keys(linkHash); keys.forEach( key => { for (var linkKey in linkHash[key]){ var link = linkHash[key][linkKey]; - console.log("link", link); + // console.log("link", link); var extractLink = link.split(`"`)[1]; - console.log("extractLink", extractLink) - if (!extractLink.indexOf('http') > -1){ - extractLink = baseLink + extractLink; - } - console.log("about to make a request for", extractLink) - setTimeout(function(){ - request.get(extractLink) - .on('response', response => { - if (response.statusCode(404)){ - console.log("found bad link") - console.log(JSON.stringify({file: key, link: extractLink})) - - // badLinks.push({file: key, link: link}) - stream.write(JSON.stringify({file: key, link: extractLink})); - } - }, 4000) - }) - } + if (!(extractLink.indexOf(':') > -1)){ + console.log(" adding link") + extractLink = baseLink + extractLink; + } else { + // console.log("found https") + } + console.log("extractLink", extractLink) -}) + // console.log("about to make a request for", extractLink) + axios.get(extractLink) + .then( response => { + console.log("response") + if (response.status === 404){ + console.log("found bad link") + // console.log(JSON.stringify({file: key, link: extractLink})) + // stream.write(JSON.stringify({file: key, link: extractLink})); + } + }) + .catch( error => { + console.log("error") + // console.log(error); + // if (error.response.status === 404){ + // console.log("found bad link") + // console.log(JSON.stringify({file: key, link: extractLink})) + // stream.write(JSON.stringify({file: key, link: extractLink})); + // } + }) + } + }) stream.end(); -// */ - -/* - -*/ - - function endsWith(path, exts) { var result = false; diff --git a/tools/jsdoc/Links-Untouched b/tools/jsdoc/Links-Untouched index 9da3060726..bea2009fa5 100644 --- a/tools/jsdoc/Links-Untouched +++ b/tools/jsdoc/Links-Untouched @@ -7,10 +7,18 @@ AnimationCache: Resource Assets: Assets~downloadDataCallback +Assets.GetOptions +Assets.GetOptions Assets~getAssetCallback Assets~getMappingCallback +Assets.PutOptions Assets~setMappingCallback Assets~uploadDataCallback +Assets.getAsset +Assets.putAsset +Assets.putAsset +Assets.getAsset +Assets.putAsset AudioStats: AudioStats.AudioStreamStats AudioStats.AudioStreamStats @@ -40,55 +48,165 @@ AvatarManager: Camera: Vec3 Quat +Camera.Mode ViewFrustum Uuid PickRay PickRay PickRay +Entities.findRayIntersection +Overlays.findRayIntersection PickRay PickRay Uuid Uuid +Camera.Mode +Camera.Mode Quat Quat Vec3 Vec3 Vec3 Vec3 +Camera.Mode Uuid +Camera.Mode Quat Vec3 Clipboard: Uuid Vec3 Vec3 +Clipboard.exportEntities Uuid Vec3 Uuid Controller: - MyAvatar.sessionUUID + getActions +getHardware +getStandard +disableMapping +enableMapping +loadMapping +newMapping +parseMapping +findAction +findDevice +getActionNames +getAllActions +getAvailableInputs +getDeviceName +getDeviceNames +actionEvent +hardwareChanged +inputEvent +keyPressEvent +keyReleaseEvent +mouseDoublePressEvent +mouseMoveEvent +mousePressEvent +mouseReleaseEvent +touchBeginEvent +touchEndEvent +touchUpdateEvent +wheelEvent +captureMouseEvents +captureTouchEvents +captureWheelEvents +releaseMouseEvents +releaseTouchEvents +releaseWheelEvents +captureActionEvents +captureEntityClickEvents +captureJoystick +captureKeyEvents +releaseActionEvents +releaseEntityClickEvents +releaseJoystick +releaseKeyEvents +getValue +getAxisValue +getgetPoseValue +getButtonValue +getAxisValue +getPoseValue +getActionValue +triggerHapticPulse +triggerHapticPulseOnDevice +triggerShortHapticPulse +triggerShortHapticPulseOnDevice +getViewportDimensions +getRecommendedHUDRect +setVPadEnabled +setVPadHidden +setVPadExtraBottomMargin +startInputRecording +stopInputRecording +saveInputRecording +getInputRecorderSaveDirectory +loadInputRecording +startInputPlayback +stopInputPlayback +Entities.callEntityMethod +MyAvatar.sessionUUID +Controller.Actions RouteObject keyboardMouse.json standard.json +Controller.Hardware RouteObject +Controller.Standard RouteObject leapmotion.json vive.json +findAction +Entities.mousePressOnEntity +Entities.mouseDoublePressOnEntity KeyEvent +Controller.Hardware.Keyboard +Controller.Hardware.Keyboard +Controller.Hardware.Touchscreen +Controller.Hardware.TouchscreenVirtualPad +Controller.Hardware.Keyboard +Controller.Actions +Controller.Actions +Controller.Actions +Controller.Actions +Controller.Actions Controller +Controller.Actions +Controller.Actions +Controller.Standard +Controller.Hardware +Controller.Hardware +Controller.Hardware Controller +Controller.Hardware +Controller.Hardware Pose +Controller.Standard +Controller.Hardware Pose Pose Pose Rect Rect +Controller.Standard +Controller.Standard Controller +Controller.Standard +Controller.Standard +Controller.Standard +Controller.Hardware Vec2 Vec2 +Controller.Standard KeyEvent KeyEvent MappingObject +MappingJSON +enableMapping +MappingJSON MappingObject MouseEvent MouseEvent @@ -97,14 +215,47 @@ Controller: MappingObject MappingObject RouteObject +enableMapping +Uuid.generate MappingObject MappingObject +MappingJSON +enableMapping +MappingJSON MappingObject +captureActionEvents +Entities.mousePressOnEntity +Entities.mouseDoublePressOnEntity +captureEntityClickEvents +captureJoystick +captureKeyEvents KeyEvent Controller.Hardware.Keyboard +captureMouseEvents +Controller.Hardware.Keyboard +Controller.Hardware.Touchscreen +Controller.Hardware.TouchscreenVirtualPad +captureTouchEvents +Controller.Hardware.Keyboard +captureWheelEvents +startInputRecording +stopInputRecording +loadInputRecording +getInputRecorderSaveDirectory +setVPadHidden +startInputRecording +stopInputRecording +loadInputRecording +stopInputPlayback +startInputPlayback +startInputRecording TouchEvent TouchEvent TouchEvent +Controller.Hand +Controller.Hand +Controller.Hand +Controller.Hand WheelEvent MappingObject Pose @@ -176,12 +327,16 @@ Controller: Pose Pose RouteObject +Controller.Standard +MappingJSON https://github.com/highfidelity/hifi/tree/master/interface/resources/controllers +Controller.Actions Controller.Hardware-Application Controller.Hardware-Keyboard Controller.Hardware-OculusTouch Controller.Hardware-Vive RouteObject +RouteObject#when RouteObject RouteObject Pose @@ -213,7 +368,21 @@ Controller: Pose MappingObject https://github.com/highfidelity/hifi/tree/master/interface/resources/controllers +Controller.MappingJSONRoute +Controller.MappingJSONRoute +Controller.Hardware +Controller.MappingJSONRoute RouteObject +Controller.MappingJSON +Controller.MappingJSONAxis +Controller.Hardware +RouteObject#peek +RouteObject#debug +Controller.Hardware +Controller.MappingJSONFilter +Controller.MappingJSONFilter +Controller.Actions +Controller.Standard RouteObject Pose leapmotion.json @@ -295,20 +464,27 @@ DebugDraw: Vec4 Entities: Uuid +Web Uuid.NULL Vec3 Vec3 Vec3 Vec3 Uuid +Entities.ActionType +Uuid +Entities.ActionArguments Uuid Uuid -Uuid +Entities.EntityProperties Uuid.NULL Uuid Uuid +Line Uuid +Line Vec3 +Line Uuid Uuid Uuid @@ -326,8 +502,11 @@ Entities: Uuid Uuid Uuid +Entities.EntityProperties Uuid +Web Uuid +Web Uuid Uuid Vec3 @@ -339,6 +518,7 @@ Entities: Vec3 Uuid Uuid +Entities.EntityType Vec3 Uuid Uuid @@ -348,22 +528,40 @@ Entities: Uuid ViewFrustum Uuid +Entities.RayToEntityIntersectionResult PickRay +setLightsArePickable +setZonesArePickable PickRay Uuid Uuid +visible +collisionless +Entities.RayToEntityIntersectionResult PickRay +setLightsArePickable +setZonesArePickable +findRayIntersection PickRay Uuid Uuid +findRayIntersection Quat +Model Uuid +Model Quat.IDENTITY Quat Vec3 +Model Uuid +Model Vec3.ZERO Vec3 +Entities.ActionArguments +Uuid +Uuid +Entities.ActionArguments Uuid Uuid Uuid @@ -373,24 +571,45 @@ Entities: Uuid Uuid Uuid +Zone +Zone Uuid +Entities.EntityProperties Uuid +Entities.EntityProperties Uuid +Model Uuid +Model +getJointNames +Model Uuid +Model +Model +getJointIndex Uuid +Web +Web Uuid -Uuid -Uuid +Light +findRayIntersection +findRayIntersectionBlocking Picks +Light Quat +Model Uuid +Model Quat.IDENTITY Quat Vec3 +Model Uuid +Model Vec3.ZERO Vec3 +Model +PolyVox Uuid Entities~getMeshesCallback Graphics @@ -398,7 +617,11 @@ Entities: Uuid Entities~getServerScriptStatusCallback Uuid +Zone +findRayIntersection +findRayIntersectionBlocking Picks +Zone Uuid PointerEvent Uuid @@ -411,8 +634,11 @@ Entities: Uuid Uuid Vec3 +PolyVox Uuid +PolyVox Vec3 +PolyVox Vec3.ZERO Vec3 PointerEvent @@ -431,76 +657,142 @@ Entities: Uuid Entities~queryPropertyMetadataCallback Uuid +clickDownOnEntity Uuid PointerEvent +clickReleaseOnEntity Uuid PointerEvent +holdingClickOnEntity Uuid PointerEvent +hoverEnterEntity Uuid PointerEvent +hoverLeaveEntity Uuid PointerEvent +hoverOverEntity Uuid PointerEvent +mouseMoveOnEntity Uuid PointerEvent +mousePressOnEntity Uuid PointerEvent +mouseReleaseOnEntity Uuid PointerEvent +Model Uuid Quat +Model +Model Uuid Vec3 +Model +Line Uuid +Line Vec3 +Line +PolyVox Uuid +PolyVox +Zone +Zone +Web Uuid +Web Uuid.NULL +Light +findRayIntersection +findRayIntersectionBlocking Picks +Light +Model Uuid Quat +Model +Model Uuid Quat +Model +Model +setLocalJointRotations +setLocalJointTranslations Uuid Quat Vec3 +Model +Model Uuid Vec3 +Model +Model Uuid Vec3 +Model +PolyVox Uuid +PolyVox Vec3 +PolyVox Uuid +PolyVox Vec3 Vec3 +PolyVox Uuid +PolyVox Vec3 Vec3 +PolyVox Uuid +PolyVox Vec3 +Zone +findRayIntersection +findRayIntersectionBlocking Picks +Zone Uuid Uuid +Entities.ActionArguments Uuid Vec3 +PolyVox Uuid +PolyVox Vec3 +PolyVox Vec3.ZERO Vec3 Vec3 +PolyVox Uuid +PolyVox Vec3 +PolyVox Vec3.ZERO Vec3 +Web +Shape Uuid +Web Uuid Vec3 +PolyVox Uuid +PolyVox Vec3 +PolyVox Vec3.ZERO Vec3 +ActionType +Entities.ActionType +Entities.PhysicsMotionType ActionArguments-FarGrab ActionArguments-Hold ActionArguments-Offset @@ -510,34 +802,52 @@ Entities: ActionArguments-Slider ActionArguments-ConeTwist ActionArguments-BallSocket +ActionType +ActionArguments Vec3 Uuid Vec3 +ActionType +ActionArguments Vec3 Vec3 Uuid Vec3 Vec3 +ActionType +ActionArguments Vec3 Quat Uuid +ActionType +ActionArguments Vec3 Vec3 Uuid Vec3 Vec3 +ActionType +ActionArguments Uuid Vec3 Vec3 +ActionType +ActionArguments Vec3 +ActionType +ActionArguments Vec3 Vec3 Uuid Vec3 Vec3 +ActionType +ActionArguments Vec3 Quat Uuid +ActionType +ActionArguments Vec3 Entities.ActionArguments-FarGrab Entities.ActionArguments-Hold @@ -548,14 +858,21 @@ Entities: ActionArguments-Slider Entities.ActionArguments-ConeTwist Entities.ActionArguments-BallSocket +Skybox Vec3 Vec3 Vec3 Vec3 +EntityType Uuid +Entities.EntityType +Entities.addEntity Uuid Uuid.NULL Uuid +Model +Shape +Zone keyLight Vec3 Quat @@ -574,6 +891,7 @@ Entities: Vec3.ZERO Vec3 Vec3.ZERO +Entities.CollisionMask SoundCache Uuid Uuid.NULL @@ -582,7 +900,9 @@ Entities: Vec3 Vec3 Vec3 +Entities.BoundingBox AACube +Entities.RenderInfo EntityProperties-Box EntityProperties-Light EntityProperties-Line @@ -596,22 +916,46 @@ Entities: EntityProperties-Text EntityProperties-Web EntityProperties-Zone +EntityType +EntityType +EntityType +EntityProperties Vec3 Color +EntityType +EntityProperties Vec3 Vec3 Color +EntityType +Model +Shape +model overlays +EntityProperties +Entities.addEntity MaterialResource MaterialResource MaterialResource Vec2 Vec2 MaterialResource +EntityType +EntityProperties Vec3 +naturalDimensions Color ShapeType +Entities.AnimationProperties Quat +getJointIndex +setLocalJointRotation +getJointIndex Vec3 +getJointIndex +setLocalJointTranslation +getJointIndex +EntityType +EntityProperties Vec3 Quat Color @@ -619,15 +963,20 @@ Entities: Color Color ShapeType +EntityType +EntityProperties Vec3 Vec3 Vec3 Vec3 Color +EntityType +EntityProperties Volumes of Fun library documentation Vec3 Vec3 +Entities.PolyVoxSurfaceStyle Uuid Uuid.NULL Uuid @@ -640,17 +989,34 @@ Entities: Uuid.NULL Uuid Uuid.NULL +EntityType +EntityProperties +Entities.Shape Vec3 Color +EntityType +EntityType +EntityType +EntityProperties Vec3 Color Color +EntityType +EntityProperties Vec3 +EntityType +Entities.enterEntity +EntityProperties Vec3 ShapeType +Entities.KeyLight +Entities.AmbientLight +Entities.Skybox +Entities.Haze EntityProperties-Box EntityProperties-Light EntityProperties-Line +model overlays EntityProperties-Material EntityProperties-Model EntityProperties-ParticleEffect @@ -665,17 +1031,27 @@ Entities: Color Color Vec3 +Model +Shape +canCastShadows PickRay +findRayIntersection +findRayIntersectionBlocking PickRay Uuid PickRay Vec3 Vec3 BoxFace +EntityType Color +Entities.getMeshes MeshProxy MeshProxy +Entities.getMeshes Graphics +Entities.getServerScriptStatus +Entities.queryPropertyMetadata Global: ContactEventType Uuid @@ -684,6 +1060,7 @@ Global: Vec3 Vec3 http://doc.qt.io/qt-5/qt#Key-enum +Material Vec3Color RGBS Vec3Color @@ -692,6 +1069,7 @@ Global: RGBS Vec3Color RGBS +Material Material Material Vec3 @@ -715,12 +1093,20 @@ Global: Vec3 Quat Graphics: - Vec3 + Graphics.Model +Graphics.Model +Graphics.Mesh +Graphics.IFSData +Graphics.Mesh +Vec3 Vec3 Vec3 Vec2 Material +Graphics.MeshPart Uuid +Graphics.Mesh +Graphics.MaterialLayer HMD: Vec3 Vec3.ZERO @@ -741,6 +1127,10 @@ HMD: Vec2 Vec2 Vec2 +requestShowHandControllers +requestHideHandControllers +requestShowHandControllers +requestHideHandControllers Vec2 Vec2 Vec2 @@ -751,6 +1141,10 @@ location: Uuid Uuid.NULL Uuid +goBack +goForward +location.LookupTrigger +location.LookupTrigger Vec3 Quat Quat.IDENTITY @@ -758,43 +1152,85 @@ location: Uuid Uuid Settings +goBack +goForward MappingObject: Controller +Controller.Standard +Controller.Actions +Controller.Hardware +Controller.Standard +Controller.Actions +Controller.newMapping +from +makeAxis RouteObject +Controller.parseMapping +Controller.loadMapping +Controller.MappingJSON +enable +Controller.enableMapping +RouteObject#peek +MappingObject +Controller.disableMapping MappingObject MappingObject -MappingObject +Controller.enableMapping MappingObject RouteObject RouteObject +Controller.Standard +Controller.Hardware Pose RouteObject RouteObject RouteObject RouteObject +from +Controller.Standard +Controller.Hardware Pose RouteObject RouteObject RouteObject RouteObject +Controller.Hardware +Controller.Hardware +Controller.Hardware RouteObject RouteObject RouteObject RouteObject +Controller.Hardware +makeAxis +Controller.Hardware +Controller.Hardware RouteObject RouteObject Menu: - KeyEvent + Menu.MenuItemProperties +Menu.MenuItemProperties +Menu.addMenuItem +Menu.MenuItemProperties +Menu.triggerOption +Menu.addMenuItem +KeyEvent KeyEvent MeshProxy: - Graphics + Entities.getMeshes +Graphics Graphics Vec3 Graphics Vec3 Messages: - Uuid + Entities.callEntityClientMethod +Entities.callEntityMethod +Entities.callEntityServerMethod +Script.callEntityScriptMethod Uuid +Uuid +sendMessage ModelCache: Resource Resource @@ -828,6 +1264,7 @@ MyAvatar: Uuid Vec3 Entities +MyAvatar.getJointNames Vec3 Quat Uuid @@ -842,6 +1279,8 @@ MyAvatar: Vec3 Vec3 Vec3 +MyAvatar.AttachmentData +MyAvatar.AttachmentData Vec3 Vec3 Quat @@ -852,6 +1291,7 @@ MyAvatar: Vec3 Vec3 Vec3 +MyAvatar.getJointNames Vec3 Vec3 Vec3 @@ -863,6 +1303,7 @@ MyAvatar: Avatar Standards Quat Quat +MyAvatar.getJointNames Quat Vec3 Avatar Standards @@ -906,6 +1347,8 @@ MyAvatar: Vec3 Vec3 Vec3 +MyAvatar.SkeletonJoint +MyAvatar.SkeletonJoint Vec3 Vec3 Vec3 @@ -923,13 +1366,17 @@ MyAvatar: Quat Quat Quat +MyAvatar.restoreAnimation Avatar Standards +MyAvatar.restoreRoleAnimation Avatar Standards Vec3 Quat Vec3 Quat Vec3 +MyAvatar.getAttachmentData +MyAvatar.AttachmentData Quat Vec3 Quat @@ -937,6 +1384,7 @@ MyAvatar: Quat Quat Quat +MyAvatar.getJointNames Vec3 Vec3 Vec3 @@ -960,8 +1408,11 @@ MyAvatar: Vec3 Overlays: Uuid +web3d Uuid.NULL Uuid +Overlays.OverlayType +Overlays.OverlayProperties Uuid.NULL Uuid Uuid @@ -970,40 +1421,60 @@ Overlays: Uuid Uuid Uuid +Overlays.OverlayProperties Uuid +Overlays.OverlayProperties +OverlayProperties Uuid Vec3 Uuid +Overlays.RayToOverlayIntersectionResult PickRay PickRay Uuid Uuid +Overlays.RayToOverlayIntersectionResult Uuid +web3d Uuid Uuid Vec2 Uuid Uuid Uuid +Overlays.OverlayProperties Uuid +OverlayProperties Uuid +Overlays.OverlayProperties +Overlays.OverlayType Uuid +Overlays.OverlayType +Overlays.OverlayProperties Uuid +Overlays.OverlayProperties Uuid +OverlayType +sendHoverEnterOverlay Uuid PointerEvent +sendHoverLeaveOverlay Uuid PointerEvent +sendHoverOverOverlay Uuid PointerEvent Uuid Uuid Uuid PointerEvent +sendMouseMoveOnOverlay Uuid PointerEvent +sendMousePressOnOverlay Uuid PointerEvent +sendMouseReleaseOnOverlay Uuid PointerEvent Uuid @@ -1020,14 +1491,17 @@ Overlays: Uuid PointerEvent Uuid +web3d Uuid.NULL Size Uuid Size +OverlayType Vec3 Vec3 Quat Quat +findRayIntersection Uuid Vec2 Color @@ -1041,47 +1515,58 @@ Overlays: Color Color Color +OverlayType Color Vec3 Vec3 Quat Quat +findRayIntersection Uuid Vec3 +OverlayType Color Vec3 Vec3 Quat Quat +findRayIntersection Uuid Vec2 +OverlayType Color Vec3 Vec3 Quat Quat +findRayIntersection Uuid Vec2 Rect +OverlayType Rect Vec2 Color +OverlayType Color Vec3 Vec3 Quat Quat +findRayIntersection Uuid Uuid Vec3 Vec3 Vec3 Vec3 +OverlayType Color Vec3 Vec3 Quat Quat +findRayIntersection Uuid Vec3 Vec3 @@ -1089,57 +1574,107 @@ Overlays: Vec3 Quat Vec3 +OverlayType +Circle3DProperties +CubeProperties +GridProperties +ImageProperties +Image3DProperties +Line3DProperties +ModelProperties +RectangleProperties +Rectangle3DProperties +ShapeProperties +SphereProperties +TextProperties +Text3DProperties +Web3DProperties +OverlayProperties PickRay +findRayIntersection PickRay Uuid PickRay Vec3 Vec3 +OverlayType Color Vec3 Vec3 Quat Quat +findRayIntersection Uuid Vec2 +OverlayType Rect Color Color +OverlayType +OverlayType Color Vec3 Vec3 Quat Quat +findRayIntersection Uuid Vec3 +Overlays.Shape +OverlayType Color Vec3 Vec3 Quat Quat +findRayIntersection Uuid Vec3 +OverlayType Color Vec3 Vec3 Quat Quat +findRayIntersection Uuid Vec2 Color +OverlayType Rect Color Color +OverlayType Color Vec3 Vec3 Quat Quat +findRayIntersection Uuid Vec2 +Paths: + Script.resolvePath +Script.resourcesPath Picks: - Uuid + Picks.PickType +Picks.PickProperties +Picks.createPick +Picks.createPick +Picks.createPick +Picks.RayPickResult +Picks.StylusPickResult +Picks.createPick +Picks.createPick +Picks.createPick +Picks.createPick +Picks.createPick Uuid +Picks.createPick +Uuid +Picks.createPick +Picks.createPick +Picks.PickType Vec3 Vec3 Vec3 @@ -1153,13 +1688,44 @@ Picks: Vec3 StylusTip Pointers: - Uuid + Picks.PickType +Pointers.PointerProperties +Picks.PickProperties +Pointers.createPointer +Pointers.createPointer +Pointers.RayPointerRenderState +Pointers.createPointer +Pointers.createPointer +Picks.RayPickResult +Picks.StylusPickResult +Pointers.createPointer +Pointers.createPointer +Pointers.createPointer +Pointers.createPointer +Pointers.createPointer Uuid +Pointers.createPointer +Uuid +Pointers.createPointer +Pointers.createPointer +Pointers.createPointer +Pointers.RayPointerRenderState +Pointers.createPointer +Pointers.RayPointerRenderState +Pointers.createPointer +Picks.PickProperties +Pointers.RayPointerRenderState +Pointers.DefaultRayPointerRenderState +Pointers.Trigger +Pointers.setRenderState +Pointers.editRenderState Quat: Quat Quat -Quat -Vec3 +Quat.angleAxis +Quat +Vec3 +Quat.angle Quat Vec3 Quat @@ -1171,10 +1737,12 @@ Quat: Quat Quat Quat +Quat.inverse Quat Quat Quat Quat +Quat.dot Quat Quat Quat @@ -1190,9 +1758,11 @@ Quat: Vec3 Quat Vec3 +Quat.getFront Quat Vec3 Vec3 +Quat.getForward Quat Vec3 Vec3 @@ -1202,6 +1772,7 @@ Quat: Quat Vec3 Quat +Quat.conjugate Quat Quat Quat @@ -1214,6 +1785,7 @@ Quat: Vec3 Quat Quat +Quat.slerp Quat Quat Quat @@ -1234,6 +1806,7 @@ Quat: Vec3 Vec3 Quat +Quat.mix Quat Quat Quat @@ -1245,6 +1818,10 @@ Quat: Quat Recording: Recording~loadRecordingCallback +Recording.loadRecording +Resource: + Resource.State +Resource.State Reticle: Vec2 Vec2 @@ -1257,6 +1834,7 @@ RouteObject: MappingObject Controller MappingObject +RouteObject#to Pose RouteObject RouteObject @@ -1295,6 +1873,10 @@ RouteObject: RouteObject Pose RouteObject +Controller.Standard +Controller.Actions +Controller.Standard +Controller.Actions RouteObject Pose RouteObject @@ -1303,8 +1885,12 @@ RouteObject: Vec3 RouteObject RouteObject +Controller.Hardware +Controller.Hardware RouteObject RouteObject +Controller.Hardware +Controller.Hardware RouteObject Scene: Scene.Stage @@ -1325,12 +1911,16 @@ Script: PointerEvent Uuid Uuid +setInterval +setTimeout Uuid Uuid Uuid Uuid Uuid Uuid +Script.clearInterval +Script.clearTimeout Uuid ScriptDiscoveryService: ScriptsModel @@ -1342,7 +1932,16 @@ ScriptsModelFilter: ScriptDiscoveryService http://doc.qt.io/qt-5/qsortfilterproxymodel Selection: - Uuid + Selection.ItemType +Uuid +Selection.disableListToScene +Selection.enableListToScene +Selection.HighlightStyle +Selection.HighlightStyle +Selection.HighlightStyle +Selection.SelectedItemsList +Selection.SelectedItemsList +Selection.ItemType Uuid Color Color @@ -1359,10 +1958,16 @@ SoundCache: Tablet: TabletProxy TabletProxy +Tablet.AudioEvents TabletButtonProxy: Uuid +TabletButtonProxy.ButtonProperties +TabletButtonProxy.ButtonProperties +TabletButtonProxy.ButtonProperties +TabletButtonProxy.ButtonProperties TabletProxy: - TabletButtonProxy + TabletProxy#ButtonList +TabletButtonProxy TabletButtonProxy TabletButtonProxy TextureCache: @@ -1423,6 +2028,7 @@ Vec3: Vec3 Vec3 Vec3 +withinEpsilon Vec3 Vec3 Vec3 @@ -1473,12 +2079,54 @@ Vec3: Vec3 Vec3 Vec3 +equal Vec3 Vec3 Window: location +displayAnnouncement +browseAssetsAsync +assetsDirChanged +browseChanged +browseAsync +browseDirChanged +browseDirAsync +openMessageBox +announcement +Window.ConnectionRefusedReason Rect Vec2 Vec2 Vec2 -Camera.mode \ No newline at end of file +connectionAdded +connectionError +connectionAdded +connectionError +openMessageBox +updateMessageBox +closeMessageBox +Window.MessageBoxButton +Window.MessageBoxButton +takeSnapshot +takeSnapshot +promptTextChanged +promptAsync +raise +saveFileChanged +saveAsync +Camera.setCameraEntity +Camera.mode +Window.DisplayTexture +snapshotShared +shareSnapshot +takeSnapshot +takeSecondaryCameraSnapshot +takeSnapshot +stillSnapshotTaken +processingGifStarted +processingGifCompleted +stillSnapshotTaken +openMessageBox +Window.MessageBoxButton +Window.MessageBoxButton +openMessageBox \ No newline at end of file diff --git a/tools/jsdoc/gravPrep.js b/tools/jsdoc/gravPrep.js index 0193f781ae..0e3d38da6d 100644 --- a/tools/jsdoc/gravPrep.js +++ b/tools/jsdoc/gravPrep.js @@ -115,10 +115,14 @@ function modifyClassLinks(match, p1,p2,p3,p4){ let matchedp = [p2,p3].join(""); if(!isMultipleDots(matchedp)){ - return; + console.log("not multiple"); + console.log("matchedp:", matchedp) + return match; } p2 = p2.split('.')[1].toLowerCase(); - return [p1,p2,p3,p4].join(""); + let newString = [p1,p2,p3,p4].join(""); + // console.log("new String:", newString); + return newString; } function lowerCaseGeneralLinks(match, p1, p2, p3, p4){ @@ -136,7 +140,7 @@ } if (!linksNoHashes){ return content; - } + } for(var i = linksNoHashes.length-1; i > -1; i--){ if (linksNoHashes[i][0].indexOf("http") > -1){ continue; @@ -149,7 +153,8 @@ } let group3 = linksNoHashes[i][3]; let index = linksNoHashes[i][4]; - let newString = `${group1}/api-reference/${returnRightGroup(group2)}/${group2.toLowerCase()}${group3}`; + let newString = `${group1}/api-reference/${returnRightGroup(group2)}/${group2.toLowerCase()}${group3}`; + // console.log("newString", newString); content = [content.slice(0,index), newString, content.slice(index+linkLength)].join(""); } return content; @@ -161,6 +166,8 @@ for (i = 0; i < groupNameMemberMap[key].length; i++ ){ if (methodToCheck.toLowerCase() === groupNameMemberMap[key][i].toLowerCase()){ return key.toLowerCase(); + } else { + // console.log("Couldn't find group: ", methodToCheck); } } } diff --git a/tools/jsdoc/package.json b/tools/jsdoc/package.json index f30fa707ab..4bbb2ad4f2 100644 --- a/tools/jsdoc/package.json +++ b/tools/jsdoc/package.json @@ -1,6 +1,7 @@ { "name": "hifiJSDoc", "dependencies": { + "axios": "^0.18.0", "cheerio": "^1.0.0-rc.2", "dedent-js": "^1.0.1", "htmlclean": "^3.0.8", From 3a10cacec003d840cf7bd283d70cacec2ac8e2cb Mon Sep 17 00:00:00 2001 From: amantley Date: Thu, 19 Apr 2018 14:04:54 -0700 Subject: [PATCH 028/300] 1.added the swing twist code to update the follow rotation in MyAvatar.cpp 2.added step.js and cg_lean.js to the developer folder 3.added menu item for toggling the hips following between head and hips 4.added new function to return true if the root of MyAvatar is translating to be under the head. Used to smooth the path of the hips 5.added computeCounterBalance to MyAvatar.h and cpp 6.added the menu item under developer/avatar to enable debug draw of the base of support in menu.h menu.cpp MyAvatar.h MyAvatar.cpp 7.added head yaw into the calculation of the hip rotation for the center of gravity. This is already was happening in the deriveBodyFromHMD code that is default 8.Changed Constants in Avatar constants for the base of support 9.fixed the over rotation of the shoulders 10.fixed scaling problem in cg computation 11.added room for going up on the toes without stretching --- interface/src/Menu.cpp | 4 + interface/src/Menu.h | 2 + interface/src/avatar/MyAvatar.cpp | 276 ++++++++++- interface/src/avatar/MyAvatar.h | 52 ++- interface/src/avatar/MySkeletonModel.cpp | 16 +- libraries/shared/src/AvatarConstants.h | 4 + scripts/defaultScripts.js | 4 +- scripts/developer/cg_lean.js | 553 +++++++++++++++++++++++ tests/animation/src/data/avatar.json | 2 +- 9 files changed, 902 insertions(+), 11 deletions(-) create mode 100644 scripts/developer/cg_lean.js diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index bf0fc05350..41831bf3c5 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -600,6 +600,10 @@ Menu::Menu() { }); addCheckableActionToQMenuAndActionHash(avatarDebugMenu, MenuOption::FixGaze, 0, false); + addCheckableActionToQMenuAndActionHash(avatarDebugMenu, MenuOption::ToggleHipsFollowing, 0, false, + avatar.get(), SLOT(setToggleHips(bool))); + addCheckableActionToQMenuAndActionHash(avatarDebugMenu, MenuOption::AnimDebugDrawBaseOfSupport, 0, false, + avatar.get(), SLOT(setEnableDebugDrawBaseOfSupport(bool))); addCheckableActionToQMenuAndActionHash(avatarDebugMenu, MenuOption::AnimDebugDrawDefaultPose, 0, false, avatar.get(), SLOT(setEnableDebugDrawDefaultPose(bool))); addCheckableActionToQMenuAndActionHash(avatarDebugMenu, MenuOption::AnimDebugDrawAnimPose, 0, false, diff --git a/interface/src/Menu.h b/interface/src/Menu.h index 20375a71b2..936062b960 100644 --- a/interface/src/Menu.h +++ b/interface/src/Menu.h @@ -30,6 +30,7 @@ namespace MenuOption { const QString AddressBar = "Show Address Bar"; const QString Animations = "Animations..."; const QString AnimDebugDrawAnimPose = "Debug Draw Animation"; + const QString AnimDebugDrawBaseOfSupport = "Debug Draw Base of Support"; const QString AnimDebugDrawDefaultPose = "Debug Draw Default Pose"; const QString AnimDebugDrawPosition= "Debug Draw Position"; const QString AskToResetSettings = "Ask To Reset Settings"; @@ -203,6 +204,7 @@ namespace MenuOption { const QString ThirdPerson = "Third Person"; const QString ThreePointCalibration = "3 Point Calibration"; const QString ThrottleFPSIfNotFocus = "Throttle FPS If Not Focus"; // FIXME - this value duplicated in Basic2DWindowOpenGLDisplayPlugin.cpp + const QString ToggleHipsFollowing = "Toggle Hips Following"; const QString ToolWindow = "Tool Window"; const QString TransmitterDrive = "Transmitter Drive"; const QString TurnWithHead = "Turn using Head"; diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 15b220c63b..c3df9f6143 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1068,6 +1068,22 @@ float loadSetting(Settings& settings, const QString& name, float defaultValue) { return value; } +void MyAvatar::setToggleHips(bool followHead) { + _follow.setToggleHipsFollowing(followHead); +} + +void MyAvatar::FollowHelper::setToggleHipsFollowing(bool followHead) { + _toggleHipsFollowing = followHead; +} + +bool MyAvatar::FollowHelper::getToggleHipsFollowing() const { + return _toggleHipsFollowing; +} + +void MyAvatar::setEnableDebugDrawBaseOfSupport(bool isEnabled) { + _enableDebugDrawBaseOfSupport = isEnabled; +} + void MyAvatar::setEnableDebugDrawDefaultPose(bool isEnabled) { _enableDebugDrawDefaultPose = isEnabled; @@ -1195,6 +1211,8 @@ void MyAvatar::loadData() { settings.endGroup(); setEnableMeshVisible(Menu::getInstance()->isOptionChecked(MenuOption::MeshVisible)); + _follow.setToggleHipsFollowing (Menu::getInstance()->isOptionChecked(MenuOption::ToggleHipsFollowing)); + setEnableDebugDrawBaseOfSupport(Menu::getInstance()->isOptionChecked(MenuOption::AnimDebugDrawBaseOfSupport)); setEnableDebugDrawDefaultPose(Menu::getInstance()->isOptionChecked(MenuOption::AnimDebugDrawDefaultPose)); setEnableDebugDrawAnimPose(Menu::getInstance()->isOptionChecked(MenuOption::AnimDebugDrawAnimPose)); setEnableDebugDrawPosition(Menu::getInstance()->isOptionChecked(MenuOption::AnimDebugDrawPosition)); @@ -2829,6 +2847,245 @@ glm::mat4 MyAvatar::deriveBodyFromHMDSensor() const { return createMatFromQuatAndPos(headOrientationYawOnly, bodyPos); } +float slope(float num) { + float constantK = 1.0; + float ret = 1.0f; + if (num > 0.0f) { + ret = 1.0f - (1.0f / (1.0f + constantK * num)); + } + return ret; +} + +glm::vec3 dampenCgMovement(glm::vec3 rawCg, float baseOfSupportScale) { + float distanceFromCenterZ = rawCg.z; + float distanceFromCenterX = rawCg.x; + + // The dampening scale factors makes the slope function soft clamp the + // cg at the edge of the base of support of the feet, in the lateral and posterior directions. + // In the forward direction we need a different scale because forward is in + // the direction of the hip extensor joint, which means bending usually happens + // well before reaching the edge of the base of support. + // The scale of the base of support reflects the size of the user in real life. + float forwardDampeningFactor = 0.5f; + float lateralAndBackDampeningScaleFactor = 2.0f; + float clampFront = DEFAULT_AVATAR_SUPPORT_BASE_FRONT * forwardDampeningFactor * baseOfSupportScale; + float clampBack = DEFAULT_AVATAR_SUPPORT_BASE_BACK * lateralAndBackDampeningScaleFactor * baseOfSupportScale; + float clampLeft = DEFAULT_AVATAR_SUPPORT_BASE_LEFT * lateralAndBackDampeningScaleFactor * baseOfSupportScale; + float clampRight = DEFAULT_AVATAR_SUPPORT_BASE_RIGHT * lateralAndBackDampeningScaleFactor * baseOfSupportScale; + glm::vec3 dampedCg = {0.0f,0.0f,0.0f}; + + // find the damped z coord of the cg + if (rawCg.z < 0.0f) { + // forward displacement + float inputFront; + inputFront = fabs(distanceFromCenterZ / clampFront); + float scaleFrontNew = slope(inputFront); + dampedCg.z = scaleFrontNew * clampFront; + } else { + // backwards displacement + float inputBack; + inputBack = fabs(distanceFromCenterZ / clampBack); + float scaleBackNew = slope(inputBack); + dampedCg.z = scaleBackNew * clampBack; + } + + // find the damped x coord of the cg + if (rawCg.x > 0.0f) { + // right of center + float inputRight; + inputRight = fabs(distanceFromCenterX / clampRight); + float scaleRightNew = slope(inputRight); + dampedCg.x = scaleRightNew * clampRight; + } else { + // left of center + float inputLeft; + inputLeft = fabs(distanceFromCenterX / clampLeft); + float scaleLeftNew = slope(inputLeft); + dampedCg.x = scaleLeftNew * clampLeft; + } + return dampedCg; +} + +glm::vec3 MyAvatar::computeCounterBalance() const { + struct jointMass { + QString name; + float weight; + glm::vec3 position; + } cgMasses[3]; + // init the body part weights + cgMasses[0].name = "Head"; + cgMasses[0].weight = 20.0f; + cgMasses[0].position = { 0.0f, 0.0f, 0.0f }; + cgMasses[1].name = "LeftHand"; + cgMasses[1].weight = 2.0f; + cgMasses[1].position = { 0.0f, 0.0f, 0.0f }; + cgMasses[2].name = "RightHand"; + cgMasses[2].weight = 2.0f; + cgMasses[2].position = { 0.0f, 0.0f, 0.0f }; + // find the current center of gravity position based on head and hand moments + float hipsMass = 40.0f; + float totalMass = 0.0f; + glm::vec3 sumOfMoments = { 0.0f, 0.0f, 0.0f }; + for (int i = 0; i < 3; i++) { + const QString jointName = cgMasses[i].name; + cgMasses[i].position = getAbsoluteJointTranslationInObjectFrame(_skeletonModel->getRig().indexOfJoint(jointName)); + sumOfMoments += cgMasses[i].weight * cgMasses[i].position; + totalMass += cgMasses[i].weight; + } + glm::vec3 currentCg = (1 / totalMass) * sumOfMoments; + currentCg.y = 0.0f; + // dampening the center of gravity, in effect, limits the value to the perimeter of the base of support + float baseScale = 1.0f; + if (getUserEyeHeight() > 0.0f) { + baseScale = getUserEyeHeight() / DEFAULT_AVATAR_EYE_HEIGHT; + } + glm::vec3 desiredCg = dampenCgMovement(currentCg, baseScale); + + // compute hips position to maintain desiredCg + glm::vec3 counterBalancedForHead = ((totalMass + hipsMass) * desiredCg) - (cgMasses[0].position * cgMasses[0].weight); + glm::vec3 counterBalancedForLeftHand = counterBalancedForHead - (cgMasses[1].weight * cgMasses[1].position); + glm::vec3 counterBalancedForRightHand = counterBalancedForLeftHand - (cgMasses[2].weight * cgMasses[2].position); + glm::vec3 counterBalancedCg = (1.0f / hipsMass) * counterBalancedForRightHand; + + // find the height of the hips + glm::vec3 currentHead = getAbsoluteJointTranslationInObjectFrame(_skeletonModel->getRig().indexOfJoint("Head")); + glm::vec3 tposeHead = getAbsoluteDefaultJointTranslationInObjectFrame(_skeletonModel->getRig().indexOfJoint("Head")); + glm::vec3 tposeHips = getAbsoluteDefaultJointTranslationInObjectFrame(_skeletonModel->getRig().indexOfJoint("Hips")); + glm::vec3 xzDiff = {(currentHead.x - counterBalancedCg.x), 0.0f, (currentHead.z - counterBalancedCg.z)}; + float headMinusHipXz = glm::length(xzDiff); + float headHipDefault = glm::length(tposeHead - tposeHips); + float hipHeight = 0.0f; + if (headHipDefault > headMinusHipXz) { + hipHeight = sqrtf((headHipDefault * headHipDefault) - (headMinusHipXz * headMinusHipXz)); + } + counterBalancedCg.y = (currentHead.y - hipHeight); + + // this is to be sure that the feet don't lift off the floor. + // add 5 centimeters to allow for going up on the toes. + if (counterBalancedCg.y > (tposeHips.y + 0.05f)) { + // if the height is higher than default hips, clamp to default hips + counterBalancedCg.y = tposeHips.y + 0.05f; + } + return counterBalancedCg; +} + +glm::quat computeNewHipsRotation(glm::quat hipYawRot, glm::vec3 curHead, glm::vec3 hipPos) { + glm::vec3 spineVec = curHead - hipPos; + glm::quat finalRot = Quaternions::IDENTITY; + + if (spineVec.y > 0.0f) { + + glm::vec3 newYaxisHips = glm::normalize(spineVec); + glm::vec3 forward = { 0.0f, 0.0f, 1.0f }; + glm::vec3 oldZaxisHips = glm::normalize(forward); + glm::vec3 newXaxisHips = glm::normalize(glm::cross(newYaxisHips, oldZaxisHips)); + glm::vec3 newZaxisHips = glm::normalize(glm::cross(newXaxisHips, newYaxisHips)); + + // create mat4 with the new axes + glm::vec4 left = { newXaxisHips.x, newXaxisHips.y, newXaxisHips.z, 0.0f }; + glm::vec4 up = { newYaxisHips.x, newYaxisHips.y, newYaxisHips.z, 0.0f }; + glm::vec4 view = { newZaxisHips.x, newZaxisHips.y, newZaxisHips.z, 0.0f }; + glm::vec4 translation = { 0.0f, 0.0f, 0.0f, 1.0f }; + glm::mat4 newRotHips(left, up, view, translation); + finalRot = glm::toQuat(newRotHips); + } else if (spineVec.y < 0.0f) { + + glm::vec3 newYaxisHips = glm::normalize(-spineVec); + glm::vec3 forward = { 0.0f, 0.0f, 1.0f }; + glm::vec3 oldZaxisHips = glm::normalize(forward); + glm::vec3 newXaxisHips = glm::normalize(glm::cross(newYaxisHips, oldZaxisHips)); + glm::vec3 newZaxisHips = glm::normalize(glm::cross(newXaxisHips, newYaxisHips)); + + // create mat4 with the new axes + glm::vec4 left = { newXaxisHips.x, newXaxisHips.y, newXaxisHips.z, 0.0f }; + glm::vec4 up = { newYaxisHips.x, newYaxisHips.y, newYaxisHips.z, 0.0f }; + glm::vec4 view = { newZaxisHips.x, newZaxisHips.y, newZaxisHips.z, 0.0f }; + glm::vec4 translation = { 0.0f, 0.0f, 0.0f, 1.0f }; + glm::mat4 newRotHips(left, up, view, translation); + finalRot = glm::toQuat(newRotHips); + } else { + + //y equals zero. + if (glm::length(spineVec) > 0.0f) { + glm::vec3 newYaxisHips = glm::normalize(spineVec); + glm::vec3 forward = { 0.0f, 1.0f, 0.0f }; + glm::vec3 oldZaxisHips = forward; + glm::vec3 newXaxisHips = glm::normalize(glm::cross(newYaxisHips, oldZaxisHips)); + glm::vec3 newZaxisHips = oldZaxisHips; + + // create mat4 with the new axes + glm::vec4 left = { newXaxisHips.x, newXaxisHips.y, newXaxisHips.z, 0.0f }; + glm::vec4 up = { newYaxisHips.x, newYaxisHips.y, newYaxisHips.z, 0.0f }; + glm::vec4 view = { newZaxisHips.x, newZaxisHips.y, newZaxisHips.z, 0.0f }; + glm::vec4 translation = { 0.0f, 0.0f, 0.0f, 1.0f }; + glm::mat4 newRotHips(left, up, view, translation); + finalRot = glm::toQuat(newRotHips); + } + // otherwise, head and hips are equal so leave finalRot identity + } + glm::quat hipsRotation = hipYawRot*finalRot; + return hipsRotation; +} + +void drawBaseOfSupport(float baseOfSupportScale, float footLocal, glm::mat4 avatarToWorld) { + // scale the base of support based on user height + float clampFront = DEFAULT_AVATAR_SUPPORT_BASE_FRONT * baseOfSupportScale; + float clampBack = DEFAULT_AVATAR_SUPPORT_BASE_BACK * baseOfSupportScale; + float clampLeft = DEFAULT_AVATAR_SUPPORT_BASE_LEFT * baseOfSupportScale; + float clampRight = DEFAULT_AVATAR_SUPPORT_BASE_RIGHT * baseOfSupportScale; + float floor = footLocal + 0.05f; + + // transform the base of support corners to world space + glm::vec3 frontRight = transformPoint(avatarToWorld, { clampRight, floor, clampFront }); + glm::vec3 frontLeft = transformPoint(avatarToWorld, { clampLeft, floor, clampFront }); + glm::vec3 backRight = transformPoint(avatarToWorld, { clampRight, floor, clampBack }); + glm::vec3 backLeft = transformPoint(avatarToWorld, { clampLeft, floor, clampBack }); + + // draw the borders + const glm::vec4 rayColor = { 1.0f, 0.0f, 0.0f, 1.0f }; + DebugDraw::getInstance().drawRay(backLeft, frontLeft, rayColor); + DebugDraw::getInstance().drawRay(backLeft, backRight, rayColor); + DebugDraw::getInstance().drawRay(backRight, frontRight, rayColor); + DebugDraw::getInstance().drawRay(frontLeft, frontRight, rayColor); +} + +glm::mat4 MyAvatar::deriveBodyUsingCgModel() const { + glm::mat4 worldToSensorMat = glm::inverse(getSensorToWorldMatrix()); + glm::mat4 avatarToWorldMat = getTransform().getMatrix(); + glm::mat4 avatarToSensorMat = worldToSensorMat * avatarToWorldMat; + + glm::vec3 headPosition; + glm::quat headOrientation; + auto headPose = getControllerPoseInSensorFrame(controller::Action::HEAD); + if (headPose.isValid()) { + headPosition = headPose.translation; + // rotate by 180 Y to put the head in same frame as the avatar + headOrientation = headPose.rotation * Quaternions::Y_180; + } + const glm::quat headOrientationYawOnly = cancelOutRollAndPitch(headOrientation); + const float MIX_RATIO = 0.15f; + // here we mix in some of the head yaw into the hip yaw + glm::quat hipYawRot = glm::normalize(glm::lerp(glmExtractRotation(avatarToSensorMat), headOrientationYawOnly, MIX_RATIO)); + glm::quat deltaRot = glm::inverse(glmExtractRotation(avatarToSensorMat))*hipYawRot; + glm::vec3 headPositionLocal = getAbsoluteJointTranslationInObjectFrame(_skeletonModel->getRig().indexOfJoint("Head")); + glm::vec3 headLocalAfterDelta = glm::inverse(deltaRot)*headPositionLocal; + + if (_enableDebugDrawBaseOfSupport) { + // default height is ~ 1.64 meters + float scaleBaseOfSupport = getUserEyeHeight() / DEFAULT_AVATAR_EYE_HEIGHT; + glm::vec3 rightFootPositionLocal = getAbsoluteJointTranslationInObjectFrame(_skeletonModel->getRig().indexOfJoint("RightFoot")); + drawBaseOfSupport(scaleBaseOfSupport, rightFootPositionLocal.y, avatarToWorldMat); + } + + // get the new center of gravity + const glm::vec3 cgHipsPosition = computeCounterBalance(); + glm::vec3 hipsPositionFinal = transformPoint(avatarToSensorMat, cgHipsPosition); + + //find the new hips rotation using the new head-hips axis as the up axis + glm::quat newHipsRotation = computeNewHipsRotation( hipYawRot, headLocalAfterDelta, cgHipsPosition); + return createMatFromQuatAndPos(newHipsRotation, hipsPositionFinal); +} + float MyAvatar::getUserHeight() const { return _userHeight.get(); } @@ -3066,11 +3323,24 @@ void MyAvatar::FollowHelper::prePhysicsUpdate(MyAvatar& myAvatar, const glm::mat AnimPose followWorldPose(currentWorldMatrix); + glm::quat currentHipsLocal = myAvatar.getAbsoluteJointRotationInObjectFrame(myAvatar.getJointIndex("Hips")); + const glm::quat hipsinWorldSpace = followWorldPose.rot() * (Quaternions::Y_180 * (currentHipsLocal)); + const glm::vec3 avatarUpWorld = glm::normalize(followWorldPose.rot()*(Vectors::UP)); + glm::quat resultingSwingInWorld; + glm::quat resultingTwistInWorld; + swingTwistDecomposition(hipsinWorldSpace, avatarUpWorld, resultingSwingInWorld, resultingTwistInWorld); + // remove scale present from sensorToWorldMatrix followWorldPose.scale() = glm::vec3(1.0f); if (isActive(Rotation)) { - followWorldPose.rot() = glmExtractRotation(desiredWorldMatrix); + if (getToggleHipsFollowing()) { + //use the hmd reading for the hips follow + followWorldPose.rot() = glmExtractRotation(desiredWorldMatrix); + } else { + //use the hips as changed by the arms azimuth for the hips to follow. + followWorldPose.rot() = resultingTwistInWorld; + } } if (isActive(Horizontal)) { glm::vec3 desiredTranslation = extractTranslation(desiredWorldMatrix); @@ -3466,6 +3736,10 @@ void MyAvatar::updateHoldActions(const AnimPose& prePhysicsPose, const AnimPose& } } +bool MyAvatar::isRecenteringHorizontally() const { + return _follow.isActive(FollowHelper::Horizontal); +} + const MyHead* MyAvatar::getMyHead() const { return static_cast(getHead()); } diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index ac3d3cd2f4..3293109004 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -105,6 +105,9 @@ class MyAvatar : public Avatar { * by 30cm. Read-only. * @property {Pose} rightHandTipPose - The pose of the right hand as determined by the hand controllers, with the position * by 30cm. Read-only. + * @property {boolean} centerOfGravityModelEnabled=true - If true then the avatar hips are placed according to the center of + * gravity model that balance the center of gravity over the base of support of the feet. Setting the value false + * will result in the default behaviour where the hips are placed under the head. * @property {boolean} hmdLeanRecenterEnabled=true - If true then the avatar is re-centered to be under the * head's position. In room-scale VR, this behavior is what causes your avatar to follow your HMD as you walk around * the room. Setting the value false is useful if you want to pin the avatar to a fixed position. @@ -199,6 +202,7 @@ class MyAvatar : public Avatar { Q_PROPERTY(float energy READ getEnergy WRITE setEnergy) Q_PROPERTY(bool isAway READ getIsAway WRITE setAway) + Q_PROPERTY(bool centerOfGravityModelEnabled READ getCenterOfGravityModelEnabled WRITE setCenterOfGravityModelEnabled) Q_PROPERTY(bool hmdLeanRecenterEnabled READ getHMDLeanRecenterEnabled WRITE setHMDLeanRecenterEnabled) Q_PROPERTY(bool collisionsEnabled READ getCollisionsEnabled WRITE setCollisionsEnabled) Q_PROPERTY(bool characterControllerEnabled READ getCharacterControllerEnabled WRITE setCharacterControllerEnabled) @@ -480,7 +484,16 @@ public: */ Q_INVOKABLE QString getDominantHand() const { return _dominantHand; } - + /**jsdoc + * @function MyAvatar.setCenterOfGravityModelEnabled + * @param {boolean} enabled + */ + Q_INVOKABLE void setCenterOfGravityModelEnabled(bool value) { _centerOfGravityModelEnabled = value; } + /**jsdoc + * @function MyAvatar.getCenterOfGravityModelEnabled + * @returns {boolean} + */ + Q_INVOKABLE bool getCenterOfGravityModelEnabled() const { return _centerOfGravityModelEnabled; } /**jsdoc * @function MyAvatar.setHMDLeanRecenterEnabled * @param {boolean} enabled @@ -564,6 +577,13 @@ public: */ Q_INVOKABLE void triggerRotationRecenter(); + /**jsdoc + *The isRecenteringHorizontally function returns true if MyAvatar + *is translating the root of the Avatar to keep the center of gravity under the head. + *isActive(Horizontal) is returned. + *@function MyAvatar.isRecenteringHorizontally + */ + Q_INVOKABLE bool isRecenteringHorizontally() const; eyeContactTarget getEyeContactTarget(); @@ -956,10 +976,18 @@ public: void removeHoldAction(AvatarActionHold* holdAction); // thread-safe void updateHoldActions(const AnimPose& prePhysicsPose, const AnimPose& postUpdatePose); + // derive avatar body position and orientation from the current HMD Sensor location. // results are in HMD frame glm::mat4 deriveBodyFromHMDSensor() const; + glm::vec3 computeCounterBalance() const; + + // derive avatar body position and orientation from using the current HMD Sensor location in relation to the previous + // location of the base of support of the avatar. + // results are in HMD frame + glm::mat4 deriveBodyUsingCgModel() const; + /**jsdoc * @function MyAvatar.isUp * @param {Vec3} direction @@ -1107,7 +1135,16 @@ public slots: */ Q_INVOKABLE void updateMotionBehaviorFromMenu(); - + /**jsdoc + * @function MyAvatar.setToggleHips + * @param {boolean} enabled + */ + void setToggleHips(bool followHead); + /**jsdoc + * @function MyAvatar.setEnableDebugDrawBaseOfSupport + * @param {boolean} enabled + */ + void setEnableDebugDrawBaseOfSupport(bool isEnabled); /**jsdoc * @function MyAvatar.setEnableDebugDrawDefaultPose * @param {boolean} enabled @@ -1495,9 +1532,12 @@ private: void setForceActivateVertical(bool val); bool getForceActivateHorizontal() const; void setForceActivateHorizontal(bool val); - std::atomic _forceActivateRotation{ false }; - std::atomic _forceActivateVertical{ false }; - std::atomic _forceActivateHorizontal{ false }; + bool getToggleHipsFollowing() const; + void setToggleHipsFollowing(bool followHead); + std::atomic _forceActivateRotation { false }; + std::atomic _forceActivateVertical { false }; + std::atomic _forceActivateHorizontal { false }; + std::atomic _toggleHipsFollowing { true }; }; FollowHelper _follow; @@ -1510,6 +1550,7 @@ private: bool _prevShouldDrawHead; bool _rigEnabled { true }; + bool _enableDebugDrawBaseOfSupport { false }; bool _enableDebugDrawDefaultPose { false }; bool _enableDebugDrawAnimPose { false }; bool _enableDebugDrawHandControllers { false }; @@ -1532,6 +1573,7 @@ private: std::map _controllerPoseMap; mutable std::mutex _controllerPoseMapMutex; + bool _centerOfGravityModelEnabled { true }; bool _hmdLeanRecenterEnabled { true }; bool _sprint { false }; diff --git a/interface/src/avatar/MySkeletonModel.cpp b/interface/src/avatar/MySkeletonModel.cpp index fd57657d33..f7f55db369 100644 --- a/interface/src/avatar/MySkeletonModel.cpp +++ b/interface/src/avatar/MySkeletonModel.cpp @@ -45,7 +45,14 @@ static AnimPose computeHipsInSensorFrame(MyAvatar* myAvatar, bool isFlying) { return result; } - glm::mat4 hipsMat = myAvatar->deriveBodyFromHMDSensor(); + glm::mat4 hipsMat; + if (myAvatar->getCenterOfGravityModelEnabled()) { + // then we use center of gravity model + hipsMat = myAvatar->deriveBodyUsingCgModel(); + } else { + // otherwise use the default of putting the hips under the head + hipsMat = myAvatar->deriveBodyFromHMDSensor(); + } glm::vec3 hipsPos = extractTranslation(hipsMat); glm::quat hipsRot = glmExtractRotation(hipsMat); @@ -53,8 +60,11 @@ static AnimPose computeHipsInSensorFrame(MyAvatar* myAvatar, bool isFlying) { glm::mat4 avatarToSensorMat = worldToSensorMat * avatarToWorldMat; // dampen hips rotation, by mixing it with the avatar orientation in sensor space - const float MIX_RATIO = 0.5f; - hipsRot = safeLerp(glmExtractRotation(avatarToSensorMat), hipsRot, MIX_RATIO); + // turning this off for center of gravity model because it is already mixed in there + if (!(myAvatar->getCenterOfGravityModelEnabled())) { + const float MIX_RATIO = 0.5f; + hipsRot = safeLerp(glmExtractRotation(avatarToSensorMat), hipsRot, MIX_RATIO); + } if (isFlying) { // rotate the hips back to match the flying animation. diff --git a/libraries/shared/src/AvatarConstants.h b/libraries/shared/src/AvatarConstants.h index 930da6a494..9f0c789b9d 100644 --- a/libraries/shared/src/AvatarConstants.h +++ b/libraries/shared/src/AvatarConstants.h @@ -20,6 +20,10 @@ const float DEFAULT_AVATAR_EYE_TO_TOP_OF_HEAD = 0.11f; // meters const float DEFAULT_AVATAR_NECK_TO_TOP_OF_HEAD = 0.185f; // meters const float DEFAULT_AVATAR_NECK_HEIGHT = DEFAULT_AVATAR_HEIGHT - DEFAULT_AVATAR_NECK_TO_TOP_OF_HEAD; const float DEFAULT_AVATAR_EYE_HEIGHT = DEFAULT_AVATAR_HEIGHT - DEFAULT_AVATAR_EYE_TO_TOP_OF_HEAD; +const float DEFAULT_AVATAR_SUPPORT_BASE_LEFT = -0.25f; +const float DEFAULT_AVATAR_SUPPORT_BASE_RIGHT = 0.25f; +const float DEFAULT_AVATAR_SUPPORT_BASE_FRONT = -0.20f; +const float DEFAULT_AVATAR_SUPPORT_BASE_BACK = 0.10f; // Used when avatar is missing joints... (avatar space) const glm::quat DEFAULT_AVATAR_MIDDLE_EYE_ROT { Quaternions::Y_180 }; diff --git a/scripts/defaultScripts.js b/scripts/defaultScripts.js index 71755e3abb..eec9d8eda6 100644 --- a/scripts/defaultScripts.js +++ b/scripts/defaultScripts.js @@ -33,7 +33,9 @@ var DEFAULT_SCRIPTS_COMBINED = [ "system/emote.js" ]; var DEFAULT_SCRIPTS_SEPARATE = [ - "system/controllers/controllerScripts.js" + "system/controllers/controllerScripts.js", + //"developer/step.js", + //"developer/cg_lean.js" //"system/chat.js" ]; diff --git a/scripts/developer/cg_lean.js b/scripts/developer/cg_lean.js new file mode 100644 index 0000000000..a4ca56d6d6 --- /dev/null +++ b/scripts/developer/cg_lean.js @@ -0,0 +1,553 @@ + +/* global Script, Vec3, MyAvatar Tablet Messages Quat DebugDraw Mat4 Xform*/ + + +Script.include("/~/system/libraries/Xform.js"); + +var MESSAGE_CHANNEL = "Hifi-Step-Cg"; + +var ANIM_VARS = [ + "isTalking", + "isNotMoving", + "isMovingForward", + "isMovingBackward", + "isMovingRight", + "isMovingLeft", + "isTurningRight", + "isTurningLeft", + "isFlying", + "isTakeoffStand", + "isTakeoffRun", + "isInAirStand", + "isInAirRun", + "hipsPosition", + "hipsRotation", + "hipsType", + "headWeight", + "headType" +]; + +var DEBUGDRAWING; +var YELLOW; +var BLUE; +var GREEN; +var RED; + +var ROT_Y90; +var ROT_Y180; +var FLOOR_Y; +var IDENT_QUAT; + +var TABLET_BUTTON_NAME; +var RECENTER; +var JOINT_MASSES; + +var hipsUnderHead; + +var armsHipRotation; +var hipsPosition; +var filteredHipsPosition; +var hipsRotation; + +var jointList; +var rightFootName; +var leftFootName; +var rightToeName; +var leftToeName; +var leftToeEnd; +var rightToeEnd; +var leftFoot; +var rightFoot; +var base; + +var clampFront; +var clampBack; +var clampLeft; +var clampRight; + +var tablet; +var tabletButton; + +function initCg() { + + DEBUGDRAWING = false; + + YELLOW = { r: 1, g: 1, b: 0, a: 1 }; + BLUE = { r: 0, g: 0, b: 1, a: 1 }; + GREEN = { r: 0, g: 1, b: 0, a: 1 }; + RED = { r: 1, g: 0, b: 0, a: 1 }; + + ROT_Y90 = { x: 0, y: 0.7071067811865475, z: 0, w: 0.7071067811865476 }; + ROT_Y180 = { x: 0, y: 1, z: 0, w: 0 }; + FLOOR_Y = -0.9; + IDENT_QUAT = { x: 0, y: 0, z: 0, w: 1 }; + + JOINT_MASSES = [{ joint: "Head", mass: 20.0, pos: { x: 0, y: 0, z: 0 } }, + { joint: "LeftHand", mass: 2.0, pos: { x: 0, y: 0, z: 0 } }, + { joint: "RightHand", mass: 2.0, pos: { x: 0, y: 0, z: 0 } }]; + + TABLET_BUTTON_NAME = "CG"; + RECENTER = false; + + MyAvatar.hmdLeanRecenterEnabled = RECENTER; + hipsUnderHead; + + armsHipRotation = { x: 0, y: 1, z: 0, w: 0 }; + hipsPosition = MyAvatar.getAbsoluteDefaultJointTranslationInObjectFrame(MyAvatar.getJointIndex("Hips")); + filteredHipsPosition = MyAvatar.position; + hipsRotation = { x: 0, y: 0, z: 0, w: 1 }; + + jointList = MyAvatar.getJointNames(); + // print(JSON.stringify(jointList)); + + rightFootName = null; + leftFootName = null; + rightToeName = null; + leftToeName = null; + leftToeEnd = null; + rightToeEnd = null; + leftFoot; + rightFoot; + + clampFront = -0.10; + clampBack = 0.17; + clampLeft = -0.50; + clampRight = 0.50; + + getFeetAndToeNames(); + base = computeBase(); + mirrorPoints(); + + + tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system"); + + tabletButton = tablet.addButton({ + text: TABLET_BUTTON_NAME, + icon: "icons/tablet-icons/avatar-record-i.svg" + }); + + tabletButton.clicked.connect(function () { + print("recenter is: " + RECENTER); + MyAvatar.hmdLeanRecenterEnabled = RECENTER; + RECENTER = !RECENTER; + + // messageSend("clicked button in cg"); + }); + + + var handlerId = MyAvatar.addAnimationStateHandler(function (props) { + + var result = {}; + + // prevent animations from ever leaving the idle state + result.isTalking = false; + result.isFlying = false; + result.isTakeoffStand = false; + result.isTakeoffRun = false; + result.isInAirStand = false; + result.isInAirRun = false; + result.hipsPosition = hipsPosition; + result.hipsRotation = hipsRotation; + result.hipsType = 0; + result.headWeight = 4; + result.headType = 4; + + return result; + }, ANIM_VARS); + + Messages.subscribe(MESSAGE_CHANNEL); + Messages.messageReceived.connect(messageHandler); + Script.update.connect(update); + MyAvatar.skeletonChanged.connect(function () { + Script.setTimeout(function () { + // stop logic if needed + MyAvatar.clearJointsData(); + // reset logic + }, 200); + }); + HMD.displayModeChanged.connect(function () { + Script.setTimeout(function () { + // stop logic if needed + MyAvatar.clearJointsData(); + // reset logic + }, 200); + }); + + +} + +function messageSend(message) { + Messages.sendLocalMessage(MESSAGE_CHANNEL, message); +} + +function messageHandler(channel, messageString, senderID) { + if (channel !== MESSAGE_CHANNEL) { + return; + } + + var hipquat = JSON.parse(messageString); + armsHipRotation = Quat.multiply(ROT_Y180,hipquat); + +} + +function getFeetAndToeNames() { + + for (var i = 0; i < jointList.length; i++) { + if ((jointList[i].indexOf('Right') !== -1) && (jointList[i].indexOf('Foot') !== -1)) { + print(JSON.stringify(jointList[i])); + rightFootName = jointList[i]; + } + if ((jointList[i].indexOf('Left') !== -1) && (jointList[i].indexOf('Foot') !== -1)) { + print(JSON.stringify(jointList[i])); + leftFootName = jointList[i]; + } + if ((jointList[i].indexOf('Right') !== -1) && (jointList[i].indexOf('Toe') !== -1) && (jointList[i].indexOf('End') !== -1)) { + print(JSON.stringify(jointList[i])); + rightToeName = jointList[i]; + } + if ((jointList[i].indexOf('Left') !== -1) && (jointList[i].indexOf('Toe') !== -1) && (jointList[i].indexOf('End') !== -1)) { + print(JSON.stringify(jointList[i])); + leftToeName = jointList[i]; + } + } +} + +function computeBase() { + + if (rightFootName === null || leftFootName === null) { + // if the feet names aren't found then use our best guess of the base. + leftToeEnd = {x: 0.12, y: 0.0, z: 0.12}; + rightToeEnd = {x: -0.18, y: 0.0, z: 0.12}; + leftFoot = {x: 0.15, y: 0.0, z: -0.17}; + rightFoot = {x: -0.20, y: 0.0, z: -0.17}; + } else { + // else we at least found the feet in the skeleton. + var leftFootIndex = MyAvatar.getJointIndex(leftFootName); + var rightFootIndex = MyAvatar.getJointIndex(rightFootName); + var leftFoot = MyAvatar.getAbsoluteJointTranslationInObjectFrame(leftFootIndex); + var rightFoot = MyAvatar.getAbsoluteJointTranslationInObjectFrame(rightFootIndex); + + if (rightToeName === null || leftToeName === null) { + // the toe ends were not found then we use a guess for the length and width of the feet. + leftToeEnd = {x: (leftFoot.x + 0.02), y: 0.0, z: (leftFoot.z - 0.2)}; + rightToeEnd = {x: (rightFoot.x - 0.02), y: 0.0, z: (rightFoot.z - 0.2)}; + } else { + // else we found the toe ends and now we can really compute the base. + var leftToeIndex = MyAvatar.getJointIndex(leftToeName); + var rightToeIndex = MyAvatar.getJointIndex(rightToeName); + leftToeEnd = MyAvatar.getAbsoluteJointTranslationInObjectFrame(leftToeIndex); + rightToeEnd = MyAvatar.getAbsoluteJointTranslationInObjectFrame(rightToeIndex); + } + + } + + // project each point into the FLOOR plane. + var points = [{x: leftToeEnd.x, y: FLOOR_Y, z: leftToeEnd.z}, + {x: rightToeEnd.x, y: FLOOR_Y, z: rightToeEnd.z}, + {x: rightFoot.x, y: FLOOR_Y, z: rightFoot.z}, + {x: leftFoot.x, y: FLOOR_Y, z: rightFoot.z}]; + + // compute normals for each plane + var normal, normals = []; + var n = points.length; + var next, prev; + for (next = 0, prev = n - 1; next < n; prev = next, next++) { + normal = Vec3.multiplyQbyV(ROT_Y90, Vec3.normalize(Vec3.subtract(points[next], points[prev]))); + normals.push(normal); + } + + var TOE_FORWARD_RADIUS = 0.01; + var TOE_SIDE_RADIUS = 0.05; + var HEEL_FORWARD_RADIUS = 0.01; + var HEEL_SIDE_RADIUS = 0.03; + var radii = [ + TOE_SIDE_RADIUS, TOE_FORWARD_RADIUS, TOE_FORWARD_RADIUS, TOE_SIDE_RADIUS, + HEEL_SIDE_RADIUS, HEEL_FORWARD_RADIUS, HEEL_FORWARD_RADIUS, HEEL_SIDE_RADIUS + ]; + + // subdivide base and extrude by the toe and heel radius. + var newPoints = []; + for (next = 0, prev = n - 1; next < n; prev = next, next++) { + newPoints.push(Vec3.sum(points[next], Vec3.multiply(radii[2 * next], normals[next]))); + newPoints.push(Vec3.sum(points[next], Vec3.multiply(radii[(2 * next) + 1], normals[(next + 1) % n]))); + } + + // compute newNormals + var newNormals = []; + n = newPoints.length; + for (next = 0, prev = n - 1; next < n; prev = next, next++) { + normal = Vec3.multiplyQbyV(ROT_Y90, Vec3.normalize(Vec3.subtract(newPoints[next], newPoints[prev]))); + newNormals.push(normal); + } + + for (var j = 0;j Math.abs(base.points[3].x)) { + base.points[3].x = -base.points[0].x; + base.points[2].x = -base.points[1].x; + } else { + base.points[0].x = -base.points[3].x; + base.points[1].x = -base.points[2].x; + } + + if (Math.abs(base.points[4].x) > Math.abs(base.points[7].x)) { + base.points[7].x = -base.points[4].x; + base.points[6].x = -base.points[5].x; + } else { + base.points[4].x = -base.points[7].x; + base.points[5].x = -base.points[6].x; + } + + if (Math.abs(base.points[0].z) > Math.abs(base.points[0].z)) { + base.points[3].z = base.points[0].z; + base.points[2].z = base.points[1].z; + } else { + base.points[0].z = base.points[3].z; + base.points[1].z = base.points[2].z; + } + + if (Math.abs(base.points[4].z) > Math.abs(base.points[7].z)) { + base.points[7].z = base.points[4].z; + base.points[6].z = base.points[5].z; + } else { + base.points[4].z = base.points[7].z; + base.points[5].z = base.points[6].z; + } + + for (var i = 0; i < base.points.length; i++) { + + print("point: " + i + " " + JSON.stringify(base.points[i])); + } + for (var j = 0; j < base.normals.length; j++) { + print("normal: " + j + " " + JSON.stringify(base.normals[j])); + } +} + + +function drawBase(base) { + // transform corners into world space, for rendering. + var xform = new Xform(MyAvatar.orientation, MyAvatar.position); + var worldPoints = base.points.map(function (point) { + return xform.xformPoint(point); + }); + var worldNormals = base.normals.map(function (normal) { + return xform.xformVector(normal); + }); + + var n = worldPoints.length; + var next, prev; + for (next = 0, prev = n - 1; next < n; prev = next, next++) { + if (DEBUGDRAWING) { + // draw border + DebugDraw.drawRay(worldPoints[prev], worldPoints[next], GREEN); + DebugDraw.drawRay(worldPoints[next], worldPoints[prev], GREEN); + + // draw normal + var midPoint = Vec3.multiply(0.5, Vec3.sum(worldPoints[prev], worldPoints[next])); + DebugDraw.drawRay(midPoint, Vec3.sum(midPoint, worldNormals[next]), YELLOW); + DebugDraw.drawRay(midPoint, Vec3.sum(midPoint, worldNormals[next+1]), YELLOW); + } + } +} + +function computeCg() { + // point mass. + var n = JOINT_MASSES.length; + var moments = {x: 0, y: 0, z: 0}; + var masses = 0; + for (var i = 0; i < n; i++) { + var pos = MyAvatar.getAbsoluteJointTranslationInObjectFrame(MyAvatar.getJointIndex(JOINT_MASSES[i].joint)); + JOINT_MASSES[i].pos = pos; + moments = Vec3.sum(moments, Vec3.multiply(JOINT_MASSES[i].mass, pos)); + masses += JOINT_MASSES[i].mass; + } + return Vec3.multiply(1 / masses, moments); +} + + +function clamp(val, min, max) { + return Math.max(min, Math.min(max, val)); +} + +function distancetoline(p1,p2,cg) { + var numerator = Math.abs((p2.z - p1.z)*(cg.x) - (p2.x - p1.x)*(cg.z) + (p2.x)*(p1.z) - (p2.z)*(p1.x)); + var denominator = Math.sqrt( Math.pow((p2.z - p1.z),2) + Math.pow((p2.x - p1.x),2)); + + return numerator/denominator; +} + +function isLeft(a, b, c) { + return (((b.x - a.x)*(c.z - a.z) - (b.z - a.z)*(c.x - a.x)) > 0); +} + +function slope(num) { + var constant = 1.0; + return 1 - ( 1/(1+constant*num)); +} + +function dampenCgMovement(rawCg) { + + var distanceFromCenterZ = rawCg.z; + var distanceFromCenterX = rawCg.x; + + // clampFront = -0.10; + // clampBack = 0.17; + // clampLeft = -0.50; + // clampRight = 0.50; + + var dampedCg = { x: 0, y: 0, z: 0 }; + + if (rawCg.z < 0.0) { + var inputFront; + inputFront = Math.abs(distanceFromCenterZ / clampFront); + var scaleFrontNew = slope(inputFront); + dampedCg.z = scaleFrontNew * clampFront; + } else { + // cg.z > 0.0 + var inputBack; + inputBack = Math.abs(distanceFromCenterZ / clampBack); + var scaleBackNew = slope(inputBack); + dampedCg.z = scaleBackNew * clampBack; + } + + if (rawCg.x > 0.0) { + var inputRight; + inputRight = Math.abs(distanceFromCenterX / clampRight); + var scaleRightNew = slope(inputRight); + dampedCg.x = scaleRightNew * clampRight; + } else { + // left of center + var inputLeft; + inputLeft = Math.abs(distanceFromCenterX / clampLeft); + var scaleLeftNew = slope(inputLeft); + dampedCg.x = scaleLeftNew * clampLeft; + } + return dampedCg; +} + +function computeCounterBalance(desiredCgPos) { + // compute hips position to maintain desiredCg + var HIPS_MASS = 40; + var totalMass = JOINT_MASSES.reduce(function (accum, obj) { + return accum + obj.mass; + }, 0); + var temp1 = Vec3.subtract(Vec3.multiply(totalMass + HIPS_MASS, desiredCgPos), + Vec3.multiply(JOINT_MASSES[0].mass, JOINT_MASSES[0].pos)); + var temp2 = Vec3.subtract(temp1, + Vec3.multiply(JOINT_MASSES[1].mass, JOINT_MASSES[1].pos)); + var temp3 = Vec3.subtract(temp2, + Vec3.multiply(JOINT_MASSES[2].mass, JOINT_MASSES[2].pos)); + var temp4 = Vec3.multiply(1 / HIPS_MASS, temp3); + + + var currentHead = MyAvatar.getAbsoluteJointTranslationInObjectFrame(MyAvatar.getJointIndex("Head")); + var tposeHead = MyAvatar.getAbsoluteDefaultJointTranslationInObjectFrame(MyAvatar.getJointIndex("Head")); + var tposeHips = MyAvatar.getAbsoluteDefaultJointTranslationInObjectFrame(MyAvatar.getJointIndex("Hips")); + + var xzDiff = { x: (currentHead.x - temp4.x), y: 0, z: (currentHead.z - temp4.z) }; + var headMinusHipXz = Vec3.length(xzDiff); + + var headHipDefault = Vec3.length(Vec3.subtract(tposeHead, tposeHips)); + + var hipHeight = Math.sqrt((headHipDefault * headHipDefault) - (headMinusHipXz * headMinusHipXz)); + + temp4.y = (currentHead.y - hipHeight); + if (temp4.y > tposeHips.y) { + temp4.y = 0.0; + } + return temp4; +} + +function update(dt) { + + var cg = computeCg(); + // print("time elapsed " + dt); + + var desiredCg = { x: 0, y: 0, z: 0 }; + // print("the raw cg " + cg.x + " " + cg.y + " " + cg.z); + + desiredCg.x = cg.x; + desiredCg.y = 0; + desiredCg.z = cg.z; + + desiredCg = dampenCgMovement(cg); + + cg.y = FLOOR_Y; + + // after the dampening above it might be right to clamp the desiredcg to the edge of the base + // of support. + + if (DEBUGDRAWING) { + DebugDraw.addMyAvatarMarker("left toe", IDENT_QUAT, leftToeEnd, BLUE); + DebugDraw.addMyAvatarMarker("right toe", IDENT_QUAT, rightToeEnd, BLUE); + DebugDraw.addMyAvatarMarker("cg", IDENT_QUAT, cg, BLUE); + DebugDraw.addMyAvatarMarker("desiredCg", IDENT_QUAT, desiredCg, GREEN); + drawBase(base); + } + + var currentHeadPos = MyAvatar.getAbsoluteJointTranslationInObjectFrame(MyAvatar.getJointIndex("Head")); + var localHipsPos = computeCounterBalance(desiredCg); + // print("current hips " + cg.x + " " + cg.y + " " + cg.z); + // print("dampened hips " + desiredCg.x + " " + desiredCg.y + " " + desiredCg.z) + + var globalPosRoot = MyAvatar.position; + var globalRotRoot = Quat.normalize(MyAvatar.orientation); + var inverseGlobalRotRoot = Quat.normalize(Quat.inverse(globalRotRoot)); + var globalPosHips = Vec3.sum(globalPosRoot, Vec3.multiplyQbyV(globalRotRoot, localHipsPos)); + var unRotatedHipsPosition; + + if (!MyAvatar.isRecenteringHorizontally()) { + + filteredHipsPosition = Vec3.mix(filteredHipsPosition, globalPosHips, 0.1); + unRotatedHipsPosition = Vec3.multiplyQbyV(inverseGlobalRotRoot, Vec3.subtract(filteredHipsPosition, globalPosRoot)); + hipsPosition = Vec3.multiplyQbyV(ROT_Y180, unRotatedHipsPosition); + } else { + // DebugDraw.addMarker("hipsunder", IDENT_QUAT, hipsUnderHead, GREEN); + filteredHipsPosition = Vec3.mix(filteredHipsPosition, globalPosHips, 0.1); + unRotatedHipsPosition = Vec3.multiplyQbyV(inverseGlobalRotRoot, Vec3.subtract(filteredHipsPosition, globalPosRoot)); + hipsPosition = Vec3.multiplyQbyV(ROT_Y180, unRotatedHipsPosition); + } + + var newYaxisHips = Vec3.normalize(Vec3.subtract(currentHeadPos, unRotatedHipsPosition)); + var forward = { x: 0.0, y: 0.0, z: 1.0 }; + + // arms hip rotation is sent from the step script + var oldZaxisHips = Vec3.normalize(Vec3.multiplyQbyV(armsHipRotation, forward)); + var newXaxisHips = Vec3.normalize(Vec3.cross(newYaxisHips, oldZaxisHips)); + var newZaxisHips = Vec3.normalize(Vec3.cross(newXaxisHips, newYaxisHips)); + + // var beforeHips = MyAvatar.getAbsoluteJointRotationInObjectFrame(MyAvatar.getJointIndex("Hips")); + var left = { x: newXaxisHips.x, y: newXaxisHips.y, z: newXaxisHips.z, w: 0.0 }; + var up = { x: newYaxisHips.x, y: newYaxisHips.y, z: newYaxisHips.z, w: 0.0 }; + var view = { x: newZaxisHips.x, y: newZaxisHips.y, z: newZaxisHips.z, w: 0.0 }; + + var translation = { x: 0.0, y: 0.0, z: 0.0, w: 1.0 }; + var newRotHips = Mat4.createFromColumns(left, up, view, translation); + var finalRot = Mat4.extractRotation(newRotHips); + + hipsRotation = Quat.multiply(ROT_Y180, finalRot); + print("final rot" + finalRot.x + " " + finalRot.y + " " + finalRot.z + " " + finalRot.w); + + if (DEBUGDRAWING) { + DebugDraw.addMyAvatarMarker("hipsPos", IDENT_QUAT, hipsPosition, RED); + } +} + + +Script.setTimeout(initCg, 10); +Script.scriptEnding.connect(function () { + Script.update.disconnect(update); + if (tablet) { + tablet.removeButton(tabletButton); + } + Messages.messageReceived.disconnect(messageHandler); + Messages.unsubscribe(MESSAGE_CHANNEL); + +}); diff --git a/tests/animation/src/data/avatar.json b/tests/animation/src/data/avatar.json index 550a95e980..3b80ff6d77 100644 --- a/tests/animation/src/data/avatar.json +++ b/tests/animation/src/data/avatar.json @@ -363,7 +363,7 @@ { "id": "idle", "interpTarget": 6, - "interpDuration": 6, + "interpDuration": 3, "transitions": [ { "var": "isMovingForward", "state": "walkFwd" }, { "var": "isMovingBackward", "state": "walkBwd" }, From bbf8c7357248cca8c83ab1dd99f1a7bd4b754645 Mon Sep 17 00:00:00 2001 From: amantley Date: Tue, 8 May 2018 10:52:28 -0700 Subject: [PATCH 029/300] code review changes to declare functions static --- interface/src/avatar/MyAvatar.cpp | 39 ++++++++++++++++++------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index c3df9f6143..c78fc1c11b 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -2847,32 +2847,37 @@ glm::mat4 MyAvatar::deriveBodyFromHMDSensor() const { return createMatFromQuatAndPos(headOrientationYawOnly, bodyPos); } -float slope(float num) { - float constantK = 1.0; +// ease in function for dampening cg movement +static float slope(float num) { + const float CURVE_CONSTANT = 1.0f; float ret = 1.0f; if (num > 0.0f) { - ret = 1.0f - (1.0f / (1.0f + constantK * num)); + ret = 1.0f - (1.0f / (1.0f + CURVE_CONSTANT * num)); } return ret; } -glm::vec3 dampenCgMovement(glm::vec3 rawCg, float baseOfSupportScale) { +// This function gives a soft clamp at the edge of the base of support +// dampenCgMovement returns the cg value in Avatar space. +// rawCg is also in Avatar space +// baseOfSupportScale is based on the height of the user +static glm::vec3 dampenCgMovement(glm::vec3 rawCg, float baseOfSupportScale) { float distanceFromCenterZ = rawCg.z; float distanceFromCenterX = rawCg.x; - // The dampening scale factors makes the slope function soft clamp the - // cg at the edge of the base of support of the feet, in the lateral and posterior directions. - // In the forward direction we need a different scale because forward is in - // the direction of the hip extensor joint, which means bending usually happens + // The dampening scale factors makes the slope function soft clamp the + // cg at the edge of the base of support of the feet, in the lateral and posterior directions. + // In the forward direction we need a different scale because forward is in + // the direction of the hip extensor joint, which means bending usually happens // well before reaching the edge of the base of support. // The scale of the base of support reflects the size of the user in real life. - float forwardDampeningFactor = 0.5f; - float lateralAndBackDampeningScaleFactor = 2.0f; - float clampFront = DEFAULT_AVATAR_SUPPORT_BASE_FRONT * forwardDampeningFactor * baseOfSupportScale; + const float forwardDampeningFactor = 0.5f; + const float lateralAndBackDampeningScaleFactor = 2.0f; + const float clampFront = DEFAULT_AVATAR_SUPPORT_BASE_FRONT * forwardDampeningFactor * baseOfSupportScale; float clampBack = DEFAULT_AVATAR_SUPPORT_BASE_BACK * lateralAndBackDampeningScaleFactor * baseOfSupportScale; float clampLeft = DEFAULT_AVATAR_SUPPORT_BASE_LEFT * lateralAndBackDampeningScaleFactor * baseOfSupportScale; float clampRight = DEFAULT_AVATAR_SUPPORT_BASE_RIGHT * lateralAndBackDampeningScaleFactor * baseOfSupportScale; - glm::vec3 dampedCg = {0.0f,0.0f,0.0f}; + glm::vec3 dampedCg(0.0f, 0.0f, 0.0f); // find the damped z coord of the cg if (rawCg.z < 0.0f) { @@ -2906,8 +2911,9 @@ glm::vec3 dampenCgMovement(glm::vec3 rawCg, float baseOfSupportScale) { return dampedCg; } +// computeCounterBalance returns the center of gravity in Avatar space glm::vec3 MyAvatar::computeCounterBalance() const { - struct jointMass { + struct JointMass { QString name; float weight; glm::vec3 position; @@ -2925,14 +2931,14 @@ glm::vec3 MyAvatar::computeCounterBalance() const { // find the current center of gravity position based on head and hand moments float hipsMass = 40.0f; float totalMass = 0.0f; - glm::vec3 sumOfMoments = { 0.0f, 0.0f, 0.0f }; + glm::vec3 sumOfMoments(0.0f, 0.0f, 0.0f); for (int i = 0; i < 3; i++) { const QString jointName = cgMasses[i].name; cgMasses[i].position = getAbsoluteJointTranslationInObjectFrame(_skeletonModel->getRig().indexOfJoint(jointName)); sumOfMoments += cgMasses[i].weight * cgMasses[i].position; totalMass += cgMasses[i].weight; } - glm::vec3 currentCg = (1 / totalMass) * sumOfMoments; + glm::vec3 currentCg = (1.0f / totalMass) * sumOfMoments; currentCg.y = 0.0f; // dampening the center of gravity, in effect, limits the value to the perimeter of the base of support float baseScale = 1.0f; @@ -2969,7 +2975,8 @@ glm::vec3 MyAvatar::computeCounterBalance() const { return counterBalancedCg; } -glm::quat computeNewHipsRotation(glm::quat hipYawRot, glm::vec3 curHead, glm::vec3 hipPos) { +// this function matches the hips rotation to the new cg head axis +static glm::quat computeNewHipsRotation(glm::quat hipYawRot, glm::vec3 curHead, glm::vec3 hipPos) { glm::vec3 spineVec = curHead - hipPos; glm::quat finalRot = Quaternions::IDENTITY; From 544967ef3bbeb5835333c91729a99306b7645853 Mon Sep 17 00:00:00 2001 From: amantley Date: Tue, 8 May 2018 10:55:10 -0700 Subject: [PATCH 030/300] added test function to cancel out roll and pitch --- interface/src/avatar/MyAvatar.cpp | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index c3df9f6143..b9fa8d2ac6 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -3049,6 +3049,30 @@ void drawBaseOfSupport(float baseOfSupportScale, float footLocal, glm::mat4 avat DebugDraw::getInstance().drawRay(frontLeft, frontRight, rayColor); } +// cancel out roll and pitch test fix +glm::quat cancelOutRollAndPitch2(const glm::quat& q) { + glm::vec3 zAxis = q * glm::vec3(0.0f, 0.0f, 1.0f); + glm::vec3 newZ; + glm::vec3 newX; + glm::vec3 newY; + // cancel out the roll and pitch + if (zAxis.x == 0 && zAxis.z == 0.0f) { + if (fabs(zAxis.y) > 0.0) { + // new z is the up axis, that is the direction the body is pointing + newZ = glm::normalize(q * glm::vec3(0.0f, 1.0f, 0.0f)); + } + newX = glm::cross(vec3(0.0f, 1.0f, 0.0f), newZ); + newY = glm::cross(newZ, newX); + } + else { + newZ = glm::normalize(vec3(zAxis.x, 0.0f, zAxis.z)); + newX = glm::cross(vec3(0.0f, 1.0f, 0.0f), newZ); + newY = glm::cross(newZ, newX); + } + glm::mat4 temp(glm::vec4(newX, 0.0f), glm::vec4(newY, 0.0f), glm::vec4(newZ, 0.0f), glm::vec4(0.0f, 0.0f, 0.0f, 1.0f)); + return glm::quat_cast(temp); +} + glm::mat4 MyAvatar::deriveBodyUsingCgModel() const { glm::mat4 worldToSensorMat = glm::inverse(getSensorToWorldMatrix()); glm::mat4 avatarToWorldMat = getTransform().getMatrix(); @@ -3062,7 +3086,7 @@ glm::mat4 MyAvatar::deriveBodyUsingCgModel() const { // rotate by 180 Y to put the head in same frame as the avatar headOrientation = headPose.rotation * Quaternions::Y_180; } - const glm::quat headOrientationYawOnly = cancelOutRollAndPitch(headOrientation); + const glm::quat headOrientationYawOnly = cancelOutRollAndPitch2(headOrientation); const float MIX_RATIO = 0.15f; // here we mix in some of the head yaw into the hip yaw glm::quat hipYawRot = glm::normalize(glm::lerp(glmExtractRotation(avatarToSensorMat), headOrientationYawOnly, MIX_RATIO)); From f72e7d8c012fac31b2b6b8f01fa86b8133bda982 Mon Sep 17 00:00:00 2001 From: milad nazeri Date: Tue, 8 May 2018 13:09:41 -0700 Subject: [PATCH 031/300] updating for workPC --- tools/jsdoc/gravPrep.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/jsdoc/gravPrep.js b/tools/jsdoc/gravPrep.js index 0e3d38da6d..e6002571ac 100644 --- a/tools/jsdoc/gravPrep.js +++ b/tools/jsdoc/gravPrep.js @@ -249,6 +249,8 @@ category: - docs visible: true + highlight: + enabled: false --- ` ) From 8000bcd272fc907df4ffee73dcd6f93a3e8cfb1f Mon Sep 17 00:00:00 2001 From: amantley Date: Tue, 8 May 2018 18:12:53 -0700 Subject: [PATCH 032/300] cleaned up cg code ie computeNewHipsRotation --- interface/src/avatar/MyAvatar.cpp | 205 ++++++++++--------------- libraries/shared/src/AvatarConstants.h | 7 + 2 files changed, 91 insertions(+), 121 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 5faebb0789..941aecc58b 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -2858,55 +2858,38 @@ static float slope(float num) { } // This function gives a soft clamp at the edge of the base of support -// dampenCgMovement returns the cg value in Avatar space. -// rawCg is also in Avatar space +// dampenCgMovement returns the damped cg value in Avatar space. +// cgUnderHeadHandsAvatarSpace is also in Avatar space // baseOfSupportScale is based on the height of the user -static glm::vec3 dampenCgMovement(glm::vec3 rawCg, float baseOfSupportScale) { - float distanceFromCenterZ = rawCg.z; - float distanceFromCenterX = rawCg.x; +static glm::vec3 dampenCgMovement(glm::vec3 cgUnderHeadHandsAvatarSpace, float baseOfSupportScale) { + float distanceFromCenterZ = cgUnderHeadHandsAvatarSpace.z; + float distanceFromCenterX = cgUnderHeadHandsAvatarSpace.x; - // The dampening scale factors makes the slope function soft clamp the - // cg at the edge of the base of support of the feet, in the lateral and posterior directions. // In the forward direction we need a different scale because forward is in // the direction of the hip extensor joint, which means bending usually happens // well before reaching the edge of the base of support. - // The scale of the base of support reflects the size of the user in real life. - const float forwardDampeningFactor = 0.5f; - const float lateralAndBackDampeningScaleFactor = 2.0f; - const float clampFront = DEFAULT_AVATAR_SUPPORT_BASE_FRONT * forwardDampeningFactor * baseOfSupportScale; - float clampBack = DEFAULT_AVATAR_SUPPORT_BASE_BACK * lateralAndBackDampeningScaleFactor * baseOfSupportScale; - float clampLeft = DEFAULT_AVATAR_SUPPORT_BASE_LEFT * lateralAndBackDampeningScaleFactor * baseOfSupportScale; - float clampRight = DEFAULT_AVATAR_SUPPORT_BASE_RIGHT * lateralAndBackDampeningScaleFactor * baseOfSupportScale; + const float clampFront = DEFAULT_AVATAR_SUPPORT_BASE_FRONT * DEFAULT_AVATAR_FORWARD_DAMPENING_FACTOR * baseOfSupportScale; + float clampBack = DEFAULT_AVATAR_SUPPORT_BASE_BACK * DEFAULT_AVATAR_LATERAL_DAMPENING_FACTOR * baseOfSupportScale; + float clampLeft = DEFAULT_AVATAR_SUPPORT_BASE_LEFT * DEFAULT_AVATAR_LATERAL_DAMPENING_FACTOR * baseOfSupportScale; + float clampRight = DEFAULT_AVATAR_SUPPORT_BASE_RIGHT * DEFAULT_AVATAR_LATERAL_DAMPENING_FACTOR * baseOfSupportScale; glm::vec3 dampedCg(0.0f, 0.0f, 0.0f); // find the damped z coord of the cg - if (rawCg.z < 0.0f) { + if (cgUnderHeadHandsAvatarSpace.z < 0.0f) { // forward displacement - float inputFront; - inputFront = fabs(distanceFromCenterZ / clampFront); - float scaleFrontNew = slope(inputFront); - dampedCg.z = scaleFrontNew * clampFront; + dampedCg.z = slope(fabs(distanceFromCenterZ / clampFront)) * clampFront; } else { // backwards displacement - float inputBack; - inputBack = fabs(distanceFromCenterZ / clampBack); - float scaleBackNew = slope(inputBack); - dampedCg.z = scaleBackNew * clampBack; + dampedCg.z = slope(fabs(distanceFromCenterZ / clampBack)) * clampBack; } // find the damped x coord of the cg - if (rawCg.x > 0.0f) { + if (cgUnderHeadHandsAvatarSpace.x > 0.0f) { // right of center - float inputRight; - inputRight = fabs(distanceFromCenterX / clampRight); - float scaleRightNew = slope(inputRight); - dampedCg.x = scaleRightNew * clampRight; + dampedCg.x = slope(fabs(distanceFromCenterX / clampRight)) * clampRight; } else { // left of center - float inputLeft; - inputLeft = fabs(distanceFromCenterX / clampLeft); - float scaleLeftNew = slope(inputLeft); - dampedCg.x = scaleLeftNew * clampLeft; + dampedCg.x = slope(fabs(distanceFromCenterX / clampLeft)) * clampLeft; } return dampedCg; } @@ -2917,27 +2900,43 @@ glm::vec3 MyAvatar::computeCounterBalance() const { QString name; float weight; glm::vec3 position; - } cgMasses[3]; + JointMass() {}; + JointMass(QString n, float w, glm::vec3 p) { + name = n; + weight = w; + position = p; + } + }; + // init the body part weights - cgMasses[0].name = "Head"; - cgMasses[0].weight = 20.0f; - cgMasses[0].position = { 0.0f, 0.0f, 0.0f }; - cgMasses[1].name = "LeftHand"; - cgMasses[1].weight = 2.0f; - cgMasses[1].position = { 0.0f, 0.0f, 0.0f }; - cgMasses[2].name = "RightHand"; - cgMasses[2].weight = 2.0f; - cgMasses[2].position = { 0.0f, 0.0f, 0.0f }; - // find the current center of gravity position based on head and hand moments - float hipsMass = 40.0f; - float totalMass = 0.0f; - glm::vec3 sumOfMoments(0.0f, 0.0f, 0.0f); - for (int i = 0; i < 3; i++) { - const QString jointName = cgMasses[i].name; - cgMasses[i].position = getAbsoluteJointTranslationInObjectFrame(_skeletonModel->getRig().indexOfJoint(jointName)); - sumOfMoments += cgMasses[i].weight * cgMasses[i].position; - totalMass += cgMasses[i].weight; + JointMass cgHeadMass(QString("Head"), DEFAULT_AVATAR_HEAD_MASS, glm::vec3(0.0f, 0.0f, 0.0f)); + JointMass cgLeftHandMass(QString("LeftHand"), DEFAULT_AVATAR_LEFTHAND_MASS, glm::vec3(0.0f, 0.0f, 0.0f)); + JointMass cgRightHandMass(QString("RightHand"), DEFAULT_AVATAR_RIGHTHAND_MASS, glm::vec3(0.0f, 0.0f, 0.0f)); + glm::vec3 tposeHead = DEFAULT_AVATAR_HEAD_POS; + glm::vec3 tposeHips = glm::vec3(0.0f, 0.0f, 0.0f); + + if (_skeletonModel->getRig().indexOfJoint(cgHeadMass.name) != -1) { + cgHeadMass.position = getAbsoluteJointTranslationInObjectFrame(_skeletonModel->getRig().indexOfJoint(cgHeadMass.name)); + tposeHead = getAbsoluteDefaultJointTranslationInObjectFrame(_skeletonModel->getRig().indexOfJoint(cgHeadMass.name)); } + if (_skeletonModel->getRig().indexOfJoint(cgLeftHandMass.name) != -1) { + cgLeftHandMass.position = getAbsoluteJointTranslationInObjectFrame(_skeletonModel->getRig().indexOfJoint(cgLeftHandMass.name)); + } else { + cgLeftHandMass.position = DEFAULT_AVATAR_LEFTHAND_POS; + } + if (_skeletonModel->getRig().indexOfJoint(cgRightHandMass.name) != -1) { + cgRightHandMass.position = getAbsoluteJointTranslationInObjectFrame(_skeletonModel->getRig().indexOfJoint(cgRightHandMass.name)); + } else { + cgRightHandMass.position = DEFAULT_AVATAR_RIGHTHAND_POS; + } + if (_skeletonModel->getRig().indexOfJoint("Hips") != -1) { + tposeHips = getAbsoluteDefaultJointTranslationInObjectFrame(_skeletonModel->getRig().indexOfJoint("Hips")); + } + + // find the current center of gravity position based on head and hand moments + glm::vec3 sumOfMoments = (cgHeadMass.weight * cgHeadMass.position) + (cgLeftHandMass.weight * cgLeftHandMass.position) + (cgRightHandMass.weight * cgRightHandMass.position); + float totalMass = cgHeadMass.weight + cgLeftHandMass.weight + cgRightHandMass.weight; + glm::vec3 currentCg = (1.0f / totalMass) * sumOfMoments; currentCg.y = 0.0f; // dampening the center of gravity, in effect, limits the value to the perimeter of the base of support @@ -2948,23 +2947,19 @@ glm::vec3 MyAvatar::computeCounterBalance() const { glm::vec3 desiredCg = dampenCgMovement(currentCg, baseScale); // compute hips position to maintain desiredCg - glm::vec3 counterBalancedForHead = ((totalMass + hipsMass) * desiredCg) - (cgMasses[0].position * cgMasses[0].weight); - glm::vec3 counterBalancedForLeftHand = counterBalancedForHead - (cgMasses[1].weight * cgMasses[1].position); - glm::vec3 counterBalancedForRightHand = counterBalancedForLeftHand - (cgMasses[2].weight * cgMasses[2].position); - glm::vec3 counterBalancedCg = (1.0f / hipsMass) * counterBalancedForRightHand; + glm::vec3 counterBalancedForHead = (totalMass + DEFAULT_AVATAR_HIPS_MASS) * desiredCg; + counterBalancedForHead -= sumOfMoments; + glm::vec3 counterBalancedCg = (1.0f / DEFAULT_AVATAR_HIPS_MASS) * counterBalancedForHead; // find the height of the hips - glm::vec3 currentHead = getAbsoluteJointTranslationInObjectFrame(_skeletonModel->getRig().indexOfJoint("Head")); - glm::vec3 tposeHead = getAbsoluteDefaultJointTranslationInObjectFrame(_skeletonModel->getRig().indexOfJoint("Head")); - glm::vec3 tposeHips = getAbsoluteDefaultJointTranslationInObjectFrame(_skeletonModel->getRig().indexOfJoint("Hips")); - glm::vec3 xzDiff = {(currentHead.x - counterBalancedCg.x), 0.0f, (currentHead.z - counterBalancedCg.z)}; + glm::vec3 xzDiff((cgHeadMass.position.x - counterBalancedCg.x), 0.0f, (cgHeadMass.position.z - counterBalancedCg.z)); float headMinusHipXz = glm::length(xzDiff); float headHipDefault = glm::length(tposeHead - tposeHips); float hipHeight = 0.0f; if (headHipDefault > headMinusHipXz) { hipHeight = sqrtf((headHipDefault * headHipDefault) - (headMinusHipXz * headMinusHipXz)); } - counterBalancedCg.y = (currentHead.y - hipHeight); + counterBalancedCg.y = (cgHeadMass.position.y - hipHeight); // this is to be sure that the feet don't lift off the floor. // add 5 centimeters to allow for going up on the toes. @@ -2975,66 +2970,33 @@ glm::vec3 MyAvatar::computeCounterBalance() const { return counterBalancedCg; } -// this function matches the hips rotation to the new cg head axis -static glm::quat computeNewHipsRotation(glm::quat hipYawRot, glm::vec3 curHead, glm::vec3 hipPos) { +// this function matches the hips rotation to the new cghips-head axis +// curHead and hipPos are in Avatar space +// returns the rotation of the hips in Avatar space +static glm::quat computeNewHipsRotation(glm::vec3 curHead, glm::vec3 hipPos) { glm::vec3 spineVec = curHead - hipPos; glm::quat finalRot = Quaternions::IDENTITY; - - if (spineVec.y > 0.0f) { - - glm::vec3 newYaxisHips = glm::normalize(spineVec); - glm::vec3 forward = { 0.0f, 0.0f, 1.0f }; - glm::vec3 oldZaxisHips = glm::normalize(forward); - glm::vec3 newXaxisHips = glm::normalize(glm::cross(newYaxisHips, oldZaxisHips)); - glm::vec3 newZaxisHips = glm::normalize(glm::cross(newXaxisHips, newYaxisHips)); - - // create mat4 with the new axes - glm::vec4 left = { newXaxisHips.x, newXaxisHips.y, newXaxisHips.z, 0.0f }; - glm::vec4 up = { newYaxisHips.x, newYaxisHips.y, newYaxisHips.z, 0.0f }; - glm::vec4 view = { newZaxisHips.x, newZaxisHips.y, newZaxisHips.z, 0.0f }; - glm::vec4 translation = { 0.0f, 0.0f, 0.0f, 1.0f }; - glm::mat4 newRotHips(left, up, view, translation); - finalRot = glm::toQuat(newRotHips); - } else if (spineVec.y < 0.0f) { - - glm::vec3 newYaxisHips = glm::normalize(-spineVec); - glm::vec3 forward = { 0.0f, 0.0f, 1.0f }; - glm::vec3 oldZaxisHips = glm::normalize(forward); - glm::vec3 newXaxisHips = glm::normalize(glm::cross(newYaxisHips, oldZaxisHips)); - glm::vec3 newZaxisHips = glm::normalize(glm::cross(newXaxisHips, newYaxisHips)); - - // create mat4 with the new axes - glm::vec4 left = { newXaxisHips.x, newXaxisHips.y, newXaxisHips.z, 0.0f }; - glm::vec4 up = { newYaxisHips.x, newYaxisHips.y, newYaxisHips.z, 0.0f }; - glm::vec4 view = { newZaxisHips.x, newZaxisHips.y, newZaxisHips.z, 0.0f }; - glm::vec4 translation = { 0.0f, 0.0f, 0.0f, 1.0f }; - glm::mat4 newRotHips(left, up, view, translation); - finalRot = glm::toQuat(newRotHips); - } else { - - //y equals zero. - if (glm::length(spineVec) > 0.0f) { - glm::vec3 newYaxisHips = glm::normalize(spineVec); - glm::vec3 forward = { 0.0f, 1.0f, 0.0f }; - glm::vec3 oldZaxisHips = forward; - glm::vec3 newXaxisHips = glm::normalize(glm::cross(newYaxisHips, oldZaxisHips)); - glm::vec3 newZaxisHips = oldZaxisHips; - - // create mat4 with the new axes - glm::vec4 left = { newXaxisHips.x, newXaxisHips.y, newXaxisHips.z, 0.0f }; - glm::vec4 up = { newYaxisHips.x, newYaxisHips.y, newYaxisHips.z, 0.0f }; - glm::vec4 view = { newZaxisHips.x, newZaxisHips.y, newZaxisHips.z, 0.0f }; - glm::vec4 translation = { 0.0f, 0.0f, 0.0f, 1.0f }; - glm::mat4 newRotHips(left, up, view, translation); - finalRot = glm::toQuat(newRotHips); - } - // otherwise, head and hips are equal so leave finalRot identity + glm::vec3 newYaxisHips = glm::normalize(spineVec); + glm::vec3 forward(0.0f, 0.0f, 1.0f); + if ((fabs(spineVec.y) == 0.0f) && (glm::length(spineVec) > 0.0f)){ + //y equals zero and hips position != head position + forward = glm::vec3(0.0f, 1.0f, 0.0f); } - glm::quat hipsRotation = hipYawRot*finalRot; + glm::vec3 oldZaxisHips = glm::normalize(forward); + glm::vec3 newXaxisHips = glm::normalize(glm::cross(newYaxisHips, oldZaxisHips)); + glm::vec3 newZaxisHips = glm::normalize(glm::cross(newXaxisHips, newYaxisHips)); + // create mat4 with the new axes + glm::vec4 left(newXaxisHips.x, newXaxisHips.y, newXaxisHips.z, 0.0f); + glm::vec4 up(newYaxisHips.x, newYaxisHips.y, newYaxisHips.z, 0.0f); + glm::vec4 view(newZaxisHips.x, newZaxisHips.y, newZaxisHips.z, 0.0f); + glm::vec4 translation(0.0f, 0.0f, 0.0f, 1.0f); + glm::mat4 newRotHips(left, up, view, translation); + finalRot = glm::toQuat(newRotHips); + glm::quat hipsRotation = finalRot; return hipsRotation; } -void drawBaseOfSupport(float baseOfSupportScale, float footLocal, glm::mat4 avatarToWorld) { +static void drawBaseOfSupport(float baseOfSupportScale, float footLocal, glm::mat4 avatarToWorld) { // scale the base of support based on user height float clampFront = DEFAULT_AVATAR_SUPPORT_BASE_FRONT * baseOfSupportScale; float clampBack = DEFAULT_AVATAR_SUPPORT_BASE_BACK * baseOfSupportScale; @@ -3080,6 +3042,9 @@ glm::quat cancelOutRollAndPitch2(const glm::quat& q) { return glm::quat_cast(temp); } +// this function finds the hips position using a center of gravity model that +// balances the head and hands with the hips over the base of support +// returns the rotation and position of the Avatar in Sensor space glm::mat4 MyAvatar::deriveBodyUsingCgModel() const { glm::mat4 worldToSensorMat = glm::inverse(getSensorToWorldMatrix()); glm::mat4 avatarToWorldMat = getTransform().getMatrix(); @@ -3094,12 +3059,10 @@ glm::mat4 MyAvatar::deriveBodyUsingCgModel() const { headOrientation = headPose.rotation * Quaternions::Y_180; } const glm::quat headOrientationYawOnly = cancelOutRollAndPitch2(headOrientation); - const float MIX_RATIO = 0.15f; + const float MIX_RATIO = 0.5f; // here we mix in some of the head yaw into the hip yaw glm::quat hipYawRot = glm::normalize(glm::lerp(glmExtractRotation(avatarToSensorMat), headOrientationYawOnly, MIX_RATIO)); - glm::quat deltaRot = glm::inverse(glmExtractRotation(avatarToSensorMat))*hipYawRot; - glm::vec3 headPositionLocal = getAbsoluteJointTranslationInObjectFrame(_skeletonModel->getRig().indexOfJoint("Head")); - glm::vec3 headLocalAfterDelta = glm::inverse(deltaRot)*headPositionLocal; + glm::vec3 newLocalHeadPos = glm::inverse(hipYawRot) * (headPosition - extractTranslation(avatarToSensorMat)); if (_enableDebugDrawBaseOfSupport) { // default height is ~ 1.64 meters @@ -3112,9 +3075,9 @@ glm::mat4 MyAvatar::deriveBodyUsingCgModel() const { const glm::vec3 cgHipsPosition = computeCounterBalance(); glm::vec3 hipsPositionFinal = transformPoint(avatarToSensorMat, cgHipsPosition); - //find the new hips rotation using the new head-hips axis as the up axis - glm::quat newHipsRotation = computeNewHipsRotation( hipYawRot, headLocalAfterDelta, cgHipsPosition); - return createMatFromQuatAndPos(newHipsRotation, hipsPositionFinal); + // find the new hips rotation using the new head-hips axis as the up axis + glm::quat newHipsRotation = computeNewHipsRotation(newLocalHeadPos, cgHipsPosition); + return createMatFromQuatAndPos(hipYawRot*newHipsRotation, hipsPositionFinal); } float MyAvatar::getUserHeight() const { diff --git a/libraries/shared/src/AvatarConstants.h b/libraries/shared/src/AvatarConstants.h index 9f0c789b9d..bdc54dfeb6 100644 --- a/libraries/shared/src/AvatarConstants.h +++ b/libraries/shared/src/AvatarConstants.h @@ -24,6 +24,13 @@ const float DEFAULT_AVATAR_SUPPORT_BASE_LEFT = -0.25f; const float DEFAULT_AVATAR_SUPPORT_BASE_RIGHT = 0.25f; const float DEFAULT_AVATAR_SUPPORT_BASE_FRONT = -0.20f; const float DEFAULT_AVATAR_SUPPORT_BASE_BACK = 0.10f; +const float DEFAULT_AVATAR_FORWARD_DAMPENING_FACTOR = 0.5f; +const float DEFAULT_AVATAR_LATERAL_DAMPENING_FACTOR = 2.0f; +const float DEFAULT_AVATAR_HIPS_MASS = 40.0f; +const float DEFAULT_AVATAR_HEAD_MASS = 20.0f; +const float DEFAULT_AVATAR_LEFTHAND_MASS = 2.0f; +const float DEFAULT_AVATAR_RIGHTHAND_MASS = 2.0f; + // Used when avatar is missing joints... (avatar space) const glm::quat DEFAULT_AVATAR_MIDDLE_EYE_ROT { Quaternions::Y_180 }; From c822e836bc538c60cd29c929e55c1826fdd43900 Mon Sep 17 00:00:00 2001 From: milad nazeri Date: Tue, 8 May 2018 21:48:57 -0700 Subject: [PATCH 033/300] general format work --- tools/jsdoc/gravPrep.js | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/tools/jsdoc/gravPrep.js b/tools/jsdoc/gravPrep.js index e6002571ac..105444a841 100644 --- a/tools/jsdoc/gravPrep.js +++ b/tools/jsdoc/gravPrep.js @@ -66,10 +66,12 @@ const html_reg_propertiesHeaderEdit_Replace = '

Properties

'; const html_reg_typeEdit = /(
Returns[\s\S]*?Type)(<\/dt[\s\S]*?type">)(.*?)(<\/span><\/dd>[\s\S]*?<\/dl>)/g; const html_reg_typeEdit_replace = '$1: $3' - const html_reg_methodSize = /()(<\/h4>)/g; + const html_reg_methodSize = /()(<\/h4>)/g; const html_reg_methodSize_replace = ''; const html_reg_typeDefSize = /()/g; const html_reg_typeDefSize_replace = ''; + const html_reg_typeReturnSize = /
Type:\<\/h5>/g; + const html_reg_typeReturnSize_replace = '
Type:
'; const html_reg_returnSize = /
Returns:<\/h5>/g; const html_reg_returnSize_replace = '
Returns:<\/h6>'; const html_reg_findByName = '
)/g; const html_reg_findClassLinks = /([\s\S]+?<\/a>)/g; - + const html_reg_pretty = /(
)([\s\S]*?)(<\/pre>)/g;
+    const html_reg_pretty_replace = "
$2<\/pre>";
+    const html_reg_code = /()([\s\S]*?)(<\/code>)/g;
+    const html_reg_code_replace = "$1$2$3";
 
 // Mapping for GroupNames and Members
     let groupNameMemberMap = {
@@ -281,9 +286,11 @@
             {% endblock %}
             
             {% block content %}
-                
-

{{ page.title }}

- ${contentHtml} +
+
+

{{ page.title }}

+ ${contentHtml} +
{% endblock %} ` @@ -525,6 +532,9 @@ .replace(html_reg_findGlobalLinks, html_reg_findGlobalLinks_replace) .replace(html_reg_findGeneralLinks, lowerCaseGeneralLinks) .replace(html_reg_findClassLinks, modifyClassLinks) + .replace(html_reg_typeReturnSize, html_reg_typeReturnSize_replace) + .replace(html_reg_code, html_reg_code_replace) + .replace(html_reg_pretty, html_reg_pretty_replace) .replace(html_reg_findByMethod, ""); // Fix for namespace and object links From 77aedc1512d502bfa9f8e7198722ffba9099b9c8 Mon Sep 17 00:00:00 2001 From: amantley Date: Wed, 9 May 2018 11:14:13 -0700 Subject: [PATCH 034/300] changed lerp to saferLerp in cg code --- interface/src/avatar/MyAvatar.cpp | 19 +- scripts/developer/cg_lean.js | 553 ------------------------------ 2 files changed, 16 insertions(+), 556 deletions(-) delete mode 100644 scripts/developer/cg_lean.js diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 941aecc58b..c73b99d716 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -2978,7 +2978,8 @@ static glm::quat computeNewHipsRotation(glm::vec3 curHead, glm::vec3 hipPos) { glm::quat finalRot = Quaternions::IDENTITY; glm::vec3 newYaxisHips = glm::normalize(spineVec); glm::vec3 forward(0.0f, 0.0f, 1.0f); - if ((fabs(spineVec.y) == 0.0f) && (glm::length(spineVec) > 0.0f)){ + const float EPSILON = 0.0001f; + if ((fabs(spineVec.y) < EPSILON) && (glm::length(spineVec) > 0.0f)) { //y equals zero and hips position != head position forward = glm::vec3(0.0f, 1.0f, 0.0f); } @@ -3042,6 +3043,16 @@ glm::quat cancelOutRollAndPitch2(const glm::quat& q) { return glm::quat_cast(temp); } +static glm::quat saferLerp(const glm::quat& a, const glm::quat& b, float alpha) { + // adjust signs if necessary + glm::quat bTemp = b; + float dot = glm::dot(a, bTemp); + if (dot < 0.0f) { + bTemp = -bTemp; + } + return glm::normalize(glm::lerp(a, bTemp, alpha)); +} + // this function finds the hips position using a center of gravity model that // balances the head and hands with the hips over the base of support // returns the rotation and position of the Avatar in Sensor space @@ -3058,10 +3069,11 @@ glm::mat4 MyAvatar::deriveBodyUsingCgModel() const { // rotate by 180 Y to put the head in same frame as the avatar headOrientation = headPose.rotation * Quaternions::Y_180; } - const glm::quat headOrientationYawOnly = cancelOutRollAndPitch2(headOrientation); + const glm::quat headOrientationYawOnly = cancelOutRollAndPitch(headOrientation); const float MIX_RATIO = 0.5f; // here we mix in some of the head yaw into the hip yaw - glm::quat hipYawRot = glm::normalize(glm::lerp(glmExtractRotation(avatarToSensorMat), headOrientationYawOnly, MIX_RATIO)); + glm::quat hipYawRot = glm::normalize(saferLerp(glmExtractRotation(avatarToSensorMat), headOrientationYawOnly, MIX_RATIO)); + // glm::quat hipYawRot = glmExtractRotation(avatarToSensorMat); glm::vec3 newLocalHeadPos = glm::inverse(hipYawRot) * (headPosition - extractTranslation(avatarToSensorMat)); if (_enableDebugDrawBaseOfSupport) { @@ -3078,6 +3090,7 @@ glm::mat4 MyAvatar::deriveBodyUsingCgModel() const { // find the new hips rotation using the new head-hips axis as the up axis glm::quat newHipsRotation = computeNewHipsRotation(newLocalHeadPos, cgHipsPosition); return createMatFromQuatAndPos(hipYawRot*newHipsRotation, hipsPositionFinal); + // return createMatFromQuatAndPos(hipYawRot, hipsPositionFinal); } float MyAvatar::getUserHeight() const { diff --git a/scripts/developer/cg_lean.js b/scripts/developer/cg_lean.js deleted file mode 100644 index a4ca56d6d6..0000000000 --- a/scripts/developer/cg_lean.js +++ /dev/null @@ -1,553 +0,0 @@ - -/* global Script, Vec3, MyAvatar Tablet Messages Quat DebugDraw Mat4 Xform*/ - - -Script.include("/~/system/libraries/Xform.js"); - -var MESSAGE_CHANNEL = "Hifi-Step-Cg"; - -var ANIM_VARS = [ - "isTalking", - "isNotMoving", - "isMovingForward", - "isMovingBackward", - "isMovingRight", - "isMovingLeft", - "isTurningRight", - "isTurningLeft", - "isFlying", - "isTakeoffStand", - "isTakeoffRun", - "isInAirStand", - "isInAirRun", - "hipsPosition", - "hipsRotation", - "hipsType", - "headWeight", - "headType" -]; - -var DEBUGDRAWING; -var YELLOW; -var BLUE; -var GREEN; -var RED; - -var ROT_Y90; -var ROT_Y180; -var FLOOR_Y; -var IDENT_QUAT; - -var TABLET_BUTTON_NAME; -var RECENTER; -var JOINT_MASSES; - -var hipsUnderHead; - -var armsHipRotation; -var hipsPosition; -var filteredHipsPosition; -var hipsRotation; - -var jointList; -var rightFootName; -var leftFootName; -var rightToeName; -var leftToeName; -var leftToeEnd; -var rightToeEnd; -var leftFoot; -var rightFoot; -var base; - -var clampFront; -var clampBack; -var clampLeft; -var clampRight; - -var tablet; -var tabletButton; - -function initCg() { - - DEBUGDRAWING = false; - - YELLOW = { r: 1, g: 1, b: 0, a: 1 }; - BLUE = { r: 0, g: 0, b: 1, a: 1 }; - GREEN = { r: 0, g: 1, b: 0, a: 1 }; - RED = { r: 1, g: 0, b: 0, a: 1 }; - - ROT_Y90 = { x: 0, y: 0.7071067811865475, z: 0, w: 0.7071067811865476 }; - ROT_Y180 = { x: 0, y: 1, z: 0, w: 0 }; - FLOOR_Y = -0.9; - IDENT_QUAT = { x: 0, y: 0, z: 0, w: 1 }; - - JOINT_MASSES = [{ joint: "Head", mass: 20.0, pos: { x: 0, y: 0, z: 0 } }, - { joint: "LeftHand", mass: 2.0, pos: { x: 0, y: 0, z: 0 } }, - { joint: "RightHand", mass: 2.0, pos: { x: 0, y: 0, z: 0 } }]; - - TABLET_BUTTON_NAME = "CG"; - RECENTER = false; - - MyAvatar.hmdLeanRecenterEnabled = RECENTER; - hipsUnderHead; - - armsHipRotation = { x: 0, y: 1, z: 0, w: 0 }; - hipsPosition = MyAvatar.getAbsoluteDefaultJointTranslationInObjectFrame(MyAvatar.getJointIndex("Hips")); - filteredHipsPosition = MyAvatar.position; - hipsRotation = { x: 0, y: 0, z: 0, w: 1 }; - - jointList = MyAvatar.getJointNames(); - // print(JSON.stringify(jointList)); - - rightFootName = null; - leftFootName = null; - rightToeName = null; - leftToeName = null; - leftToeEnd = null; - rightToeEnd = null; - leftFoot; - rightFoot; - - clampFront = -0.10; - clampBack = 0.17; - clampLeft = -0.50; - clampRight = 0.50; - - getFeetAndToeNames(); - base = computeBase(); - mirrorPoints(); - - - tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system"); - - tabletButton = tablet.addButton({ - text: TABLET_BUTTON_NAME, - icon: "icons/tablet-icons/avatar-record-i.svg" - }); - - tabletButton.clicked.connect(function () { - print("recenter is: " + RECENTER); - MyAvatar.hmdLeanRecenterEnabled = RECENTER; - RECENTER = !RECENTER; - - // messageSend("clicked button in cg"); - }); - - - var handlerId = MyAvatar.addAnimationStateHandler(function (props) { - - var result = {}; - - // prevent animations from ever leaving the idle state - result.isTalking = false; - result.isFlying = false; - result.isTakeoffStand = false; - result.isTakeoffRun = false; - result.isInAirStand = false; - result.isInAirRun = false; - result.hipsPosition = hipsPosition; - result.hipsRotation = hipsRotation; - result.hipsType = 0; - result.headWeight = 4; - result.headType = 4; - - return result; - }, ANIM_VARS); - - Messages.subscribe(MESSAGE_CHANNEL); - Messages.messageReceived.connect(messageHandler); - Script.update.connect(update); - MyAvatar.skeletonChanged.connect(function () { - Script.setTimeout(function () { - // stop logic if needed - MyAvatar.clearJointsData(); - // reset logic - }, 200); - }); - HMD.displayModeChanged.connect(function () { - Script.setTimeout(function () { - // stop logic if needed - MyAvatar.clearJointsData(); - // reset logic - }, 200); - }); - - -} - -function messageSend(message) { - Messages.sendLocalMessage(MESSAGE_CHANNEL, message); -} - -function messageHandler(channel, messageString, senderID) { - if (channel !== MESSAGE_CHANNEL) { - return; - } - - var hipquat = JSON.parse(messageString); - armsHipRotation = Quat.multiply(ROT_Y180,hipquat); - -} - -function getFeetAndToeNames() { - - for (var i = 0; i < jointList.length; i++) { - if ((jointList[i].indexOf('Right') !== -1) && (jointList[i].indexOf('Foot') !== -1)) { - print(JSON.stringify(jointList[i])); - rightFootName = jointList[i]; - } - if ((jointList[i].indexOf('Left') !== -1) && (jointList[i].indexOf('Foot') !== -1)) { - print(JSON.stringify(jointList[i])); - leftFootName = jointList[i]; - } - if ((jointList[i].indexOf('Right') !== -1) && (jointList[i].indexOf('Toe') !== -1) && (jointList[i].indexOf('End') !== -1)) { - print(JSON.stringify(jointList[i])); - rightToeName = jointList[i]; - } - if ((jointList[i].indexOf('Left') !== -1) && (jointList[i].indexOf('Toe') !== -1) && (jointList[i].indexOf('End') !== -1)) { - print(JSON.stringify(jointList[i])); - leftToeName = jointList[i]; - } - } -} - -function computeBase() { - - if (rightFootName === null || leftFootName === null) { - // if the feet names aren't found then use our best guess of the base. - leftToeEnd = {x: 0.12, y: 0.0, z: 0.12}; - rightToeEnd = {x: -0.18, y: 0.0, z: 0.12}; - leftFoot = {x: 0.15, y: 0.0, z: -0.17}; - rightFoot = {x: -0.20, y: 0.0, z: -0.17}; - } else { - // else we at least found the feet in the skeleton. - var leftFootIndex = MyAvatar.getJointIndex(leftFootName); - var rightFootIndex = MyAvatar.getJointIndex(rightFootName); - var leftFoot = MyAvatar.getAbsoluteJointTranslationInObjectFrame(leftFootIndex); - var rightFoot = MyAvatar.getAbsoluteJointTranslationInObjectFrame(rightFootIndex); - - if (rightToeName === null || leftToeName === null) { - // the toe ends were not found then we use a guess for the length and width of the feet. - leftToeEnd = {x: (leftFoot.x + 0.02), y: 0.0, z: (leftFoot.z - 0.2)}; - rightToeEnd = {x: (rightFoot.x - 0.02), y: 0.0, z: (rightFoot.z - 0.2)}; - } else { - // else we found the toe ends and now we can really compute the base. - var leftToeIndex = MyAvatar.getJointIndex(leftToeName); - var rightToeIndex = MyAvatar.getJointIndex(rightToeName); - leftToeEnd = MyAvatar.getAbsoluteJointTranslationInObjectFrame(leftToeIndex); - rightToeEnd = MyAvatar.getAbsoluteJointTranslationInObjectFrame(rightToeIndex); - } - - } - - // project each point into the FLOOR plane. - var points = [{x: leftToeEnd.x, y: FLOOR_Y, z: leftToeEnd.z}, - {x: rightToeEnd.x, y: FLOOR_Y, z: rightToeEnd.z}, - {x: rightFoot.x, y: FLOOR_Y, z: rightFoot.z}, - {x: leftFoot.x, y: FLOOR_Y, z: rightFoot.z}]; - - // compute normals for each plane - var normal, normals = []; - var n = points.length; - var next, prev; - for (next = 0, prev = n - 1; next < n; prev = next, next++) { - normal = Vec3.multiplyQbyV(ROT_Y90, Vec3.normalize(Vec3.subtract(points[next], points[prev]))); - normals.push(normal); - } - - var TOE_FORWARD_RADIUS = 0.01; - var TOE_SIDE_RADIUS = 0.05; - var HEEL_FORWARD_RADIUS = 0.01; - var HEEL_SIDE_RADIUS = 0.03; - var radii = [ - TOE_SIDE_RADIUS, TOE_FORWARD_RADIUS, TOE_FORWARD_RADIUS, TOE_SIDE_RADIUS, - HEEL_SIDE_RADIUS, HEEL_FORWARD_RADIUS, HEEL_FORWARD_RADIUS, HEEL_SIDE_RADIUS - ]; - - // subdivide base and extrude by the toe and heel radius. - var newPoints = []; - for (next = 0, prev = n - 1; next < n; prev = next, next++) { - newPoints.push(Vec3.sum(points[next], Vec3.multiply(radii[2 * next], normals[next]))); - newPoints.push(Vec3.sum(points[next], Vec3.multiply(radii[(2 * next) + 1], normals[(next + 1) % n]))); - } - - // compute newNormals - var newNormals = []; - n = newPoints.length; - for (next = 0, prev = n - 1; next < n; prev = next, next++) { - normal = Vec3.multiplyQbyV(ROT_Y90, Vec3.normalize(Vec3.subtract(newPoints[next], newPoints[prev]))); - newNormals.push(normal); - } - - for (var j = 0;j Math.abs(base.points[3].x)) { - base.points[3].x = -base.points[0].x; - base.points[2].x = -base.points[1].x; - } else { - base.points[0].x = -base.points[3].x; - base.points[1].x = -base.points[2].x; - } - - if (Math.abs(base.points[4].x) > Math.abs(base.points[7].x)) { - base.points[7].x = -base.points[4].x; - base.points[6].x = -base.points[5].x; - } else { - base.points[4].x = -base.points[7].x; - base.points[5].x = -base.points[6].x; - } - - if (Math.abs(base.points[0].z) > Math.abs(base.points[0].z)) { - base.points[3].z = base.points[0].z; - base.points[2].z = base.points[1].z; - } else { - base.points[0].z = base.points[3].z; - base.points[1].z = base.points[2].z; - } - - if (Math.abs(base.points[4].z) > Math.abs(base.points[7].z)) { - base.points[7].z = base.points[4].z; - base.points[6].z = base.points[5].z; - } else { - base.points[4].z = base.points[7].z; - base.points[5].z = base.points[6].z; - } - - for (var i = 0; i < base.points.length; i++) { - - print("point: " + i + " " + JSON.stringify(base.points[i])); - } - for (var j = 0; j < base.normals.length; j++) { - print("normal: " + j + " " + JSON.stringify(base.normals[j])); - } -} - - -function drawBase(base) { - // transform corners into world space, for rendering. - var xform = new Xform(MyAvatar.orientation, MyAvatar.position); - var worldPoints = base.points.map(function (point) { - return xform.xformPoint(point); - }); - var worldNormals = base.normals.map(function (normal) { - return xform.xformVector(normal); - }); - - var n = worldPoints.length; - var next, prev; - for (next = 0, prev = n - 1; next < n; prev = next, next++) { - if (DEBUGDRAWING) { - // draw border - DebugDraw.drawRay(worldPoints[prev], worldPoints[next], GREEN); - DebugDraw.drawRay(worldPoints[next], worldPoints[prev], GREEN); - - // draw normal - var midPoint = Vec3.multiply(0.5, Vec3.sum(worldPoints[prev], worldPoints[next])); - DebugDraw.drawRay(midPoint, Vec3.sum(midPoint, worldNormals[next]), YELLOW); - DebugDraw.drawRay(midPoint, Vec3.sum(midPoint, worldNormals[next+1]), YELLOW); - } - } -} - -function computeCg() { - // point mass. - var n = JOINT_MASSES.length; - var moments = {x: 0, y: 0, z: 0}; - var masses = 0; - for (var i = 0; i < n; i++) { - var pos = MyAvatar.getAbsoluteJointTranslationInObjectFrame(MyAvatar.getJointIndex(JOINT_MASSES[i].joint)); - JOINT_MASSES[i].pos = pos; - moments = Vec3.sum(moments, Vec3.multiply(JOINT_MASSES[i].mass, pos)); - masses += JOINT_MASSES[i].mass; - } - return Vec3.multiply(1 / masses, moments); -} - - -function clamp(val, min, max) { - return Math.max(min, Math.min(max, val)); -} - -function distancetoline(p1,p2,cg) { - var numerator = Math.abs((p2.z - p1.z)*(cg.x) - (p2.x - p1.x)*(cg.z) + (p2.x)*(p1.z) - (p2.z)*(p1.x)); - var denominator = Math.sqrt( Math.pow((p2.z - p1.z),2) + Math.pow((p2.x - p1.x),2)); - - return numerator/denominator; -} - -function isLeft(a, b, c) { - return (((b.x - a.x)*(c.z - a.z) - (b.z - a.z)*(c.x - a.x)) > 0); -} - -function slope(num) { - var constant = 1.0; - return 1 - ( 1/(1+constant*num)); -} - -function dampenCgMovement(rawCg) { - - var distanceFromCenterZ = rawCg.z; - var distanceFromCenterX = rawCg.x; - - // clampFront = -0.10; - // clampBack = 0.17; - // clampLeft = -0.50; - // clampRight = 0.50; - - var dampedCg = { x: 0, y: 0, z: 0 }; - - if (rawCg.z < 0.0) { - var inputFront; - inputFront = Math.abs(distanceFromCenterZ / clampFront); - var scaleFrontNew = slope(inputFront); - dampedCg.z = scaleFrontNew * clampFront; - } else { - // cg.z > 0.0 - var inputBack; - inputBack = Math.abs(distanceFromCenterZ / clampBack); - var scaleBackNew = slope(inputBack); - dampedCg.z = scaleBackNew * clampBack; - } - - if (rawCg.x > 0.0) { - var inputRight; - inputRight = Math.abs(distanceFromCenterX / clampRight); - var scaleRightNew = slope(inputRight); - dampedCg.x = scaleRightNew * clampRight; - } else { - // left of center - var inputLeft; - inputLeft = Math.abs(distanceFromCenterX / clampLeft); - var scaleLeftNew = slope(inputLeft); - dampedCg.x = scaleLeftNew * clampLeft; - } - return dampedCg; -} - -function computeCounterBalance(desiredCgPos) { - // compute hips position to maintain desiredCg - var HIPS_MASS = 40; - var totalMass = JOINT_MASSES.reduce(function (accum, obj) { - return accum + obj.mass; - }, 0); - var temp1 = Vec3.subtract(Vec3.multiply(totalMass + HIPS_MASS, desiredCgPos), - Vec3.multiply(JOINT_MASSES[0].mass, JOINT_MASSES[0].pos)); - var temp2 = Vec3.subtract(temp1, - Vec3.multiply(JOINT_MASSES[1].mass, JOINT_MASSES[1].pos)); - var temp3 = Vec3.subtract(temp2, - Vec3.multiply(JOINT_MASSES[2].mass, JOINT_MASSES[2].pos)); - var temp4 = Vec3.multiply(1 / HIPS_MASS, temp3); - - - var currentHead = MyAvatar.getAbsoluteJointTranslationInObjectFrame(MyAvatar.getJointIndex("Head")); - var tposeHead = MyAvatar.getAbsoluteDefaultJointTranslationInObjectFrame(MyAvatar.getJointIndex("Head")); - var tposeHips = MyAvatar.getAbsoluteDefaultJointTranslationInObjectFrame(MyAvatar.getJointIndex("Hips")); - - var xzDiff = { x: (currentHead.x - temp4.x), y: 0, z: (currentHead.z - temp4.z) }; - var headMinusHipXz = Vec3.length(xzDiff); - - var headHipDefault = Vec3.length(Vec3.subtract(tposeHead, tposeHips)); - - var hipHeight = Math.sqrt((headHipDefault * headHipDefault) - (headMinusHipXz * headMinusHipXz)); - - temp4.y = (currentHead.y - hipHeight); - if (temp4.y > tposeHips.y) { - temp4.y = 0.0; - } - return temp4; -} - -function update(dt) { - - var cg = computeCg(); - // print("time elapsed " + dt); - - var desiredCg = { x: 0, y: 0, z: 0 }; - // print("the raw cg " + cg.x + " " + cg.y + " " + cg.z); - - desiredCg.x = cg.x; - desiredCg.y = 0; - desiredCg.z = cg.z; - - desiredCg = dampenCgMovement(cg); - - cg.y = FLOOR_Y; - - // after the dampening above it might be right to clamp the desiredcg to the edge of the base - // of support. - - if (DEBUGDRAWING) { - DebugDraw.addMyAvatarMarker("left toe", IDENT_QUAT, leftToeEnd, BLUE); - DebugDraw.addMyAvatarMarker("right toe", IDENT_QUAT, rightToeEnd, BLUE); - DebugDraw.addMyAvatarMarker("cg", IDENT_QUAT, cg, BLUE); - DebugDraw.addMyAvatarMarker("desiredCg", IDENT_QUAT, desiredCg, GREEN); - drawBase(base); - } - - var currentHeadPos = MyAvatar.getAbsoluteJointTranslationInObjectFrame(MyAvatar.getJointIndex("Head")); - var localHipsPos = computeCounterBalance(desiredCg); - // print("current hips " + cg.x + " " + cg.y + " " + cg.z); - // print("dampened hips " + desiredCg.x + " " + desiredCg.y + " " + desiredCg.z) - - var globalPosRoot = MyAvatar.position; - var globalRotRoot = Quat.normalize(MyAvatar.orientation); - var inverseGlobalRotRoot = Quat.normalize(Quat.inverse(globalRotRoot)); - var globalPosHips = Vec3.sum(globalPosRoot, Vec3.multiplyQbyV(globalRotRoot, localHipsPos)); - var unRotatedHipsPosition; - - if (!MyAvatar.isRecenteringHorizontally()) { - - filteredHipsPosition = Vec3.mix(filteredHipsPosition, globalPosHips, 0.1); - unRotatedHipsPosition = Vec3.multiplyQbyV(inverseGlobalRotRoot, Vec3.subtract(filteredHipsPosition, globalPosRoot)); - hipsPosition = Vec3.multiplyQbyV(ROT_Y180, unRotatedHipsPosition); - } else { - // DebugDraw.addMarker("hipsunder", IDENT_QUAT, hipsUnderHead, GREEN); - filteredHipsPosition = Vec3.mix(filteredHipsPosition, globalPosHips, 0.1); - unRotatedHipsPosition = Vec3.multiplyQbyV(inverseGlobalRotRoot, Vec3.subtract(filteredHipsPosition, globalPosRoot)); - hipsPosition = Vec3.multiplyQbyV(ROT_Y180, unRotatedHipsPosition); - } - - var newYaxisHips = Vec3.normalize(Vec3.subtract(currentHeadPos, unRotatedHipsPosition)); - var forward = { x: 0.0, y: 0.0, z: 1.0 }; - - // arms hip rotation is sent from the step script - var oldZaxisHips = Vec3.normalize(Vec3.multiplyQbyV(armsHipRotation, forward)); - var newXaxisHips = Vec3.normalize(Vec3.cross(newYaxisHips, oldZaxisHips)); - var newZaxisHips = Vec3.normalize(Vec3.cross(newXaxisHips, newYaxisHips)); - - // var beforeHips = MyAvatar.getAbsoluteJointRotationInObjectFrame(MyAvatar.getJointIndex("Hips")); - var left = { x: newXaxisHips.x, y: newXaxisHips.y, z: newXaxisHips.z, w: 0.0 }; - var up = { x: newYaxisHips.x, y: newYaxisHips.y, z: newYaxisHips.z, w: 0.0 }; - var view = { x: newZaxisHips.x, y: newZaxisHips.y, z: newZaxisHips.z, w: 0.0 }; - - var translation = { x: 0.0, y: 0.0, z: 0.0, w: 1.0 }; - var newRotHips = Mat4.createFromColumns(left, up, view, translation); - var finalRot = Mat4.extractRotation(newRotHips); - - hipsRotation = Quat.multiply(ROT_Y180, finalRot); - print("final rot" + finalRot.x + " " + finalRot.y + " " + finalRot.z + " " + finalRot.w); - - if (DEBUGDRAWING) { - DebugDraw.addMyAvatarMarker("hipsPos", IDENT_QUAT, hipsPosition, RED); - } -} - - -Script.setTimeout(initCg, 10); -Script.scriptEnding.connect(function () { - Script.update.disconnect(update); - if (tablet) { - tablet.removeButton(tabletButton); - } - Messages.messageReceived.disconnect(messageHandler); - Messages.unsubscribe(MESSAGE_CHANNEL); - -}); From a7955b642a791bf138e5f4e19cb7a9192c310e92 Mon Sep 17 00:00:00 2001 From: amantley Date: Wed, 9 May 2018 11:27:04 -0700 Subject: [PATCH 035/300] removed the follow hips code from pre physics update --- interface/src/avatar/MyAvatar.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index c73b99d716..9a30113ca4 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -3341,13 +3341,8 @@ void MyAvatar::FollowHelper::prePhysicsUpdate(MyAvatar& myAvatar, const glm::mat followWorldPose.scale() = glm::vec3(1.0f); if (isActive(Rotation)) { - if (getToggleHipsFollowing()) { //use the hmd reading for the hips follow - followWorldPose.rot() = glmExtractRotation(desiredWorldMatrix); - } else { - //use the hips as changed by the arms azimuth for the hips to follow. - followWorldPose.rot() = resultingTwistInWorld; - } + followWorldPose.rot() = glmExtractRotation(desiredWorldMatrix); } if (isActive(Horizontal)) { glm::vec3 desiredTranslation = extractTranslation(desiredWorldMatrix); From 50f225777af00698b9f1c34262356716d54c6399 Mon Sep 17 00:00:00 2001 From: amantley Date: Wed, 9 May 2018 11:31:19 -0700 Subject: [PATCH 036/300] removed debug code from cg code in MyAvatar.cpp --- interface/src/avatar/MyAvatar.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 9a30113ca4..778332f65b 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -3073,7 +3073,6 @@ glm::mat4 MyAvatar::deriveBodyUsingCgModel() const { const float MIX_RATIO = 0.5f; // here we mix in some of the head yaw into the hip yaw glm::quat hipYawRot = glm::normalize(saferLerp(glmExtractRotation(avatarToSensorMat), headOrientationYawOnly, MIX_RATIO)); - // glm::quat hipYawRot = glmExtractRotation(avatarToSensorMat); glm::vec3 newLocalHeadPos = glm::inverse(hipYawRot) * (headPosition - extractTranslation(avatarToSensorMat)); if (_enableDebugDrawBaseOfSupport) { @@ -3090,7 +3089,6 @@ glm::mat4 MyAvatar::deriveBodyUsingCgModel() const { // find the new hips rotation using the new head-hips axis as the up axis glm::quat newHipsRotation = computeNewHipsRotation(newLocalHeadPos, cgHipsPosition); return createMatFromQuatAndPos(hipYawRot*newHipsRotation, hipsPositionFinal); - // return createMatFromQuatAndPos(hipYawRot, hipsPositionFinal); } float MyAvatar::getUserHeight() const { From eff84de99f12fcf7b0462ae3f363ab2b302a54d0 Mon Sep 17 00:00:00 2001 From: amantley Date: Wed, 9 May 2018 14:55:10 -0700 Subject: [PATCH 037/300] added more straight forward computation of the hips rotation inMyAvatar.cpp contributed by AJT --- interface/src/avatar/MyAvatar.cpp | 84 +++++++++++-------------------- 1 file changed, 29 insertions(+), 55 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 778332f65b..35247bca20 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -52,6 +52,7 @@ #include "MyHead.h" #include "MySkeletonModel.h" +#include "AnimUtil.h" #include "Application.h" #include "AvatarManager.h" #include "AvatarActionHold.h" @@ -2971,30 +2972,21 @@ glm::vec3 MyAvatar::computeCounterBalance() const { } // this function matches the hips rotation to the new cghips-head axis -// curHead and hipPos are in Avatar space -// returns the rotation of the hips in Avatar space -static glm::quat computeNewHipsRotation(glm::vec3 curHead, glm::vec3 hipPos) { - glm::vec3 spineVec = curHead - hipPos; - glm::quat finalRot = Quaternions::IDENTITY; - glm::vec3 newYaxisHips = glm::normalize(spineVec); - glm::vec3 forward(0.0f, 0.0f, 1.0f); - const float EPSILON = 0.0001f; - if ((fabs(spineVec.y) < EPSILON) && (glm::length(spineVec) > 0.0f)) { - //y equals zero and hips position != head position - forward = glm::vec3(0.0f, 1.0f, 0.0f); - } - glm::vec3 oldZaxisHips = glm::normalize(forward); - glm::vec3 newXaxisHips = glm::normalize(glm::cross(newYaxisHips, oldZaxisHips)); - glm::vec3 newZaxisHips = glm::normalize(glm::cross(newXaxisHips, newYaxisHips)); - // create mat4 with the new axes - glm::vec4 left(newXaxisHips.x, newXaxisHips.y, newXaxisHips.z, 0.0f); - glm::vec4 up(newYaxisHips.x, newYaxisHips.y, newYaxisHips.z, 0.0f); - glm::vec4 view(newZaxisHips.x, newZaxisHips.y, newZaxisHips.z, 0.0f); - glm::vec4 translation(0.0f, 0.0f, 0.0f, 1.0f); - glm::mat4 newRotHips(left, up, view, translation); - finalRot = glm::toQuat(newRotHips); - glm::quat hipsRotation = finalRot; - return hipsRotation; +// headOrientation, headPosition and hipsPosition are in avatar space +// returns the matrix of the hips in Avatar space +static glm::mat4 computeNewHipsMatrix(glm::quat headOrientation, glm::vec3 headPosition, glm::vec3 hipsPosition) { + glm::quat headOrientationYawOnly = cancelOutRollAndPitch(headOrientation); + const float MIX_RATIO = 0.5f; + glm::quat hipsRot = safeLerp(Quaternions::IDENTITY, headOrientationYawOnly, MIX_RATIO); + glm::vec3 hipsFacing = hipsRot * Vectors::UNIT_Z; + + glm::vec3 spineVec = headPosition - hipsPosition; + glm::vec3 u, v, w; + generateBasisVectors(glm::normalize(spineVec), hipsFacing, u, v, w); + return glm::mat4(glm::vec4(w, 0.0f), + glm::vec4(u, 0.0f), + glm::vec4(v, 0.0f), + glm::vec4(hipsPosition, 1.0f)); } static void drawBaseOfSupport(float baseOfSupportScale, float footLocal, glm::mat4 avatarToWorld) { @@ -3043,40 +3035,21 @@ glm::quat cancelOutRollAndPitch2(const glm::quat& q) { return glm::quat_cast(temp); } -static glm::quat saferLerp(const glm::quat& a, const glm::quat& b, float alpha) { - // adjust signs if necessary - glm::quat bTemp = b; - float dot = glm::dot(a, bTemp); - if (dot < 0.0f) { - bTemp = -bTemp; - } - return glm::normalize(glm::lerp(a, bTemp, alpha)); -} - -// this function finds the hips position using a center of gravity model that +// this function finds the hips position using a center of gravity model that // balances the head and hands with the hips over the base of support // returns the rotation and position of the Avatar in Sensor space glm::mat4 MyAvatar::deriveBodyUsingCgModel() const { - glm::mat4 worldToSensorMat = glm::inverse(getSensorToWorldMatrix()); - glm::mat4 avatarToWorldMat = getTransform().getMatrix(); - glm::mat4 avatarToSensorMat = worldToSensorMat * avatarToWorldMat; - - glm::vec3 headPosition; - glm::quat headOrientation; + glm::mat4 sensorToWorldMat = getSensorToWorldMatrix(); + glm::mat4 worldToSensorMat = glm::inverse(sensorToWorldMat); auto headPose = getControllerPoseInSensorFrame(controller::Action::HEAD); - if (headPose.isValid()) { - headPosition = headPose.translation; - // rotate by 180 Y to put the head in same frame as the avatar - headOrientation = headPose.rotation * Quaternions::Y_180; - } - const glm::quat headOrientationYawOnly = cancelOutRollAndPitch(headOrientation); - const float MIX_RATIO = 0.5f; - // here we mix in some of the head yaw into the hip yaw - glm::quat hipYawRot = glm::normalize(saferLerp(glmExtractRotation(avatarToSensorMat), headOrientationYawOnly, MIX_RATIO)); - glm::vec3 newLocalHeadPos = glm::inverse(hipYawRot) * (headPosition - extractTranslation(avatarToSensorMat)); + + // the Y_180 is to flip the controller pose from -z forward to the head joint which is +z forward. + glm::mat4 sensorHeadMat = createMatFromQuatAndPos(headPose.rotation * Quaternions::Y_180, headPose.translation); + // convert into avatar space + glm::mat4 avatarToWorldMat = getTransform().getMatrix(); + glm::mat4 avatarHeadMat = glm::inverse(avatarToWorldMat) * sensorToWorldMat * sensorHeadMat; if (_enableDebugDrawBaseOfSupport) { - // default height is ~ 1.64 meters float scaleBaseOfSupport = getUserEyeHeight() / DEFAULT_AVATAR_EYE_HEIGHT; glm::vec3 rightFootPositionLocal = getAbsoluteJointTranslationInObjectFrame(_skeletonModel->getRig().indexOfJoint("RightFoot")); drawBaseOfSupport(scaleBaseOfSupport, rightFootPositionLocal.y, avatarToWorldMat); @@ -3084,11 +3057,12 @@ glm::mat4 MyAvatar::deriveBodyUsingCgModel() const { // get the new center of gravity const glm::vec3 cgHipsPosition = computeCounterBalance(); - glm::vec3 hipsPositionFinal = transformPoint(avatarToSensorMat, cgHipsPosition); // find the new hips rotation using the new head-hips axis as the up axis - glm::quat newHipsRotation = computeNewHipsRotation(newLocalHeadPos, cgHipsPosition); - return createMatFromQuatAndPos(hipYawRot*newHipsRotation, hipsPositionFinal); + glm::mat4 avatarHipsMat = computeNewHipsMatrix(glmExtractRotation(avatarHeadMat), extractTranslation(avatarHeadMat), cgHipsPosition); + + // convert hips from avatar to sensor space + return worldToSensorMat * avatarToWorldMat * avatarHipsMat; } float MyAvatar::getUserHeight() const { From 20c960c0da5406db331c600eb3af93284241c00d Mon Sep 17 00:00:00 2001 From: amantley Date: Wed, 9 May 2018 15:00:20 -0700 Subject: [PATCH 038/300] removed white space in MyAvatar.cpp --- interface/src/avatar/MyAvatar.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 35247bca20..72bb5cc500 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -3022,11 +3022,10 @@ glm::quat cancelOutRollAndPitch2(const glm::quat& q) { if (fabs(zAxis.y) > 0.0) { // new z is the up axis, that is the direction the body is pointing newZ = glm::normalize(q * glm::vec3(0.0f, 1.0f, 0.0f)); - } + } newX = glm::cross(vec3(0.0f, 1.0f, 0.0f), newZ); newY = glm::cross(newZ, newX); - } - else { + } else { newZ = glm::normalize(vec3(zAxis.x, 0.0f, zAxis.z)); newX = glm::cross(vec3(0.0f, 1.0f, 0.0f), newZ); newY = glm::cross(newZ, newX); @@ -3057,10 +3056,10 @@ glm::mat4 MyAvatar::deriveBodyUsingCgModel() const { // get the new center of gravity const glm::vec3 cgHipsPosition = computeCounterBalance(); - + // find the new hips rotation using the new head-hips axis as the up axis glm::mat4 avatarHipsMat = computeNewHipsMatrix(glmExtractRotation(avatarHeadMat), extractTranslation(avatarHeadMat), cgHipsPosition); - + // convert hips from avatar to sensor space return worldToSensorMat * avatarToWorldMat * avatarHipsMat; } From 2b7e217c35fdc0c19fc13dfd93c3f012639c992e Mon Sep 17 00:00:00 2001 From: milad Date: Sat, 12 May 2018 15:45:27 -0700 Subject: [PATCH 039/300] Fixed Asset Class --- tools/jsdoc/Grav-Formater.js | 0 tools/jsdoc/Links-Untouched | 3 ++- tools/jsdoc/grav.bat | 2 +- tools/jsdoc/gravPrep.js | 6 +++--- 4 files changed, 6 insertions(+), 5 deletions(-) create mode 100644 tools/jsdoc/Grav-Formater.js diff --git a/tools/jsdoc/Grav-Formater.js b/tools/jsdoc/Grav-Formater.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tools/jsdoc/Links-Untouched b/tools/jsdoc/Links-Untouched index bea2009fa5..048bfb2fbb 100644 --- a/tools/jsdoc/Links-Untouched +++ b/tools/jsdoc/Links-Untouched @@ -1140,7 +1140,6 @@ HMD: location:
Uuid Uuid.NULL -Uuid goBack goForward location.LookupTrigger @@ -1986,8 +1985,10 @@ Users: Uuid Uuid Uuid +usernameFromIDReply Uuid Uuid +requestUsernameFromID Uuid Uuid: Uuid diff --git a/tools/jsdoc/grav.bat b/tools/jsdoc/grav.bat index 08c75edb8e..e850b27ced 100644 --- a/tools/jsdoc/grav.bat +++ b/tools/jsdoc/grav.bat @@ -1 +1 @@ -cmd /k node gravPrep true "D:/ROLC/Organize/O_Projects/Hifi/Docs/hifi-docs-grav/user/themes/learn2/" "D:/ROLC/Organize/O_Projects/Hifi/Docs/hifi-docs-grav-content/" \ No newline at end of file +node gravPrep true "D:\ROLC_High-Fidelity\02_Organize\O_Projects\Docs\Docs-Repo\hifi-docs-grav\user\themes\learn2" "D:\ROLC_High-Fidelity\02_Organize\O_Projects\Docs\Docs-Content\hifi-docs-grav-content" \ No newline at end of file diff --git a/tools/jsdoc/gravPrep.js b/tools/jsdoc/gravPrep.js index 105444a841..05ded00bbc 100644 --- a/tools/jsdoc/gravPrep.js +++ b/tools/jsdoc/gravPrep.js @@ -66,9 +66,9 @@ const html_reg_propertiesHeaderEdit_Replace = '

Properties

'; const html_reg_typeEdit = /(
Returns[\s\S]*?Type)(<\/dt[\s\S]*?type">)(.*?)(<\/span><\/dd>[\s\S]*?<\/dl>)/g; const html_reg_typeEdit_replace = '$1: $3' - const html_reg_methodSize = /()(<\/h4>)/g; + const html_reg_methodSize = /()(<\/h4>\n)/gm; const html_reg_methodSize_replace = ''; - const html_reg_typeDefSize = /()/g; + const html_reg_typeDefSize = /(\n)/g; const html_reg_typeDefSize_replace = ''; const html_reg_typeReturnSize = /
Type:\<\/h5>/g; const html_reg_typeReturnSize_replace = '
Type:
'; @@ -525,9 +525,9 @@ .replace(html_reg_subsectionEdit, html_reg_subsectionEdit_replace) .replace(html_reg_propertiesHeaderEdit, html_reg_propertiesHeaderEdit_Replace) .replace(html_reg_typeEdit, html_reg_typeEdit_replace) + .replace(html_reg_typeDefSize, html_reg_typeDefSize_replace) .replace(html_reg_returnSize, html_reg_returnSize_replace) .replace(html_reg_methodSize, html_reg_methodSize_replace) - .replace(html_reg_typeDefSize, html_reg_typeDefSize_replace) .replace(html_reg_typeDefinitonsTitle, "") .replace(html_reg_findGlobalLinks, html_reg_findGlobalLinks_replace) .replace(html_reg_findGeneralLinks, lowerCaseGeneralLinks) From 091c2c8b983d5e34fdc66b36fb22ac305fd02334 Mon Sep 17 00:00:00 2001 From: milad Date: Sat, 12 May 2018 23:41:56 -0700 Subject: [PATCH 040/300] Before David's latest stubs --- tools/jsdoc/grav.bat | 2 +- tools/jsdoc/gravPrep.js | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/tools/jsdoc/grav.bat b/tools/jsdoc/grav.bat index e850b27ced..8ac0e4162a 100644 --- a/tools/jsdoc/grav.bat +++ b/tools/jsdoc/grav.bat @@ -1 +1 @@ -node gravPrep true "D:\ROLC_High-Fidelity\02_Organize\O_Projects\Docs\Docs-Repo\hifi-docs-grav\user\themes\learn2" "D:\ROLC_High-Fidelity\02_Organize\O_Projects\Docs\Docs-Content\hifi-docs-grav-content" \ No newline at end of file +node gravPrep true "D:\ROLC_High-Fidelity\02_Organize\O_Projects\Docs\hifi-docs-grav\user\themes\learn2" "D:\ROLC_High-Fidelity\02_Organize\O_Projects\Docs\hifi-docs-grav-content" \ No newline at end of file diff --git a/tools/jsdoc/gravPrep.js b/tools/jsdoc/gravPrep.js index 05ded00bbc..241e099573 100644 --- a/tools/jsdoc/gravPrep.js +++ b/tools/jsdoc/gravPrep.js @@ -95,7 +95,13 @@ const html_reg_pretty_replace = "
$2<\/pre>";
     const html_reg_code = /()([\s\S]*?)(<\/code>)/g;
     const html_reg_code_replace = "$1$2$3";
-
+    const html_reg_availableIn = /([\s\S]+?Available in:[\s\S]+?<\/table>)/g;
+    const html_reg_findControllerPropertiesHeader = "
Properties
"; + const html_reg_findControllerCuratedList = /
Functions<\/h5>[\s\S]*?

Input Recordings[\s\S]*?<\/ul>/g + const html_reg_findEntityMethods = /

Entity Methods:[\s\S]+?<\/ul>/g; + const html_reg_EntityMethodsHeader = '
Entity Methods:
'; + const html_reg_EntityMethodsHeader_replace = '
Entity Methods
'; + // Mapping for GroupNames and Members let groupNameMemberMap = { "Objects": [], @@ -416,7 +422,7 @@ allItemToSplit.forEach( content => { firstLine = content.split("\n")[0]; - if (firstLine.indexOf("Signal") > -1){ + if (firstLine.indexOf("{Signal}") > -1){ signalArray.push(content); } else if (firstLine.indexOf("span") > -1) { if (content.indexOf("Available in:") > -1){ @@ -587,6 +593,14 @@ let classTOC = makeClassTOC(arrayToPassToClassToc); if (groupName === "Global"){ currentContent = append(currentContent, html_reg_findByTitle, classTOC); + } else if (htmlTitle === "Controller") { + // currentContent = currentContent.replace(html_reg_availableIn, ""); + let curatedList = currentContent.match(html_reg_findControllerCuratedList); + currentContent = currentContent.replace(html_reg_findControllerCuratedList, ""); + let entityMethods = currentContent.match(html_reg_findEntityMethods); + currentContent = currentContent.replace(html_reg_findEntityMethods, ""); + currentContent = append(currentContent, html_reg_firstTableClose, [classTOC, curatedList, entityMethods].join("\n")); + currentContent = currentContent.replace(html_reg_EntityMethodsHeader, html_reg_EntityMethodsHeader_replace); } else { currentContent = append(currentContent, html_reg_firstTableClose, classTOC); } From 1cc7eb635fb8a955a0cc211b925aa1f4c3cab61b Mon Sep 17 00:00:00 2001 From: "Anthony J. Thibault" Date: Mon, 14 May 2018 09:13:26 -0700 Subject: [PATCH 041/300] Fix ubuntu warning by removing cancelOutRollAndPitch2() --- interface/src/avatar/MyAvatar.cpp | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 11395182fa..1e87dca89b 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -3011,29 +3011,6 @@ static void drawBaseOfSupport(float baseOfSupportScale, float footLocal, glm::ma DebugDraw::getInstance().drawRay(frontLeft, frontRight, rayColor); } -// cancel out roll and pitch test fix -glm::quat cancelOutRollAndPitch2(const glm::quat& q) { - glm::vec3 zAxis = q * glm::vec3(0.0f, 0.0f, 1.0f); - glm::vec3 newZ; - glm::vec3 newX; - glm::vec3 newY; - // cancel out the roll and pitch - if (zAxis.x == 0 && zAxis.z == 0.0f) { - if (fabs(zAxis.y) > 0.0) { - // new z is the up axis, that is the direction the body is pointing - newZ = glm::normalize(q * glm::vec3(0.0f, 1.0f, 0.0f)); - } - newX = glm::cross(vec3(0.0f, 1.0f, 0.0f), newZ); - newY = glm::cross(newZ, newX); - } else { - newZ = glm::normalize(vec3(zAxis.x, 0.0f, zAxis.z)); - newX = glm::cross(vec3(0.0f, 1.0f, 0.0f), newZ); - newY = glm::cross(newZ, newX); - } - glm::mat4 temp(glm::vec4(newX, 0.0f), glm::vec4(newY, 0.0f), glm::vec4(newZ, 0.0f), glm::vec4(0.0f, 0.0f, 0.0f, 1.0f)); - return glm::quat_cast(temp); -} - // this function finds the hips position using a center of gravity model that // balances the head and hands with the hips over the base of support // returns the rotation and position of the Avatar in Sensor space From ec638d9d91716dd966cd071af66df19ed57c80b3 Mon Sep 17 00:00:00 2001 From: "Anthony J. Thibault" Date: Mon, 14 May 2018 13:48:04 -0700 Subject: [PATCH 042/300] Avatar can now look straight down without spinning 180. Also, come code clean up and removal of unnecessary Y_180 flips. --- interface/src/avatar/MyAvatar.cpp | 33 ++++++++++--------- interface/src/avatar/MyAvatar.h | 8 ++--- interface/src/avatar/MySkeletonModel.cpp | 1 + libraries/animation/src/AnimUtil.cpp | 40 +++++++++++++++++++++++- libraries/animation/src/AnimUtil.h | 5 +++ libraries/shared/src/GLMHelpers.cpp | 6 ++-- libraries/shared/src/GLMHelpers.h | 3 ++ 7 files changed, 75 insertions(+), 21 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 1e87dca89b..f017ba0527 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -423,12 +423,12 @@ void MyAvatar::update(float deltaTime) { } #ifdef DEBUG_DRAW_HMD_MOVING_AVERAGE - glm::vec3 p = transformPoint(getSensorToWorldMatrix(), getControllerPoseInAvatarFrame(controller::Pose::HEAD) * - glm::vec3(_headControllerFacingMovingAverage.x, 0.0f, _headControllerFacingMovingAverage.y)); - DebugDraw::getInstance().addMarker("facing-avg", getOrientation(), p, glm::vec4(1.0f)); - p = transformPoint(getSensorToWorldMatrix(), getHMDSensorPosition() + - glm::vec3(_headControllerFacing.x, 0.0f, _headControllerFacing.y)); - DebugDraw::getInstance().addMarker("facing", getOrientation(), p, glm::vec4(1.0f)); + auto sensorHeadPose = getControllerPoseInSensorFrame(controller::Action::HEAD); + glm::vec3 worldHeadPos = transformPoint(getSensorToWorldMatrix(), sensorHeadPose.getTranslation()); + glm::vec3 worldFacingAverage = transformVectorFast(getSensorToWorldMatrix(), glm::vec3(_headControllerFacingMovingAverage.x, 0.0f, _headControllerFacingMovingAverage.y)); + glm::vec3 worldFacing = transformVectorFast(getSensorToWorldMatrix(), glm::vec3(_headControllerFacing.x, 0.0f, _headControllerFacing.y)); + DebugDraw::getInstance().drawRay(worldHeadPos, worldHeadPos + worldFacing, glm::vec4(0.0f, 1.0f, 0.0f, 1.0f)); + DebugDraw::getInstance().drawRay(worldHeadPos, worldHeadPos + worldFacingAverage, glm::vec4(0.0f, 0.0f, 1.0f, 1.0f)); #endif if (_goToPending) { @@ -702,7 +702,8 @@ void MyAvatar::updateFromHMDSensorMatrix(const glm::mat4& hmdSensorMatrix) { _hmdSensorOrientation = glmExtractRotation(hmdSensorMatrix); auto headPose = getControllerPoseInSensorFrame(controller::Action::HEAD); if (headPose.isValid()) { - _headControllerFacing = getFacingDir2D(headPose.rotation); + glm::quat bodyOrientation = computeBodyFacingFromHead(headPose.rotation, Vectors::UNIT_Y); + _headControllerFacing = getFacingDir2D(bodyOrientation); } else { _headControllerFacing = glm::vec2(1.0f, 0.0f); } @@ -2817,6 +2818,7 @@ glm::mat4 MyAvatar::deriveBodyFromHMDSensor() const { auto headPose = getControllerPoseInSensorFrame(controller::Action::HEAD); if (headPose.isValid()) { headPosition = headPose.translation; + // AJT: TODO: can remove this Y_180 headOrientation = headPose.rotation * Quaternions::Y_180; } const glm::quat headOrientationYawOnly = cancelOutRollAndPitch(headOrientation); @@ -2839,6 +2841,8 @@ glm::mat4 MyAvatar::deriveBodyFromHMDSensor() const { // eyeToNeck offset is relative full HMD orientation. // while neckToRoot offset is only relative to HMDs yaw. // Y_180 is necessary because rig is z forward and hmdOrientation is -z forward + + // AJT: TODO: can remove this Y_180, if we remove the higher level one. glm::vec3 headToNeck = headOrientation * Quaternions::Y_180 * (localNeck - localHead); glm::vec3 neckToRoot = headOrientationYawOnly * Quaternions::Y_180 * -localNeck; @@ -2975,9 +2979,11 @@ glm::vec3 MyAvatar::computeCounterBalance() const { // headOrientation, headPosition and hipsPosition are in avatar space // returns the matrix of the hips in Avatar space static glm::mat4 computeNewHipsMatrix(glm::quat headOrientation, glm::vec3 headPosition, glm::vec3 hipsPosition) { - glm::quat headOrientationYawOnly = cancelOutRollAndPitch(headOrientation); - const float MIX_RATIO = 0.5f; - glm::quat hipsRot = safeLerp(Quaternions::IDENTITY, headOrientationYawOnly, MIX_RATIO); + + glm::quat bodyOrientation = computeBodyFacingFromHead(headOrientation, Vectors::UNIT_Y); + + const float MIX_RATIO = 0.3f; + glm::quat hipsRot = safeLerp(Quaternions::IDENTITY, bodyOrientation, MIX_RATIO); glm::vec3 hipsFacing = hipsRot * Vectors::UNIT_Z; glm::vec3 spineVec = headPosition - hipsPosition; @@ -3013,14 +3019,14 @@ static void drawBaseOfSupport(float baseOfSupportScale, float footLocal, glm::ma // this function finds the hips position using a center of gravity model that // balances the head and hands with the hips over the base of support -// returns the rotation and position of the Avatar in Sensor space +// returns the rotation (-z forward) and position of the Avatar in Sensor space glm::mat4 MyAvatar::deriveBodyUsingCgModel() const { glm::mat4 sensorToWorldMat = getSensorToWorldMatrix(); glm::mat4 worldToSensorMat = glm::inverse(sensorToWorldMat); auto headPose = getControllerPoseInSensorFrame(controller::Action::HEAD); - // the Y_180 is to flip the controller pose from -z forward to the head joint which is +z forward. glm::mat4 sensorHeadMat = createMatFromQuatAndPos(headPose.rotation * Quaternions::Y_180, headPose.translation); + // convert into avatar space glm::mat4 avatarToWorldMat = getTransform().getMatrix(); glm::mat4 avatarHeadMat = glm::inverse(avatarToWorldMat) * sensorToWorldMat * sensorHeadMat; @@ -3038,6 +3044,7 @@ glm::mat4 MyAvatar::deriveBodyUsingCgModel() const { glm::mat4 avatarHipsMat = computeNewHipsMatrix(glmExtractRotation(avatarHeadMat), extractTranslation(avatarHeadMat), cgHipsPosition); // convert hips from avatar to sensor space + // The Y_180 is to convert from z forward to -z forward. return worldToSensorMat * avatarToWorldMat * avatarHipsMat; } @@ -3205,9 +3212,7 @@ void MyAvatar::FollowHelper::decrementTimeRemaining(float dt) { bool MyAvatar::FollowHelper::shouldActivateRotation(const MyAvatar& myAvatar, const glm::mat4& desiredBodyMatrix, const glm::mat4& currentBodyMatrix) const { const float FOLLOW_ROTATION_THRESHOLD = cosf(PI / 6.0f); // 30 degrees glm::vec2 bodyFacing = getFacingDir2D(currentBodyMatrix); - return glm::dot(-myAvatar.getHeadControllerFacingMovingAverage(), bodyFacing) < FOLLOW_ROTATION_THRESHOLD; - } bool MyAvatar::FollowHelper::shouldActivateHorizontal(const MyAvatar& myAvatar, const glm::mat4& desiredBodyMatrix, const glm::mat4& currentBodyMatrix) const { diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index c7b09f7bc6..0d9fd860b7 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -978,14 +978,14 @@ public: // derive avatar body position and orientation from the current HMD Sensor location. - // results are in HMD frame + // results are in sensor frame (-z forward) glm::mat4 deriveBodyFromHMDSensor() const; glm::vec3 computeCounterBalance() const; // derive avatar body position and orientation from using the current HMD Sensor location in relation to the previous // location of the base of support of the avatar. - // results are in HMD frame + // results are in sensor frame (-z foward) glm::mat4 deriveBodyUsingCgModel() const; /**jsdoc @@ -1495,8 +1495,8 @@ private: glm::quat _hmdSensorOrientation; glm::vec3 _hmdSensorPosition; // cache head controller pose in sensor space - glm::vec2 _headControllerFacing; // facing vector in xz plane - glm::vec2 _headControllerFacingMovingAverage { 0, 0 }; // facing vector in xz plane + glm::vec2 _headControllerFacing; // facing vector in xz plane (sensor space) + glm::vec2 _headControllerFacingMovingAverage { 0.0f, 0.0f }; // facing vector in xz plane (sensor space) // cache of the current body position and orientation of the avatar's body, // in sensor space. diff --git a/interface/src/avatar/MySkeletonModel.cpp b/interface/src/avatar/MySkeletonModel.cpp index f7f55db369..4a7c203f11 100644 --- a/interface/src/avatar/MySkeletonModel.cpp +++ b/interface/src/avatar/MySkeletonModel.cpp @@ -83,6 +83,7 @@ static AnimPose computeHipsInSensorFrame(MyAvatar* myAvatar, bool isFlying) { hipsPos = headPos + tiltRot * (hipsPos - headPos); } + // AJT: TODO can we remove this? return AnimPose(hipsRot * Quaternions::Y_180, hipsPos); } diff --git a/libraries/animation/src/AnimUtil.cpp b/libraries/animation/src/AnimUtil.cpp index 65c605b5ba..ad11623a25 100644 --- a/libraries/animation/src/AnimUtil.cpp +++ b/libraries/animation/src/AnimUtil.cpp @@ -9,7 +9,9 @@ // #include "AnimUtil.h" -#include "GLMHelpers.h" +#include +#include +#include // TODO: use restrict keyword // TODO: excellent candidate for simd vectorization. @@ -107,3 +109,39 @@ AnimPose boneLookAt(const glm::vec3& target, const AnimPose& bone) { glm::vec4(bone.trans(), 1.0f)); return AnimPose(lookAt); } + +// This will attempt to determine the proper body facing of a characters body +// assumes headRot is z-forward and y-up. +// and returns a bodyRot that is also z-forward and y-up +glm::quat computeBodyFacingFromHead(const glm::quat& headRot, const glm::vec3& up) { + + glm::vec3 bodyUp = glm::normalize(up); + + // initially take the body facing from the head. + glm::vec3 headUp = headRot * Vectors::UNIT_Y; + glm::vec3 headForward = headRot * Vectors::UNIT_Z; + const float THRESHOLD = cosf(glm::radians(30.0f)); + + glm::vec3 bodyForward = headForward; + + float dot = glm::dot(headForward, bodyUp); + + if (dot < -THRESHOLD) { // head is looking down + // the body should face in the same direction as the top the head. + bodyForward = headUp; + } else if (dot > THRESHOLD) { // head is looking upward + // the body should face away from the top of the head. + bodyForward = -headUp; + } + + // cancel out upward component + bodyForward = glm::normalize(bodyForward - dot * bodyUp); + + glm::vec3 u, v, w; + generateBasisVectors(bodyForward, bodyUp, u, v, w); + + // create matrix from orthogonal basis vectors + glm::mat4 bodyMat(glm::vec4(w, 0.0f), glm::vec4(v, 0.0f), glm::vec4(u, 0.0f), glm::vec4(0.0f, 0.0f, 0.0f, 1.0f)); + + return glmExtractRotation(bodyMat); +} diff --git a/libraries/animation/src/AnimUtil.h b/libraries/animation/src/AnimUtil.h index f2cceb361b..3cd7f4b6fb 100644 --- a/libraries/animation/src/AnimUtil.h +++ b/libraries/animation/src/AnimUtil.h @@ -33,4 +33,9 @@ inline glm::quat safeLerp(const glm::quat& a, const glm::quat& b, float alpha) { AnimPose boneLookAt(const glm::vec3& target, const AnimPose& bone); +// This will attempt to determine the proper body facing of a characters body +// assumes headRot is z-forward and y-up. +// and returns a bodyRot that is also z-forward and y-up +glm::quat computeBodyFacingFromHead(const glm::quat& headRot, const glm::vec3& up); + #endif diff --git a/libraries/shared/src/GLMHelpers.cpp b/libraries/shared/src/GLMHelpers.cpp index 75446754d5..4be8ad0e41 100644 --- a/libraries/shared/src/GLMHelpers.cpp +++ b/libraries/shared/src/GLMHelpers.cpp @@ -574,8 +574,9 @@ void generateBasisVectors(const glm::vec3& primaryAxis, const glm::vec3& seconda vAxisOut = glm::cross(wAxisOut, uAxisOut); } +// assumes z-forward and y-up glm::vec2 getFacingDir2D(const glm::quat& rot) { - glm::vec3 facing3D = rot * Vectors::UNIT_NEG_Z; + glm::vec3 facing3D = rot * Vectors::UNIT_Z; glm::vec2 facing2D(facing3D.x, facing3D.z); const float ALMOST_ZERO = 0.0001f; if (glm::length(facing2D) < ALMOST_ZERO) { @@ -585,8 +586,9 @@ glm::vec2 getFacingDir2D(const glm::quat& rot) { } } +// assumes z-forward and y-up glm::vec2 getFacingDir2D(const glm::mat4& m) { - glm::vec3 facing3D = transformVectorFast(m, Vectors::UNIT_NEG_Z); + glm::vec3 facing3D = transformVectorFast(m, Vectors::UNIT_Z); glm::vec2 facing2D(facing3D.x, facing3D.z); const float ALMOST_ZERO = 0.0001f; if (glm::length(facing2D) < ALMOST_ZERO) { diff --git a/libraries/shared/src/GLMHelpers.h b/libraries/shared/src/GLMHelpers.h index 0e1af27cd2..7e6ef4cb28 100644 --- a/libraries/shared/src/GLMHelpers.h +++ b/libraries/shared/src/GLMHelpers.h @@ -250,7 +250,10 @@ glm::vec3 transformVectorFull(const glm::mat4& m, const glm::vec3& v); void generateBasisVectors(const glm::vec3& primaryAxis, const glm::vec3& secondaryAxis, glm::vec3& uAxisOut, glm::vec3& vAxisOut, glm::vec3& wAxisOut); +// assumes z-forward and y-up glm::vec2 getFacingDir2D(const glm::quat& rot); + +// assumes z-forward and y-up glm::vec2 getFacingDir2D(const glm::mat4& m); inline bool isNaN(const glm::vec3& value) { return isNaN(value.x) || isNaN(value.y) || isNaN(value.z); } From acd1721c88376575d289d3e81f01cc7f793a4353 Mon Sep 17 00:00:00 2001 From: luiscuenca Date: Mon, 14 May 2018 17:26:03 -0700 Subject: [PATCH 043/300] Load handTouch.js as a default script --- scripts/system/controllers/controllerScripts.js | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/system/controllers/controllerScripts.js b/scripts/system/controllers/controllerScripts.js index 8db8e29f37..4c8452c7d4 100644 --- a/scripts/system/controllers/controllerScripts.js +++ b/scripts/system/controllers/controllerScripts.js @@ -14,6 +14,7 @@ var CONTOLLER_SCRIPTS = [ "controllerDisplayManager.js", "grab.js", "toggleAdvancedMovementForHandControllers.js", + "handTouch.js", "controllerDispatcher.js", "controllerModules/nearParentGrabEntity.js", "controllerModules/nearParentGrabOverlay.js", From ccab2dd641b0a27b9ad29aa889af97e2154fa6ac Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Tue, 15 May 2018 11:48:33 -0700 Subject: [PATCH 044/300] Starting the work --- .../qml/hifi/commerce/wallet/WalletHome.qml | 109 ++-------- .../qml/hifi/models/PSFListModel.qml | 188 ++++++++++++++++++ 2 files changed, 207 insertions(+), 90 deletions(-) create mode 100644 interface/resources/qml/hifi/models/PSFListModel.qml diff --git a/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml b/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml index 7a14ee060f..afc205fd51 100644 --- a/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml +++ b/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml @@ -18,27 +18,24 @@ import QtQuick.Controls 2.2 import "../../../styles-uit" import "../../../controls-uit" as HifiControlsUit import "../../../controls" as HifiControls +import "../../../models" as HifiModels Item { HifiConstants { id: hifi; } id: root; - property bool initialHistoryReceived: false; - property bool historyRequestPending: true; - property bool noMoreHistoryData: false; + property bool initialResultReceived: false; property int pendingCount: 0; - property int currentHistoryPage: 1; - property var pagesAlreadyAdded: new Array(); onVisibleChanged: { if (visible) { transactionHistoryModel.clear(); Commerce.balance(); - initialHistoryReceived = false; - root.currentHistoryPage = 1; - root.noMoreHistoryData = false; - root.historyRequestPending = true; - Commerce.history(root.currentHistoryPage); + transactionHistoryModel.initialResultReceived = false; + transactionHistoryModel.nextPageToRetrieve = 1; + transactionHistoryModel.noMoreDataToRetrieve = false; + transactionHistoryModel.requestPending = true; + Commerce.history(transactionHistoryModel.nextPageToRetrieve); Commerce.getAvailableUpdates(); } else { refreshTimer.stop(); @@ -53,84 +50,16 @@ Item { } onHistoryResult : { - root.initialHistoryReceived = true; - root.historyRequestPending = false; + + transactionHistoryModel.processResult(result.status, result.data.history); - if (result.status === 'success') { - var currentPage = parseInt(result.current_page); - - if (result.data.history.length === 0) { - root.noMoreHistoryData = true; - console.log("No more data to retrieve from Commerce.history() endpoint.") - } else if (root.currentHistoryPage === 1) { - var sameItemCount = 0; - tempTransactionHistoryModel.clear(); - - tempTransactionHistoryModel.append(result.data.history); - - for (var i = 0; i < tempTransactionHistoryModel.count; i++) { - if (!transactionHistoryModel.get(i)) { - sameItemCount = -1; - break; - } else if (tempTransactionHistoryModel.get(i).transaction_type === transactionHistoryModel.get(i).transaction_type && - tempTransactionHistoryModel.get(i).text === transactionHistoryModel.get(i).text) { - sameItemCount++; - } - } - - if (sameItemCount !== tempTransactionHistoryModel.count) { - transactionHistoryModel.clear(); - for (var i = 0; i < tempTransactionHistoryModel.count; i++) { - transactionHistoryModel.append(tempTransactionHistoryModel.get(i)); - } - calculatePendingAndInvalidated(); - } - } else { - if (root.pagesAlreadyAdded.indexOf(currentPage) !== -1) { - console.log("Page " + currentPage + " of history has already been added to the list."); - } else { - // First, add the history result to a temporary model - tempTransactionHistoryModel.clear(); - tempTransactionHistoryModel.append(result.data.history); - - // Make a note that we've already added this page to the model... - root.pagesAlreadyAdded.push(currentPage); - - var insertionIndex = 0; - // If there's nothing in the model right now, we don't need to modify insertionIndex. - if (transactionHistoryModel.count !== 0) { - var currentIteratorPage; - // Search through the whole transactionHistoryModel and look for the insertion point. - // The insertion point is found when the result page from the server is less than - // the page that the current item came from, OR when we've reached the end of the whole model. - for (var i = 0; i < transactionHistoryModel.count; i++) { - currentIteratorPage = transactionHistoryModel.get(i).resultIsFromPage; - - if (currentPage < currentIteratorPage) { - insertionIndex = i; - break; - } else if (i === transactionHistoryModel.count - 1) { - insertionIndex = i + 1; - break; - } - } - } - - // Go through the results we just got back from the server, setting the "resultIsFromPage" - // property of those results and adding them to the main model. - for (var i = 0; i < tempTransactionHistoryModel.count; i++) { - tempTransactionHistoryModel.setProperty(i, "resultIsFromPage", currentPage); - transactionHistoryModel.insert(i + insertionIndex, tempTransactionHistoryModel.get(i)) - } - - calculatePendingAndInvalidated(); - } - } + if (!transactionHistoryModel.noMoreDataToRetrieve) { + calculatePendingAndInvalidated(); } // Only auto-refresh if the user hasn't scrolled // and there is more data to grab - if (transactionHistory.atYBeginning && !root.noMoreHistoryData) { + if (transactionHistory.atYBeginning && !transactionHistoryModel.noMoreDataToRetrieve) { refreshTimer.start(); } } @@ -235,7 +164,7 @@ Item { onTriggered: { if (transactionHistory.atYBeginning) { console.log("Refreshing 1st Page of Recent Activity..."); - root.historyRequestPending = true; + transactionHistoryModel.requestPending = true; Commerce.balance(); Commerce.history(1); } @@ -302,7 +231,7 @@ Item { ListModel { id: tempTransactionHistoryModel; } - ListModel { + HifiModels.PSFListModel { id: transactionHistoryModel; } Item { @@ -313,7 +242,7 @@ Item { anchors.right: parent.right; Item { - visible: transactionHistoryModel.count === 0 && root.initialHistoryReceived; + visible: transactionHistoryModel.count === 0 && transactionHistoryModel.initialResultReceived; anchors.centerIn: parent; width: parent.width - 12; height: parent.height; @@ -462,11 +391,11 @@ Item { onAtYEndChanged: { if (transactionHistory.atYEnd) { console.log("User scrolled to the bottom of 'Recent Activity'."); - if (!root.historyRequestPending && !root.noMoreHistoryData) { + if (!transactionHistoryModel.requestPending && !transactionHistoryModel.noMoreDataToRetrieve) { // Grab next page of results and append to model - root.historyRequestPending = true; - Commerce.history(++root.currentHistoryPage); - console.log("Fetching Page " + root.currentHistoryPage + " of Recent Activity..."); + transactionHistoryModel.requestPending = true; + Commerce.history(++transactionHistoryModel.nextPageToRetrieve); + console.log("Fetching Page " + transactionHistoryModel.nextPageToRetrieve + " of Recent Activity..."); } } } diff --git a/interface/resources/qml/hifi/models/PSFListModel.qml b/interface/resources/qml/hifi/models/PSFListModel.qml new file mode 100644 index 0000000000..cbc28b208d --- /dev/null +++ b/interface/resources/qml/hifi/models/PSFListModel.qml @@ -0,0 +1,188 @@ +// +// PSFListModel.qml +// qml/hifi/commerce/common +// +// PSFListModel +// "PSF" stands for: +// - Paged +// - Sortable +// - Filterable +// +// Created by Zach Fox on 2018-05-15 +// Copyright 2018 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +import QtQuick 2.7 + +ListModel { + id: root; + property string sortColumnName: ""; + property bool isSortingDescending: true; + property bool valuesAreNumerical: false; + + property bool initialResultReceived: false; + property bool requestPending: false; + property bool noMoreDataToRetrieve: false; + property int nextPageToRetrieve: 1; + property var pagesAlreadyAdded: new Array(); + + ListModel { + id: tempModel; + } + + function processResult(status, retrievedResult) { + root.initialResultReceived = true; + root.requestPending = false; + + if (status === 'success') { + var currentPage = parseInt(result.current_page); + + if (retrievedResult.length === 0) { + root.noMoreDataToRetrieve = true; + console.log("No more data to retrieve from backend endpoint.") + } else if (root.nextPageToRetrieve === 1) { + var sameItemCount = 0; + + tempModel.clear(); + tempModel.append(retrievedResult); + + for (var i = 0; i < tempModel.count; i++) { + if (!root.get(i)) { + sameItemCount = -1; + break; + } + // Gotta think of another way to determine if the data we just got is the same + // as the data that we already have in the model. + /* else if (tempModel.get(i).transaction_type === root.get(i).transaction_type && + tempModel.get(i).text === root.get(i).text) { + sameItemCount++; + }*/ + } + + if (sameItemCount !== tempModel.count) { + root.clear(); + for (var i = 0; i < tempModel.count; i++) { + root.append(tempModel.get(i)); + } + } + } else { + if (root.pagesAlreadyAdded.indexOf(currentPage) !== -1) { + console.log("Page " + currentPage + " of paginated data has already been added to the list."); + } else { + // First, add the result to a temporary model + tempModel.clear(); + tempModel.append(retrievedResult); + + // Make a note that we've already added this page to the model... + root.pagesAlreadyAdded.push(currentPage); + + var insertionIndex = 0; + // If there's nothing in the model right now, we don't need to modify insertionIndex. + if (root.count !== 0) { + var currentIteratorPage; + // Search through the whole model and look for the insertion point. + // The insertion point is found when the result page from the server is less than + // the page that the current item came from, OR when we've reached the end of the whole model. + for (var i = 0; i < root.count; i++) { + currentIteratorPage = root.get(i).resultIsFromPage; + + if (currentPage < currentIteratorPage) { + insertionIndex = i; + break; + } else if (i === root.count - 1) { + insertionIndex = i + 1; + break; + } + } + } + + // Go through the results we just got back from the server, setting the "resultIsFromPage" + // property of those results and adding them to the main model. + // NOTE that this wouldn't be necessary if we did this step on the server. + for (var i = 0; i < tempModel.count; i++) { + tempModel.setProperty(i, "resultIsFromPage", currentPage); + root.insert(i + insertionIndex, tempModel.get(i)) + } + } + } + } + } + + function swap(a, b) { + if (a < b) { + move(a, b, 1); + move(b - 1, a, 1); + } else if (a > b) { + move(b, a, 1); + move(a - 1, b, 1); + } + } + + function partition(begin, end, pivot) { + if (valuesAreNumerical) { + var piv = get(pivot)[sortColumnName]; + swap(pivot, end - 1); + var store = begin; + var i; + + for (i = begin; i < end - 1; ++i) { + var currentElement = get(i)[sortColumnName]; + if (isSortingDescending) { + if (currentElement > piv) { + swap(store, i); + ++store; + } + } else { + if (currentElement < piv) { + swap(store, i); + ++store; + } + } + } + swap(end - 1, store); + + return store; + } else { + var piv = get(pivot)[sortColumnName].toLowerCase(); + swap(pivot, end - 1); + var store = begin; + var i; + + for (i = begin; i < end - 1; ++i) { + var currentElement = get(i)[sortColumnName].toLowerCase(); + if (isSortingDescending) { + if (currentElement > piv) { + swap(store, i); + ++store; + } + } else { + if (currentElement < piv) { + swap(store, i); + ++store; + } + } + } + swap(end - 1, store); + + return store; + } + } + + function qsort(begin, end) { + if (end - 1 > begin) { + var pivot = begin + Math.floor(Math.random() * (end - begin)); + + pivot = partition(begin, end, pivot); + + qsort(begin, pivot); + qsort(pivot + 1, end); + } + } + + function quickSort() { + qsort(0, count) + } +} \ No newline at end of file From 8b4298514e58530d9c5236cef450ad03431a7d0a Mon Sep 17 00:00:00 2001 From: Thijs Wenker Date: Tue, 15 May 2018 21:39:17 +0200 Subject: [PATCH 045/300] send out one last blendshape update when setting MyAvatar.hasScriptedBlendshapes to false --- interface/src/avatar/MyAvatar.cpp | 13 +++++++++++++ interface/src/avatar/MyAvatar.h | 4 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 6c6f6d4d41..e4d255f4ee 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -2081,6 +2081,19 @@ bool MyAvatar::shouldRenderHead(const RenderArgs* renderArgs) const { return !defaultMode || !firstPerson || !insideHead; } +void MyAvatar::setHasScriptedBlendshapes(bool hasScriptedBlendshapes) { + if (hasScriptedBlendshapes == _hasScriptedBlendShapes) { + return; + } + if (!hasScriptedBlendshapes) { + // send a forced avatarData update to make sure the script can send neutal blendshapes on unload + // without having to wait for the update loop, make sure _hasScriptedBlendShapes is still true + // before sending the update, or else it won't send the neutal blendshapes to the receiving clients + sendAvatarDataPacket(true); + } + _hasScriptedBlendShapes = hasScriptedBlendshapes; +} + void MyAvatar::updateOrientation(float deltaTime) { // Smoothly rotate body with arrow keys diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 76966b5ab3..46cdd7b8ae 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -1345,7 +1345,7 @@ private: virtual bool shouldRenderHead(const RenderArgs* renderArgs) const override; void setShouldRenderLocally(bool shouldRender) { _shouldRender = shouldRender; setEnableMeshVisible(shouldRender); } bool getShouldRenderLocally() const { return _shouldRender; } - void setHasScriptedBlendshapes(bool hasScriptedBlendshapes) { _hasScriptedBlendShapes = hasScriptedBlendshapes; } + void setHasScriptedBlendshapes(bool hasScriptedBlendshapes); bool getHasScriptedBlendshapes() const override { return _hasScriptedBlendShapes; } void setHasAudioEnabledFaceMovement(bool hasAudioEnabledFaceMovement) { _hasAudioEnabledFaceMovement = hasAudioEnabledFaceMovement; } bool getHasAudioEnabledFaceMovement() const override { return _hasAudioEnabledFaceMovement; } @@ -1457,7 +1457,7 @@ private: bool _hmdRollControlEnabled { true }; float _hmdRollControlDeadZone { ROLL_CONTROL_DEAD_ZONE_DEFAULT }; float _hmdRollControlRate { ROLL_CONTROL_RATE_DEFAULT }; - bool _hasScriptedBlendShapes { false }; + std::atomic _hasScriptedBlendShapes { false }; bool _hasAudioEnabledFaceMovement { true }; // working copy -- see AvatarData for thread-safe _sensorToWorldMatrixCache, used for outward facing access From 154d70866f5261075c83323a322e34d912a52e2d Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Wed, 16 May 2018 12:17:17 -0700 Subject: [PATCH 046/300] It's working --- .../qml/hifi/commerce/wallet/WalletHome.qml | 52 +++---- .../qml/hifi/models/PSFListModel.qml | 147 +++++++++++++++--- interface/src/commerce/Ledger.cpp | 4 +- interface/src/commerce/Ledger.h | 2 +- interface/src/commerce/QmlCommerce.cpp | 4 +- interface/src/commerce/QmlCommerce.h | 2 +- 6 files changed, 158 insertions(+), 53 deletions(-) diff --git a/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml b/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml index afc205fd51..ac3afd3cf2 100644 --- a/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml +++ b/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml @@ -18,7 +18,7 @@ import QtQuick.Controls 2.2 import "../../../styles-uit" import "../../../controls-uit" as HifiControlsUit import "../../../controls" as HifiControls -import "../../../models" as HifiModels +import "../../models" as HifiModels Item { HifiConstants { id: hifi; } @@ -32,10 +32,10 @@ Item { transactionHistoryModel.clear(); Commerce.balance(); transactionHistoryModel.initialResultReceived = false; - transactionHistoryModel.nextPageToRetrieve = 1; + transactionHistoryModel.currentPageToRetrieve = 1; transactionHistoryModel.noMoreDataToRetrieve = false; transactionHistoryModel.requestPending = true; - Commerce.history(transactionHistoryModel.nextPageToRetrieve); + transactionHistoryModel.getPage(); Commerce.getAvailableUpdates(); } else { refreshTimer.stop(); @@ -50,18 +50,7 @@ Item { } onHistoryResult : { - - transactionHistoryModel.processResult(result.status, result.data.history); - - if (!transactionHistoryModel.noMoreDataToRetrieve) { - calculatePendingAndInvalidated(); - } - - // Only auto-refresh if the user hasn't scrolled - // and there is more data to grab - if (transactionHistory.atYBeginning && !transactionHistoryModel.noMoreDataToRetrieve) { - refreshTimer.start(); - } + transactionHistoryModel.pageRetrieved(result); } onAvailableUpdatesResult: { @@ -166,7 +155,8 @@ Item { console.log("Refreshing 1st Page of Recent Activity..."); transactionHistoryModel.requestPending = true; Commerce.balance(); - Commerce.history(1); + transactionHistoryModel.currentPageToRetrieve = 1; + transactionHistoryModel.getPage(); } } } @@ -228,11 +218,26 @@ Item { } } - ListModel { - id: tempTransactionHistoryModel; - } HifiModels.PSFListModel { id: transactionHistoryModel; + + itemsPerPage: 100; + getPage: function() { + Commerce.history(transactionHistoryModel.currentPageToRetrieve, transactionHistoryModel.itemsPerPage); + } + pageRetrieved: function(result) { + transactionHistoryModel.processResult(result.status, result.data.history); + + if (!transactionHistoryModel.noMoreDataToRetrieve) { + calculatePendingAndInvalidated(); + } + + // Only auto-refresh if the user hasn't scrolled + // and there is more data to grab + if (transactionHistory.atYBeginning && !transactionHistoryModel.noMoreDataToRetrieve) { + refreshTimer.start(); + } + } } Item { anchors.top: recentActivityText.bottom; @@ -311,7 +316,7 @@ Item { height: parent.height; visible: transactionHistoryModel.count !== 0; clip: true; - model: transactionHistoryModel; + model: transactionHistoryModel.model; delegate: Item { width: parent.width; height: (model.transaction_type === "pendingCount" && root.pendingCount !== 0) ? 40 : ((model.status === "confirmed" || model.status === "invalidated") ? transactionText.height + 30 : 0); @@ -391,12 +396,7 @@ Item { onAtYEndChanged: { if (transactionHistory.atYEnd) { console.log("User scrolled to the bottom of 'Recent Activity'."); - if (!transactionHistoryModel.requestPending && !transactionHistoryModel.noMoreDataToRetrieve) { - // Grab next page of results and append to model - transactionHistoryModel.requestPending = true; - Commerce.history(++transactionHistoryModel.nextPageToRetrieve); - console.log("Fetching Page " + transactionHistoryModel.nextPageToRetrieve + " of Recent Activity..."); - } + transactionHistoryModel.getNextPage(); } } } diff --git a/interface/resources/qml/hifi/models/PSFListModel.qml b/interface/resources/qml/hifi/models/PSFListModel.qml index cbc28b208d..ee639a4f71 100644 --- a/interface/resources/qml/hifi/models/PSFListModel.qml +++ b/interface/resources/qml/hifi/models/PSFListModel.qml @@ -17,58 +17,156 @@ import QtQuick 2.7 -ListModel { +Item { id: root; - property string sortColumnName: ""; - property bool isSortingDescending: true; - property bool valuesAreNumerical: false; + + // Used when printing debug statements + property string listModelName: ""; + + // Holds the value of the page that'll be retrieved the next time `getPage()` is called + property int currentPageToRetrieve: 1; + + // If defined, the endpoint that `getPage()` will hit (as long as there isn't a custom `getPage()` + // that does something fancy) + property string endpoint; + // If defined, the sort key used when calling the above endpoint. + // (as long as there isn't a custom `getPage()` that does something fancy) + property string sortKey; + // If defined, the search filter used when calling the above endpoint. + // (as long as there isn't a custom `getPage()` that does something fancy) + property string searchFilter; + // If defined, the tags filter used when calling the above endpoint. + // (as long as there isn't a custom `getPage()` that does something fancy) + property string tagsFilter; + // The number of items that'll be retrieved per page when calling `getPage()` + // (as long as there isn't a custom `getPage()` that does something fancy) + property int itemsPerPage: 100; + + // This function, by default, will retrieve data from the above-defined `endpoint` with the + // sort and filter data as set above. It can be custom-defined by this item's Parent. + property var getPage: function() { + // Put code here that calls the `endpoint` with the proper `sortKey`, `searchFilter`, and `tagsFilter`. + // Whatever code goes here should define the below `pageRetrieved()` as + // the callback for after the page is asynchronously retrieved. + + // The parent of this Item can also define custom `getPage()` and `pageRetrieved()` functions. + // See `WalletHome.qml` as an example of a file that does this. `WalletHome.qml` must use that method because + // it hits an endpoint that must be authenticated via the Wallet. + console.log("default getPage()"); + } + // This function, by default, will handle the data retrieved using `getPage()` above. + // It can be custom-defined by this item's Parent. + property var pageRetrieved: function() { + console.log("default pageRetrieved()"); + } + + // This function, by default, will get the _next_ page of data according to `getPage()` if there + // isn't a pending request and if there's more data to retrieve. + // It can be custom-defined by this item's Parent. + property var getNextPage: function() { + if (!root.requestPending && !root.noMoreDataToRetrieve) { + root.requestPending = true; + root.currentPageToRetrieve++; + root.getPage(); + console.log("Fetching Page " + root.currentPageToRetrieve + " of " + root.listModelName + "..."); + } + } + + // Resets both internal `ListModel`s and resets the page to retrieve to "1". + function resetModel() { + pagesAlreadyAdded = new Array(); + tempModel.clear(); + finalModel.clear(); + root.currentPageToRetrieve = 1; + } + + onEndpointChanged: { + resetModel(); + root.getPage(); + } + + onSortKeyChanged: { + resetModel(); + root.getPage(); + } + + onSearchFilterChanged: { + resetModel(); + root.getPage(); + } + + onTagsFilterChanged: { + resetModel(); + root.getPage(); + } property bool initialResultReceived: false; property bool requestPending: false; property bool noMoreDataToRetrieve: false; - property int nextPageToRetrieve: 1; property var pagesAlreadyAdded: new Array(); + + // Redefining members and methods so that the parent of this Item + // can use PSFListModel as they would a regular ListModel + property alias model: finalModel; + property alias count: finalModel.count; + function clear() { finalModel.clear(); } + function get(index) { return finalModel.get(index); } + // Used while processing page data and sorting ListModel { id: tempModel; } + // This is the model that the parent of this Item will actually see + ListModel { + id: finalModel; + } + function processResult(status, retrievedResult) { root.initialResultReceived = true; root.requestPending = false; if (status === 'success') { - var currentPage = parseInt(result.current_page); + var currentPage = parseInt(retrievedResult.current_page); if (retrievedResult.length === 0) { root.noMoreDataToRetrieve = true; console.log("No more data to retrieve from backend endpoint.") - } else if (root.nextPageToRetrieve === 1) { + } + /* + See FIXME below... + + else if (root.currentPageToRetrieve === 1) { var sameItemCount = 0; tempModel.clear(); tempModel.append(retrievedResult); for (var i = 0; i < tempModel.count; i++) { - if (!root.get(i)) { + if (!finalModel.get(i)) { sameItemCount = -1; break; } - // Gotta think of another way to determine if the data we just got is the same + // Gotta think of a generic way to determine if the data we just got is the same // as the data that we already have in the model. - /* else if (tempModel.get(i).transaction_type === root.get(i).transaction_type && - tempModel.get(i).text === root.get(i).text) { + else if (tempModel.get(i).transaction_type === finalModel.get(i).transaction_type && + tempModel.get(i).text === finalModel.get(i).text) { sameItemCount++; - }*/ + } } if (sameItemCount !== tempModel.count) { - root.clear(); + finalModel.clear(); for (var i = 0; i < tempModel.count; i++) { - root.append(tempModel.get(i)); + finalModel.append(tempModel.get(i)); } } - } else { + } + */ + else { + // FIXME! Reconsider this logic, because it means that auto-refreshing the first page of results + // (like we do in WalletHome for Recent Activity) _won't_ catch brand new data elements! + // See the commented code above for how I did this for WalletHome specifically. if (root.pagesAlreadyAdded.indexOf(currentPage) !== -1) { console.log("Page " + currentPage + " of paginated data has already been added to the list."); } else { @@ -81,18 +179,18 @@ ListModel { var insertionIndex = 0; // If there's nothing in the model right now, we don't need to modify insertionIndex. - if (root.count !== 0) { + if (finalModel.count !== 0) { var currentIteratorPage; // Search through the whole model and look for the insertion point. // The insertion point is found when the result page from the server is less than // the page that the current item came from, OR when we've reached the end of the whole model. - for (var i = 0; i < root.count; i++) { - currentIteratorPage = root.get(i).resultIsFromPage; + for (var i = 0; i < finalModel.count; i++) { + currentIteratorPage = finalModel.get(i).resultIsFromPage; if (currentPage < currentIteratorPage) { insertionIndex = i; break; - } else if (i === root.count - 1) { + } else if (i === finalModel.count - 1) { insertionIndex = i + 1; break; } @@ -101,16 +199,23 @@ ListModel { // Go through the results we just got back from the server, setting the "resultIsFromPage" // property of those results and adding them to the main model. - // NOTE that this wouldn't be necessary if we did this step on the server. + // NOTE that this wouldn't be necessary if we did this step (or a similar step) on the server. for (var i = 0; i < tempModel.count; i++) { tempModel.setProperty(i, "resultIsFromPage", currentPage); - root.insert(i + insertionIndex, tempModel.get(i)) + finalModel.insert(i + insertionIndex, tempModel.get(i)) } } } } } + // Used when sorting model data on the CLIENT + // Right now, there is no sorting done on the client for + // any users of PSFListModel, but that could very easily change. + property string sortColumnName: ""; + property bool isSortingDescending: true; + property bool valuesAreNumerical: false; + function swap(a, b) { if (a < b) { move(a, b, 1); diff --git a/interface/src/commerce/Ledger.cpp b/interface/src/commerce/Ledger.cpp index f791ea25bc..0abdba1214 100644 --- a/interface/src/commerce/Ledger.cpp +++ b/interface/src/commerce/Ledger.cpp @@ -260,9 +260,9 @@ void Ledger::historyFailure(QNetworkReply& reply) { failResponse("history", reply); } -void Ledger::history(const QStringList& keys, const int& pageNumber) { +void Ledger::history(const QStringList& keys, const int& pageNumber, const int& itemsPerPage) { QJsonObject params; - params["per_page"] = 100; + params["per_page"] = itemsPerPage; params["page"] = pageNumber; keysQuery("history", "historySuccess", "historyFailure", params); } diff --git a/interface/src/commerce/Ledger.h b/interface/src/commerce/Ledger.h index abc97bfe72..1365e39b21 100644 --- a/interface/src/commerce/Ledger.h +++ b/interface/src/commerce/Ledger.h @@ -29,7 +29,7 @@ public: bool receiveAt(const QString& hfc_key, const QString& signing_key); void balance(const QStringList& keys); void inventory(const QStringList& keys); - void history(const QStringList& keys, const int& pageNumber); + void history(const QStringList& keys, const int& pageNumber, const int& itemsPerPage); void account(); void updateLocation(const QString& asset_id, const QString& location, const bool& alsoUpdateSiblings = false, const bool controlledFailure = false); void certificateInfo(const QString& certificateId); diff --git a/interface/src/commerce/QmlCommerce.cpp b/interface/src/commerce/QmlCommerce.cpp index 722f29ba2f..9a5b0519a0 100644 --- a/interface/src/commerce/QmlCommerce.cpp +++ b/interface/src/commerce/QmlCommerce.cpp @@ -114,12 +114,12 @@ void QmlCommerce::inventory() { } } -void QmlCommerce::history(const int& pageNumber) { +void QmlCommerce::history(const int& pageNumber, const int& itemsPerPage) { auto ledger = DependencyManager::get(); auto wallet = DependencyManager::get(); QStringList cachedPublicKeys = wallet->listPublicKeys(); if (!cachedPublicKeys.isEmpty()) { - ledger->history(cachedPublicKeys, pageNumber); + ledger->history(cachedPublicKeys, pageNumber, itemsPerPage); } } diff --git a/interface/src/commerce/QmlCommerce.h b/interface/src/commerce/QmlCommerce.h index 27e97fe7db..5f33ab094c 100644 --- a/interface/src/commerce/QmlCommerce.h +++ b/interface/src/commerce/QmlCommerce.h @@ -74,7 +74,7 @@ protected: Q_INVOKABLE void buy(const QString& assetId, int cost, const bool controlledFailure = false); Q_INVOKABLE void balance(); Q_INVOKABLE void inventory(); - Q_INVOKABLE void history(const int& pageNumber); + Q_INVOKABLE void history(const int& pageNumber, const int& itemsPerPage = 100); Q_INVOKABLE void generateKeyPair(); Q_INVOKABLE void account(); From 0021af871457278b845116d13f047089d51e6a6d Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Wed, 16 May 2018 12:28:52 -0700 Subject: [PATCH 047/300] Merge in in-progress changes from old commerce_paginationAndFiltering branch --- .../qml/hifi/commerce/checkout/Checkout.qml | 23 ++----------------- .../qml/hifi/commerce/purchases/Purchases.qml | 21 ++++------------- interface/src/commerce/Ledger.cpp | 9 ++++++-- interface/src/commerce/Ledger.h | 2 +- interface/src/commerce/QmlCommerce.cpp | 4 ++-- interface/src/commerce/QmlCommerce.h | 2 +- scripts/system/html/js/marketplacesInject.js | 12 ++++++---- 7 files changed, 25 insertions(+), 48 deletions(-) diff --git a/interface/resources/qml/hifi/commerce/checkout/Checkout.qml b/interface/resources/qml/hifi/commerce/checkout/Checkout.qml index f25282c738..16c1b55930 100644 --- a/interface/resources/qml/hifi/commerce/checkout/Checkout.qml +++ b/interface/resources/qml/hifi/commerce/checkout/Checkout.qml @@ -42,7 +42,7 @@ Rectangle { property bool alreadyOwned: false; property int itemPrice: -1; property bool isCertified; - property string itemType; + property string itemType: "unknown"; property var itemTypesArray: ["entity", "wearable", "contentSet", "app", "avatar", "unknown"]; property var itemTypesText: ["entity", "wearable", "content set", "app", "avatar", "item"]; property var buttonTextNormal: ["REZ", "WEAR", "REPLACE CONTENT SET", "INSTALL", "WEAR", "REZ"]; @@ -98,9 +98,6 @@ Rectangle { } else { root.certificateId = result.data.certificate_id; root.itemHref = result.data.download_url; - if (result.data.categories.indexOf("Wearables") > -1) { - root.itemType = "wearable"; - } root.activeView = "checkoutSuccess"; UserActivityLogger.commercePurchaseSuccess(root.itemId, root.itemAuthor, root.itemPrice, !root.alreadyOwned); } @@ -170,9 +167,6 @@ Rectangle { root.activeView = "checkoutFailure"; } else { root.itemHref = result.data.download_url; - if (result.data.categories.indexOf("Wearables") > -1) { - root.itemType = "wearable"; - } root.activeView = "checkoutSuccess"; } } @@ -186,20 +180,6 @@ Rectangle { itemPreviewImage.source = "https://hifi-metaverse.s3-us-west-1.amazonaws.com/marketplace/previews/" + itemId + "/thumbnail/hifi-mp-" + itemId + ".jpg"; } - onItemHrefChanged: { - if (root.itemHref.indexOf(".fst") > -1) { - root.itemType = "avatar"; - } else if (root.itemHref.indexOf('.json.gz') > -1 || root.itemHref.indexOf('.content.zip') > -1) { - root.itemType = "contentSet"; - } else if (root.itemHref.indexOf('.app.json') > -1) { - root.itemType = "app"; - } else if (root.itemHref.indexOf('.json') > -1) { - root.itemType = "entity"; // "wearable" type handled later - } else { - root.itemType = "unknown"; - } - } - onItemTypeChanged: { if (root.itemType === "entity" || root.itemType === "wearable" || root.itemType === "contentSet" || root.itemType === "avatar" || root.itemType === "app") { @@ -1102,6 +1082,7 @@ Rectangle { root.referrer = message.params.referrer; root.itemAuthor = message.params.itemAuthor; root.itemEdition = message.params.itemEdition || -1; + root.itemType = message.params.itemType || "unknown"; refreshBuyUI(); break; default: diff --git a/interface/resources/qml/hifi/commerce/purchases/Purchases.qml b/interface/resources/qml/hifi/commerce/purchases/Purchases.qml index 8fe1ebe6c9..e32b31c1ea 100644 --- a/interface/resources/qml/hifi/commerce/purchases/Purchases.qml +++ b/interface/resources/qml/hifi/commerce/purchases/Purchases.qml @@ -614,7 +614,7 @@ Rectangle { wornEntityID: model.wornEntityID; upgradeUrl: model.upgrade_url; upgradeTitle: model.upgrade_title; - itemType: model.itemType; + itemType: model.item_type; isShowingMyItems: root.isShowingMyItems; valid: model.valid; anchors.topMargin: 10; @@ -996,7 +996,8 @@ Rectangle { for (var i = 0; i < purchasesModel.count; i++) { if (purchasesModel.get(i).title.toLowerCase().indexOf(filterBar.text.toLowerCase()) !== -1) { - if (purchasesModel.get(i).status !== "confirmed" && !root.isShowingMyItems) { + if (purchasesModel.get(i).status !== "confirmed" && !root.isShowingMyItems && + purchasesModel.get(i).edition_number !== "0") { tempPurchasesModel.insert(0, purchasesModel.get(i)); } else if ((root.isShowingMyItems && purchasesModel.get(i).edition_number === "0") || (!root.isShowingMyItems && purchasesModel.get(i).edition_number !== "0")) { @@ -1010,27 +1011,13 @@ Rectangle { for (var i = 0; i < tempPurchasesModel.count; i++) { currentRootFileUrl = tempPurchasesModel.get(i).root_file_url; currentCategories = tempPurchasesModel.get(i).categories; + currentItemType = tempPurchasesModel.get(i).item_type; - if (currentRootFileUrl.indexOf(".fst") > -1) { - currentItemType = "avatar"; - } else if (currentCategories.indexOf("Wearables") > -1) { - currentItemType = "wearable"; - } else if (currentRootFileUrl.endsWith('.json.gz') || currentRootFileUrl.endsWith('.content.zip')) { - currentItemType = "contentSet"; - } else if (currentRootFileUrl.endsWith('.app.json')) { - currentItemType = "app"; - } else if (currentRootFileUrl.endsWith('.json')) { - currentItemType = "entity"; - } else { - currentItemType = "unknown"; - } if (filterBar.primaryFilter_displayName !== "" && ((filterBar.primaryFilter_displayName === "Updatable" && tempPurchasesModel.get(i).upgrade_url === "") || (filterBar.primaryFilter_displayName !== "Updatable" && filterBar.primaryFilter_filterName.toLowerCase() !== currentItemType.toLowerCase()))) { tempPurchasesModel.remove(i); i--; - } else { - tempPurchasesModel.setProperty(i, 'itemType', currentItemType); } } diff --git a/interface/src/commerce/Ledger.cpp b/interface/src/commerce/Ledger.cpp index 0abdba1214..5bd8c77d04 100644 --- a/interface/src/commerce/Ledger.cpp +++ b/interface/src/commerce/Ledger.cpp @@ -134,8 +134,13 @@ void Ledger::balance(const QStringList& keys) { keysQuery("balance", "balanceSuccess", "balanceFailure"); } -void Ledger::inventory(const QStringList& keys) { - keysQuery("inventory", "inventorySuccess", "inventoryFailure"); +void Ledger::inventory(const QString& editionFilter, const QString& typeFilter, const int& page, const int& perPage) { + QJsonObject params; + params["edition_filter"] = editionFilter; + params["type_filter"] = typeFilter; + params["page"] = page; + params["per_page"] = perPage; + keysQuery("inventory", "inventorySuccess", "inventoryFailure", params); } QString hfcString(const QJsonValue& sentValue, const QJsonValue& receivedValue) { diff --git a/interface/src/commerce/Ledger.h b/interface/src/commerce/Ledger.h index 1365e39b21..9733658357 100644 --- a/interface/src/commerce/Ledger.h +++ b/interface/src/commerce/Ledger.h @@ -28,7 +28,7 @@ public: void buy(const QString& hfc_key, int cost, const QString& asset_id, const QString& inventory_key, const bool controlled_failure = false); bool receiveAt(const QString& hfc_key, const QString& signing_key); void balance(const QStringList& keys); - void inventory(const QStringList& keys); + void inventory(const QString& editionFilter, const QString& typeFilter, const int& page, const int& perPage); void history(const QStringList& keys, const int& pageNumber, const int& itemsPerPage); void account(); void updateLocation(const QString& asset_id, const QString& location, const bool& alsoUpdateSiblings = false, const bool controlledFailure = false); diff --git a/interface/src/commerce/QmlCommerce.cpp b/interface/src/commerce/QmlCommerce.cpp index 9a5b0519a0..dba8cd03c7 100644 --- a/interface/src/commerce/QmlCommerce.cpp +++ b/interface/src/commerce/QmlCommerce.cpp @@ -105,12 +105,12 @@ void QmlCommerce::balance() { } } -void QmlCommerce::inventory() { +void QmlCommerce::inventory(const QString& editionFilter, const QString& typeFilter, const int& page, const int& perPage) { auto ledger = DependencyManager::get(); auto wallet = DependencyManager::get(); QStringList cachedPublicKeys = wallet->listPublicKeys(); if (!cachedPublicKeys.isEmpty()) { - ledger->inventory(cachedPublicKeys); + ledger->inventory(editionFilter, typeFilter, page, perPage); } } diff --git a/interface/src/commerce/QmlCommerce.h b/interface/src/commerce/QmlCommerce.h index 5f33ab094c..3a08b4a19b 100644 --- a/interface/src/commerce/QmlCommerce.h +++ b/interface/src/commerce/QmlCommerce.h @@ -73,7 +73,7 @@ protected: Q_INVOKABLE void buy(const QString& assetId, int cost, const bool controlledFailure = false); Q_INVOKABLE void balance(); - Q_INVOKABLE void inventory(); + Q_INVOKABLE void inventory(const QString& editionFilter = QString(), const QString& typeFilter = QString(), const int& page = 1, const int& perPage = 20); Q_INVOKABLE void history(const int& pageNumber, const int& itemsPerPage = 100); Q_INVOKABLE void generateKeyPair(); Q_INVOKABLE void account(); diff --git a/scripts/system/html/js/marketplacesInject.js b/scripts/system/html/js/marketplacesInject.js index 864c7d92b4..799a974fd6 100644 --- a/scripts/system/html/js/marketplacesInject.js +++ b/scripts/system/html/js/marketplacesInject.js @@ -250,7 +250,7 @@ }); } - function buyButtonClicked(id, name, author, price, href, referrer, edition) { + function buyButtonClicked(id, name, author, price, href, referrer, edition, type) { EventBridge.emitWebEvent(JSON.stringify({ type: "CHECKOUT", itemId: id, @@ -259,7 +259,8 @@ itemHref: href, referrer: referrer, itemAuthor: author, - itemEdition: edition + itemEdition: edition, + itemType: type.trim() })); } @@ -328,7 +329,8 @@ $(this).closest('.grid-item').find('.item-cost').text(), $(this).attr('data-href'), "mainPage", - -1); + -1, + $(this).closest('.grid-item').find('.item-type').text()); }); } @@ -419,6 +421,7 @@ } var cost = $('.item-cost').text(); + var type = $('.item-type').text(); var isUpdating = window.location.href.indexOf('edition=') > -1; var urlParams = new URLSearchParams(window.location.search); if (isUpdating) { @@ -438,7 +441,8 @@ cost, href, "itemPage", - urlParams.get('edition')); + urlParams.get('edition'), + type); } }); maybeAddPurchasesButton(); From 97bb0147348ae9bf8e0e18d8887095955c44945f Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Wed, 16 May 2018 13:20:23 -0700 Subject: [PATCH 048/300] Almost working for Purchases! --- .../qml/hifi/commerce/purchases/Purchases.qml | 254 +++++++----------- .../qml/hifi/commerce/wallet/WalletHome.qml | 4 +- .../qml/hifi/models/PSFListModel.qml | 8 + 3 files changed, 106 insertions(+), 160 deletions(-) diff --git a/interface/resources/qml/hifi/commerce/purchases/Purchases.qml b/interface/resources/qml/hifi/commerce/purchases/Purchases.qml index e32b31c1ea..9f5dec7ef3 100644 --- a/interface/resources/qml/hifi/commerce/purchases/Purchases.qml +++ b/interface/resources/qml/hifi/commerce/purchases/Purchases.qml @@ -16,6 +16,7 @@ import QtQuick 2.5 import "../../../styles-uit" import "../../../controls-uit" as HifiControlsUit import "../../../controls" as HifiControls +import "../../models" as HifiModels import "../wallet" as HifiWallet import "../common" as HifiCommerceCommon import "../inspectionCertificate" as HifiInspectionCertificate @@ -34,7 +35,6 @@ Rectangle { property bool punctuationMode: false; property bool isShowingMyItems: false; property bool isDebuggingFirstUseTutorial: false; - property int pendingItemCount: 0; property string installedApps; property bool keyboardRaised: false; property int numUpdatesAvailable: 0; @@ -64,7 +64,10 @@ Rectangle { } else if (!Settings.getValue("isFirstUseOfPurchases", true) && root.activeView === "initialize") { root.activeView = "purchasesMain"; root.installedApps = Commerce.getInstalledApps(); - Commerce.inventory(); + purchasesModel.initialResultReceived = false; + purchasesModel.currentPageToRetrieve = 1; + purchasesModel.noMoreDataToRetrieve = false; + purchasesModel.getPage(); Commerce.getAvailableUpdates(); } } else { @@ -81,39 +84,7 @@ Rectangle { } onInventoryResult: { - purchasesReceived = true; - - if (result.status !== 'success') { - console.log("Failed to get purchases", result.message); - } else if (!purchasesContentsList.dragging) { // Don't modify the view if the user's scrolling - var inventoryResult = processInventoryResult(result.data.assets); - - var currentIndex = purchasesContentsList.currentIndex === -1 ? 0 : purchasesContentsList.currentIndex; - purchasesModel.clear(); - purchasesModel.append(inventoryResult); - - root.pendingItemCount = 0; - for (var i = 0; i < purchasesModel.count; i++) { - if (purchasesModel.get(i).status === "pending") { - root.pendingItemCount++; - } - } - - if (previousPurchasesModel.count !== 0) { - checkIfAnyItemStatusChanged(); - } else { - // Fill statusChanged default value - // Not doing this results in the default being true... - for (var i = 0; i < purchasesModel.count; i++) { - purchasesModel.setProperty(i, "statusChanged", false); - } - } - previousPurchasesModel.append(inventoryResult); - - buildFilteredPurchasesModel(); - - purchasesContentsList.positionViewAtIndex(currentIndex, ListView.Beginning); - } + purchasesModel.pageRetrieved(result); } onAvailableUpdatesResult: { @@ -134,6 +105,11 @@ Rectangle { } } + onIsShowingMyItemsChanged: { + purchasesModel.resetModel(); + + } + Timer { id: notSetUpTimer; interval: 200; @@ -184,7 +160,10 @@ Rectangle { onSendSignalToParent: { if (msg.method === 'sendAssetHome_back' || msg.method === 'closeSendAsset') { root.activeView = "purchasesMain"; - Commerce.inventory(); + purchasesModel.initialResultReceived = false; + purchasesModel.currentPageToRetrieve = 1; + purchasesModel.noMoreDataToRetrieve = false; + purchasesModel.getPage(); Commerce.getAvailableUpdates(); } else { sendToScript(msg); @@ -451,7 +430,10 @@ Rectangle { Settings.setValue("isFirstUseOfPurchases", false); root.activeView = "purchasesMain"; root.installedApps = Commerce.getInstalledApps(); - Commerce.inventory(); + purchasesModel.initialResultReceived = false; + purchasesModel.currentPageToRetrieve = 1; + purchasesModel.noMoreDataToRetrieve = false; + purchasesModel.getPage(); Commerce.getAvailableUpdates(); break; } @@ -548,14 +530,12 @@ Rectangle { } onPrimaryFilter_displayNameChanged: { - buildFilteredPurchasesModel(); - purchasesContentsList.positionViewAtIndex(0, ListView.Beginning) + purchasesModel.tagsFilter = filterBar.primaryFilter_filterName.toLowerCase(); filterBar.previousPrimaryFilter = filterBar.primaryFilter_displayName; } onTextChanged: { - buildFilteredPurchasesModel(); - purchasesContentsList.positionViewAtIndex(0, ListView.Beginning) + purchasesModel.searchFilter = filterBar.text; filterBar.previousText = filterBar.text; } } @@ -574,24 +554,58 @@ Rectangle { anchors.topMargin: 16; } - ListModel { + HifiModels.PSFListModel { id: purchasesModel; - } - ListModel { - id: previousPurchasesModel; - } - HifiCommerceCommon.SortableListModel { - id: tempPurchasesModel; - } - HifiCommerceCommon.SortableListModel { - id: filteredPurchasesModel; + + itemsPerPage: 3; + getPage: function() { + Commerce.inventory( + root.isShowingMyItems ? "proofs" : "purchased", + filterBar.primaryFilter_filterName.toLowerCase(), + purchasesModel.currentPageToRetrieve, + purchasesModel.itemsPerPage + ); + } + pageRetrieved: function(result) { + purchasesReceived = true; + + var processedInventory = processInventoryResult(result.data.assets); + + if (purchasesModel.processResult(result.status, processedInventory)) { + var currentId; + for (var i = 0; i < purchasesModel.count; i++) { + currentId = purchasesModel.get(i).id; + purchasesModel.setProperty(i, 'cardBackVisible', false); + purchasesModel.setProperty(i, 'isInstalled', ((root.installedApps).indexOf(currentId) > -1)); + purchasesModel.setProperty(i, 'wornEntityID', ''); + } + + // Client-side filter of "Updatable" items + // FIXME - this MUST be serverside (what if we don't have the + // page containing an updatable item on the client?) + if (filterBar.primaryFilter_displayName === "Updatable") { + for (var i = 0; i < purchasesModel.count; i++) { + if (purchasesModel.get(i).upgrade_url === "") { + purchasesModel.remove(i); + i--; + } + } + } + + sendToScript({ method: 'purchases_updateWearables' }); + // FIXME: This ALSO *MUST* be serverside (what if we don't have + // all instances of the item on the client yet?) + //populateDisplayedItemCounts(); + sortByDate(); + } + } } ListView { id: purchasesContentsList; - visible: (root.isShowingMyItems && filteredPurchasesModel.count !== 0) || (!root.isShowingMyItems && filteredPurchasesModel.count !== 0); + visible: purchasesModel.count !== 0; clip: true; - model: filteredPurchasesModel; + model: purchasesModel.model; snapMode: ListView.SnapToItem; // Anchors anchors.top: separator.bottom; @@ -608,9 +622,9 @@ Rectangle { itemEdition: model.edition_number; numberSold: model.number_sold; limitedRun: model.limited_run; - displayedItemCount: model.displayedItemCount; - cardBackVisible: model.cardBackVisible; - isInstalled: model.isInstalled; + displayedItemCount: model.displayedItemCount || 0; + cardBackVisible: model.cardBackVisible || false; + isInstalled: model.isInstalled || false; wornEntityID: model.wornEntityID; upgradeUrl: model.upgrade_url; upgradeTitle: model.upgrade_title; @@ -706,11 +720,11 @@ Rectangle { } else if (msg.method === "setFilterText") { filterBar.text = msg.filterText; } else if (msg.method === "flipCard") { - for (var i = 0; i < filteredPurchasesModel.count; i++) { + for (var i = 0; i < purchasesModel.count; i++) { if (i !== index || msg.closeAll) { - filteredPurchasesModel.setProperty(i, "cardBackVisible", false); + purchasesModel.setProperty(i, "cardBackVisible", false); } else { - filteredPurchasesModel.setProperty(i, "cardBackVisible", true); + purchasesModel.setProperty(i, "cardBackVisible", true); } } } else if (msg.method === "updateItemClicked") { @@ -761,7 +775,7 @@ Rectangle { lightboxPopup.button2text = "CONFIRM"; lightboxPopup.button2method = function() { Entities.deleteEntity(msg.wornEntityID); - filteredPurchasesModel.setProperty(index, 'wornEntityID', ''); + purchasesModel.setProperty(index, 'wornEntityID', ''); root.activeView = "giftAsset"; lightboxPopup.visible = false; }; @@ -773,6 +787,14 @@ Rectangle { } } } + + + onAtYEndChanged: { + if (purchasesContentsList.atYEnd) { + console.log("User scrolled to the bottom of 'Purchases'."); + purchasesModel.getNextPage(); + } + } } Rectangle { @@ -968,8 +990,8 @@ Rectangle { function populateDisplayedItemCounts() { var itemCountDictionary = {}; var currentItemId; - for (var i = 0; i < filteredPurchasesModel.count; i++) { - currentItemId = filteredPurchasesModel.get(i).id; + for (var i = 0; i < purchasesModel.count; i++) { + currentItemId = purchasesModel.get(i).id; if (itemCountDictionary[currentItemId] === undefined) { itemCountDictionary[currentItemId] = 1; } else { @@ -977,109 +999,25 @@ Rectangle { } } - for (var i = 0; i < filteredPurchasesModel.count; i++) { - filteredPurchasesModel.setProperty(i, "displayedItemCount", itemCountDictionary[filteredPurchasesModel.get(i).id]); + for (var i = 0; i < purchasesModel.count; i++) { + purchasesModel.setProperty(i, "displayedItemCount", itemCountDictionary[purchasesModel.get(i).id]); } } function sortByDate() { - filteredPurchasesModel.sortColumnName = "purchase_date"; - filteredPurchasesModel.isSortingDescending = true; - filteredPurchasesModel.valuesAreNumerical = true; - filteredPurchasesModel.quickSort(); - } - - function buildFilteredPurchasesModel() { - var sameItemCount = 0; - - tempPurchasesModel.clear(); - - for (var i = 0; i < purchasesModel.count; i++) { - if (purchasesModel.get(i).title.toLowerCase().indexOf(filterBar.text.toLowerCase()) !== -1) { - if (purchasesModel.get(i).status !== "confirmed" && !root.isShowingMyItems && - purchasesModel.get(i).edition_number !== "0") { - tempPurchasesModel.insert(0, purchasesModel.get(i)); - } else if ((root.isShowingMyItems && purchasesModel.get(i).edition_number === "0") || - (!root.isShowingMyItems && purchasesModel.get(i).edition_number !== "0")) { - tempPurchasesModel.append(purchasesModel.get(i)); - } - } - } - - // primaryFilter filtering and adding of itemType property to model - var currentItemType, currentRootFileUrl, currentCategories; - for (var i = 0; i < tempPurchasesModel.count; i++) { - currentRootFileUrl = tempPurchasesModel.get(i).root_file_url; - currentCategories = tempPurchasesModel.get(i).categories; - currentItemType = tempPurchasesModel.get(i).item_type; - - if (filterBar.primaryFilter_displayName !== "" && - ((filterBar.primaryFilter_displayName === "Updatable" && tempPurchasesModel.get(i).upgrade_url === "") || - (filterBar.primaryFilter_displayName !== "Updatable" && filterBar.primaryFilter_filterName.toLowerCase() !== currentItemType.toLowerCase()))) { - tempPurchasesModel.remove(i); - i--; - } - } - - for (var i = 0; i < tempPurchasesModel.count; i++) { - if (!filteredPurchasesModel.get(i)) { - sameItemCount = -1; - break; - } else if (tempPurchasesModel.get(i).itemId === filteredPurchasesModel.get(i).itemId && - tempPurchasesModel.get(i).edition_number === filteredPurchasesModel.get(i).edition_number && - tempPurchasesModel.get(i).status === filteredPurchasesModel.get(i).status) { - sameItemCount++; - } - } - - if (sameItemCount !== tempPurchasesModel.count || - filterBar.text !== filterBar.previousText || - filterBar.primaryFilter !== filterBar.previousPrimaryFilter) { - filteredPurchasesModel.clear(); - var currentId; - for (var i = 0; i < tempPurchasesModel.count; i++) { - currentId = tempPurchasesModel.get(i).id; - filteredPurchasesModel.append(tempPurchasesModel.get(i)); - filteredPurchasesModel.setProperty(i, 'cardBackVisible', false); - filteredPurchasesModel.setProperty(i, 'isInstalled', ((root.installedApps).indexOf(currentId) > -1)); - filteredPurchasesModel.setProperty(i, 'wornEntityID', ''); - } - - sendToScript({ method: 'purchases_updateWearables' }); - populateDisplayedItemCounts(); - sortByDate(); - } - } - - function checkIfAnyItemStatusChanged() { - var currentPurchasesModelId, currentPurchasesModelEdition, currentPurchasesModelStatus; - var previousPurchasesModelStatus; - for (var i = 0; i < purchasesModel.count; i++) { - currentPurchasesModelId = purchasesModel.get(i).id; - currentPurchasesModelEdition = purchasesModel.get(i).edition_number; - currentPurchasesModelStatus = purchasesModel.get(i).status; - - for (var j = 0; j < previousPurchasesModel.count; j++) { - previousPurchasesModelStatus = previousPurchasesModel.get(j).status; - if (currentPurchasesModelId === previousPurchasesModel.get(j).id && - currentPurchasesModelEdition === previousPurchasesModel.get(j).edition_number && - currentPurchasesModelStatus !== previousPurchasesModelStatus) { - - purchasesModel.setProperty(i, "statusChanged", true); - } else { - purchasesModel.setProperty(i, "statusChanged", false); - } - } - } + purchasesModel.sortColumnName = "purchase_date"; + purchasesModel.isSortingDescending = true; + purchasesModel.valuesAreNumerical = true; + purchasesModel.quickSort(); } function updateCurrentlyWornWearables(wearables) { - for (var i = 0; i < filteredPurchasesModel.count; i++) { + for (var i = 0; i < purchasesModel.count; i++) { for (var j = 0; j < wearables.length; j++) { - if (filteredPurchasesModel.get(i).itemType === "wearable" && - wearables[j].entityCertID === filteredPurchasesModel.get(i).certificate_id && - wearables[j].entityEdition.toString() === filteredPurchasesModel.get(i).edition_number) { - filteredPurchasesModel.setProperty(i, 'wornEntityID', wearables[j].entityID); + if (purchasesModel.get(i).itemType === "wearable" && + wearables[j].entityCertID === purchasesModel.get(i).certificate_id && + wearables[j].entityEdition.toString() === purchasesModel.get(i).edition_number) { + purchasesModel.setProperty(i, 'wornEntityID', wearables[j].entityID); break; } } @@ -1136,7 +1074,7 @@ Rectangle { switch (message.method) { case 'updatePurchases': referrerURL = message.referrerURL || ""; - titleBarContainer.referrerURL = message.referrerURL; + titleBarContainer.referrerURL = message.referrerURL || ""; filterBar.text = message.filterText ? message.filterText : ""; break; case 'inspectionCertificate_setCertificateId': diff --git a/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml b/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml index ac3afd3cf2..b41d04f718 100644 --- a/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml +++ b/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml @@ -34,7 +34,6 @@ Item { transactionHistoryModel.initialResultReceived = false; transactionHistoryModel.currentPageToRetrieve = 1; transactionHistoryModel.noMoreDataToRetrieve = false; - transactionHistoryModel.requestPending = true; transactionHistoryModel.getPage(); Commerce.getAvailableUpdates(); } else { @@ -153,7 +152,6 @@ Item { onTriggered: { if (transactionHistory.atYBeginning) { console.log("Refreshing 1st Page of Recent Activity..."); - transactionHistoryModel.requestPending = true; Commerce.balance(); transactionHistoryModel.currentPageToRetrieve = 1; transactionHistoryModel.getPage(); @@ -221,8 +219,10 @@ Item { HifiModels.PSFListModel { id: transactionHistoryModel; + listModelName: "transaction history"; itemsPerPage: 100; getPage: function() { + transactionHistoryModel.requestPending = true; Commerce.history(transactionHistoryModel.currentPageToRetrieve, transactionHistoryModel.itemsPerPage); } pageRetrieved: function(result) { diff --git a/interface/resources/qml/hifi/models/PSFListModel.qml b/interface/resources/qml/hifi/models/PSFListModel.qml index ee639a4f71..41134ddfdb 100644 --- a/interface/resources/qml/hifi/models/PSFListModel.qml +++ b/interface/resources/qml/hifi/models/PSFListModel.qml @@ -111,6 +111,9 @@ Item { property alias count: finalModel.count; function clear() { finalModel.clear(); } function get(index) { return finalModel.get(index); } + function remove(index) { return finalModel.remove(index); } + function setProperty(index, prop, value) { return finalModel.setProperty(index, prop, value); } + function move(from, to, n) { return finalModel.move(from, to, n); } // Used while processing page data and sorting ListModel { @@ -206,7 +209,12 @@ Item { } } } + return true; + } else { + console.log("Failed to get page result for " + root.listModelName); } + + return false; } // Used when sorting model data on the CLIENT From bc590f556accecdf3faf66ee1d1a7e2d5cd981d3 Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Wed, 16 May 2018 13:32:53 -0700 Subject: [PATCH 049/300] Get first page --- .../qml/hifi/commerce/purchases/Purchases.qml | 20 +++++++------------ .../qml/hifi/commerce/wallet/WalletHome.qml | 5 +---- .../qml/hifi/models/PSFListModel.qml | 17 ++++++++++++---- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/interface/resources/qml/hifi/commerce/purchases/Purchases.qml b/interface/resources/qml/hifi/commerce/purchases/Purchases.qml index 9f5dec7ef3..93400349a2 100644 --- a/interface/resources/qml/hifi/commerce/purchases/Purchases.qml +++ b/interface/resources/qml/hifi/commerce/purchases/Purchases.qml @@ -64,10 +64,7 @@ Rectangle { } else if (!Settings.getValue("isFirstUseOfPurchases", true) && root.activeView === "initialize") { root.activeView = "purchasesMain"; root.installedApps = Commerce.getInstalledApps(); - purchasesModel.initialResultReceived = false; - purchasesModel.currentPageToRetrieve = 1; - purchasesModel.noMoreDataToRetrieve = false; - purchasesModel.getPage(); + purchasesModel.getFirstPage(); Commerce.getAvailableUpdates(); } } else { @@ -160,10 +157,7 @@ Rectangle { onSendSignalToParent: { if (msg.method === 'sendAssetHome_back' || msg.method === 'closeSendAsset') { root.activeView = "purchasesMain"; - purchasesModel.initialResultReceived = false; - purchasesModel.currentPageToRetrieve = 1; - purchasesModel.noMoreDataToRetrieve = false; - purchasesModel.getPage(); + purchasesModel.getFirstPage(); Commerce.getAvailableUpdates(); } else { sendToScript(msg); @@ -430,10 +424,7 @@ Rectangle { Settings.setValue("isFirstUseOfPurchases", false); root.activeView = "purchasesMain"; root.installedApps = Commerce.getInstalledApps(); - purchasesModel.initialResultReceived = false; - purchasesModel.currentPageToRetrieve = 1; - purchasesModel.noMoreDataToRetrieve = false; - purchasesModel.getPage(); + purchasesModel.getFirstPage(); Commerce.getAvailableUpdates(); break; } @@ -596,7 +587,10 @@ Rectangle { // FIXME: This ALSO *MUST* be serverside (what if we don't have // all instances of the item on the client yet?) //populateDisplayedItemCounts(); - sortByDate(); + + // FIXME: Sorting by date should be done serverside (we should always get + // the most recent purchases on the 1st page) + //sortByDate(); } } } diff --git a/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml b/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml index b41d04f718..76a963f63f 100644 --- a/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml +++ b/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml @@ -31,10 +31,7 @@ Item { if (visible) { transactionHistoryModel.clear(); Commerce.balance(); - transactionHistoryModel.initialResultReceived = false; - transactionHistoryModel.currentPageToRetrieve = 1; - transactionHistoryModel.noMoreDataToRetrieve = false; - transactionHistoryModel.getPage(); + transactionHistoryModel.getFirstPage(); Commerce.getAvailableUpdates(); } else { refreshTimer.stop(); diff --git a/interface/resources/qml/hifi/models/PSFListModel.qml b/interface/resources/qml/hifi/models/PSFListModel.qml index 41134ddfdb..f3b14fedd7 100644 --- a/interface/resources/qml/hifi/models/PSFListModel.qml +++ b/interface/resources/qml/hifi/models/PSFListModel.qml @@ -71,6 +71,15 @@ Item { console.log("Fetching Page " + root.currentPageToRetrieve + " of " + root.listModelName + "..."); } } + + // A helper function used to get the first page from the server. + // It can be custom-defined by this item's Parent. + property var getFirstPage: function() { + root.initialResultReceived = false; + root.currentPageToRetrieve = 1; + root.noMoreDataToRetrieve = false; + root.getPage(); + } // Resets both internal `ListModel`s and resets the page to retrieve to "1". function resetModel() { @@ -82,22 +91,22 @@ Item { onEndpointChanged: { resetModel(); - root.getPage(); + root.getFirstPage(); } onSortKeyChanged: { resetModel(); - root.getPage(); + root.getFirstPage(); } onSearchFilterChanged: { resetModel(); - root.getPage(); + root.getFirstPage(); } onTagsFilterChanged: { resetModel(); - root.getPage(); + root.getFirstPage(); } property bool initialResultReceived: false; From 0ccb233724ce36a42933582ec934c34d68d3b517 Mon Sep 17 00:00:00 2001 From: milad Date: Sun, 20 May 2018 14:18:39 -0700 Subject: [PATCH 050/300] gravprep redo for link fixes --- tools/jsdoc/Links-Untouched | 2132 ----------------------------------- tools/jsdoc/grav.sh | 2 + tools/jsdoc/gravPrep.js | 273 +++-- 3 files changed, 154 insertions(+), 2253 deletions(-) create mode 100755 tools/jsdoc/grav.sh diff --git a/tools/jsdoc/Links-Untouched b/tools/jsdoc/Links-Untouched index bea2009fa5..e69de29bb2 100644 --- a/tools/jsdoc/Links-Untouched +++ b/tools/jsdoc/Links-Untouched @@ -1,2132 +0,0 @@ -AnimationCache: - Resource -Resource -Resource -Resource -Resource -Resource -Assets: - Assets~downloadDataCallback -Assets.GetOptions -Assets.GetOptions -Assets~getAssetCallback -Assets~getMappingCallback -Assets.PutOptions -Assets~setMappingCallback -Assets~uploadDataCallback -Assets.getAsset -Assets.putAsset -Assets.putAsset -Assets.getAsset -Assets.putAsset -AudioStats: - AudioStats.AudioStreamStats -AudioStats.AudioStreamStats -AudioStreamStats -AvatarManager: - Uuid -Uuid -Uuid -Uuid -PickRay -Uuid -Uuid -PickRay -Uuid -Uuid -Uuid -Uuid -Uuid -Uuid -Uuid -Uuid -Vec3 -Uuid -Uuid -Uuid -Uuid -Camera: - Vec3 -Quat -Camera.Mode -ViewFrustum -Uuid -PickRay -PickRay -PickRay -Entities.findRayIntersection -Overlays.findRayIntersection -PickRay -PickRay -Uuid -Uuid -Camera.Mode -Camera.Mode -Quat -Quat -Vec3 -Vec3 -Vec3 -Vec3 -Camera.Mode -Uuid -Camera.Mode -Quat -Vec3 -Clipboard: - Uuid -Vec3 -Vec3 -Clipboard.exportEntities -Uuid -Vec3 -Uuid -Controller: - getActions -getHardware -getStandard -disableMapping -enableMapping -loadMapping -newMapping -parseMapping -findAction -findDevice -getActionNames -getAllActions -getAvailableInputs -getDeviceName -getDeviceNames -actionEvent -hardwareChanged -inputEvent -keyPressEvent -keyReleaseEvent -mouseDoublePressEvent -mouseMoveEvent -mousePressEvent -mouseReleaseEvent -touchBeginEvent -touchEndEvent -touchUpdateEvent -wheelEvent -captureMouseEvents -captureTouchEvents -captureWheelEvents -releaseMouseEvents -releaseTouchEvents -releaseWheelEvents -captureActionEvents -captureEntityClickEvents -captureJoystick -captureKeyEvents -releaseActionEvents -releaseEntityClickEvents -releaseJoystick -releaseKeyEvents -getValue -getAxisValue -getgetPoseValue -getButtonValue -getAxisValue -getPoseValue -getActionValue -triggerHapticPulse -triggerHapticPulseOnDevice -triggerShortHapticPulse -triggerShortHapticPulseOnDevice -getViewportDimensions -getRecommendedHUDRect -setVPadEnabled -setVPadHidden -setVPadExtraBottomMargin -startInputRecording -stopInputRecording -saveInputRecording -getInputRecorderSaveDirectory -loadInputRecording -startInputPlayback -stopInputPlayback -Entities.callEntityMethod -MyAvatar.sessionUUID -Controller.Actions -RouteObject -keyboardMouse.json -standard.json -Controller.Hardware -RouteObject -Controller.Standard -RouteObject -leapmotion.json -vive.json -findAction -Entities.mousePressOnEntity -Entities.mouseDoublePressOnEntity -KeyEvent -Controller.Hardware.Keyboard -Controller.Hardware.Keyboard -Controller.Hardware.Touchscreen -Controller.Hardware.TouchscreenVirtualPad -Controller.Hardware.Keyboard -Controller.Actions -Controller.Actions -Controller.Actions -Controller.Actions -Controller.Actions -Controller -Controller.Actions -Controller.Actions -Controller.Standard -Controller.Hardware -Controller.Hardware -Controller.Hardware -Controller -Controller.Hardware -Controller.Hardware -Pose -Controller.Standard -Controller.Hardware -Pose -Pose -Pose -Rect -Rect -Controller.Standard -Controller.Standard -Controller -Controller.Standard -Controller.Standard -Controller.Standard -Controller.Hardware -Vec2 -Vec2 -Controller.Standard -KeyEvent -KeyEvent -MappingObject -MappingJSON -enableMapping -MappingJSON -MappingObject -MouseEvent -MouseEvent -MouseEvent -MouseEvent -MappingObject -MappingObject -RouteObject -enableMapping -Uuid.generate -MappingObject -MappingObject -MappingJSON -enableMapping -MappingJSON -MappingObject -captureActionEvents -Entities.mousePressOnEntity -Entities.mouseDoublePressOnEntity -captureEntityClickEvents -captureJoystick -captureKeyEvents -KeyEvent -Controller.Hardware.Keyboard -captureMouseEvents -Controller.Hardware.Keyboard -Controller.Hardware.Touchscreen -Controller.Hardware.TouchscreenVirtualPad -captureTouchEvents -Controller.Hardware.Keyboard -captureWheelEvents -startInputRecording -stopInputRecording -loadInputRecording -getInputRecorderSaveDirectory -setVPadHidden -startInputRecording -stopInputRecording -loadInputRecording -stopInputPlayback -startInputPlayback -startInputRecording -TouchEvent -TouchEvent -TouchEvent -Controller.Hand -Controller.Hand -Controller.Hand -Controller.Hand -WheelEvent -MappingObject -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -RouteObject -Controller.Standard -MappingJSON -https://github.com/highfidelity/hifi/tree/master/interface/resources/controllers -Controller.Actions -Controller.Hardware-Application -Controller.Hardware-Keyboard -Controller.Hardware-OculusTouch -Controller.Hardware-Vive -RouteObject -RouteObject#when -RouteObject -RouteObject -Pose -Pose -Pose -RouteObject -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -MappingObject -https://github.com/highfidelity/hifi/tree/master/interface/resources/controllers -Controller.MappingJSONRoute -Controller.MappingJSONRoute -Controller.Hardware -Controller.MappingJSONRoute -RouteObject -Controller.MappingJSON -Controller.MappingJSONAxis -Controller.Hardware -RouteObject#peek -RouteObject#debug -Controller.Hardware -Controller.MappingJSONFilter -Controller.MappingJSONFilter -Controller.Actions -Controller.Standard -RouteObject -Pose -leapmotion.json -vive.json -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -Pose -DebugDraw: - Quat -Vec3 -Vec4 -Quat -Vec3 -Vec4 -Vec3 -Vec3 -Vec4 -Entities: - Uuid -Web -Uuid.NULL -Vec3 -Vec3 -Vec3 -Vec3 -Uuid -Entities.ActionType -Uuid -Entities.ActionArguments -Uuid -Uuid -Entities.EntityProperties -Uuid.NULL -Uuid -Uuid -Line -Uuid -Line -Vec3 -Line -Uuid -Uuid -Uuid -Uuid -Uuid -PointerEvent -Uuid -PointerEvent -Uuid -Uuid -Collision -Uuid -Uuid -Uuid -Uuid -Uuid -Uuid -Entities.EntityProperties -Uuid -Web -Uuid -Web -Uuid -Uuid -Vec3 -Uuid -Uuid -Vec3 -Uuid -Uuid -Vec3 -Uuid -Uuid -Entities.EntityType -Vec3 -Uuid -Uuid -Vec3 -Vec3 -Uuid -Uuid -ViewFrustum -Uuid -Entities.RayToEntityIntersectionResult -PickRay -setLightsArePickable -setZonesArePickable -PickRay -Uuid -Uuid -visible -collisionless -Entities.RayToEntityIntersectionResult -PickRay -setLightsArePickable -setZonesArePickable -findRayIntersection -PickRay -Uuid -Uuid -findRayIntersection -Quat -Model -Uuid -Model -Quat.IDENTITY -Quat -Vec3 -Model -Uuid -Model -Vec3.ZERO -Vec3 -Entities.ActionArguments -Uuid -Uuid -Entities.ActionArguments -Uuid -Uuid -Uuid -Uuid -Uuid -Uuid -Uuid -Uuid -Uuid -Zone -Zone -Uuid -Entities.EntityProperties -Uuid -Entities.EntityProperties -Uuid -Model -Uuid -Model -getJointNames -Model -Uuid -Model -Model -getJointIndex -Uuid -Web -Web -Uuid -Light -findRayIntersection -findRayIntersectionBlocking -Picks -Light -Quat -Model -Uuid -Model -Quat.IDENTITY -Quat -Vec3 -Model -Uuid -Model -Vec3.ZERO -Vec3 -Model -PolyVox -Uuid -Entities~getMeshesCallback -Graphics -Uuid -Uuid -Entities~getServerScriptStatusCallback -Uuid -Zone -findRayIntersection -findRayIntersectionBlocking -Picks -Zone -Uuid -PointerEvent -Uuid -PointerEvent -Uuid -PointerEvent -Uuid -PointerEvent -Uuid -Uuid -Uuid -Vec3 -PolyVox -Uuid -PolyVox -Vec3 -PolyVox -Vec3.ZERO -Vec3 -PointerEvent -Uuid -PointerEvent -Uuid -PointerEvent -PointerEvent -Uuid -PointerEvent -Uuid -PointerEvent -Uuid -Uuid -Entities~queryPropertyMetadataCallback -Uuid -Entities~queryPropertyMetadataCallback -Uuid -clickDownOnEntity -Uuid -PointerEvent -clickReleaseOnEntity -Uuid -PointerEvent -holdingClickOnEntity -Uuid -PointerEvent -hoverEnterEntity -Uuid -PointerEvent -hoverLeaveEntity -Uuid -PointerEvent -hoverOverEntity -Uuid -PointerEvent -mouseMoveOnEntity -Uuid -PointerEvent -mousePressOnEntity -Uuid -PointerEvent -mouseReleaseOnEntity -Uuid -PointerEvent -Model -Uuid -Quat -Model -Model -Uuid -Vec3 -Model -Line -Uuid -Line -Vec3 -Line -PolyVox -Uuid -PolyVox -Zone -Zone -Web -Uuid -Web -Uuid.NULL -Light -findRayIntersection -findRayIntersectionBlocking -Picks -Light -Model -Uuid -Quat -Model -Model -Uuid -Quat -Model -Model -setLocalJointRotations -setLocalJointTranslations -Uuid -Quat -Vec3 -Model -Model -Uuid -Vec3 -Model -Model -Uuid -Vec3 -Model -PolyVox -Uuid -PolyVox -Vec3 -PolyVox -Uuid -PolyVox -Vec3 -Vec3 -PolyVox -Uuid -PolyVox -Vec3 -Vec3 -PolyVox -Uuid -PolyVox -Vec3 -Zone -findRayIntersection -findRayIntersectionBlocking -Picks -Zone -Uuid -Uuid -Entities.ActionArguments -Uuid -Vec3 -PolyVox -Uuid -PolyVox -Vec3 -PolyVox -Vec3.ZERO -Vec3 -Vec3 -PolyVox -Uuid -PolyVox -Vec3 -PolyVox -Vec3.ZERO -Vec3 -Web -Shape -Uuid -Web -Uuid -Vec3 -PolyVox -Uuid -PolyVox -Vec3 -PolyVox -Vec3.ZERO -Vec3 -ActionType -Entities.ActionType -Entities.PhysicsMotionType -ActionArguments-FarGrab -ActionArguments-Hold -ActionArguments-Offset -ActionArguments-Tractor -ActionArguments-TravelOriented -ActionArguments-Hinge -ActionArguments-Slider -ActionArguments-ConeTwist -ActionArguments-BallSocket -ActionType -ActionArguments -Vec3 -Uuid -Vec3 -ActionType -ActionArguments -Vec3 -Vec3 -Uuid -Vec3 -Vec3 -ActionType -ActionArguments -Vec3 -Quat -Uuid -ActionType -ActionArguments -Vec3 -Vec3 -Uuid -Vec3 -Vec3 -ActionType -ActionArguments -Uuid -Vec3 -Vec3 -ActionType -ActionArguments -Vec3 -ActionType -ActionArguments -Vec3 -Vec3 -Uuid -Vec3 -Vec3 -ActionType -ActionArguments -Vec3 -Quat -Uuid -ActionType -ActionArguments -Vec3 -Entities.ActionArguments-FarGrab -Entities.ActionArguments-Hold -Entities.ActionArguments-Offset -Entities.ActionArguments-Tractor -Entities.ActionArguments-TravelOriented -Entities.ActionArguments-Hinge -ActionArguments-Slider -Entities.ActionArguments-ConeTwist -Entities.ActionArguments-BallSocket -Skybox -Vec3 -Vec3 -Vec3 -Vec3 -EntityType -Uuid -Entities.EntityType -Entities.addEntity -Uuid -Uuid.NULL -Uuid -Model -Shape -Zone -keyLight -Vec3 -Quat -Vec3 -Vec3.ZERO -Vec3.ONE -Vec3.ZERO -Vec3.ONE -Vec3 -Vec3.ZERO -Vec3 -Vec3.ONE -Vec3 -Vec3 -Vec3 -Vec3.ZERO -Vec3 -Vec3.ZERO -Entities.CollisionMask -SoundCache -Uuid -Uuid.NULL -Vec3 -Quat -Vec3 -Vec3 -Vec3 -Entities.BoundingBox -AACube -Entities.RenderInfo -EntityProperties-Box -EntityProperties-Light -EntityProperties-Line -EntityProperties-Material -EntityProperties-Model -EntityProperties-ParticleEffect -EntityProperties-PolyLine -EntityProperties-PolyVox -EntityProperties-Shape -EntityProperties-Sphere -EntityProperties-Text -EntityProperties-Web -EntityProperties-Zone -EntityType -EntityType -EntityType -EntityProperties -Vec3 -Color -EntityType -EntityProperties -Vec3 -Vec3 -Color -EntityType -Model -Shape -model overlays -EntityProperties -Entities.addEntity -MaterialResource -MaterialResource -MaterialResource -Vec2 -Vec2 -MaterialResource -EntityType -EntityProperties -Vec3 -naturalDimensions -Color -ShapeType -Entities.AnimationProperties -Quat -getJointIndex -setLocalJointRotation -getJointIndex -Vec3 -getJointIndex -setLocalJointTranslation -getJointIndex -EntityType -EntityProperties -Vec3 -Quat -Color -Color -Color -Color -ShapeType -EntityType -EntityProperties -Vec3 -Vec3 -Vec3 -Vec3 -Color -EntityType -EntityProperties -Volumes of Fun -library documentation -Vec3 -Vec3 -Entities.PolyVoxSurfaceStyle -Uuid -Uuid.NULL -Uuid -Uuid.NULL -Uuid -Uuid.NULL -Uuid -Uuid.NULL -Uuid -Uuid.NULL -Uuid -Uuid.NULL -EntityType -EntityProperties -Entities.Shape -Vec3 -Color -EntityType -EntityType -EntityType -EntityProperties -Vec3 -Color -Color -EntityType -EntityProperties -Vec3 -EntityType -Entities.enterEntity -EntityProperties -Vec3 -ShapeType -Entities.KeyLight -Entities.AmbientLight -Entities.Skybox -Entities.Haze -EntityProperties-Box -EntityProperties-Light -EntityProperties-Line -model overlays -EntityProperties-Material -EntityProperties-Model -EntityProperties-ParticleEffect -EntityProperties-PolyLine -EntityProperties-PolyVox -EntityProperties-Shape -EntityProperties-Sphere -EntityProperties-Text -EntityProperties-Web -EntityProperties-Zone -Color -Color -Color -Vec3 -Model -Shape -canCastShadows -PickRay -findRayIntersection -findRayIntersectionBlocking -PickRay -Uuid -PickRay -Vec3 -Vec3 -BoxFace -EntityType -Color -Entities.getMeshes -MeshProxy -MeshProxy -Entities.getMeshes -Graphics -Entities.getServerScriptStatus -Entities.queryPropertyMetadata -Global: - ContactEventType -Uuid -Uuid -Vec3 -Vec3 -Vec3 -http://doc.qt.io/qt-5/qt#Key-enum -Material -Vec3Color -RGBS -Vec3Color -RGBS -Vec3Color -RGBS -Vec3Color -RGBS -Material -Material -Material -Vec3 -Vec3 -Vec2 -Vec3 -Vec3 -Vec3 -KeyboardModifiers -Vec3 -Quat -Vec3 -Vec3 -Quat -Vec3 -Quat -Vec3 -Vec2 -Vec3 -Vec3 -Vec3 -Quat -Graphics: - Graphics.Model -Graphics.Model -Graphics.Mesh -Graphics.IFSData -Graphics.Mesh -Vec3 -Vec3 -Vec3 -Vec2 -Material -Graphics.MeshPart -Uuid -Graphics.Mesh -Graphics.MaterialLayer -HMD: - Vec3 -Vec3.ZERO -Quat -Quat.IDENTITY -Uuid -Uuid -Uuid -Uuid -Vec3 -Vec3 -Vec3 -Vec3.ZERO -Vec3 -Vec2 -Vec3 -Vec2 -Vec2 -Vec2 -Vec2 -requestShowHandControllers -requestHideHandControllers -requestShowHandControllers -requestHideHandControllers -Vec2 -Vec2 -Vec2 -Vec3 -Vec2 -Vec3 -location: - Uuid -Uuid.NULL -Uuid -goBack -goForward -location.LookupTrigger -location.LookupTrigger -Vec3 -Quat -Quat.IDENTITY -Uuid -Uuid -Uuid -Settings -goBack -goForward -MappingObject: - Controller -Controller.Standard -Controller.Actions -Controller.Hardware -Controller.Standard -Controller.Actions -Controller.newMapping -from -makeAxis -RouteObject -Controller.parseMapping -Controller.loadMapping -Controller.MappingJSON -enable -Controller.enableMapping -RouteObject#peek -MappingObject -Controller.disableMapping -MappingObject -MappingObject -Controller.enableMapping -MappingObject -RouteObject -RouteObject -Controller.Standard -Controller.Hardware -Pose -RouteObject -RouteObject -RouteObject -RouteObject -from -Controller.Standard -Controller.Hardware -Pose -RouteObject -RouteObject -RouteObject -RouteObject -Controller.Hardware -Controller.Hardware -Controller.Hardware -RouteObject -RouteObject -RouteObject -RouteObject -Controller.Hardware -makeAxis -Controller.Hardware -Controller.Hardware -RouteObject -RouteObject -Menu: - Menu.MenuItemProperties -Menu.MenuItemProperties -Menu.addMenuItem -Menu.MenuItemProperties -Menu.triggerOption -Menu.addMenuItem -KeyEvent -KeyEvent -MeshProxy: - Entities.getMeshes -Graphics -Graphics -Vec3 -Graphics -Vec3 -Messages: - Entities.callEntityClientMethod -Entities.callEntityMethod -Entities.callEntityServerMethod -Script.callEntityScriptMethod -Uuid -Uuid -sendMessage -ModelCache: - Resource -Resource -Resource -Resource -MyAvatar: - Vec3 -Vec3 -Vec3 -Quat -Vec3 -Vec3.ZERO -Vec3 -Vec3.ZERO -Vec3 -Vec3.ZERO -Vec3 -Vec3.ZERO -Pose -Pose -Pose -Pose -Uuid -Vec3 -Vec3 -Vec3 -Quat -Quat -Vec3 -Vec3 -Uuid -Vec3 -Entities -MyAvatar.getJointNames -Vec3 -Quat -Uuid -Collision -Quat -Quat -Vec3 -Vec3 -Quat -Quat -Vec3 -Vec3 -Vec3 -Vec3 -MyAvatar.AttachmentData -MyAvatar.AttachmentData -Vec3 -Vec3 -Quat -Quat -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -MyAvatar.getJointNames -Vec3 -Vec3 -Vec3 -Vec3 -Quat -Avatar Standards -Quat -Quat -Avatar Standards -Quat -Quat -MyAvatar.getJointNames -Quat -Vec3 -Avatar Standards -Vec3 -Vec3 -Avatar Standards -Vec3 -Vec3 -Vec3 -Pose -Pose -Vec3 -Vec3.ZERO -Vec3 -Pose -Pose -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Quat -Quat -Uuid -Uuid -Vec3 -Vec3 -Pose -Pose -Vec3 -Vec3.ZERO -Vec3 -Pose -Pose -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -MyAvatar.SkeletonJoint -MyAvatar.SkeletonJoint -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Quat -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Quat -Quat -Quat -MyAvatar.restoreAnimation -Avatar Standards -MyAvatar.restoreRoleAnimation -Avatar Standards -Vec3 -Quat -Vec3 -Quat -Vec3 -MyAvatar.getAttachmentData -MyAvatar.AttachmentData -Quat -Vec3 -Quat -Vec3 -Quat -Quat -Quat -MyAvatar.getJointNames -Vec3 -Vec3 -Vec3 -Uuid -Uuid -Vec3 -Vec3 -MyAvatar.hmdLeanRecenterEnabled -MyAvatar.hmdLeanRecenterEnabled -Uuid -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Quat -Quat -Quat -Vec3 -Vec3 -Overlays: - Uuid -web3d -Uuid.NULL -Uuid -Overlays.OverlayType -Overlays.OverlayProperties -Uuid.NULL -Uuid -Uuid -Uuid -Uuid.NULL -Uuid -Uuid -Uuid -Overlays.OverlayProperties -Uuid -Overlays.OverlayProperties -OverlayProperties -Uuid -Vec3 -Uuid -Overlays.RayToOverlayIntersectionResult -PickRay -PickRay -Uuid -Uuid -Overlays.RayToOverlayIntersectionResult -Uuid -web3d -Uuid -Uuid -Vec2 -Uuid -Uuid -Uuid -Overlays.OverlayProperties -Uuid -OverlayProperties -Uuid -Overlays.OverlayProperties -Overlays.OverlayType -Uuid -Overlays.OverlayType -Overlays.OverlayProperties -Uuid -Overlays.OverlayProperties -Uuid -OverlayType -sendHoverEnterOverlay -Uuid -PointerEvent -sendHoverLeaveOverlay -Uuid -PointerEvent -sendHoverOverOverlay -Uuid -PointerEvent -Uuid -Uuid -Uuid -PointerEvent -sendMouseMoveOnOverlay -Uuid -PointerEvent -sendMousePressOnOverlay -Uuid -PointerEvent -sendMouseReleaseOnOverlay -Uuid -PointerEvent -Uuid -Uuid -PointerEvent -Uuid -PointerEvent -Uuid -PointerEvent -Uuid -PointerEvent -Uuid -PointerEvent -Uuid -PointerEvent -Uuid -web3d -Uuid.NULL -Size -Uuid -Size -OverlayType -Vec3 -Vec3 -Quat -Quat -findRayIntersection -Uuid -Vec2 -Color -Color -Color -Color -Color -Color -Color -Color -Color -Color -Color -OverlayType -Color -Vec3 -Vec3 -Quat -Quat -findRayIntersection -Uuid -Vec3 -OverlayType -Color -Vec3 -Vec3 -Quat -Quat -findRayIntersection -Uuid -Vec2 -OverlayType -Color -Vec3 -Vec3 -Quat -Quat -findRayIntersection -Uuid -Vec2 -Rect -OverlayType -Rect -Vec2 -Color -OverlayType -Color -Vec3 -Vec3 -Quat -Quat -findRayIntersection -Uuid -Uuid -Vec3 -Vec3 -Vec3 -Vec3 -OverlayType -Color -Vec3 -Vec3 -Quat -Quat -findRayIntersection -Uuid -Vec3 -Vec3 -Quat -Vec3 -Quat -Vec3 -OverlayType -Circle3DProperties -CubeProperties -GridProperties -ImageProperties -Image3DProperties -Line3DProperties -ModelProperties -RectangleProperties -Rectangle3DProperties -ShapeProperties -SphereProperties -TextProperties -Text3DProperties -Web3DProperties -OverlayProperties -PickRay -findRayIntersection -PickRay -Uuid -PickRay -Vec3 -Vec3 -OverlayType -Color -Vec3 -Vec3 -Quat -Quat -findRayIntersection -Uuid -Vec2 -OverlayType -Rect -Color -Color -OverlayType -OverlayType -Color -Vec3 -Vec3 -Quat -Quat -findRayIntersection -Uuid -Vec3 -Overlays.Shape -OverlayType -Color -Vec3 -Vec3 -Quat -Quat -findRayIntersection -Uuid -Vec3 -OverlayType -Color -Vec3 -Vec3 -Quat -Quat -findRayIntersection -Uuid -Vec2 -Color -OverlayType -Rect -Color -Color -OverlayType -Color -Vec3 -Vec3 -Quat -Quat -findRayIntersection -Uuid -Vec2 -Paths: - Script.resolvePath -Script.resourcesPath -Picks: - Picks.PickType -Picks.PickProperties -Picks.createPick -Picks.createPick -Picks.createPick -Picks.RayPickResult -Picks.StylusPickResult -Picks.createPick -Picks.createPick -Picks.createPick -Picks.createPick -Picks.createPick -Uuid -Picks.createPick -Uuid -Picks.createPick -Picks.createPick -Picks.PickType -Vec3 -Vec3 -Vec3 -Vec3 -Uuid -Vec3 -Vec3 -PickRay -Uuid -Vec3 -Vec3 -StylusTip -Pointers: - Picks.PickType -Pointers.PointerProperties -Picks.PickProperties -Pointers.createPointer -Pointers.createPointer -Pointers.RayPointerRenderState -Pointers.createPointer -Pointers.createPointer -Picks.RayPickResult -Picks.StylusPickResult -Pointers.createPointer -Pointers.createPointer -Pointers.createPointer -Pointers.createPointer -Pointers.createPointer -Uuid -Pointers.createPointer -Uuid -Pointers.createPointer -Pointers.createPointer -Pointers.createPointer -Pointers.RayPointerRenderState -Pointers.createPointer -Pointers.RayPointerRenderState -Pointers.createPointer -Picks.PickProperties -Pointers.RayPointerRenderState -Pointers.DefaultRayPointerRenderState -Pointers.Trigger -Pointers.setRenderState -Pointers.editRenderState -Quat: - Quat -Quat -Quat.angleAxis -Quat -Vec3 -Quat.angle -Quat -Vec3 -Quat -Vec3 -Quat -Quat -Quat -Quat -Quat -Quat -Quat -Quat.inverse -Quat -Quat -Quat -Quat -Quat.dot -Quat -Quat -Quat -Quat -Quat -Quat -Quat -Vec3 -Vec3 -Quat -Quat -Vec3 -Vec3 -Quat -Vec3 -Quat.getFront -Quat -Vec3 -Vec3 -Quat.getForward -Quat -Vec3 -Vec3 -Quat -Vec3 -Vec3 -Quat -Vec3 -Quat -Quat.conjugate -Quat -Quat -Quat -Vec3 -Vec3 -Vec3 -Quat -Quat -Vec3 -Vec3 -Quat -Quat -Quat.slerp -Quat -Quat -Quat -Quat -Quat -Quat -Quat -Quat -Quat -Quat -Quat -Quat -Vec3 -Vec3 -Quat -Vec3 -Quat -Vec3 -Vec3 -Quat -Quat.mix -Quat -Quat -Quat -Quat -Quat -Quat -Quat -Quat -Quat -Recording: - Recording~loadRecordingCallback -Recording.loadRecording -Resource: - Resource.State -Resource.State -Reticle: - Vec2 -Vec2 -Vec2 -Vec2 -Vec2 -Vec2 -Vec2 -RouteObject: - MappingObject -Controller -MappingObject -RouteObject#to -Pose -RouteObject -RouteObject -RouteObject -RouteObject -RouteObject -RouteObject -RouteObject -RouteObject -RouteObject -RouteObject -RouteObject -Pose -RouteObject -RouteObject -RouteObject -RouteObject -Pose -RouteObject -RouteObject -RouteObject -RouteObject -Pose -RouteObject -RouteObject -RouteObject -RouteObject -Pose -RouteObject -RouteObject -RouteObject -RouteObject -Pose -Quat -RouteObject -RouteObject -Pose -RouteObject -Controller.Standard -Controller.Actions -Controller.Standard -Controller.Actions -RouteObject -Pose -RouteObject -RouteObject -Pose -Vec3 -RouteObject -RouteObject -Controller.Hardware -Controller.Hardware -RouteObject -RouteObject -Controller.Hardware -Controller.Hardware -RouteObject -Scene: - Scene.Stage -Stage -Stage: - Scene.Stage.KeyLight -Scene.Stage.Location -Scene.Stage.Time -Quat -Vec3 -Vec3 -Script: - Uuid -Uuid -Uuid -Collision -Uuid -PointerEvent -Uuid -Uuid -setInterval -setTimeout -Uuid -Uuid -Uuid -Uuid -Uuid -Uuid -Script.clearInterval -Script.clearTimeout -Uuid -ScriptDiscoveryService: - ScriptsModel -ScriptsModelFilter -ScriptsModel: - ScriptDiscoveryService -http://doc.qt.io/qt-5/qabstractitemmodel -ScriptsModelFilter: - ScriptDiscoveryService -http://doc.qt.io/qt-5/qsortfilterproxymodel -Selection: - Selection.ItemType -Uuid -Selection.disableListToScene -Selection.enableListToScene -Selection.HighlightStyle -Selection.HighlightStyle -Selection.HighlightStyle -Selection.SelectedItemsList -Selection.SelectedItemsList -Selection.ItemType -Uuid -Color -Color -Color -Color -Uuid -Uuid -Uuid -SoundCache: - Resource -Resource -Resource -Resource -Tablet: - TabletProxy -TabletProxy -Tablet.AudioEvents -TabletButtonProxy: - Uuid -TabletButtonProxy.ButtonProperties -TabletButtonProxy.ButtonProperties -TabletButtonProxy.ButtonProperties -TabletButtonProxy.ButtonProperties -TabletProxy: - TabletProxy#ButtonList -TabletButtonProxy -TabletButtonProxy -TabletButtonProxy -TextureCache: - Resource -Resource -Resource -Resource -Resource -Resource -Users: - Uuid -Uuid -Uuid -Uuid -Uuid -Uuid -Uuid -Uuid -Uuid -Uuid -Uuid -Uuid: - Uuid -Uuid -Uuid -Uuid -Uuid -Uuid -Uuid -Uuid -Uuid -Uuid -Vec3: - Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -withinEpsilon -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Quat -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -Vec3 -equal -Vec3 -Vec3 -Window: - location -displayAnnouncement -browseAssetsAsync -assetsDirChanged -browseChanged -browseAsync -browseDirChanged -browseDirAsync -openMessageBox -announcement -Window.ConnectionRefusedReason -Rect -Vec2 -Vec2 -Vec2 -connectionAdded -connectionError -connectionAdded -connectionError -openMessageBox -updateMessageBox -closeMessageBox -Window.MessageBoxButton -Window.MessageBoxButton -takeSnapshot -takeSnapshot -promptTextChanged -promptAsync -raise -saveFileChanged -saveAsync -Camera.setCameraEntity -Camera.mode -Window.DisplayTexture -snapshotShared -shareSnapshot -takeSnapshot -takeSecondaryCameraSnapshot -takeSnapshot -stillSnapshotTaken -processingGifStarted -processingGifCompleted -stillSnapshotTaken -openMessageBox -Window.MessageBoxButton -Window.MessageBoxButton -openMessageBox \ No newline at end of file diff --git a/tools/jsdoc/grav.sh b/tools/jsdoc/grav.sh new file mode 100755 index 0000000000..6bc93eab32 --- /dev/null +++ b/tools/jsdoc/grav.sh @@ -0,0 +1,2 @@ +!#/bin/bash +node gravPrep true "/Users/milad/ROLC/Reference/Programming/R_VR/Hifi/hifi-docs-grav/user/themes/learn2/" "/Users/milad/ROLC/Reference/Programming/R_VR/Hifi/hifi-docs-grav-content" \ No newline at end of file diff --git a/tools/jsdoc/gravPrep.js b/tools/jsdoc/gravPrep.js index 105444a841..8188bd5d82 100644 --- a/tools/jsdoc/gravPrep.js +++ b/tools/jsdoc/gravPrep.js @@ -10,8 +10,8 @@ // Arg Vars const copyLocal = process.argv[2]; console.log("copyLocal:", copyLocal); - let targetTemplateDirectory = '' - let targetMDDirectory = '' + let targetTemplateDirectory = ''; + let targetMDDirectory = ''; if (copyLocal){ targetTemplateDirectory = process.argv[3]; targetMDDirectory = process.argv[4];; @@ -33,6 +33,9 @@ // Array to itterate over and create if doesn't exist let dirArray = [dir_grav, dir_css, dir_js, dir_template, dir_md, dir_md_objects, dir_md_namespaces, dir_md_globals]; +// Base Grouping Directories for MD files + let baseMDDirectories = ["API-Reference", "Globals", "Namespaces", "Objects"]; + // Maps for directory names let map_dir_md = { "API-Reference": dir_md, @@ -43,6 +46,7 @@ "Namespace": dir_md_namespaces, "Global": dir_md_globals } + // Map for Links let map_links = { "Global": "globals", @@ -50,8 +54,12 @@ "Class": "objects" } -// Base Grouping Directories for MD files - let baseMDDirectories = ["API-Reference", "Globals", "Namespaces", "Objects"] +// Mapping for GroupNames and Members + let groupNameMemberMap = { + "Objects": [], + "Namespaces": [], + "Globals": [] + } // Html variables to be handle regex replacements const html_reg_static = /\(static\)<\/span>/g @@ -76,7 +84,7 @@ const html_reg_returnSize_replace = '
Returns:<\/h6>'; const html_reg_findByName = '
Methods
`; + const html_reg_findByMethod = /

Methods<\/h4>/g; const html_reg_containerOverview = `
` const html_reg_findByArticleOpen = `
` const html_reg_findByArticleClose = `
` @@ -86,25 +94,21 @@ const html_reg_fixLinkHashIssue = /()/g; const html_reg_fixLinkHashIssue_replace = "$1$2#$4" const html_reg_findLinks = /()/g; const html_reg_findLinksNoHashes = /([\s\S]+?<\/a>)/g; - const html_reg_findGlobalLinks = /()/g; const html_reg_findClassLinks = /([\s\S]+?<\/a>)/g; const html_reg_pretty = /(
)([\s\S]*?)(<\/pre>)/g;
     const html_reg_pretty_replace = "
$2<\/pre>";
-    const html_reg_code = /()([\s\S]*?)(<\/code>)/g;
-    const html_reg_code_replace = "$1$2$3";
-
-// Mapping for GroupNames and Members
-    let groupNameMemberMap = {
-        "Objects": [],
-        "Namespaces": [],
-        "Globals": []
-    }
+    // const html_reg_code = /()([\s\S]*?)(<\/code>)/g;
+    // const html_reg_code_replace = "$1$2$3";
+    const html_reg_dlClassDetails = /
<\/dl>/g // Procedural functions +// Helper Functions function isMultipleDots(content){ let count = 0; let regEx = /\./g @@ -117,56 +121,81 @@ } } - function modifyClassLinks(match, p1,p2,p3,p4){ - let matchedp = [p2,p3].join(""); - if(!isMultipleDots(matchedp)){ - console.log("not multiple"); - console.log("matchedp:", matchedp) - return match; + // function modifyClassLinks(match, p1, p2, p3, p4){ + // let matchedp = [p2,p3].join(""); + // if(!isMultipleDots(matchedp)){ + // console.log("not multiple"); + // console.log("matchedp:", matchedp) + // return match; + // } + // p2 = p2.split('.')[1].toLowerCase(); + // let newString = [p1,p2,p3,p4].join(""); + // // console.log("new String:", newString); + // return newString; + // } + + function allLinksToLowerCase(match, p1, p2, p3){ + // split on id # and make sure only the preceding is lower case + if (p2.indexOf("#") > -1){ + p2 = p2.split("#"); + p2 = [p2[0].toLowerCase(), "#", p2[1]].join(""); + } else { + p2 = p2.toLowerCase(); } - p2 = p2.split('.')[1].toLowerCase(); - let newString = [p1,p2,p3,p4].join(""); - // console.log("new String:", newString); - return newString; + return [p1,p2,p3].join(""); } - function lowerCaseGeneralLinks(match, p1, p2, p3, p4){ - let modifiedString = [p1,p2.toLowerCase(),p3,p4].join(""); - return modifiedString; - } - - function contentReplace(content, title){ - var linksNoHashes = []; - var tempArray; - while(( tempArray = html_reg_findLinksNoHashes.exec(content)) !== null ){ - let tempArrayToPush = tempArray.slice(0,4) - tempArrayToPush.push(tempArray.index); - linksNoHashes.push(tempArrayToPush); - } - if (!linksNoHashes){ - return content; - } - for(var i = linksNoHashes.length-1; i > -1; i--){ - if (linksNoHashes[i][0].indexOf("http") > -1){ - continue; - } - let linkLength = linksNoHashes[i][0].length; - let group1 = linksNoHashes[i][1]; - let group2 = linksNoHashes[i][2]; - if (group2.indexOf(".") > -1){ - group2 = group2.split(".")[1].toLowerCase(); + function fixLinkGrouping(match, p1, p2, p3){ + if (p2.indexOf("#") > -1){ + split = p2.split("#"); + if (split[0] === "global"){ + return [p1,"/api-reference/", "globals", "#", split[1], p3].join(""); } - let group3 = linksNoHashes[i][3]; - let index = linksNoHashes[i][4]; - let newString = `${group1}/api-reference/${returnRightGroup(group2)}/${group2.toLowerCase()}${group3}`; - // console.log("newString", newString); - content = [content.slice(0,index), newString, content.slice(index+linkLength)].join(""); + return [p1,"/api-reference/", returnRightGroup(split[0]), "/", p2, p3].join(""); + } else { + return [p1,"/api-reference/", returnRightGroup(p2), "/", p2, p3].join(""); } - return content; + } - // Create the actual MD file + // function lowerCaseGeneralLinks(match, p1, p2, p3, p4){ + // let modifiedString = [p1,p2.toLowerCase(),p3,p4].join(""); + // return modifiedString; + // } + + // function contentReplace(content, title){ + // var linksNoHashes = []; + // var tempArray; + // while(( tempArray = html_reg_findLinksNoHashes.exec(content)) !== null ){ + // let tempArrayToPush = tempArray.slice(0,4) + // tempArrayToPush.push(tempArray.index); + // linksNoHashes.push(tempArrayToPush); + // } + // if (!linksNoHashes){ + // return content; + // } + // for(var i = linksNoHashes.length-1; i > -1; i--){ + // if (linksNoHashes[i][0].indexOf("http") > -1){ + // continue; + // } + // let linkLength = linksNoHashes[i][0].length; + // let group1 = linksNoHashes[i][1]; + // let group2 = linksNoHashes[i][2]; + // if (group2.indexOf(".") > -1){ + // group2 = group2.split(".")[1].toLowerCase(); + // } + // let group3 = linksNoHashes[i][3]; + // let index = linksNoHashes[i][4]; + // let newString = `${group1}/api-reference/${returnRightGroup(group2)}/${group2.toLowerCase()}${group3}`; + // // console.log("newString", newString); + // content = [content.slice(0,index), newString, content.slice(index+linkLength)].join(""); + // } + // return content; + // } + + function returnRightGroup(methodToCheck){ + // console.log("methodToCheck", methodToCheck) for ( var key in groupNameMemberMap ){ for (i = 0; i < groupNameMemberMap[key].length; i++ ){ if (methodToCheck.toLowerCase() === groupNameMemberMap[key][i].toLowerCase()){ @@ -178,6 +207,7 @@ } } + // Create the actual MD file function createMD(title, directory, needsDir, isGlobal){ let mdSource = makeMdSource(title); @@ -479,6 +509,7 @@ // Read jsdoc output folder and process html files let links = []; let unTouchedLinks = []; + let files = fs.readdirSync(dir_out); // Create initial Group name member map to handle individual link :: TODO find better way to do this files.forEach(function (file){ @@ -510,86 +541,86 @@ let splitTitle = loadedHtml("title").text().split(": "); let groupName = splitTitle[1]; let htmlTitle = splitTitle.pop(); + console.log("html title", htmlTitle) let mainDiv = loadedHtml("#main") let methodIDs = []; let signalIDs = []; let typeDefIDs = []; // Basic Regex HTML edits - let mainDivRegexed = mainDiv.html() - .replace(html_reg_static,"") - .replace(html_reg_title,"") - .replace(html_reg_objectHeader,"") - .replace(html_reg_htmlExt,"") - .replace(html_reg_brRemove, "") - .replace(html_reg_subsectionEdit, html_reg_subsectionEdit_replace) - .replace(html_reg_propertiesHeaderEdit, html_reg_propertiesHeaderEdit_Replace) - .replace(html_reg_typeEdit, html_reg_typeEdit_replace) - .replace(html_reg_returnSize, html_reg_returnSize_replace) - .replace(html_reg_methodSize, html_reg_methodSize_replace) - .replace(html_reg_typeDefSize, html_reg_typeDefSize_replace) - .replace(html_reg_typeDefinitonsTitle, "") - .replace(html_reg_findGlobalLinks, html_reg_findGlobalLinks_replace) - .replace(html_reg_findGeneralLinks, lowerCaseGeneralLinks) - .replace(html_reg_findClassLinks, modifyClassLinks) - .replace(html_reg_typeReturnSize, html_reg_typeReturnSize_replace) - .replace(html_reg_code, html_reg_code_replace) + let currentContent = mainDiv.html() + .replace(html_reg_static,"") // Remove static from the file names + .replace(html_reg_title,"") // Remove title + .replace(html_reg_objectHeader,"") // Remove extra Object Header + .replace(html_reg_htmlExt,"") // Remove the .html extension from all links + // .replace(html_reg_typeDefinitonsTitle, "") // Remove Type Definitions Title to be remade later + // .replace(html_reg_findByMethod, "") //Remove Method title to be remade later + .replace(html_reg_dlClassDetails, "") // Remove unneccsary dlClassDetails Tag + .replace(html_reg_allNonHTML, allLinksToLowerCase) // Turn all links into lowercase before ID tags + .replace(html_reg_allNonHTML, fixLinkGrouping) // Make sure links refer to correct grouping + .replace(html_reg_subsectionEdit, html_reg_subsectionEdit_replace) // Make all subsection titles the same size + .replace(html_reg_propertiesHeaderEdit, html_reg_propertiesHeaderEdit_Replace) // Remove : from Properties + .replace(html_reg_typeEdit, html_reg_typeEdit_replace) // Put type on the same line + .replace(html_reg_returnSize, html_reg_returnSize_replace) // make return size h6 instead of h5 + .replace(html_reg_methodSize, html_reg_methodSize_replace) // make method size into h5 .replace(html_reg_pretty, html_reg_pretty_replace) - .replace(html_reg_findByMethod, ""); + // .replace(html_reg_brRemove, "") // Remove extra Brs + // .replace(html_reg_typeDefSize, html_reg_typeDefSize_replace) // make type def header into h5 + // .replace(html_reg_findGlobalLinks, html_reg_findGlobalLinks_replace) + // .replace(html_reg_findGeneralLinks, lowerCaseGeneralLinks) + // .replace(html_reg_findClassLinks, modifyClassLinks) + // .replace(html_reg_typeReturnSize, html_reg_typeReturnSize_replace) + // .replace(html_reg_code, html_reg_code_replace) // Fix for namespace and object links - mainDivRegexed = contentReplace(mainDivRegexed, htmlTitle); - - // Grab all links for link changes - let matches = mainDivRegexed.match(html_reg_findLinks); - if (matches){ - unTouchedLinks.push(`${htmlTitle}:\n ${matches.join('\n')}`); - } + // currentContent = contentReplace(currentContent, htmlTitle); // Further HTML Manipulation // Split HTML by Each named entry - let contentSplitArray = splitBy(mainDivRegexed, html_reg_findByName, html_reg_findByArticleClose); + let contentSplitArray = splitBy(currentContent, html_reg_findByName, html_reg_findByArticleClose); + // Create a reference to the current content after split and the split functions - let currentContent = contentSplitArray[0]; + currentContent = contentSplitArray[0]; + // Create references to the split methods and signals - let processedMethodsSignalsAndTypeDefs = splitMethodsSignalsAndTypeDefs(contentSplitArray[1]); - let splitMethods = processedMethodsSignalsAndTypeDefs[0]; - let splitSignals = processedMethodsSignalsAndTypeDefs[1]; - let splitTypeDefintions = processedMethodsSignalsAndTypeDefs[2]; - let splitDescription = processedMethodsSignalsAndTypeDefs[3]; - let splitMethodIDS = extractIDs(splitMethods); - let splitSignalIDS = extractIDs(splitSignals); - let splitTypeDefinitionIDS = extractIDs(splitTypeDefintions); + // let processedMethodsSignalsAndTypeDefs = splitMethodsSignalsAndTypeDefs(contentSplitArray[1]); + // let splitMethods = processedMethodsSignalsAndTypeDefs[0]; + // let splitSignals = processedMethodsSignalsAndTypeDefs[1]; + // let splitTypeDefintions = processedMethodsSignalsAndTypeDefs[2]; + // let splitDescription = processedMethodsSignalsAndTypeDefs[3]; + // let splitMethodIDS = extractIDs(splitMethods); + // let splitSignalIDS = extractIDs(splitSignals); + // let splitTypeDefinitionIDS = extractIDs(splitTypeDefintions); let arrayToPassToClassToc = []; - if (splitDescription) { - currentContent = append(currentContent, html_reg_containerOverview, splitDescription); - } - if (splitMethods.length > 0) { - arrayToPassToClassToc.push({type: "Methods", array: splitMethodIDS}); - // Add the Signals header to the Signals HTML - splitMethods.unshift(html_reg_findByMethod) - currentContent = append(currentContent, html_reg_findByArticleClose, splitMethods.join('\n'), true); - } - if (splitSignals.length > 0) { - arrayToPassToClassToc.push({type: "Signals", array: splitSignalIDS}); - // Add the Signals header to the Signals HTML - splitSignals.unshift(html_reg_signalTitle) - currentContent = append(currentContent, html_reg_findByArticleClose, splitSignals.join('\n'),true); - } - if (splitTypeDefintions.length > 0) { - arrayToPassToClassToc.push({type: "Type Definitions", array: splitTypeDefinitionIDS}); - // Add the Signals header to the Signals HTML - splitTypeDefintions.unshift(html_reg_typeDefinitonsTitle) - currentContent = append(currentContent, html_reg_findByArticleClose, splitTypeDefintions.join('\n'), true); - } + // if (splitDescription) { + // currentContent = append(currentContent, html_reg_containerOverview, splitDescription); + // } + // if (splitMethods.length > 0) { + // arrayToPassToClassToc.push({type: "Methods", array: splitMethodIDS}); + // // Add the Signals header to the Signals HTML + // splitMethods.unshift(html_reg_findByMethod) + // currentContent = append(currentContent, html_reg_findByArticleClose, splitMethods.join('\n'), true); + // } + // if (splitSignals.length > 0) { + // arrayToPassToClassToc.push({type: "Signals", array: splitSignalIDS}); + // // Add the Signals header to the Signals HTML + // splitSignals.unshift(html_reg_signalTitle) + // currentContent = append(currentContent, html_reg_findByArticleClose, splitSignals.join('\n'),true); + // } + // if (splitTypeDefintions.length > 0) { + // arrayToPassToClassToc.push({type: "Type Definitions", array: splitTypeDefinitionIDS}); + // // Add the Signals header to the Signals HTML + // splitTypeDefintions.unshift(html_reg_typeDefinitonsTitle) + // currentContent = append(currentContent, html_reg_findByArticleClose, splitTypeDefintions.join('\n'), true); + // } - let classTOC = makeClassTOC(arrayToPassToClassToc); - if (groupName === "Global"){ - currentContent = append(currentContent, html_reg_findByTitle, classTOC); - } else { - currentContent = append(currentContent, html_reg_firstTableClose, classTOC); - } + // let classTOC = makeClassTOC(arrayToPassToClassToc); + // if (groupName === "Global"){ + // currentContent = append(currentContent, html_reg_findByTitle, classTOC); + // } else { + // currentContent = append(currentContent, html_reg_firstTableClose, classTOC); + // } // Final Pretty Content currentContent = htmlclean(currentContent); From 8dd027eabeda9e9314db757e4b907d70e16904f6 Mon Sep 17 00:00:00 2001 From: milad Date: Sun, 20 May 2018 14:22:51 -0700 Subject: [PATCH 051/300] vec3 --- libraries/script-engine/src/Vec3.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/script-engine/src/Vec3.h b/libraries/script-engine/src/Vec3.h index eb9438c5c2..b04a07aa22 100644 --- a/libraries/script-engine/src/Vec3.h +++ b/libraries/script-engine/src/Vec3.h @@ -43,7 +43,7 @@ * The Vec3 API facilities for generating and manipulating 3-dimensional vectors. High Fidelity uses a right-handed * Cartesian coordinate system where the y-axis is the "up" and the negative z-axis is the "front" direction. * High Fidelity coordinate system + * src="/images/opengl-coord-system.jpg" /> * * @namespace Vec3 * @variation 0 From 23ee06fc4bbf170fd9994f37da7f5e76dbe8cef7 Mon Sep 17 00:00:00 2001 From: milad Date: Sun, 20 May 2018 14:35:58 -0700 Subject: [PATCH 052/300] fixed class links --- tools/jsdoc/gravPrep.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tools/jsdoc/gravPrep.js b/tools/jsdoc/gravPrep.js index 8188bd5d82..ae62d73254 100644 --- a/tools/jsdoc/gravPrep.js +++ b/tools/jsdoc/gravPrep.js @@ -147,12 +147,17 @@ function fixLinkGrouping(match, p1, p2, p3){ if (p2.indexOf("#") > -1){ - split = p2.split("#"); + let split = p2.split("#"); if (split[0] === "global"){ return [p1,"/api-reference/", "globals", "#", split[1], p3].join(""); } return [p1,"/api-reference/", returnRightGroup(split[0]), "/", p2, p3].join(""); } else { + if (p2.indexOf(".") > -1){ + let split = p2.split("."); + return [p1,"/api-reference/", returnRightGroup(split[1]), "/", split[1], p3].join(""); + } + console.log("p2:", p2); return [p1,"/api-reference/", returnRightGroup(p2), "/", p2, p3].join(""); } @@ -583,7 +588,7 @@ currentContent = contentSplitArray[0]; // Create references to the split methods and signals - // let processedMethodsSignalsAndTypeDefs = splitMethodsSignalsAndTypeDefs(contentSplitArray[1]); + let processedMethodsSignalsAndTypeDefs = splitMethodsSignalsAndTypeDefs(contentSplitArray[1]); // let splitMethods = processedMethodsSignalsAndTypeDefs[0]; // let splitSignals = processedMethodsSignalsAndTypeDefs[1]; // let splitTypeDefintions = processedMethodsSignalsAndTypeDefs[2]; From 8e50c0fd564030c4d70d5d05676a352a2d45b5f9 Mon Sep 17 00:00:00 2001 From: milad Date: Sun, 20 May 2018 20:40:23 -0700 Subject: [PATCH 053/300] Added pre typedef splits --- tools/jsdoc/grav.sh | 1 + tools/jsdoc/gravPrep.js | 100 +++++++++++++++++++++++++++++----------- 2 files changed, 73 insertions(+), 28 deletions(-) diff --git a/tools/jsdoc/grav.sh b/tools/jsdoc/grav.sh index 6bc93eab32..edd8b6b197 100755 --- a/tools/jsdoc/grav.sh +++ b/tools/jsdoc/grav.sh @@ -1,2 +1,3 @@ !#/bin/bash +clear node gravPrep true "/Users/milad/ROLC/Reference/Programming/R_VR/Hifi/hifi-docs-grav/user/themes/learn2/" "/Users/milad/ROLC/Reference/Programming/R_VR/Hifi/hifi-docs-grav-content" \ No newline at end of file diff --git a/tools/jsdoc/gravPrep.js b/tools/jsdoc/gravPrep.js index ae62d73254..96141da937 100644 --- a/tools/jsdoc/gravPrep.js +++ b/tools/jsdoc/gravPrep.js @@ -83,8 +83,8 @@ const html_reg_returnSize = /
Returns:<\/h5>/g; const html_reg_returnSize_replace = '
Returns:<\/h6>'; const html_reg_findByName = '
Methods<\/h4>/g; + const html_reg_findByTitle = '

'; + const html_reg_findByMethod = '

Methods

' const html_reg_containerOverview = `
` const html_reg_findByArticleOpen = `
` const html_reg_findByArticleClose = `
` @@ -96,30 +96,30 @@ const html_reg_findLinks = /(
)/g; const html_reg_findLinksNoHashes = /([\s\S]+?<\/a>)/g; - // const html_reg_findGlobalLinks = /()/g; const html_reg_findClassLinks = /([\s\S]+?<\/a>)/g; const html_reg_pretty = /(
)([\s\S]*?)(<\/pre>)/g;
     const html_reg_pretty_replace = "
$2<\/pre>";
+    const html_reg_dlClassDetails = /
<\/dl>/g + // const html_reg_findGlobalLinks = /()([\s\S]*?)(<\/code>)/g; // const html_reg_code_replace = "$1$2$3"; - const html_reg_dlClassDetails = /
<\/dl>/g // Procedural functions // Helper Functions - function isMultipleDots(content){ - let count = 0; - let regEx = /\./g - let tempArray; - while ((tempArray = regEx.exec(content)) !== null){ - count++; - } - if (count > 1){ - return true; - } - } + // function isMultipleDots(content){ + // let count = 0; + // let regEx = /\./g + // let tempArray; + // while ((tempArray = regEx.exec(content)) !== null){ + // count++; + // } + // if (count > 1){ + // return true; + // } + // } // function modifyClassLinks(match, p1, p2, p3, p4){ // let matchedp = [p2,p3].join(""); @@ -157,7 +157,7 @@ let split = p2.split("."); return [p1,"/api-reference/", returnRightGroup(split[1]), "/", split[1], p3].join(""); } - console.log("p2:", p2); + // console.log("p2:", p2); return [p1,"/api-reference/", returnRightGroup(p2), "/", p2, p3].join(""); } @@ -418,27 +418,52 @@ // Takes: Content to split, SearchTerm to Split by, and term to End Splitting By // Returns: [newContent after Split, Array of extracted ] function splitBy(content, searchTerm, endSplitTerm){ + console.log("content1", content); + console.log("endSplitTerm", endSplitTerm); let foundArray = []; let curIndex = -1; let afterCurSearchIndex = -1 - let negateTermIndex = -1; let nextIndex = 0; let findbyNameLength = searchTerm.length; let curfoundArrayIndex = 0; let curEndSplitTermIndex = -1; do { + // Find the index of where to stop searching curEndSplitTermIndex = content.indexOf(endSplitTerm); + console.log("curEndSplitTermIndex", curEndSplitTermIndex) + // Find the index of the the next Search term curIndex = content.indexOf(searchTerm); + // The index of where the next search will start afterCurSearchIndex = curIndex+findbyNameLength; + // Find the content of the next Index nextIndex = content.indexOf(searchTerm,afterCurSearchIndex); + console.log("nextIndex", nextIndex) + // If the next index isn't found, then next index === index of the end term if (nextIndex === -1){ nextIndex = curEndSplitTermIndex; } + // push from the cur index to the next found || the end term foundArray.push(content.slice(curIndex, nextIndex)) // remove that content content = content.replace(foundArray[curfoundArrayIndex], ""); curfoundArrayIndex++; + curEndSplitTermIndex = content.indexOf(endSplitTerm); + console.log("curEndSplitTermIndex2", curEndSplitTermIndex) + nextIndex = content.indexOf(searchTerm,afterCurSearchIndex); + // console.log("nextIndex2", nextIndex) + + if (nextIndex > curEndSplitTermIndex) { + curIndex = content.indexOf(searchTerm); + console.log("curIndex", curIndex) + console.log("curEndSplitTermIndex", curEndSplitTermIndex) + foundArray.push(content.slice(curIndex, curEndSplitTermIndex)) + console.log("foundArray[curfoundArrayIndex],", foundArray[curfoundArrayIndex],) + content = content.replace(foundArray[curfoundArrayIndex], ""); + break; + } } while (curIndex > -1) + // console.log("content2", content); + return [content, foundArray]; } @@ -449,19 +474,29 @@ let typeDefArray = []; let description; - allItemToSplit.forEach( content => { - firstLine = content.split("\n")[0]; - if (firstLine.indexOf("Signal") > -1){ + allItemToSplit.forEach( (content, index) => { + // console.log("content", content); + firstLine = content.split("\n")[0]; + // console.log("@@@ firstLine", firstLine) + if (firstLine.indexOf("{Signal}") > -1){ + // console.log("### FOUND SIGNAL", content); signalArray.push(content); } else if (firstLine.indexOf("span") > -1) { + // console.log("### FOUND SPAN", content); if (content.indexOf("Available in:") > -1){ + // console.log("### DESCRIPTION", content); description = content; } else { + // console.log("### METHOD", content); methodArray.push(content); } } else { + // console.log("### TYPEDEF", content); if(firstLine.trim() !== ""){ + // console.log("### TYPEDEF", content); typeDefArray.push(content); + } else { + // console.log("not handled", content); } } }) @@ -536,7 +571,8 @@ } } }) - files.forEach(function (file){ + files.forEach(function (file, index){ + // if (index !== 3) return; let curSource = path.join(dir_out, file); if (path.extname(curSource) == ".html" && path.basename(curSource, '.html') !== "index") { // Clean up the html source @@ -554,16 +590,16 @@ let typeDefIDs = []; // Basic Regex HTML edits let currentContent = mainDiv.html() + .replace(html_reg_findByMethod, "") //Remove Method title to be remade later .replace(html_reg_static,"") // Remove static from the file names .replace(html_reg_title,"") // Remove title .replace(html_reg_objectHeader,"") // Remove extra Object Header .replace(html_reg_htmlExt,"") // Remove the .html extension from all links - // .replace(html_reg_typeDefinitonsTitle, "") // Remove Type Definitions Title to be remade later - // .replace(html_reg_findByMethod, "") //Remove Method title to be remade later + .replace(html_reg_dlClassDetails, "") // Remove unneccsary dlClassDetails Tag .replace(html_reg_allNonHTML, allLinksToLowerCase) // Turn all links into lowercase before ID tags .replace(html_reg_allNonHTML, fixLinkGrouping) // Make sure links refer to correct grouping - .replace(html_reg_subsectionEdit, html_reg_subsectionEdit_replace) // Make all subsection titles the same size + // .replace(html_reg_subsectionEdit, html_reg_subsectionEdit_replace) // Make all subsection titles the same size .replace(html_reg_propertiesHeaderEdit, html_reg_propertiesHeaderEdit_Replace) // Remove : from Properties .replace(html_reg_typeEdit, html_reg_typeEdit_replace) // Put type on the same line .replace(html_reg_returnSize, html_reg_returnSize_replace) // make return size h6 instead of h5 @@ -581,12 +617,20 @@ // currentContent = contentReplace(currentContent, htmlTitle); // Further HTML Manipulation + // Make end term either Type Definitions or by the article + let endTerm = html_reg_findByArticleClose; + if (currentContent.indexOf("Type Definitions") > -1){ + console.log("Found Type Definitions") + endTerm = `

Type Definitions

` + } + // Split HTML by Each named entry - let contentSplitArray = splitBy(currentContent, html_reg_findByName, html_reg_findByArticleClose); + let contentSplitArray = splitBy(currentContent, html_reg_findByName, endTerm); // Create a reference to the current content after split and the split functions - currentContent = contentSplitArray[0]; - + currentContent = contentSplitArray[0] + .replace(html_reg_typeDefinitonsTitle, "") // Remove Type Definitions Title to be remade later; + // Create references to the split methods and signals let processedMethodsSignalsAndTypeDefs = splitMethodsSignalsAndTypeDefs(contentSplitArray[1]); // let splitMethods = processedMethodsSignalsAndTypeDefs[0]; From e436f65d4c7f07b27dd32af454c0973f0cc6fd3f Mon Sep 17 00:00:00 2001 From: milad Date: Sun, 20 May 2018 23:32:18 -0700 Subject: [PATCH 054/300] reworking gravprep to fix most links and oddities --- tools/jsdoc/gravPrep.js | 173 +++++++++++++++++++++++----------------- 1 file changed, 100 insertions(+), 73 deletions(-) diff --git a/tools/jsdoc/gravPrep.js b/tools/jsdoc/gravPrep.js index 96141da937..a58ad43b15 100644 --- a/tools/jsdoc/gravPrep.js +++ b/tools/jsdoc/gravPrep.js @@ -74,7 +74,7 @@ const html_reg_propertiesHeaderEdit_Replace = '

Properties

'; const html_reg_typeEdit = /(
Returns[\s\S]*?Type)(<\/dt[\s\S]*?type">)(.*?)(<\/span><\/dd>[\s\S]*?<\/dl>)/g; const html_reg_typeEdit_replace = '$1: $3
' - const html_reg_methodSize = /()(<\/h4>)/g; + const html_reg_methodSize = /()/g; const html_reg_methodSize_replace = ''; const html_reg_typeDefSize = /()/g; const html_reg_typeDefSize_replace = ''; @@ -85,12 +85,14 @@ const html_reg_findByName = '
` const html_reg_findByArticleOpen = `
` const html_reg_findByArticleClose = `
` const html_reg_signalTitle = `

Signals

`; - const html_reg_typeDefinitonsTitle = `

Type Definitions

`; - const html_reg_firstTableClose = `

`; + const html_reg_typeDefinitonsTitle = /

Type Definitions<\/h3>/; + const html_reg_typeDefinitonsTitle_replace = `

Type Definitions

` + const html_reg_firstDivClose = `
`; const html_reg_fixLinkHashIssue = /()/g; const html_reg_fixLinkHashIssue_replace = "$1$2#$4" const html_reg_findLinks = /( curEndSplitTermIndex) { curIndex = content.indexOf(searchTerm); - console.log("curIndex", curIndex) - console.log("curEndSplitTermIndex", curEndSplitTermIndex) foundArray.push(content.slice(curIndex, curEndSplitTermIndex)) - console.log("foundArray[curfoundArrayIndex],", foundArray[curfoundArrayIndex],) content = content.replace(foundArray[curfoundArrayIndex], ""); break; } @@ -468,11 +462,9 @@ } // Split the signals and methods [Might make this more generic] - function splitMethodsSignalsAndTypeDefs(allItemToSplit){ + function splitMethodsSignals(allItemToSplit){ let methodArray = []; let signalArray = []; - let typeDefArray = []; - let description; allItemToSplit.forEach( (content, index) => { // console.log("content", content); @@ -482,25 +474,13 @@ // console.log("### FOUND SIGNAL", content); signalArray.push(content); } else if (firstLine.indexOf("span") > -1) { - // console.log("### FOUND SPAN", content); - if (content.indexOf("Available in:") > -1){ - // console.log("### DESCRIPTION", content); - description = content; - } else { - // console.log("### METHOD", content); - methodArray.push(content); - } + // console.log("### METHOD", content); + methodArray.push(content); } else { - // console.log("### TYPEDEF", content); - if(firstLine.trim() !== ""){ - // console.log("### TYPEDEF", content); - typeDefArray.push(content); - } else { - // console.log("not handled", content); - } + // console.log("not handled", content); } }) - return [methodArray, signalArray, typeDefArray, description]; + return [methodArray, signalArray]; } // Helper to append @@ -508,7 +488,9 @@ // and bool if the append is before the found area function append(content, searchTermToAppendto, contentToAppend, appendBefore){ let contentArray = content.split("\n"); + console.log("contentArray", contentArray); let foundIndex = findArrayTrim(contentArray, searchTermToAppendto) + console.log("foundIndex", foundIndex) foundIndex = appendBefore ? foundIndex : foundIndex +1 contentArray.splice(foundIndex,0,contentToAppend) @@ -618,58 +600,80 @@ // Further HTML Manipulation // Make end term either Type Definitions or by the article - let endTerm = html_reg_findByArticleClose; + let endTerm; + let foundTypeDefinitions; + let foundSignalsAndMethods; if (currentContent.indexOf("Type Definitions") > -1){ - console.log("Found Type Definitions") - endTerm = `

Type Definitions

` + console.log("Found Type Definitions"); + endTerm = `

Type Definitions

`; + // Split HTML by Each named entry + let contentSplitArray = splitBy(currentContent, html_reg_findByName, endTerm); + foundSignalsAndMethods = contentSplitArray[1]; + // Create a reference to the current content after split and the split functions + currentContent = contentSplitArray[0] + .replace(html_reg_typeDefinitonsTitle, ""); // Remove Type Definitions Title to be remade later; + endTerm = html_reg_findByArticleClose; + // Grab split Type Definitions + let contentSplitArrayForTypeDefs = splitBy(currentContent, html_reg_findByName, endTerm); + currentContent = contentSplitArrayForTypeDefs[0]; + foundTypeDefinitions = contentSplitArrayForTypeDefs[1]; + } else { + endTerm = html_reg_findByArticleClose; + let contentSplitArray = splitBy(currentContent, html_reg_findByName, endTerm); + foundSignalsAndMethods = contentSplitArray[1]; + currentContent = contentSplitArray[0]; } - // Split HTML by Each named entry - let contentSplitArray = splitBy(currentContent, html_reg_findByName, endTerm); - - // Create a reference to the current content after split and the split functions - currentContent = contentSplitArray[0] - .replace(html_reg_typeDefinitonsTitle, "") // Remove Type Definitions Title to be remade later; - // Create references to the split methods and signals - let processedMethodsSignalsAndTypeDefs = splitMethodsSignalsAndTypeDefs(contentSplitArray[1]); - // let splitMethods = processedMethodsSignalsAndTypeDefs[0]; - // let splitSignals = processedMethodsSignalsAndTypeDefs[1]; - // let splitTypeDefintions = processedMethodsSignalsAndTypeDefs[2]; + + let processedMethodsSignalsAndTypeDefs = splitMethodsSignals(foundSignalsAndMethods); + let splitMethods = processedMethodsSignalsAndTypeDefs[0]; + let splitSignals = processedMethodsSignalsAndTypeDefs[1]; + let splitTypeDefinitionIDS; // let splitDescription = processedMethodsSignalsAndTypeDefs[3]; - // let splitMethodIDS = extractIDs(splitMethods); - // let splitSignalIDS = extractIDs(splitSignals); - // let splitTypeDefinitionIDS = extractIDs(splitTypeDefintions); + // console.log("getting split Methods") + let splitMethodIDS = extractIDs(splitMethods); + // console.log("getting split Signals") + let splitSignalIDS = extractIDs(splitSignals); + if (foundTypeDefinitions){ + // console.log("getting split typeDefs") + splitTypeDefinitionIDS = extractIDs(foundTypeDefinitions); + } let arrayToPassToClassToc = []; // if (splitDescription) { // currentContent = append(currentContent, html_reg_containerOverview, splitDescription); // } - // if (splitMethods.length > 0) { - // arrayToPassToClassToc.push({type: "Methods", array: splitMethodIDS}); - // // Add the Signals header to the Signals HTML - // splitMethods.unshift(html_reg_findByMethod) - // currentContent = append(currentContent, html_reg_findByArticleClose, splitMethods.join('\n'), true); - // } - // if (splitSignals.length > 0) { - // arrayToPassToClassToc.push({type: "Signals", array: splitSignalIDS}); - // // Add the Signals header to the Signals HTML - // splitSignals.unshift(html_reg_signalTitle) - // currentContent = append(currentContent, html_reg_findByArticleClose, splitSignals.join('\n'),true); - // } - // if (splitTypeDefintions.length > 0) { - // arrayToPassToClassToc.push({type: "Type Definitions", array: splitTypeDefinitionIDS}); - // // Add the Signals header to the Signals HTML - // splitTypeDefintions.unshift(html_reg_typeDefinitonsTitle) - // currentContent = append(currentContent, html_reg_findByArticleClose, splitTypeDefintions.join('\n'), true); - // } + if (splitMethods.length > 0) { + arrayToPassToClassToc.push({type: "Methods", array: splitMethodIDS}); + // Add the Signals header to the Signals HTML + splitMethods.unshift(html_reg_findByMethod_replace) + console.log("appending methods") + currentContent = append(currentContent, html_reg_findByArticleClose, splitMethods.join('\n'), true); + } + if (splitSignals.length > 0) { + arrayToPassToClassToc.push({type: "Signals", array: splitSignalIDS}); + // Add the Signals header to the Signals HTML + splitSignals.unshift(html_reg_signalTitle) + console.log("appending signals") + currentContent = append(currentContent, html_reg_findByArticleClose, splitSignals.join('\n'),true); + } + if (foundTypeDefinitions && foundTypeDefinitions.length > 0) { + arrayToPassToClassToc.push({type: "Type Definitions", array: splitTypeDefinitionIDS}); + // Add the Signals header to the Signals HTML + foundTypeDefinitions.unshift(html_reg_typeDefinitonsTitle_replace) + console.log("appending typedefs") + currentContent = append(currentContent, html_reg_findByArticleClose, foundTypeDefinitions.join('\n'), true); + } - // let classTOC = makeClassTOC(arrayToPassToClassToc); - // if (groupName === "Global"){ - // currentContent = append(currentContent, html_reg_findByTitle, classTOC); - // } else { - // currentContent = append(currentContent, html_reg_firstTableClose, classTOC); - // } + let classTOC = makeClassTOC(arrayToPassToClassToc); + if (groupName === "Global"){ + console.log("appending global toc") + currentContent = append(currentContent, html_reg_findByTitle, classTOC); + } else { + console.log("appending normal toc") + currentContent = append(currentContent, html_reg_firstDivClose, classTOC); + } // Final Pretty Content currentContent = htmlclean(currentContent); @@ -722,3 +726,26 @@ } copyFolderRecursiveSync(dir_md, targetMDDirectory); } + + + // function splitTypeDefs(allItemToSplit){ + // let typeDefArray = []; + // allItemToSplit.forEach( (content, index) => { + // firstLine = content.split("\n")[0]; + // if (firstLine.indexOf("{Signal}") > -1){ + // signalArray.push(content); + // } else if (firstLine.indexOf("span") > -1) { + // if (content.indexOf("Available in:") > -1){ + // description = content; + // } else { + // methodArray.push(content); + // } + // } else { + // if(firstLine.trim() !== ""){ + // typeDefArray.push(content); + // } else { + // } + // } + // }) + // return [methodArray, signalArray, typeDefArray, description]; + // } \ No newline at end of file From 1e4d4dac444d53e5a8073183506558a55296a753 Mon Sep 17 00:00:00 2001 From: milad Date: Sun, 20 May 2018 23:39:47 -0700 Subject: [PATCH 055/300] cleaned up script --- tools/jsdoc/gravPrep.js | 126 +++------------------------------------- 1 file changed, 9 insertions(+), 117 deletions(-) diff --git a/tools/jsdoc/gravPrep.js b/tools/jsdoc/gravPrep.js index a58ad43b15..f65e24db88 100644 --- a/tools/jsdoc/gravPrep.js +++ b/tools/jsdoc/gravPrep.js @@ -103,48 +103,20 @@ const html_reg_pretty = /(
)([\s\S]*?)(<\/pre>)/g;
     const html_reg_pretty_replace = "
$2<\/pre>";
     const html_reg_dlClassDetails = /
<\/dl>/g - // const html_reg_findGlobalLinks = /()([\s\S]*?)(<\/code>)/g; - // const html_reg_code_replace = "$1$2$3"; // Procedural functions // Helper Functions - // function isMultipleDots(content){ - // let count = 0; - // let regEx = /\./g - // let tempArray; - // while ((tempArray = regEx.exec(content)) !== null){ - // count++; - // } - // if (count > 1){ - // return true; - // } - // } - - // function modifyClassLinks(match, p1, p2, p3, p4){ - // let matchedp = [p2,p3].join(""); - // if(!isMultipleDots(matchedp)){ - // console.log("not multiple"); - // console.log("matchedp:", matchedp) - // return match; - // } - // p2 = p2.split('.')[1].toLowerCase(); - // let newString = [p1,p2,p3,p4].join(""); - // // console.log("new String:", newString); - // return newString; - // } function allLinksToLowerCase(match, p1, p2, p3){ - // split on id # and make sure only the preceding is lower case - if (p2.indexOf("#") > -1){ - p2 = p2.split("#"); - p2 = [p2[0].toLowerCase(), "#", p2[1]].join(""); - } else { - p2 = p2.toLowerCase(); - } - return [p1,p2,p3].join(""); + // split on id # and make sure only the preceding is lower case + if (p2.indexOf("#") > -1){ + p2 = p2.split("#"); + p2 = [p2[0].toLowerCase(), "#", p2[1]].join(""); + } else { + p2 = p2.toLowerCase(); + } + return [p1,p2,p3].join(""); } function fixLinkGrouping(match, p1, p2, p3){ @@ -165,42 +137,6 @@ } - // function lowerCaseGeneralLinks(match, p1, p2, p3, p4){ - // let modifiedString = [p1,p2.toLowerCase(),p3,p4].join(""); - // return modifiedString; - // } - - // function contentReplace(content, title){ - // var linksNoHashes = []; - // var tempArray; - // while(( tempArray = html_reg_findLinksNoHashes.exec(content)) !== null ){ - // let tempArrayToPush = tempArray.slice(0,4) - // tempArrayToPush.push(tempArray.index); - // linksNoHashes.push(tempArrayToPush); - // } - // if (!linksNoHashes){ - // return content; - // } - // for(var i = linksNoHashes.length-1; i > -1; i--){ - // if (linksNoHashes[i][0].indexOf("http") > -1){ - // continue; - // } - // let linkLength = linksNoHashes[i][0].length; - // let group1 = linksNoHashes[i][1]; - // let group2 = linksNoHashes[i][2]; - // if (group2.indexOf(".") > -1){ - // group2 = group2.split(".")[1].toLowerCase(); - // } - // let group3 = linksNoHashes[i][3]; - // let index = linksNoHashes[i][4]; - // let newString = `${group1}/api-reference/${returnRightGroup(group2)}/${group2.toLowerCase()}${group3}`; - // // console.log("newString", newString); - // content = [content.slice(0,index), newString, content.slice(index+linkLength)].join(""); - // } - // return content; - // } - - function returnRightGroup(methodToCheck){ // console.log("methodToCheck", methodToCheck) for ( var key in groupNameMemberMap ){ @@ -456,7 +392,6 @@ break; } } while (curIndex > -1) - // console.log("content2", content); return [content, foundArray]; } @@ -467,17 +402,12 @@ let signalArray = []; allItemToSplit.forEach( (content, index) => { - // console.log("content", content); firstLine = content.split("\n")[0]; - // console.log("@@@ firstLine", firstLine) if (firstLine.indexOf("{Signal}") > -1){ - // console.log("### FOUND SIGNAL", content); signalArray.push(content); } else if (firstLine.indexOf("span") > -1) { - // console.log("### METHOD", content); methodArray.push(content); } else { - // console.log("not handled", content); } }) return [methodArray, signalArray]; @@ -488,9 +418,7 @@ // and bool if the append is before the found area function append(content, searchTermToAppendto, contentToAppend, appendBefore){ let contentArray = content.split("\n"); - console.log("contentArray", contentArray); let foundIndex = findArrayTrim(contentArray, searchTermToAppendto) - console.log("foundIndex", foundIndex) foundIndex = appendBefore ? foundIndex : foundIndex +1 contentArray.splice(foundIndex,0,contentToAppend) @@ -509,7 +437,6 @@ return index; } - // Remove grav directory if exists to make sure old files aren't kept if (fs.existsSync(dir_grav)){ console.log("dir_grav exists"); @@ -577,22 +504,15 @@ .replace(html_reg_title,"") // Remove title .replace(html_reg_objectHeader,"") // Remove extra Object Header .replace(html_reg_htmlExt,"") // Remove the .html extension from all links - .replace(html_reg_dlClassDetails, "") // Remove unneccsary dlClassDetails Tag .replace(html_reg_allNonHTML, allLinksToLowerCase) // Turn all links into lowercase before ID tags .replace(html_reg_allNonHTML, fixLinkGrouping) // Make sure links refer to correct grouping - // .replace(html_reg_subsectionEdit, html_reg_subsectionEdit_replace) // Make all subsection titles the same size .replace(html_reg_propertiesHeaderEdit, html_reg_propertiesHeaderEdit_Replace) // Remove : from Properties .replace(html_reg_typeEdit, html_reg_typeEdit_replace) // Put type on the same line .replace(html_reg_returnSize, html_reg_returnSize_replace) // make return size h6 instead of h5 .replace(html_reg_methodSize, html_reg_methodSize_replace) // make method size into h5 .replace(html_reg_pretty, html_reg_pretty_replace) // .replace(html_reg_brRemove, "") // Remove extra Brs - // .replace(html_reg_typeDefSize, html_reg_typeDefSize_replace) // make type def header into h5 - // .replace(html_reg_findGlobalLinks, html_reg_findGlobalLinks_replace) - // .replace(html_reg_findGeneralLinks, lowerCaseGeneralLinks) - // .replace(html_reg_findClassLinks, modifyClassLinks) - // .replace(html_reg_typeReturnSize, html_reg_typeReturnSize_replace) // .replace(html_reg_code, html_reg_code_replace) // Fix for namespace and object links @@ -648,30 +568,25 @@ arrayToPassToClassToc.push({type: "Methods", array: splitMethodIDS}); // Add the Signals header to the Signals HTML splitMethods.unshift(html_reg_findByMethod_replace) - console.log("appending methods") currentContent = append(currentContent, html_reg_findByArticleClose, splitMethods.join('\n'), true); } if (splitSignals.length > 0) { arrayToPassToClassToc.push({type: "Signals", array: splitSignalIDS}); // Add the Signals header to the Signals HTML splitSignals.unshift(html_reg_signalTitle) - console.log("appending signals") currentContent = append(currentContent, html_reg_findByArticleClose, splitSignals.join('\n'),true); } if (foundTypeDefinitions && foundTypeDefinitions.length > 0) { arrayToPassToClassToc.push({type: "Type Definitions", array: splitTypeDefinitionIDS}); // Add the Signals header to the Signals HTML foundTypeDefinitions.unshift(html_reg_typeDefinitonsTitle_replace) - console.log("appending typedefs") currentContent = append(currentContent, html_reg_findByArticleClose, foundTypeDefinitions.join('\n'), true); } let classTOC = makeClassTOC(arrayToPassToClassToc); if (groupName === "Global"){ - console.log("appending global toc") currentContent = append(currentContent, html_reg_findByTitle, classTOC); } else { - console.log("appending normal toc") currentContent = append(currentContent, html_reg_firstDivClose, classTOC); } @@ -725,27 +640,4 @@ rimraf.sync(baseMdRefDir); } copyFolderRecursiveSync(dir_md, targetMDDirectory); - } - - - // function splitTypeDefs(allItemToSplit){ - // let typeDefArray = []; - // allItemToSplit.forEach( (content, index) => { - // firstLine = content.split("\n")[0]; - // if (firstLine.indexOf("{Signal}") > -1){ - // signalArray.push(content); - // } else if (firstLine.indexOf("span") > -1) { - // if (content.indexOf("Available in:") > -1){ - // description = content; - // } else { - // methodArray.push(content); - // } - // } else { - // if(firstLine.trim() !== ""){ - // typeDefArray.push(content); - // } else { - // } - // } - // }) - // return [methodArray, signalArray, typeDefArray, description]; - // } \ No newline at end of file + } \ No newline at end of file From 9c0bd899519f938b9a2cdfb3cfb1b680ef1f9f6f Mon Sep 17 00:00:00 2001 From: milad Date: Mon, 21 May 2018 09:09:18 -0700 Subject: [PATCH 056/300] another round of fixing and merging --- tools/jsdoc/Links-Untouched | 0 tools/jsdoc/gravPrep.js | 55 ++++++------------------------------- 2 files changed, 8 insertions(+), 47 deletions(-) create mode 100644 tools/jsdoc/Links-Untouched diff --git a/tools/jsdoc/Links-Untouched b/tools/jsdoc/Links-Untouched new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tools/jsdoc/gravPrep.js b/tools/jsdoc/gravPrep.js index 3fddd5ebbb..1da0344478 100644 --- a/tools/jsdoc/gravPrep.js +++ b/tools/jsdoc/gravPrep.js @@ -74,11 +74,7 @@ const html_reg_propertiesHeaderEdit_Replace = '

Properties

'; const html_reg_typeEdit = /(
Returns[\s\S]*?Type)(<\/dt[\s\S]*?type">)(.*?)(<\/span><\/dd>[\s\S]*?<\/dl>)/g; const html_reg_typeEdit_replace = '$1: $3
' -<<<<<<< HEAD - const html_reg_methodSize = /()(<\/h4>\n)/gm; -======= const html_reg_methodSize = /()/g; ->>>>>>> 1e4d4dac444d53e5a8073183506558a55296a753 const html_reg_methodSize_replace = ''; const html_reg_typeDefSize = /(\n)/g; const html_reg_typeDefSize_replace = ''; @@ -96,6 +92,8 @@ const html_reg_signalTitle = `

Signals

`; const html_reg_typeDefinitonsTitle = /

Type Definitions<\/h3>/; const html_reg_typeDefinitonsTitle_replace = `

Type Definitions

` + const html_reg_classDefinitonsTitle = /

Classes<\/h3>/; + const html_reg_classDefinitonsTitle_replace = `

Classes

` const html_reg_firstDivClose = `
`; const html_reg_fixLinkHashIssue = /()/g; const html_reg_fixLinkHashIssue_replace = "$1$2#$4" @@ -106,25 +104,16 @@ const html_reg_findClassLinks = /([\s\S]+?<\/a>)/g; const html_reg_pretty = /(
)([\s\S]*?)(<\/pre>)/g;
     const html_reg_pretty_replace = "
$2<\/pre>";
-<<<<<<< HEAD
-    const html_reg_code = /()([\s\S]*?)(<\/code>)/g;
-    const html_reg_code_replace = "$1$2$3";
     const html_reg_availableIn = /([\s\S]+?Available in:[\s\S]+?<\/table>)/g;
     const html_reg_findControllerPropertiesHeader = "
Properties
"; const html_reg_findControllerCuratedList = /
Functions<\/h5>[\s\S]*?

Input Recordings[\s\S]*?<\/ul>/g const html_reg_findEntityMethods = /

Entity Methods:[\s\S]+?<\/ul>/g; const html_reg_EntityMethodsHeader = '
Entity Methods:
'; const html_reg_EntityMethodsHeader_replace = '
Entity Methods
'; - -// Mapping for GroupNames and Members - let groupNameMemberMap = { - "Objects": [], - "Namespaces": [], - "Globals": [] - } -======= const html_reg_dlClassDetails = /
<\/dl>/g ->>>>>>> 1e4d4dac444d53e5a8073183506558a55296a753 + const html_reg_typeDefType = /(
)(Type:)(<\/h5>[\s\S]*?)([\s\S]*?<\/ul>)/g; + const html_reg_typeDefType_replace = `
$2 $4
`; + // Procedural functions @@ -423,13 +412,8 @@ let methodArray = []; let signalArray = []; -<<<<<<< HEAD - allItemToSplit.forEach( content => { - firstLine = content.split("\n")[0]; -======= allItemToSplit.forEach( (content, index) => { firstLine = content.split("\n")[0]; ->>>>>>> 1e4d4dac444d53e5a8073183506558a55296a753 if (firstLine.indexOf("{Signal}") > -1){ signalArray.push(content); } else if (firstLine.indexOf("span") > -1) { @@ -525,26 +509,6 @@ let signalIDs = []; let typeDefIDs = []; // Basic Regex HTML edits -<<<<<<< HEAD - let mainDivRegexed = mainDiv.html() - .replace(html_reg_static,"") - .replace(html_reg_title,"") - .replace(html_reg_objectHeader,"") - .replace(html_reg_htmlExt,"") - .replace(html_reg_brRemove, "") - .replace(html_reg_subsectionEdit, html_reg_subsectionEdit_replace) - .replace(html_reg_propertiesHeaderEdit, html_reg_propertiesHeaderEdit_Replace) - .replace(html_reg_typeEdit, html_reg_typeEdit_replace) - .replace(html_reg_typeDefSize, html_reg_typeDefSize_replace) - .replace(html_reg_returnSize, html_reg_returnSize_replace) - .replace(html_reg_methodSize, html_reg_methodSize_replace) - .replace(html_reg_typeDefinitonsTitle, "") - .replace(html_reg_findGlobalLinks, html_reg_findGlobalLinks_replace) - .replace(html_reg_findGeneralLinks, lowerCaseGeneralLinks) - .replace(html_reg_findClassLinks, modifyClassLinks) - .replace(html_reg_typeReturnSize, html_reg_typeReturnSize_replace) - .replace(html_reg_code, html_reg_code_replace) -======= let currentContent = mainDiv.html() .replace(html_reg_findByMethod, "") //Remove Method title to be remade later .replace(html_reg_static,"") // Remove static from the file names @@ -558,14 +522,11 @@ .replace(html_reg_typeEdit, html_reg_typeEdit_replace) // Put type on the same line .replace(html_reg_returnSize, html_reg_returnSize_replace) // make return size h6 instead of h5 .replace(html_reg_methodSize, html_reg_methodSize_replace) // make method size into h5 ->>>>>>> 1e4d4dac444d53e5a8073183506558a55296a753 .replace(html_reg_pretty, html_reg_pretty_replace) + .replace(html_reg_classDefinitonsTitle, html_reg_classDefinitonsTitle_replace) // .replace(html_reg_brRemove, "") // Remove extra Brs // .replace(html_reg_code, html_reg_code_replace) - // Fix for namespace and object links - // currentContent = contentReplace(currentContent, htmlTitle); - // Further HTML Manipulation // Make end term either Type Definitions or by the article let endTerm; @@ -579,6 +540,7 @@ foundSignalsAndMethods = contentSplitArray[1]; // Create a reference to the current content after split and the split functions currentContent = contentSplitArray[0] + .replace(html_reg_typeDefType, html_reg_typeDefType_replace) // Edit how the typedef type looks .replace(html_reg_typeDefinitonsTitle, ""); // Remove Type Definitions Title to be remade later; endTerm = html_reg_findByArticleClose; // Grab split Type Definitions @@ -593,7 +555,6 @@ } // Create references to the split methods and signals - let processedMethodsSignalsAndTypeDefs = splitMethodsSignals(foundSignalsAndMethods); let splitMethods = processedMethodsSignalsAndTypeDefs[0]; let splitSignals = processedMethodsSignalsAndTypeDefs[1]; @@ -640,7 +601,7 @@ currentContent = currentContent.replace(html_reg_findControllerCuratedList, ""); let entityMethods = currentContent.match(html_reg_findEntityMethods); currentContent = currentContent.replace(html_reg_findEntityMethods, ""); - currentContent = append(currentContent, html_reg_firstTableClose, [classTOC, curatedList, entityMethods].join("\n")); + currentContent = append(currentContent, html_reg_firstDivClose, [classTOC, curatedList, entityMethods].join("\n")); currentContent = currentContent.replace(html_reg_EntityMethodsHeader, html_reg_EntityMethodsHeader_replace); } else { currentContent = append(currentContent, html_reg_firstDivClose, classTOC); From 24262e97a63efe6981c601b54e1a62ff2d9987d2 Mon Sep 17 00:00:00 2001 From: milad Date: Mon, 21 May 2018 09:10:30 -0700 Subject: [PATCH 057/300] removed old cruft --- tools/jsdoc/Links-Untouched | 0 tools/jsdoc/badLinks | 0 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 tools/jsdoc/Links-Untouched delete mode 100644 tools/jsdoc/badLinks diff --git a/tools/jsdoc/Links-Untouched b/tools/jsdoc/Links-Untouched deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tools/jsdoc/badLinks b/tools/jsdoc/badLinks deleted file mode 100644 index e69de29bb2..0000000000 From 3450af7a3d38d990864693ac6b5892203a8c8df5 Mon Sep 17 00:00:00 2001 From: milad Date: Mon, 21 May 2018 21:52:20 -0700 Subject: [PATCH 058/300] clean up --- tools/jsdoc/gravPrep.js | 62 +++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 30 deletions(-) diff --git a/tools/jsdoc/gravPrep.js b/tools/jsdoc/gravPrep.js index 1da0344478..d504a507fa 100644 --- a/tools/jsdoc/gravPrep.js +++ b/tools/jsdoc/gravPrep.js @@ -60,34 +60,23 @@ "Namespaces": [], "Globals": [] } - + // Html variables to be handle regex replacements const html_reg_static = /\(static\)<\/span>/g const html_reg_title = /\.+?\<\/h1\>/g; const html_reg_htmlExt = /\.html/g; const html_reg_objectHeader = /
[\s\S]+?<\/header>/; const html_reg_objectSpanNew = /
<\/h5>/; - const html_reg_brRemove = /
[\s\S]+?
/; - const html_reg_subsectionEdit = /()([\s\S]*?)(<\/h.>)/g; - const html_reg_subsectionEdit_replace = '

$2

'; const html_reg_propertiesHeaderEdit = '

Properties:

'; const html_reg_propertiesHeaderEdit_Replace = '

Properties

'; const html_reg_typeEdit = /(
Returns[\s\S]*?Type)(<\/dt[\s\S]*?type">)(.*?)(<\/span><\/dd>[\s\S]*?<\/dl>)/g; const html_reg_typeEdit_replace = '$1: $3
' const html_reg_methodSize = /()/g; const html_reg_methodSize_replace = ''; - const html_reg_typeDefSize = /(\n)/g; - const html_reg_typeDefSize_replace = ''; - const html_reg_typeReturnSize = /
Type:\<\/h5>/g; - const html_reg_typeReturnSize_replace = '
Type:
'; - const html_reg_returnSize = /
Returns:<\/h5>/g; - const html_reg_returnSize_replace = '
Returns:<\/h6>'; const html_reg_findByName = '
` - const html_reg_findByArticleOpen = `
` const html_reg_findByArticleClose = `
` const html_reg_signalTitle = `

Signals

`; const html_reg_typeDefinitonsTitle = /

Type Definitions<\/h3>/; @@ -95,17 +84,10 @@ const html_reg_classDefinitonsTitle = /

Classes<\/h3>/; const html_reg_classDefinitonsTitle_replace = `

Classes

` const html_reg_firstDivClose = ``; - const html_reg_fixLinkHashIssue = /()/g; - const html_reg_fixLinkHashIssue_replace = "$1$2#$4" - const html_reg_findLinks = /()/g; - const html_reg_findLinksNoHashes = /([\s\S]+?<\/a>)/g; - const html_reg_findGeneralLinks = /()/g; - const html_reg_findClassLinks = /([\s\S]+?<\/a>)/g; const html_reg_pretty = /(
)([\s\S]*?)(<\/pre>)/g;
     const html_reg_pretty_replace = "
$2<\/pre>";
     const html_reg_availableIn = /(
[\s\S]+?Available in:[\s\S]+?<\/table>)/g; - const html_reg_findControllerPropertiesHeader = "
Properties
"; const html_reg_findControllerCuratedList = /
Functions<\/h5>[\s\S]*?

Input Recordings[\s\S]*?<\/ul>/g const html_reg_findEntityMethods = /

Entity Methods:[\s\S]+?<\/ul>/g; const html_reg_EntityMethodsHeader = '
Entity Methods:
'; @@ -113,12 +95,10 @@ const html_reg_dlClassDetails = /
<\/dl>/g const html_reg_typeDefType = /(
)(Type:)(<\/h5>[\s\S]*?)([\s\S]*?<\/ul>)/g; const html_reg_typeDefType_replace = `
$2 $4
`; - // Procedural functions -// Helper Functions - + // Turn links to lower case that aren't part of IDs function allLinksToLowerCase(match, p1, p2, p3){ // split on id # and make sure only the preceding is lower case if (p2.indexOf("#") > -1){ @@ -130,6 +110,7 @@ return [p1,p2,p3].join(""); } + // Return the right group for where the method or type came from function fixLinkGrouping(match, p1, p2, p3){ if (p2.indexOf("#") > -1){ let split = p2.split("#"); @@ -142,20 +123,18 @@ let split = p2.split("."); return [p1,"/api-reference/", returnRightGroup(split[1]), "/", split[1], p3].join(""); } - // console.log("p2:", p2); return [p1,"/api-reference/", returnRightGroup(p2), "/", p2, p3].join(""); } } function returnRightGroup(methodToCheck){ - // console.log("methodToCheck", methodToCheck) for ( var key in groupNameMemberMap ){ for (i = 0; i < groupNameMemberMap[key].length; i++ ){ if (methodToCheck.toLowerCase() === groupNameMemberMap[key][i].toLowerCase()){ return key.toLowerCase(); } else { - // console.log("Couldn't find group: ", methodToCheck); + console.log("Couldn't find group: ", methodToCheck); } } } @@ -360,7 +339,6 @@ } extractedIDs.push(id) }) - // console.log("extractedIDs", extractedIDs) return extractedIDs; } @@ -523,9 +501,7 @@ .replace(html_reg_returnSize, html_reg_returnSize_replace) // make return size h6 instead of h5 .replace(html_reg_methodSize, html_reg_methodSize_replace) // make method size into h5 .replace(html_reg_pretty, html_reg_pretty_replace) - .replace(html_reg_classDefinitonsTitle, html_reg_classDefinitonsTitle_replace) - // .replace(html_reg_brRemove, "") // Remove extra Brs - // .replace(html_reg_code, html_reg_code_replace) + .replace(html_reg_classDefinitonsTitle, html_reg_classDefinitonsTitle_replace); // Further HTML Manipulation // Make end term either Type Definitions or by the article @@ -657,4 +633,30 @@ rimraf.sync(baseMdRefDir); } copyFolderRecursiveSync(dir_md, targetMDDirectory); - } \ No newline at end of file + } + + + +/* + const html_reg_subsectionEdit_replace = '

$2

'; + const html_reg_subsectionEdit = /()([\s\S]*?)(<\/h.>)/g; + const html_reg_brRemove = /
[\s\S]+?
/; + const html_reg_typeDefSize = /(\n)/g; + const html_reg_typeDefSize_replace = ''; + const html_reg_typeReturnSize = /
Type:\<\/h5>/g; + const html_reg_typeReturnSize_replace = '
Type:
'; + const html_reg_containerOverview = `
` + const html_reg_returnSize = /
Returns:<\/h5>/g; + const html_reg_returnSize_replace = '
Returns:<\/h6>'; + const html_reg_findByArticleOpen = `
` + const html_reg_fixLinkHashIssue = /()/g; + const html_reg_fixLinkHashIssue_replace = "$1$2#$4" + const html_reg_findLinks = /([\s\S]+?<\/a>)/g; + const html_reg_findGeneralLinks = /()/g; + const html_reg_findClassLinks = /([\s\S]+?<\/a>)/g; + const html_reg_findControllerPropertiesHeader = "
Properties
"; + + // .replace(html_reg_brRemove, "") // Remove extra Brs + // .replace(html_reg_code, html_reg_code_replace) +*/ From 5056e698fa0208e5d066d729c46b2746981d7b99 Mon Sep 17 00:00:00 2001 From: milad Date: Mon, 21 May 2018 22:10:57 -0700 Subject: [PATCH 059/300] further clean up --- tools/jsdoc/gravPrep.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/tools/jsdoc/gravPrep.js b/tools/jsdoc/gravPrep.js index d504a507fa..be40bc5fb5 100644 --- a/tools/jsdoc/gravPrep.js +++ b/tools/jsdoc/gravPrep.js @@ -609,8 +609,6 @@ createTemplate("Namespaces", makeGroupTOC("Namespaces")); createTemplate("Objects", makeGroupTOC("Objects")); - fs.writeFileSync('Links-Untouched', unTouchedLinks.join('\n')); - // Copy the files to the target Directories if Local if (copyLocal){ // Copy files to the Twig Directory From ded774de9c9d55930b67561a44757277c82f76b1 Mon Sep 17 00:00:00 2001 From: milad Date: Tue, 22 May 2018 16:02:29 -0700 Subject: [PATCH 060/300] multiple fixes for repeated type defs --- tools/jsdoc/gravPrep.js | 505 +++++++++++++++++++++------------------- 1 file changed, 260 insertions(+), 245 deletions(-) diff --git a/tools/jsdoc/gravPrep.js b/tools/jsdoc/gravPrep.js index be40bc5fb5..f48f08762e 100644 --- a/tools/jsdoc/gravPrep.js +++ b/tools/jsdoc/gravPrep.js @@ -1,216 +1,218 @@ // Dependencies - const htmlclean = require('htmlclean'); - const fs = require('fs'); - const path = require('path'); - const pretty = require('pretty'); - const cheerio = require('cheerio'); - const rimraf = require('rimraf'); - const dedent = require('dedent-js'); +const htmlclean = require('htmlclean'); +const fs = require('fs'); +const path = require('path'); +const pretty = require('pretty'); +const cheerio = require('cheerio'); +const rimraf = require('rimraf'); +const dedent = require('dedent-js'); // Arg Vars - const copyLocal = process.argv[2]; - console.log("copyLocal:", copyLocal); - let targetTemplateDirectory = ''; - let targetMDDirectory = ''; - if (copyLocal){ - targetTemplateDirectory = process.argv[3]; - targetMDDirectory = process.argv[4];; - } +const copyLocal = process.argv[2]; +console.log("copyLocal:", copyLocal); +let targetTemplateDirectory = ''; +let targetMDDirectory = ''; +if (copyLocal) { + targetTemplateDirectory = process.argv[3]; + targetMDDirectory = process.argv[4];; +} // Required directories - let dir_out = path.join(__dirname, 'out'); +let dir_out = path.join(__dirname, 'out'); - let dir_grav = path.join(dir_out, 'grav'); - let dir_css = path.join(dir_grav, 'css'); - let dir_js = path.join(dir_grav, 'js'); - let dir_template = path.join(dir_grav, 'templates'); +let dir_grav = path.join(dir_out, 'grav'); +let dir_css = path.join(dir_grav, 'css'); +let dir_js = path.join(dir_grav, 'js'); +let dir_template = path.join(dir_grav, 'templates'); + +let dir_md = path.join(dir_grav, '06.api-reference'); +let dir_md_objects = path.join(dir_md, '02.Objects'); +let dir_md_namespaces = path.join(dir_md, '01.Namespaces'); +let dir_md_globals = path.join(dir_md, '03.Globals'); - let dir_md = path.join(dir_grav, '06.api-reference'); - let dir_md_objects = path.join(dir_md, '02.Objects'); - let dir_md_namespaces = path.join(dir_md, '01.Namespaces'); - let dir_md_globals = path.join(dir_md, '03.Globals'); - // Array to itterate over and create if doesn't exist - let dirArray = [dir_grav, dir_css, dir_js, dir_template, dir_md, dir_md_objects, dir_md_namespaces, dir_md_globals]; +let dirArray = [dir_grav, dir_css, dir_js, dir_template, dir_md, dir_md_objects, dir_md_namespaces, dir_md_globals]; // Base Grouping Directories for MD files - let baseMDDirectories = ["API-Reference", "Globals", "Namespaces", "Objects"]; +let baseMDDirectories = ["API-Reference", "Globals", "Namespaces", "Objects"]; // Maps for directory names - let map_dir_md = { - "API-Reference": dir_md, - "Globals": dir_md_globals, - "Objects": dir_md_objects, - "Namespaces": dir_md_namespaces, - "Class": dir_md_objects, - "Namespace": dir_md_namespaces, - "Global": dir_md_globals - } +let map_dir_md = { + "API-Reference": dir_md, + "Globals": dir_md_globals, + "Objects": dir_md_objects, + "Namespaces": dir_md_namespaces, + "Class": dir_md_objects, + "Namespace": dir_md_namespaces, + "Global": dir_md_globals +} // Map for Links - let map_links = { - "Global": "globals", - "Namespace": "namespaces", - "Class": "objects" - } +let map_links = { + "Global": "globals", + "Namespace": "namespaces", + "Class": "objects" +} // Mapping for GroupNames and Members - let groupNameMemberMap = { - "Objects": [], - "Namespaces": [], - "Globals": [] - } - +let groupNameMemberMap = { + "Objects": [], + "Namespaces": [], + "Globals": [] +} + // Html variables to be handle regex replacements - const html_reg_static = /\(static\)<\/span>/g - const html_reg_title = /\.+?\<\/h1\>/g; - const html_reg_htmlExt = /\.html/g; - const html_reg_objectHeader = /
[\s\S]+?<\/header>/; - const html_reg_objectSpanNew = /
<\/h5>/; - const html_reg_propertiesHeaderEdit = '

Properties:

'; - const html_reg_propertiesHeaderEdit_Replace = '

Properties

'; - const html_reg_typeEdit = /(
Returns[\s\S]*?Type)(<\/dt[\s\S]*?type">)(.*?)(<\/span><\/dd>[\s\S]*?<\/dl>)/g; - const html_reg_typeEdit_replace = '$1: $3
' - const html_reg_methodSize = /()/g; - const html_reg_methodSize_replace = ''; - const html_reg_findByName = '
` - const html_reg_signalTitle = `

Signals

`; - const html_reg_typeDefinitonsTitle = /

Type Definitions<\/h3>/; - const html_reg_typeDefinitonsTitle_replace = `

Type Definitions

` - const html_reg_classDefinitonsTitle = /

Classes<\/h3>/; - const html_reg_classDefinitonsTitle_replace = `

Classes

` - const html_reg_firstDivClose = ``; - const html_reg_allNonHTML = /(
)/g; - const html_reg_pretty = /(
)([\s\S]*?)(<\/pre>)/g;
-    const html_reg_pretty_replace = "
$2<\/pre>";
-    const html_reg_availableIn = /(
[\s\S]+?Available in:[\s\S]+?<\/table>)/g; - const html_reg_findControllerCuratedList = /
Functions<\/h5>[\s\S]*?

Input Recordings[\s\S]*?<\/ul>/g - const html_reg_findEntityMethods = /

Entity Methods:[\s\S]+?<\/ul>/g; - const html_reg_EntityMethodsHeader = '
Entity Methods:
'; - const html_reg_EntityMethodsHeader_replace = '
Entity Methods
'; - const html_reg_dlClassDetails = /
<\/dl>/g - const html_reg_typeDefType = /(
)(Type:)(<\/h5>[\s\S]*?)([\s\S]*?<\/ul>)/g; - const html_reg_typeDefType_replace = `
$2 $4
`; +const html_reg_static = /\(static\)<\/span>/g +const html_reg_title = /\.+?\<\/h1\>/g; +const html_reg_htmlExt = /\.html/g; +const html_reg_objectHeader = /
[\s\S]+?<\/header>/; +const html_reg_objectSpanNew = /
<\/h5>/; +const html_reg_propertiesHeaderEdit = '

Properties:

'; +const html_reg_propertiesHeaderEdit_Replace = '

Properties

'; +const html_reg_typeEdit = /(
Returns[\s\S]*?Type)(<\/dt[\s\S]*?type">)(.*?)(<\/span><\/dd>[\s\S]*?<\/dl>)/g; +const html_reg_typeEdit_replace = '$1: $3
' +const html_reg_methodSize = /()/g; +const html_reg_methodSize_replace = ''; +const html_reg_findByName = '
` +const html_reg_signalTitle = `

Signals

`; +const html_reg_typeDefinitonsTitle = /

Type Definitions<\/h3>/; +const html_reg_typeDefinitonsTitle_replace = `

Type Definitions

` +const html_reg_classDefinitonsTitle = /

Classes<\/h3>/; +const html_reg_classDefinitonsTitle_replace = `

Classes

` +const html_reg_firstDivClose = ``; +const html_reg_allNonHTML = /(
)/g; +const html_reg_pretty = /(
)([\s\S]*?)(<\/pre>)/g;
+const html_reg_pretty_replace = "
$2<\/pre>";
+const html_reg_availableIn = /(
[\s\S]+?Available in:[\s\S]+?<\/table>)/g; +const html_reg_findControllerCuratedList = /
Functions<\/h5>[\s\S]*?

Input Recordings[\s\S]*?<\/ul>/g +const html_reg_findEntityMethods = /

Entity Methods:[\s\S]+?<\/ul>/g; +const html_reg_EntityMethodsHeader = '
Entity Methods:
'; +const html_reg_EntityMethodsHeader_replace = '
Entity Methods
'; +const html_reg_dlClassDetails = /
<\/dl>/g +const html_reg_typeDefType = /(
)(Type:)(<\/h5>[\s\S]*?)([\s\S]*?<\/ul>)/g; +const html_reg_typeDefType_replace = `
$2 $4
`; +const html_reg_returnSize = /
Returns:<\/h5>/g; +const html_reg_returnSize_replace = '
Returns:<\/h6>'; // Procedural functions - // Turn links to lower case that aren't part of IDs - function allLinksToLowerCase(match, p1, p2, p3){ - // split on id # and make sure only the preceding is lower case - if (p2.indexOf("#") > -1){ - p2 = p2.split("#"); - p2 = [p2[0].toLowerCase(), "#", p2[1]].join(""); +// Turn links to lower case that aren't part of IDs +function allLinksToLowerCase(match, p1, p2, p3) { + // split on id # and make sure only the preceding is lower case + if (p2.indexOf("#") > -1) { + p2 = p2.split("#"); + p2 = [p2[0].toLowerCase(), "#", p2[1]].join(""); + } else { + p2 = p2.toLowerCase(); + } + return [p1, p2, p3].join(""); +} + +// Return the right group for where the method or type came from +function fixLinkGrouping(match, p1, p2, p3) { + if (p2.indexOf("#") > -1) { + let split = p2.split("#"); + if (split[0] === "global") { + return [p1, "/api-reference/", "globals", "#", split[1], p3].join(""); + } + return [p1, "/api-reference/", returnRightGroup(split[0]), "/", p2, p3].join(""); + } else { + if (p2.indexOf(".") > -1) { + let split = p2.split("."); + return [p1, "/api-reference/", returnRightGroup(split[1]), "/", split[1], p3].join(""); + } + return [p1, "/api-reference/", returnRightGroup(p2), "/", p2, p3].join(""); + } + +} + +function returnRightGroup(methodToCheck) { + for (var key in groupNameMemberMap) { + for (i = 0; i < groupNameMemberMap[key].length; i++) { + if (methodToCheck.toLowerCase() === groupNameMemberMap[key][i].toLowerCase()) { + return key.toLowerCase(); } else { - p2 = p2.toLowerCase(); - } - return [p1,p2,p3].join(""); - } - - // Return the right group for where the method or type came from - function fixLinkGrouping(match, p1, p2, p3){ - if (p2.indexOf("#") > -1){ - let split = p2.split("#"); - if (split[0] === "global"){ - return [p1,"/api-reference/", "globals", "#", split[1], p3].join(""); - } - return [p1,"/api-reference/", returnRightGroup(split[0]), "/", p2, p3].join(""); - } else { - if (p2.indexOf(".") > -1){ - let split = p2.split("."); - return [p1,"/api-reference/", returnRightGroup(split[1]), "/", split[1], p3].join(""); - } - return [p1,"/api-reference/", returnRightGroup(p2), "/", p2, p3].join(""); - } - - } - - function returnRightGroup(methodToCheck){ - for ( var key in groupNameMemberMap ){ - for (i = 0; i < groupNameMemberMap[key].length; i++ ){ - if (methodToCheck.toLowerCase() === groupNameMemberMap[key][i].toLowerCase()){ - return key.toLowerCase(); - } else { - console.log("Couldn't find group: ", methodToCheck); - } + // console.log("Couldn't find group: ", methodToCheck); } } } +} - // Create the actual MD file - function createMD(title, directory, needsDir, isGlobal){ - let mdSource = makeMdSource(title); - - if (needsDir){ - if (!fs.existsSync(directory)) { - fs.mkdirSync(directory); +// Create the actual MD file +function createMD(title, directory, needsDir, isGlobal) { + let mdSource = makeMdSource(title); + + if (needsDir) { + if (!fs.existsSync(directory)) { + fs.mkdirSync(directory); + } + } + + let destinationMDFile = path.join(directory, `API_${title}.md`); + fs.writeFileSync(destinationMDFile, mdSource); +} + +// Create the actual Template file +function createTemplate(title, content) { + let twigBasePartial = makeTwigFile(content); + let destinationFile = path.join(dir_template, `API_${title}.html.twig`); + fs.writeFileSync(destinationFile, twigBasePartial); +} + +// Copy file from source to target - used for recurssive call +function copyFileSync(source, target) { + let targetFile = target; + + // If target is a directory a new file with the same name will be created + if (fs.existsSync(target)) { + if (fs.lstatSync(target).isDirectory()) { + targetFile = path.join(target, path.basename(source)); + } + } + + fs.writeFileSync(targetFile, fs.readFileSync(source)); +} + +// Copy file from source to target +function copyFolderRecursiveSync(source, target) { + var files = []; + + // Check if folder needs to be created or integrated + var targetFolder = path.join(target, path.basename(source)); + if (!fs.existsSync(targetFolder)) { + fs.mkdirSync(targetFolder); + } + + // Copy + if (fs.lstatSync(source).isDirectory()) { + files = fs.readdirSync(source); + files.forEach(function(file) { + var curSource = path.join(source, file); + if (fs.lstatSync(curSource).isDirectory()) { + copyFolderRecursiveSync(curSource, targetFolder); + } else { + copyFileSync(curSource, targetFolder); } - } - - let destinationMDFile = path.join(directory, `API_${title}.md`); - fs.writeFileSync(destinationMDFile, mdSource); + }); } +} - // Create the actual Template file - function createTemplate(title,content){ - let twigBasePartial = makeTwigFile(content); - let destinationFile = path.join(dir_template, `API_${title}.html.twig`); - fs.writeFileSync(destinationFile, twigBasePartial); - } +// Clean up the Html +function prepareHtml(source) { + let htmlBefore = fs.readFileSync(source, { encoding: 'utf8' }); + let htmlAfter = htmlclean(htmlBefore); + let htmlAfterPretty = pretty(htmlAfter); + return cheerio.load(htmlAfterPretty); +} - // Copy file from source to target - used for recurssive call - function copyFileSync( source, target ) { - let targetFile = target; - - // If target is a directory a new file with the same name will be created - if ( fs.existsSync( target ) ) { - if ( fs.lstatSync( target ).isDirectory() ) { - targetFile = path.join( target, path.basename( source ) ); - } - } - - fs.writeFileSync(targetFile, fs.readFileSync(source)); - } - - // Copy file from source to target - function copyFolderRecursiveSync( source, target ) { - var files = []; - - // Check if folder needs to be created or integrated - var targetFolder = path.join( target, path.basename( source ) ); - if ( !fs.existsSync( targetFolder ) ) { - fs.mkdirSync( targetFolder ); - } - - // Copy - if ( fs.lstatSync( source ).isDirectory() ) { - files = fs.readdirSync( source ); - files.forEach( function ( file ) { - var curSource = path.join( source, file ); - if ( fs.lstatSync( curSource ).isDirectory() ) { - copyFolderRecursiveSync( curSource, targetFolder ); - } else { - copyFileSync( curSource, targetFolder ); - } - }); - } - } - - // Clean up the Html - function prepareHtml(source){ - let htmlBefore = fs.readFileSync(source, {encoding: 'utf8'}); - let htmlAfter = htmlclean(htmlBefore); - let htmlAfterPretty = pretty(htmlAfter); - return cheerio.load(htmlAfterPretty); - } - - // Base file for MD's - function makeMdSource(title){ - return dedent( - ` +// Base file for MD's +function makeMdSource(title) { + return dedent( + ` --- title: ${title} taxonomy: @@ -221,13 +223,13 @@ enabled: false --- ` - ) - } + ) +} - // Base file for Templates - function makeTwigFile(contentHtml){ - return dedent( - ` +// Base file for Templates +function makeTwigFile(contentHtml) { + return dedent( + ` {% extends 'partials/base_noGit.html.twig' %} {% set tags = page.taxonomy.tag %} {% if tags %} @@ -257,43 +259,43 @@ {% endblock %} ` - ) + ) +} + +// Handle NameSpace Group +function handleNamespace(title, content) { + let destinationDirectory = path.join(map_dir_md["Namespace"], title); + createMD(title, destinationDirectory, true); + createTemplate(title, content); +} + +// Handle Class Group +function handleClass(title, content) { + let destinationDirectory = path.join(map_dir_md["Class"], title); + createMD(title, destinationDirectory, true) + + let formatedHtml = content + .replace(html_reg_objectSpanNew, "") + createTemplate(title, formatedHtml); +} + +// Handle Global Group +function handleGlobal(title, content) { + createMD("Globals", map_dir_md["Global"], false, true); + createTemplate("Globals", content); +} + +// Handle Group TOCs +function makeGroupTOC(group) { + let mappedGroup; + if (!Array.isArray(group)) { + mappedGroup = groupNameMemberMap[group]; + } else { + mappedGroup = group; } - - // Handle NameSpace Group - function handleNamespace(title, content){ - let destinationDirectory = path.join(map_dir_md["Namespace"], title); - createMD(title, destinationDirectory, true); - createTemplate(title, content); - } - - // Handle Class Group - function handleClass(title, content){ - let destinationDirectory = path.join(map_dir_md["Class"], title); - createMD(title, destinationDirectory, true) - - let formatedHtml = content - .replace(html_reg_objectSpanNew,"") - createTemplate(title, formatedHtml); - } - - // Handle Global Group - function handleGlobal(title, content){ - createMD("Globals", map_dir_md["Global"], false, true); - createTemplate("Globals", content); - } - - // Handle Group TOCs - function makeGroupTOC(group){ - let mappedGroup; - if (!Array.isArray(group)){ - mappedGroup = groupNameMemberMap[group]; - } else { - mappedGroup = group; - } - let htmlGroup = mappedGroup.map( item => { - return dedent( - ` + let htmlGroup = mappedGroup.map(item => { + return dedent( + `
curEndSplitTermIndex){ + break; + } // push from the cur index to the next found || the end term - foundArray.push(content.slice(curIndex, nextIndex)) + let contentSlice = content.slice(curIndex, nextIndex); + if (contentSlice.indexOf(`id="${title}"`) === -1){ + foundArray.push(contentSlice); + } + // remove that content - content = content.replace(foundArray[curfoundArrayIndex], ""); - curfoundArrayIndex++; + content = content.replace(contentSlice, ""); curEndSplitTermIndex = content.indexOf(endSplitTerm); nextIndex = content.indexOf(searchTerm,afterCurSearchIndex); // handle if nextIndex goes beyond endSplitTerm if (nextIndex > curEndSplitTermIndex) { curIndex = content.indexOf(searchTerm); - foundArray.push(content.slice(curIndex, curEndSplitTermIndex)) - content = content.replace(foundArray[curfoundArrayIndex], ""); + contentSlice = content.slice(curIndex, curEndSplitTermIndex); + if (contentSlice.indexOf(`id="${title}"`) === -1){ + foundArray.push(contentSlice); + } + content = content.replace(contentSlice, ""); break; } } while (curIndex > -1) @@ -470,7 +485,8 @@ } }) files.forEach(function (file, index){ - // if (index !== 3) return; + // For testing individual files + if (index !== 6) return; let curSource = path.join(dir_out, file); if (path.extname(curSource) == ".html" && path.basename(curSource, '.html') !== "index") { // Clean up the html source @@ -512,20 +528,23 @@ console.log("Found Type Definitions"); endTerm = `

Type Definitions

`; // Split HTML by Each named entry - let contentSplitArray = splitBy(currentContent, html_reg_findByName, endTerm); + let contentSplitArray = splitBy(currentContent, html_reg_findByName, endTerm, htmlTitle); foundSignalsAndMethods = contentSplitArray[1]; + console.log("foundSignalsAndMethods", foundSignalsAndMethods) // Create a reference to the current content after split and the split functions currentContent = contentSplitArray[0] .replace(html_reg_typeDefType, html_reg_typeDefType_replace) // Edit how the typedef type looks .replace(html_reg_typeDefinitonsTitle, ""); // Remove Type Definitions Title to be remade later; endTerm = html_reg_findByArticleClose; // Grab split Type Definitions - let contentSplitArrayForTypeDefs = splitBy(currentContent, html_reg_findByName, endTerm); + let contentSplitArrayForTypeDefs = splitBy(currentContent, html_reg_findByName, endTerm, htmlTitle); currentContent = contentSplitArrayForTypeDefs[0]; foundTypeDefinitions = contentSplitArrayForTypeDefs[1]; + console.log("foundTypeDefinitions", foundTypeDefinitions) + } else { endTerm = html_reg_findByArticleClose; - let contentSplitArray = splitBy(currentContent, html_reg_findByName, endTerm); + let contentSplitArray = splitBy(currentContent, html_reg_findByName, endTerm, htmlTitle); foundSignalsAndMethods = contentSplitArray[1]; currentContent = contentSplitArray[0]; } @@ -536,12 +555,9 @@ let splitSignals = processedMethodsSignalsAndTypeDefs[1]; let splitTypeDefinitionIDS; // let splitDescription = processedMethodsSignalsAndTypeDefs[3]; - // console.log("getting split Methods") let splitMethodIDS = extractIDs(splitMethods); - // console.log("getting split Signals") let splitSignalIDS = extractIDs(splitSignals); if (foundTypeDefinitions){ - // console.log("getting split typeDefs") splitTypeDefinitionIDS = extractIDs(foundTypeDefinitions); } let arrayToPassToClassToc = []; @@ -644,8 +660,7 @@ const html_reg_typeReturnSize = /
Type:\<\/h5>/g; const html_reg_typeReturnSize_replace = '
Type:
'; const html_reg_containerOverview = `
` - const html_reg_returnSize = /
Returns:<\/h5>/g; - const html_reg_returnSize_replace = '
Returns:<\/h6>'; + const html_reg_findByArticleOpen = `
` const html_reg_fixLinkHashIssue = /()/g; const html_reg_fixLinkHashIssue_replace = "$1$2#$4" @@ -657,4 +672,4 @@ // .replace(html_reg_brRemove, "") // Remove extra Brs // .replace(html_reg_code, html_reg_code_replace) -*/ +*/ \ No newline at end of file From 8e1c7531dc7ada6a1b63995315103c2afb7cdeef Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Wed, 23 May 2018 10:42:14 -0700 Subject: [PATCH 061/300] Add option to oven.exe to disable texture baking --- libraries/baking/src/TextureBaker.cpp | 27 ++++++++++++++++++++------- tools/oven/src/OvenCLIApplication.cpp | 15 ++++++++++++++- 2 files changed, 34 insertions(+), 8 deletions(-) diff --git a/libraries/baking/src/TextureBaker.cpp b/libraries/baking/src/TextureBaker.cpp index b6957a2712..2b50f6be97 100644 --- a/libraries/baking/src/TextureBaker.cpp +++ b/libraries/baking/src/TextureBaker.cpp @@ -157,18 +157,19 @@ void TextureBaker::processTexture() { return; } - const char* name = khronos::gl::texture::toString(memKTX->_header.getGLInternaFormat()); - if (name == nullptr) { - handleError("Could not determine internal format for compressed KTX: " + _textureURL.toString()); - return; - } // attempt to write the baked texture to the destination file path - { + if (memKTX->_header.isCompressed()) { + const char* name = khronos::gl::texture::toString(memKTX->_header.getGLInternaFormat()); + if (name == nullptr) { + handleError("Could not determine internal format for compressed KTX: " + _textureURL.toString()); + return; + } + const char* data = reinterpret_cast(memKTX->_storage->data()); const size_t length = memKTX->_storage->size(); - auto fileName = _baseFilename + BAKED_TEXTURE_BCN_SUFFIX; + auto fileName = _baseFilename + "_" + name + ".ktx"; auto filePath = _outputDirectory.absoluteFilePath(fileName); QFile bakedTextureFile { filePath }; if (!bakedTextureFile.open(QIODevice::WriteOnly) || bakedTextureFile.write(data, length) == -1) { @@ -177,6 +178,18 @@ void TextureBaker::processTexture() { } _outputFiles.push_back(filePath); meta.availableTextureTypes[memKTX->_header.getGLInternaFormat()] = _metaTexturePathPrefix + fileName; + } else { + const char* data = reinterpret_cast(memKTX->_storage->data()); + const size_t length = memKTX->_storage->size(); + + auto fileName = _baseFilename + ".ktx"; + auto filePath = _outputDirectory.absoluteFilePath(fileName); + QFile ktxTextureFile { filePath }; + if (!ktxTextureFile.open(QIODevice::WriteOnly) || ktxTextureFile.write(data, length) == -1) { + handleError("Could not write ktx texture for " + _textureURL.toString()); + return; + } + _outputFiles.push_back(filePath); } diff --git a/tools/oven/src/OvenCLIApplication.cpp b/tools/oven/src/OvenCLIApplication.cpp index ab3178db01..6f87359134 100644 --- a/tools/oven/src/OvenCLIApplication.cpp +++ b/tools/oven/src/OvenCLIApplication.cpp @@ -14,11 +14,14 @@ #include #include +#include + #include "BakerCLI.h" static const QString CLI_INPUT_PARAMETER = "i"; static const QString CLI_OUTPUT_PARAMETER = "o"; static const QString CLI_TYPE_PARAMETER = "t"; +static const QString CLI_DISABLE_TEXTURE_COMPRESSION_PARAMETER = "disable-texture-compression"; OvenCLIApplication::OvenCLIApplication(int argc, char* argv[]) : QCoreApplication(argc, argv) @@ -29,7 +32,8 @@ OvenCLIApplication::OvenCLIApplication(int argc, char* argv[]) : parser.addOptions({ { CLI_INPUT_PARAMETER, "Path to file that you would like to bake.", "input" }, { CLI_OUTPUT_PARAMETER, "Path to folder that will be used as output.", "output" }, - { CLI_TYPE_PARAMETER, "Type of asset.", "type" } + { CLI_TYPE_PARAMETER, "Type of asset.", "type" }, + { CLI_DISABLE_TEXTURE_COMPRESSION_PARAMETER, "Disable texture compression." } }); parser.addHelpOption(); @@ -40,6 +44,15 @@ OvenCLIApplication::OvenCLIApplication(int argc, char* argv[]) : QUrl inputUrl(QDir::fromNativeSeparators(parser.value(CLI_INPUT_PARAMETER))); QUrl outputUrl(QDir::fromNativeSeparators(parser.value(CLI_OUTPUT_PARAMETER))); QString type = parser.isSet(CLI_TYPE_PARAMETER) ? parser.value(CLI_TYPE_PARAMETER) : QString::null; + + if (parser.isSet(CLI_DISABLE_TEXTURE_COMPRESSION_PARAMETER)) { + qDebug() << "Disabling texture compression"; + image::setColorTexturesCompressionEnabled(false); + image::setGrayscaleTexturesCompressionEnabled(false); + image::setNormalTexturesCompressionEnabled(false); + image::setCubeTexturesCompressionEnabled(false); + } + QMetaObject::invokeMethod(cli, "bakeFile", Qt::QueuedConnection, Q_ARG(QUrl, inputUrl), Q_ARG(QString, outputUrl.toString()), Q_ARG(QString, type)); } else { From 384851c2893bd57f1819dee3f1bf6101d281b41b Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Wed, 23 May 2018 10:50:51 -0700 Subject: [PATCH 062/300] Add option to oven cli to select texture usage type --- tools/oven/src/BakerCLI.cpp | 42 ++++++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 10 deletions(-) diff --git a/tools/oven/src/BakerCLI.cpp b/tools/oven/src/BakerCLI.cpp index a7b8401269..0db70f6fe4 100644 --- a/tools/oven/src/BakerCLI.cpp +++ b/tools/oven/src/BakerCLI.cpp @@ -16,6 +16,8 @@ #include #include +#include + #include "OvenCLIApplication.h" #include "ModelBakingLoggingCategory.h" #include "FBXBaker.h" @@ -38,17 +40,15 @@ void BakerCLI::bakeFile(QUrl inputUrl, const QString& outputPath, const QString& static const QString MODEL_EXTENSION { "fbx" }; static const QString SCRIPT_EXTENSION { "js" }; - QString extension = type; - - if (extension.isNull()) { - auto url = inputUrl.toDisplayString(); - extension = url.mid(url.lastIndexOf('.')); - } - // check what kind of baker we should be creating - bool isFBX = extension == MODEL_EXTENSION; - bool isScript = extension == SCRIPT_EXTENSION; + bool isFBX = type == MODEL_EXTENSION; + bool isScript = type == SCRIPT_EXTENSION; + // If the type doesn't match the above, we assume we have a texture, and the type specified is the + // texture usage type (albedo, cubemap, normals, etc.) + auto url = inputUrl.toDisplayString(); + auto idx = url.lastIndexOf('.'); + auto extension = idx >= 0 ? url.mid(idx + 1).toLower() : ""; bool isSupportedImage = QImageReader::supportedImageFormats().contains(extension.toLatin1()); _outputPath = outputPath; @@ -65,7 +65,29 @@ void BakerCLI::bakeFile(QUrl inputUrl, const QString& outputPath, const QString& _baker = std::unique_ptr { new JSBaker(inputUrl, outputPath) }; _baker->moveToThread(Oven::instance().getNextWorkerThread()); } else if (isSupportedImage) { - _baker = std::unique_ptr { new TextureBaker(inputUrl, image::TextureUsage::CUBE_TEXTURE, outputPath) }; + static const std::unordered_map STRING_TO_TEXTURE_USAGE_TYPE_MAP { + { "default", image::TextureUsage::DEFAULT_TEXTURE }, + { "strict", image::TextureUsage::STRICT_TEXTURE }, + { "albedo", image::TextureUsage::ALBEDO_TEXTURE }, + { "normal", image::TextureUsage::NORMAL_TEXTURE }, + { "bump", image::TextureUsage::BUMP_TEXTURE }, + { "specular", image::TextureUsage::SPECULAR_TEXTURE }, + { "metallic", image::TextureUsage::METALLIC_TEXTURE }, + { "roughness", image::TextureUsage::ROUGHNESS_TEXTURE }, + { "gloss", image::TextureUsage::GLOSS_TEXTURE }, + { "emissive", image::TextureUsage::EMISSIVE_TEXTURE }, + { "cube", image::TextureUsage::CUBE_TEXTURE }, + { "occlusion", image::TextureUsage::OCCLUSION_TEXTURE }, + { "scattering", image::TextureUsage::SCATTERING_TEXTURE }, + { "lightmap", image::TextureUsage::LIGHTMAP_TEXTURE }, + }; + + auto it = STRING_TO_TEXTURE_USAGE_TYPE_MAP.find(type); + if (it == STRING_TO_TEXTURE_USAGE_TYPE_MAP.end()) { + qCDebug(model_baking) << "Unknown texture usage type:" << type; + QCoreApplication::exit(OVEN_STATUS_CODE_FAIL); + } + _baker = std::unique_ptr { new TextureBaker(inputUrl, it->second, outputPath) }; _baker->moveToThread(Oven::instance().getNextWorkerThread()); } else { qCDebug(model_baking) << "Failed to determine baker type for file" << inputUrl; From 59ca2f99775047523f26aa320f453c456f63af63 Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Wed, 23 May 2018 10:51:12 -0700 Subject: [PATCH 063/300] Fix ResourceManager not properly shutting down thread --- libraries/networking/src/ResourceManager.cpp | 5 +++++ libraries/networking/src/ResourceManager.h | 1 + 2 files changed, 6 insertions(+) diff --git a/libraries/networking/src/ResourceManager.cpp b/libraries/networking/src/ResourceManager.cpp index d06b74b724..6df15129a2 100644 --- a/libraries/networking/src/ResourceManager.cpp +++ b/libraries/networking/src/ResourceManager.cpp @@ -38,6 +38,11 @@ ResourceManager::ResourceManager(bool atpSupportEnabled) : _atpSupportEnabled(at _thread.start(); } +ResourceManager::~ResourceManager() { + _thread.terminate(); + _thread.wait(); +} + void ResourceManager::setUrlPrefixOverride(const QString& prefix, const QString& replacement) { QMutexLocker locker(&_prefixMapLock); if (replacement.isEmpty()) { diff --git a/libraries/networking/src/ResourceManager.h b/libraries/networking/src/ResourceManager.h index 9fc636f5fe..a79222d2d8 100644 --- a/libraries/networking/src/ResourceManager.h +++ b/libraries/networking/src/ResourceManager.h @@ -28,6 +28,7 @@ class ResourceManager: public QObject, public Dependency { public: ResourceManager(bool atpSupportEnabled = true); + ~ResourceManager(); void setUrlPrefixOverride(const QString& prefix, const QString& replacement); QString normalizeURL(const QString& urlString); From f0570557b24b67aba4906da02104e76ed60fcefe Mon Sep 17 00:00:00 2001 From: Simon Walton Date: Thu, 24 May 2018 10:56:17 -0700 Subject: [PATCH 064/300] Assign a Win 'appUserModelId' and use it for toaster popups (notifications) --- INSTALL.md | 1 + cmake/templates/NSIS.template.in | 2 ++ server-console/src/main.js | 1 + 3 files changed, 4 insertions(+) diff --git a/INSTALL.md b/INSTALL.md index 90e8712b19..00be5f2f8f 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -21,6 +21,7 @@ To produce an executable installer on Windows, the following are required: - [NSISpcre Plug-in for Nullsoft](http://nsis.sourceforge.net/NSISpcre_plug-in) - 1.0 - [nsisSlideshow Plug-in for Nullsoft](http://nsis.sourceforge.net/NsisSlideshow_plug-in) - 1.7 - [Nsisunz plug-in for Nullsoft](http://nsis.sourceforge.net/Nsisunz_plug-in) +- [ApplicationID plug-in for Nullsoft](http://nsis.sourceforge.net/ApplicationID_plug-in) - 1.0 Run the `package` target to create an executable installer using the Nullsoft Scriptable Install System. diff --git a/cmake/templates/NSIS.template.in b/cmake/templates/NSIS.template.in index fc9b9ab03d..ff80c21588 100644 --- a/cmake/templates/NSIS.template.in +++ b/cmake/templates/NSIS.template.in @@ -1173,6 +1173,8 @@ Section "-Core installation" !insertmacro MUI_STARTMENU_WRITE_END + ApplicationID::Set "$SMPROGRAMS\$STARTMENU_FOLDER\@INTERFACE_SHORTCUT_NAME@.lnk" "com.highfidelity.interface" + @CPACK_NSIS_EXTRA_INSTALL_COMMANDS@ ; see if we have a campaign that we might need to grab special content for diff --git a/server-console/src/main.js b/server-console/src/main.js index b08db6222f..ab35529b48 100644 --- a/server-console/src/main.js +++ b/server-console/src/main.js @@ -878,6 +878,7 @@ function onContentLoaded() { title: 'An update is available!', message: 'High Fidelity version ' + latestVersion + ' is available', wait: true, + appID: 'com.highfidelity.interface', url: url }); hasShownUpdateNotification = true; From 50baccdb630df6a10dc7fe16af3efc2710848890 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Wed, 9 May 2018 17:59:14 -0700 Subject: [PATCH 065/300] add the short SHA to master and PR build version --- cmake/macros/SetPackagingParameters.cmake | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/cmake/macros/SetPackagingParameters.cmake b/cmake/macros/SetPackagingParameters.cmake index 36e5a065df..7b393bc5fe 100644 --- a/cmake/macros/SetPackagingParameters.cmake +++ b/cmake/macros/SetPackagingParameters.cmake @@ -32,6 +32,16 @@ macro(SET_PACKAGING_PARAMETERS) set(CLIENT_COMPONENT client) set(SERVER_COMPONENT server) + # grab the abbreviated commit SHA + # since is added to the build version for PR builds and master/nightly builds + execute_process( + COMMAND git log -1 --format=%h + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE GIT_COMMIT_HASH + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_QUIET + ) + if (RELEASE_TYPE STREQUAL "PRODUCTION") set(DEPLOY_PACKAGE TRUE) set(PRODUCTION_BUILD 1) @@ -50,12 +60,15 @@ macro(SET_PACKAGING_PARAMETERS) message(STATUS "The RELEASE_TYPE is PRODUCTION and the BUILD_BRANCH is stable...") set(BUILD_GLOBAL_SERVICES "STABLE") set(USE_STABLE_GLOBAL_SERVICES 1) - endif() + else () + # assume this is a master/nightly build and append the short commit SHA + set(BUILD_VERSION "${BUILD_VERSION}-${GIT_COMMIT_HASH}") + endif () elseif (RELEASE_TYPE STREQUAL "PR") set(DEPLOY_PACKAGE TRUE) set(PR_BUILD 1) - set(BUILD_VERSION "PR${RELEASE_NUMBER}") + set(BUILD_VERSION "PR${RELEASE_NUMBER}-${GIT_COMMIT_HASH}") set(BUILD_ORGANIZATION "High Fidelity - ${BUILD_VERSION}") set(INTERFACE_BUNDLE_NAME "Interface") set(INTERFACE_ICON_PREFIX "interface-beta") From c3595a3216b67b54e60bd2e6e61390e6fbb62e25 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Wed, 9 May 2018 18:26:35 -0700 Subject: [PATCH 066/300] pass STABLE_BUILD instead of BUILD_BRANCH through cmake --- android/app/build.gradle | 3 +-- android/build.gradle | 4 +-- cmake/macros/SetPackagingParameters.cmake | 17 ++++++++----- cmake/templates/BuildInfo.h.in | 2 +- domain-server/src/DomainServer.cpp | 6 ++--- interface/src/Application.cpp | 30 +++++++++++------------ 6 files changed, 33 insertions(+), 29 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 70f7c622a0..c8ea89dec0 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -22,7 +22,7 @@ android { '-DHIFI_ANDROID_PRECOMPILED=' + HIFI_ANDROID_PRECOMPILED, '-DRELEASE_NUMBER=' + RELEASE_NUMBER, '-DRELEASE_TYPE=' + RELEASE_TYPE, - '-DBUILD_BRANCH=' + BUILD_BRANCH, + '-DSTABLE_BUILD=' + STABLE_BUILD, '-DDISABLE_QML=OFF', '-DDISABLE_KTX_CACHE=OFF' } @@ -116,4 +116,3 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') } - diff --git a/android/build.gradle b/android/build.gradle index 74047dccab..99ed44e0dc 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -37,7 +37,7 @@ task clean(type: Delete) { ext { RELEASE_NUMBER = project.hasProperty('RELEASE_NUMBER') ? project.getProperty('RELEASE_NUMBER') : '0' RELEASE_TYPE = project.hasProperty('RELEASE_TYPE') ? project.getProperty('RELEASE_TYPE') : 'DEV' - BUILD_BRANCH = project.hasProperty('BUILD_BRANCH') ? project.getProperty('BUILD_BRANCH') : '' + STABLE_BUILD = project.hasProperty('STABLE_BUILD') ? project.getProperty('STABLE_BUILD') : '0' EXEC_SUFFIX = Os.isFamily(Os.FAMILY_WINDOWS) ? '.exe' : '' QT5_DEPS = [ 'Qt5Concurrent', @@ -536,7 +536,7 @@ task cleanDependencies(type: Delete) { -// FIXME this code is prototyping the desired functionality for doing build time binary dependency resolution. +// FIXME this code is prototyping the desired functionality for doing build time binary dependency resolution. // See the comment on the qtBundle task above /* // FIXME derive the path from the gradle environment diff --git a/cmake/macros/SetPackagingParameters.cmake b/cmake/macros/SetPackagingParameters.cmake index 7b393bc5fe..104dc5b68f 100644 --- a/cmake/macros/SetPackagingParameters.cmake +++ b/cmake/macros/SetPackagingParameters.cmake @@ -20,11 +20,8 @@ macro(SET_PACKAGING_PARAMETERS) set_from_env(RELEASE_TYPE RELEASE_TYPE "DEV") set_from_env(RELEASE_NUMBER RELEASE_NUMBER "") - set_from_env(BUILD_BRANCH BRANCH "") - string(TOLOWER "${BUILD_BRANCH}" BUILD_BRANCH) + set_from_env(STABLE_BUILD STABLE_BUILD 0) - message(STATUS "The BUILD_BRANCH variable is: ${BUILD_BRANCH}") - message(STATUS "The BRANCH environment variable is: $ENV{BRANCH}") message(STATUS "The RELEASE_TYPE variable is: ${RELEASE_TYPE}") # setup component categories for installer @@ -56,8 +53,8 @@ macro(SET_PACKAGING_PARAMETERS) # if the build is a PRODUCTION_BUILD from the "stable" branch # then use the STABLE gobal services - if (BUILD_BRANCH STREQUAL "stable") - message(STATUS "The RELEASE_TYPE is PRODUCTION and the BUILD_BRANCH is stable...") + if (STABLE_BUILD) + message(STATUS "The RELEASE_TYPE is PRODUCTION and STABLE_BUILD is 1") set(BUILD_GLOBAL_SERVICES "STABLE") set(USE_STABLE_GLOBAL_SERVICES 1) else () @@ -87,6 +84,14 @@ macro(SET_PACKAGING_PARAMETERS) endif () string(TIMESTAMP BUILD_TIME "%d/%m/%Y") + + # if STABLE_BUILD is 1, PRODUCTION_BUILD must be 1 and + # DEV_BUILD and PR_BUILD must be 0 + if (STABLE_BUILD) + if (NOT PRODUCTION_BUILD OR PR_BUILD OR DEV_BUILD) + message(FATAL_ERROR "Cannot produce STABLE_BUILD without PRODUCTION_BUILD") + endif () + endif () if (DEPLOY_PACKAGE) # for deployed packages always grab the serverless content diff --git a/cmake/templates/BuildInfo.h.in b/cmake/templates/BuildInfo.h.in index 904d17293b..8618578874 100644 --- a/cmake/templates/BuildInfo.h.in +++ b/cmake/templates/BuildInfo.h.in @@ -24,7 +24,7 @@ namespace BuildInfo { const QString MODIFIED_ORGANIZATION = "@BUILD_ORGANIZATION@"; const QString ORGANIZATION_DOMAIN = "highfidelity.io"; const QString VERSION = "@BUILD_VERSION@"; - const QString BUILD_BRANCH = "@BUILD_BRANCH@"; + const QString STABLE_BUILD = "@STABLE_BUILD@"; const QString BUILD_GLOBAL_SERVICES = "@BUILD_GLOBAL_SERVICES@"; const QString BUILD_TIME = "@BUILD_TIME@"; } diff --git a/domain-server/src/DomainServer.cpp b/domain-server/src/DomainServer.cpp index baeac043e4..e2936199dc 100644 --- a/domain-server/src/DomainServer.cpp +++ b/domain-server/src/DomainServer.cpp @@ -177,7 +177,7 @@ DomainServer::DomainServer(int argc, char* argv[]) : qDebug() << "[VERSION] Build sequence:" << qPrintable(applicationVersion()); qDebug() << "[VERSION] MODIFIED_ORGANIZATION:" << BuildInfo::MODIFIED_ORGANIZATION; qDebug() << "[VERSION] VERSION:" << BuildInfo::VERSION; - qDebug() << "[VERSION] BUILD_BRANCH:" << BuildInfo::BUILD_BRANCH; + qDebug() << "[VERSION] STABLE_BUILD:" << BuildInfo::STABLE_BUILD; qDebug() << "[VERSION] BUILD_GLOBAL_SERVICES:" << BuildInfo::BUILD_GLOBAL_SERVICES; qDebug() << "[VERSION] We will be using this name to find ICE servers:" << _iceServerAddr; @@ -1114,7 +1114,7 @@ void DomainServer::handleConnectedNode(SharedNodePointer newNode) { } void DomainServer::sendDomainListToNode(const SharedNodePointer& node, const HifiSockAddr &senderSockAddr) { - const int NUM_DOMAIN_LIST_EXTENDED_HEADER_BYTES = NUM_BYTES_RFC4122_UUID + NLPacket::NUM_BYTES_LOCALID + + const int NUM_DOMAIN_LIST_EXTENDED_HEADER_BYTES = NUM_BYTES_RFC4122_UUID + NLPacket::NUM_BYTES_LOCALID + NUM_BYTES_RFC4122_UUID + NLPacket::NUM_BYTES_LOCALID + 4; // setup the extended header for the domain list packets @@ -2676,7 +2676,7 @@ bool DomainServer::isAuthenticatedRequest(HTTPConnection* connection, const QUrl QString settingsPassword = settingsPasswordVariant.isValid() ? settingsPasswordVariant.toString() : ""; QString hexHeaderPassword = headerPassword.isEmpty() ? "" : QCryptographicHash::hash(headerPassword.toUtf8(), QCryptographicHash::Sha256).toHex(); - + if (settingsUsername == headerUsername && hexHeaderPassword == settingsPassword) { return true; } diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 6a102f418b..d158b4b054 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -693,8 +693,8 @@ private: }; /**jsdoc - *

The Controller.Hardware.Application object has properties representing Interface's state. The property - * values are integer IDs, uniquely identifying each output. Read-only. These can be mapped to actions or functions or + *

The Controller.Hardware.Application object has properties representing Interface's state. The property + * values are integer IDs, uniquely identifying each output. Read-only. These can be mapped to actions or functions or * Controller.Standard items in a {@link RouteObject} mapping (e.g., using the {@link RouteObject#when} method). * Each data value is either 1.0 for "true" or 0.0 for "false".

*
@@ -776,7 +776,7 @@ bool setupEssentials(int& argc, char** argv, bool runningMarkerExisted) { static const auto SUPPRESS_SETTINGS_RESET = "--suppress-settings-reset"; bool suppressPrompt = cmdOptionExists(argc, const_cast(argv), SUPPRESS_SETTINGS_RESET); - // Ignore any previous crashes if running from command line with a test script. + // Ignore any previous crashes if running from command line with a test script. bool inTestMode { false }; for (int i = 0; i < argc; ++i) { QString parameter(argv[i]); @@ -1112,7 +1112,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo qCDebug(interfaceapp) << "[VERSION] Build sequence:" << qPrintable(applicationVersion()); qCDebug(interfaceapp) << "[VERSION] MODIFIED_ORGANIZATION:" << BuildInfo::MODIFIED_ORGANIZATION; qCDebug(interfaceapp) << "[VERSION] VERSION:" << BuildInfo::VERSION; - qCDebug(interfaceapp) << "[VERSION] BUILD_BRANCH:" << BuildInfo::BUILD_BRANCH; + qCDebug(interfaceapp) << "[VERSION] STABLE_BUILD:" << BuildInfo::STABLE_BUILD; qCDebug(interfaceapp) << "[VERSION] BUILD_GLOBAL_SERVICES:" << BuildInfo::BUILD_GLOBAL_SERVICES; #if USE_STABLE_GLOBAL_SERVICES qCDebug(interfaceapp) << "[VERSION] We will use STABLE global services."; @@ -1369,11 +1369,11 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo initializeGL(); qCDebug(interfaceapp, "Initialized GL"); - // Initialize the display plugin architecture + // Initialize the display plugin architecture initializeDisplayPlugins(); qCDebug(interfaceapp, "Initialized Display"); - // Create the rendering engine. This can be slow on some machines due to lots of + // Create the rendering engine. This can be slow on some machines due to lots of // GPU pipeline creation. initializeRenderEngine(); qCDebug(interfaceapp, "Initialized Render Engine."); @@ -1417,7 +1417,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo // In practice we shouldn't run across installs that don't have a known installer type. // Client or Client+Server installs should always have the installer.ini next to their // respective interface.exe, and Steam installs will be detected as such. If a user were - // to delete the installer.ini, though, and as an example, we won't know the context of the + // to delete the installer.ini, though, and as an example, we won't know the context of the // original install. constexpr auto INSTALLER_KEY_TYPE = "type"; constexpr auto INSTALLER_KEY_CAMPAIGN = "campaign"; @@ -2182,7 +2182,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo if (testProperty.isValid()) { auto scriptEngines = DependencyManager::get(); const auto testScript = property(hifi::properties::TEST).toUrl(); - + // Set last parameter to exit interface when the test script finishes, if so requested scriptEngines->loadScript(testScript, false, false, false, false, quitWhenFinished); @@ -2399,7 +2399,7 @@ void Application::onAboutToQuit() { } } - // The active display plugin needs to be loaded before the menu system is active, + // The active display plugin needs to be loaded before the menu system is active, // so its persisted explicitly here Setting::Handle{ ACTIVE_DISPLAY_PLUGIN_SETTING_NAME }.set(getActiveDisplayPlugin()->getName()); @@ -2633,7 +2633,7 @@ void Application::initializeGL() { // Create the GPU backend // Requires the window context, because that's what's used in the actual rendering - // and the GPU backend will make things like the VAO which cannot be shared across + // and the GPU backend will make things like the VAO which cannot be shared across // contexts _glWidget->makeCurrent(); gpu::Context::init(); @@ -2656,7 +2656,7 @@ void Application::initializeDisplayPlugins() { auto lastActiveDisplayPluginName = activeDisplayPluginSetting.get(); auto defaultDisplayPlugin = displayPlugins.at(0); - // Once time initialization code + // Once time initialization code DisplayPluginPointer targetDisplayPlugin; foreach(auto displayPlugin, displayPlugins) { displayPlugin->setContext(_gpuContext); @@ -2669,7 +2669,7 @@ void Application::initializeDisplayPlugins() { } // The default display plugin needs to be activated first, otherwise the display plugin thread - // may be launched by an external plugin, which is bad + // may be launched by an external plugin, which is bad setDisplayPlugin(defaultDisplayPlugin); // Now set the desired plugin if it's not the same as the default plugin @@ -5820,7 +5820,7 @@ void Application::update(float deltaTime) { viewIsDifferentEnough = true; } - + // if it's been a while since our last query or the view has significantly changed then send a query, otherwise suppress it static const std::chrono::seconds MIN_PERIOD_BETWEEN_QUERIES { 3 }; auto now = SteadyClock::now(); @@ -7749,7 +7749,7 @@ void Application::sendLambdaEvent(const std::function& f) { } else { LambdaEvent event(f); QCoreApplication::sendEvent(this, &event); - } + } } void Application::initPlugins(const QStringList& arguments) { @@ -7972,7 +7972,7 @@ void Application::setDisplayPlugin(DisplayPluginPointer newDisplayPlugin) { } // FIXME don't have the application directly set the state of the UI, - // instead emit a signal that the display plugin is changing and let + // instead emit a signal that the display plugin is changing and let // the desktop lock itself. Reduces coupling between the UI and display // plugins auto offscreenUi = DependencyManager::get(); From 55bf70991bd7dab97acda33836b9bb600b6a82b7 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Wed, 9 May 2018 18:34:42 -0700 Subject: [PATCH 067/300] cleanup wording and formatting for version in window title --- interface/src/Application.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index d158b4b054..4239cb2f2c 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -6188,7 +6188,8 @@ void Application::updateWindowTitle() const { auto nodeList = DependencyManager::get(); auto accountManager = DependencyManager::get(); - QString buildVersion = " (build " + applicationVersion() + ")"; + QString buildVersion = " - " + + (BuildInfo::STABLE_BUILD == "1" ? QString("Version") : QString("Build")) + " " + applicationVersion(); QString loginStatus = accountManager->isLoggedIn() ? "" : " (NOT LOGGED IN)"; From 7c852916b927f0fdaa9b31394d44541bf07c8c9d Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Wed, 9 May 2018 18:43:51 -0700 Subject: [PATCH 068/300] fail master/PR build without short SHA --- cmake/macros/SetPackagingParameters.cmake | 30 +++++++++++------------ 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/cmake/macros/SetPackagingParameters.cmake b/cmake/macros/SetPackagingParameters.cmake index 104dc5b68f..91d1e1fa8f 100644 --- a/cmake/macros/SetPackagingParameters.cmake +++ b/cmake/macros/SetPackagingParameters.cmake @@ -29,16 +29,6 @@ macro(SET_PACKAGING_PARAMETERS) set(CLIENT_COMPONENT client) set(SERVER_COMPONENT server) - # grab the abbreviated commit SHA - # since is added to the build version for PR builds and master/nightly builds - execute_process( - COMMAND git log -1 --format=%h - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - OUTPUT_VARIABLE GIT_COMMIT_HASH - OUTPUT_STRIP_TRAILING_WHITESPACE - ERROR_QUIET - ) - if (RELEASE_TYPE STREQUAL "PRODUCTION") set(DEPLOY_PACKAGE TRUE) set(PRODUCTION_BUILD 1) @@ -57,16 +47,13 @@ macro(SET_PACKAGING_PARAMETERS) message(STATUS "The RELEASE_TYPE is PRODUCTION and STABLE_BUILD is 1") set(BUILD_GLOBAL_SERVICES "STABLE") set(USE_STABLE_GLOBAL_SERVICES 1) - else () - # assume this is a master/nightly build and append the short commit SHA - set(BUILD_VERSION "${BUILD_VERSION}-${GIT_COMMIT_HASH}") endif () elseif (RELEASE_TYPE STREQUAL "PR") set(DEPLOY_PACKAGE TRUE) set(PR_BUILD 1) - set(BUILD_VERSION "PR${RELEASE_NUMBER}-${GIT_COMMIT_HASH}") - set(BUILD_ORGANIZATION "High Fidelity - ${BUILD_VERSION}") + set(BUILD_VERSION "PR${RELEASE_NUMBER}") + set(BUILD_ORGANIZATION "High Fidelity - PR${RELEASE_NUMBER}") set(INTERFACE_BUNDLE_NAME "Interface") set(INTERFACE_ICON_PREFIX "interface-beta") @@ -85,6 +72,19 @@ macro(SET_PACKAGING_PARAMETERS) string(TIMESTAMP BUILD_TIME "%d/%m/%Y") + if (PRODUCTION_BUILD OR PR_BUILD AND NOT STABLE_BUILD) + # append the abbreviated commit SHA to the build version + # since this is a PR build or master/nightly builds + execute_process( + COMMAND git log -1 --format=%h + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE GIT_COMMIT_HASH + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + + set(BUILD_VERSION "${BUILD_VERSION}-${GIT_COMMIT_HASH}") + endif () + # if STABLE_BUILD is 1, PRODUCTION_BUILD must be 1 and # DEV_BUILD and PR_BUILD must be 0 if (STABLE_BUILD) From 45b8c1248cda38665eb1885f3b528a7b5fd62a4e Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 10 May 2018 15:35:36 -0700 Subject: [PATCH 069/300] disable version checking for nightly builds --- libraries/auto-updater/src/AutoUpdater.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libraries/auto-updater/src/AutoUpdater.cpp b/libraries/auto-updater/src/AutoUpdater.cpp index e58ac067a6..8e89edb7a7 100644 --- a/libraries/auto-updater/src/AutoUpdater.cpp +++ b/libraries/auto-updater/src/AutoUpdater.cpp @@ -11,6 +11,8 @@ #include "AutoUpdater.h" +#include + #include #include #include @@ -157,10 +159,8 @@ void AutoUpdater::parseLatestVersionData() { } void AutoUpdater::checkVersionAndNotify() { - if (QCoreApplication::applicationVersion() == "dev" || - QCoreApplication::applicationVersion().contains("PR") || - _builds.empty()) { - // No version checking is required in dev builds or when no build + if (BuildInfo::STABLE_BUILD == "0" || _builds.empty()) { + // No version checking is required in nightly/PR/dev builds or when no build // data was found for the platform return; } @@ -196,4 +196,4 @@ void AutoUpdater::appendBuildData(int versionNumber, thisBuildDetails.insert("pullRequestNumber", pullRequestNumber); _builds.insert(versionNumber, thisBuildDetails); -} \ No newline at end of file +} From 2cb7c9cc62ee4e9941cf9d512b2078629fd6720b Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 10 May 2018 16:11:50 -0700 Subject: [PATCH 070/300] add a BUILD_TYPE to BuildInfo, fix conditional --- cmake/macros/SetPackagingParameters.cmake | 23 +++++++++++++--------- cmake/templates/BuildInfo.h.in | 22 +++++++++++++++++++-- domain-server/src/DomainServer.cpp | 2 +- interface/src/Application.cpp | 6 ++++-- interface/src/Crashpad.cpp | 3 +++ libraries/auto-updater/src/AutoUpdater.cpp | 2 +- 6 files changed, 43 insertions(+), 15 deletions(-) diff --git a/cmake/macros/SetPackagingParameters.cmake b/cmake/macros/SetPackagingParameters.cmake index 91d1e1fa8f..ed5d3cd1fe 100644 --- a/cmake/macros/SetPackagingParameters.cmake +++ b/cmake/macros/SetPackagingParameters.cmake @@ -17,6 +17,7 @@ macro(SET_PACKAGING_PARAMETERS) set(DEV_BUILD 0) set(BUILD_GLOBAL_SERVICES "DEVELOPMENT") set(USE_STABLE_GLOBAL_SERVICES 0) + set(BUILD_NUMBER 0) set_from_env(RELEASE_TYPE RELEASE_TYPE "DEV") set_from_env(RELEASE_NUMBER RELEASE_NUMBER "") @@ -71,8 +72,16 @@ macro(SET_PACKAGING_PARAMETERS) endif () string(TIMESTAMP BUILD_TIME "%d/%m/%Y") - - if (PRODUCTION_BUILD OR PR_BUILD AND NOT STABLE_BUILD) + + # if STABLE_BUILD is 1, PRODUCTION_BUILD must be 1 and + # DEV_BUILD and PR_BUILD must be 0 + if (STABLE_BUILD) + if ((NOT PRODUCTION_BUILD) OR PR_BUILD OR DEV_BUILD) + message(FATAL_ERROR "Cannot produce STABLE_BUILD without PRODUCTION_BUILD") + endif () + endif () + + if ((PRODUCTION_BUILD OR PR_BUILD) AND NOT STABLE_BUILD) # append the abbreviated commit SHA to the build version # since this is a PR build or master/nightly builds execute_process( @@ -83,14 +92,10 @@ macro(SET_PACKAGING_PARAMETERS) ) set(BUILD_VERSION "${BUILD_VERSION}-${GIT_COMMIT_HASH}") - endif () - # if STABLE_BUILD is 1, PRODUCTION_BUILD must be 1 and - # DEV_BUILD and PR_BUILD must be 0 - if (STABLE_BUILD) - if (NOT PRODUCTION_BUILD OR PR_BUILD OR DEV_BUILD) - message(FATAL_ERROR "Cannot produce STABLE_BUILD without PRODUCTION_BUILD") - endif () + # pass along a release number without the SHA in case somebody + # wants to compare master or PR builds as integers + set(BUILD_NUMBER ${RELEASE_NUMBER}) endif () if (DEPLOY_PACKAGE) diff --git a/cmake/templates/BuildInfo.h.in b/cmake/templates/BuildInfo.h.in index 8618578874..9fc9d9be81 100644 --- a/cmake/templates/BuildInfo.h.in +++ b/cmake/templates/BuildInfo.h.in @@ -24,8 +24,26 @@ namespace BuildInfo { const QString MODIFIED_ORGANIZATION = "@BUILD_ORGANIZATION@"; const QString ORGANIZATION_DOMAIN = "highfidelity.io"; const QString VERSION = "@BUILD_VERSION@"; - const QString STABLE_BUILD = "@STABLE_BUILD@"; + const QString BUILD_NUMBER = "@BUILD_NUMBER@"; const QString BUILD_GLOBAL_SERVICES = "@BUILD_GLOBAL_SERVICES@"; const QString BUILD_TIME = "@BUILD_TIME@"; -} + enum BuildType { + Dev, + PR, + Master, + Stable + }; + +#if defined(PR_BUILD) + const BuildType BUILD_TYPE = PR; + const QString BUILD_TYPE_STRING = "pr"; +#elif defined(PRODUCTION_BUILD) + const BuildType BUILD_TYPE = @STABLE_BUILD@ ? Stable : Master; + const QString BUILD_TYPE_STRING = @STABLE_BUILD@ ? "stable" : "master"; +#else + const BuildType BUILD_TYPE = Dev; + const QString BUILD_TYPE_STRING = "dev"; +#endif + +} diff --git a/domain-server/src/DomainServer.cpp b/domain-server/src/DomainServer.cpp index e2936199dc..dcf1218b20 100644 --- a/domain-server/src/DomainServer.cpp +++ b/domain-server/src/DomainServer.cpp @@ -177,7 +177,7 @@ DomainServer::DomainServer(int argc, char* argv[]) : qDebug() << "[VERSION] Build sequence:" << qPrintable(applicationVersion()); qDebug() << "[VERSION] MODIFIED_ORGANIZATION:" << BuildInfo::MODIFIED_ORGANIZATION; qDebug() << "[VERSION] VERSION:" << BuildInfo::VERSION; - qDebug() << "[VERSION] STABLE_BUILD:" << BuildInfo::STABLE_BUILD; + qDebug() << "[VERSION] BUILD_TYPE_STRING:" << BuildInfo::BUILD_TYPE_STRING; qDebug() << "[VERSION] BUILD_GLOBAL_SERVICES:" << BuildInfo::BUILD_GLOBAL_SERVICES; qDebug() << "[VERSION] We will be using this name to find ICE servers:" << _iceServerAddr; diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 4239cb2f2c..ddbd4b0188 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -1112,7 +1112,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo qCDebug(interfaceapp) << "[VERSION] Build sequence:" << qPrintable(applicationVersion()); qCDebug(interfaceapp) << "[VERSION] MODIFIED_ORGANIZATION:" << BuildInfo::MODIFIED_ORGANIZATION; qCDebug(interfaceapp) << "[VERSION] VERSION:" << BuildInfo::VERSION; - qCDebug(interfaceapp) << "[VERSION] STABLE_BUILD:" << BuildInfo::STABLE_BUILD; + qCDebug(interfaceapp) << "[VERSION] BUILD_TYPE_STRING:" << BuildInfo::BUILD_TYPE_STRING; qCDebug(interfaceapp) << "[VERSION] BUILD_GLOBAL_SERVICES:" << BuildInfo::BUILD_GLOBAL_SERVICES; #if USE_STABLE_GLOBAL_SERVICES qCDebug(interfaceapp) << "[VERSION] We will use STABLE global services."; @@ -1465,6 +1465,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo { "tester", QProcessEnvironment::systemEnvironment().contains(TESTER) }, { "installer_campaign", installerCampaign }, { "installer_type", installerType }, + { "build_type", BuildInfo::BUILD_TYPE_STRING }, { "previousSessionCrashed", _previousSessionCrashed }, { "previousSessionRuntime", sessionRunTime.get() }, { "cpu_architecture", QSysInfo::currentCpuArchitecture() }, @@ -6189,7 +6190,8 @@ void Application::updateWindowTitle() const { auto accountManager = DependencyManager::get(); QString buildVersion = " - " - + (BuildInfo::STABLE_BUILD == "1" ? QString("Version") : QString("Build")) + " " + applicationVersion(); + + (BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Stable ? QString("Version") : QString("Build")) + + " " + applicationVersion(); QString loginStatus = accountManager->isLoggedIn() ? "" : " (NOT LOGGED IN)"; diff --git a/interface/src/Crashpad.cpp b/interface/src/Crashpad.cpp index 45f1d0778f..88651925d5 100644 --- a/interface/src/Crashpad.cpp +++ b/interface/src/Crashpad.cpp @@ -18,6 +18,7 @@ #if HAS_CRASHPAD #include +#include #include #include @@ -69,6 +70,8 @@ bool startCrashHandler() { annotations["token"] = BACKTRACE_TOKEN; annotations["format"] = "minidump"; annotations["version"] = BuildInfo::VERSION.toStdString(); + annotations["build_number"] = BuildInfo::BUILD_NUMBER.toStdString(); + annotations["build_type"] = BuildInfo::BUILD_TYPE_STRING.toStdString(); arguments.push_back("--no-rate-limit"); diff --git a/libraries/auto-updater/src/AutoUpdater.cpp b/libraries/auto-updater/src/AutoUpdater.cpp index 8e89edb7a7..6749cd9e10 100644 --- a/libraries/auto-updater/src/AutoUpdater.cpp +++ b/libraries/auto-updater/src/AutoUpdater.cpp @@ -159,7 +159,7 @@ void AutoUpdater::parseLatestVersionData() { } void AutoUpdater::checkVersionAndNotify() { - if (BuildInfo::STABLE_BUILD == "0" || _builds.empty()) { + if (BuildInfo::BUILD_TYPE != BuildInfo::BuildType::Stable || _builds.empty()) { // No version checking is required in nightly/PR/dev builds or when no build // data was found for the platform return; From 2c9648daaf2ab2692203fff170637d694c5220ac Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Fri, 11 May 2018 17:01:51 -0700 Subject: [PATCH 071/300] grab correct SHA for PR_BUILD, fatally error if not found --- cmake/macros/SetPackagingParameters.cmake | 26 +++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/cmake/macros/SetPackagingParameters.cmake b/cmake/macros/SetPackagingParameters.cmake index ed5d3cd1fe..c589d8efff 100644 --- a/cmake/macros/SetPackagingParameters.cmake +++ b/cmake/macros/SetPackagingParameters.cmake @@ -84,13 +84,35 @@ macro(SET_PACKAGING_PARAMETERS) if ((PRODUCTION_BUILD OR PR_BUILD) AND NOT STABLE_BUILD) # append the abbreviated commit SHA to the build version # since this is a PR build or master/nightly builds + + # for PR_BUILDS, we need to grab the abbreviated SHA + # for the second parent of HEAD (not HEAD) since that is the + # SHA of the commit merged to master for the build + if (PR_BUILD) + set(_GIT_LOG_FORMAT "%p") + else () + set(_GIT_LOG_FORMAT "%h") + endif () + execute_process( - COMMAND git log -1 --format=%h + COMMAND git log -1 --format=${_GIT_LOG_FORMAT} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - OUTPUT_VARIABLE GIT_COMMIT_HASH + OUTPUT_VARIABLE _GIT_LOG_OUTPUT + ERROR_VARIABLE _GIT_LOG_ERROR OUTPUT_STRIP_TRAILING_WHITESPACE ) + if (PR_BUILD) + separate_arguments(_COMMIT_PARENTS UNIX_COMMAND ${_GIT_LOG_OUTPUT}) + list(GET _COMMIT_PARENTS 1 GIT_COMMIT_HASH) + else () + set(GIT_COMMIT_HASH _GIT_LOG_OUTPUT) + endif () + + if (_GIT_LOG_ERROR OR NOT GIT_COMMIT_HASH) + message(FATAL_ERROR "Could not retreive abbreviated SHA for PR or production master build") + endif () + set(BUILD_VERSION "${BUILD_VERSION}-${GIT_COMMIT_HASH}") # pass along a release number without the SHA in case somebody From ab293376fd421fd9996d18aad7a3a76b7ea31aee Mon Sep 17 00:00:00 2001 From: Cristian Duarte Date: Thu, 24 May 2018 18:00:22 -0300 Subject: [PATCH 072/300] Android - fix crash when double clicking a domain --- .../hifiinterface/fragment/HomeFragment.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/android/app/src/main/java/io/highfidelity/hifiinterface/fragment/HomeFragment.java b/android/app/src/main/java/io/highfidelity/hifiinterface/fragment/HomeFragment.java index e05b25f3c3..b98849d051 100644 --- a/android/app/src/main/java/io/highfidelity/hifiinterface/fragment/HomeFragment.java +++ b/android/app/src/main/java/io/highfidelity/hifiinterface/fragment/HomeFragment.java @@ -64,7 +64,11 @@ public class HomeFragment extends Fragment { mDomainsView.setLayoutManager(gridLayoutMgr); mDomainAdapter = new DomainAdapter(getContext(), HifiUtils.getInstance().protocolVersionSignature(), nativeGetLastLocation()); mDomainAdapter.setClickListener((view, position, domain) -> { - new Handler(getActivity().getMainLooper()).postDelayed(() -> mListener.onSelectedDomain(domain.url), 400); // a delay so the ripple effect can be seen + new Handler(getActivity().getMainLooper()).postDelayed(() -> { + if (mListener != null) { + mListener.onSelectedDomain(domain.url); + } + }, 400); // a delay so the ripple effect can be seen }); mDomainAdapter.setListener(new DomainAdapter.AdapterListener() { @Override @@ -116,7 +120,9 @@ public class HomeFragment extends Fragment { if (!urlString.trim().isEmpty()) { urlString = HifiUtils.getInstance().sanitizeHifiUrl(urlString); } - mListener.onSelectedDomain(urlString); + if (mListener != null) { + mListener.onSelectedDomain(urlString); + } return true; } return false; From 235971f8bfd72b83cbefedb691d32b6028d571c5 Mon Sep 17 00:00:00 2001 From: howard-stearns Date: Thu, 24 May 2018 15:23:45 -0700 Subject: [PATCH 073/300] checkpoint --- .../common/sendAsset/ConnectionItem.qml | 2 +- .../commerce/common/sendAsset/SendAsset.qml | 31 +-- .../qml/hifi/commerce/wallet/Wallet.qml | 21 ++ .../qml/hifi/commerce/wallet/WalletHome.qml | 63 ++--- .../qml/hifi/models/PSFListModel.qml | 243 ++++++------------ scripts/system/commerce/wallet.js | 3 + scripts/system/marketplaces/marketplaces.js | 3 + 7 files changed, 144 insertions(+), 222 deletions(-) diff --git a/interface/resources/qml/hifi/commerce/common/sendAsset/ConnectionItem.qml b/interface/resources/qml/hifi/commerce/common/sendAsset/ConnectionItem.qml index 66a9f9a822..41eacd68d5 100644 --- a/interface/resources/qml/hifi/commerce/common/sendAsset/ConnectionItem.qml +++ b/interface/resources/qml/hifi/commerce/common/sendAsset/ConnectionItem.qml @@ -44,7 +44,7 @@ Item { Item { id: avatarImage; - visible: profileUrl !== "" && userName !== ""; + visible: profilePicUrl !== "" && userName !== ""; // Size anchors.verticalCenter: parent.verticalCenter; anchors.left: parent.left; diff --git a/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml b/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml index c7c72e5f7c..403dde0713 100644 --- a/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml +++ b/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml @@ -19,6 +19,7 @@ import "../../../../styles-uit" import "../../../../controls-uit" as HifiControlsUit import "../../../../controls" as HifiControls import "../" as HifiCommerceCommon +import "../../../models" as HifiModels Item { HifiConstants { id: hifi; } @@ -118,9 +119,7 @@ Item { if (root.currentActiveView === 'chooseRecipientConnection') { // Refresh connections model - connectionsLoading.visible = false; - connectionsLoading.visible = true; - sendSignalToParent({method: 'refreshConnections'}); + connectionsModel.getFirstPage(); } else if (root.currentActiveView === 'sendAssetHome') { Commerce.balance(); } else if (root.currentActiveView === 'chooseRecipientNearby') { @@ -392,11 +391,15 @@ Item { hoverEnabled: true; } - ListModel { + HifiModels.PSFListModel { id: connectionsModel; - } - ListModel { - id: filteredConnectionsModel; + http: root.parent; // Misuse of "root" in this file! + endpoint: "/api/v1/users?per_page=400&filter=connections"; // FIXME per_page + processPage: function (data) { + console.log("HRS FIXME processPage", JSON.stringify(data)); + return data.users; + //buildFilteredConnectionsModel(); + }; } Rectangle { @@ -495,6 +498,7 @@ Item { AnimatedImage { id: connectionsLoading; + visible: !connectionsModel.retrievedAtLeastOnePage; source: "../../../../../icons/profilePicLoading.gif" width: 120; height: width; @@ -515,14 +519,14 @@ Item { } visible: !connectionsLoading.visible; clip: true; - model: filteredConnectionsModel; + model: connectionsModel.model; snapMode: ListView.SnapToItem; // Anchors anchors.fill: parent; delegate: ConnectionItem { isSelected: connectionsList.currentIndex === index; - userName: model.userName; - profilePicUrl: model.profileUrl; + userName: model.username; + profilePicUrl: model.images.thumbnail; anchors.topMargin: 6; anchors.bottomMargin: 6; @@ -1806,13 +1810,6 @@ Item { // FUNCTION DEFINITIONS START // - function updateConnections(connections) { - connectionsModel.clear(); - connectionsModel.append(connections); - buildFilteredConnectionsModel(); - connectionsLoading.visible = false; - } - function buildFilteredConnectionsModel() { filteredConnectionsModel.clear(); for (var i = 0; i < connectionsModel.count; i++) { diff --git a/interface/resources/qml/hifi/commerce/wallet/Wallet.qml b/interface/resources/qml/hifi/commerce/wallet/Wallet.qml index 86700f702e..781420f2b2 100644 --- a/interface/resources/qml/hifi/commerce/wallet/Wallet.qml +++ b/interface/resources/qml/hifi/commerce/wallet/Wallet.qml @@ -768,11 +768,32 @@ Rectangle { case 'updateSelectedRecipientUsername': sendMoney.fromScript(message); break; + case 'http.response': + handleHttpResponse(message); + break; default: console.log('Unrecognized message from wallet.js:', JSON.stringify(message)); } } signal sendToScript(var message); + property var httpCalls: ({}); + property var httpCounter: 0; + function request(options, callback) { + console.debug('HRS FIXME Wallet request', JSON.stringify(options)); + httpCalls[httpCounter] = callback; + var message = {method: 'http.request', params: options, id: httpCounter++, jsonrpc: "2.0"}; + sendToScript(message); + } + function handleHttpResponse(message) { + var callback = httpCalls[message.id]; // FIXME: as different top level tablet apps gets loaded, the id repeats. We should drop old app callbacks without warning. + if (!callback) { + console.warn('No callback for', JSON.stringify(message)); + return; + } + delete httpCalls[message.id]; + console.log('HRS FIXME QML handling of', JSON.stringify(message)); + callback(message.error, message.response); + } // generateUUID() taken from: // https://stackoverflow.com/a/8809472 diff --git a/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml b/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml index 76a963f63f..efd51bfdf3 100644 --- a/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml +++ b/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml @@ -24,12 +24,9 @@ Item { HifiConstants { id: hifi; } id: root; - property bool initialResultReceived: false; - property int pendingCount: 0; onVisibleChanged: { if (visible) { - transactionHistoryModel.clear(); Commerce.balance(); transactionHistoryModel.getFirstPage(); Commerce.getAvailableUpdates(); @@ -46,7 +43,7 @@ Item { } onHistoryResult : { - transactionHistoryModel.pageRetrieved(result); + transactionHistoryModel.handlePage(null, result); } onAvailableUpdatesResult: { @@ -61,7 +58,7 @@ Item { Connections { target: GlobalServices onMyUsernameChanged: { - transactionHistoryModel.clear(); + transactionHistoryModel.resetModel(); usernameText.text = Account.username; } } @@ -150,8 +147,7 @@ Item { if (transactionHistory.atYBeginning) { console.log("Refreshing 1st Page of Recent Activity..."); Commerce.balance(); - transactionHistoryModel.currentPageToRetrieve = 1; - transactionHistoryModel.getPage(); + transactionHistoryModel.getFirstPage(); } } } @@ -218,22 +214,34 @@ Item { listModelName: "transaction history"; itemsPerPage: 100; - getPage: function() { - transactionHistoryModel.requestPending = true; + getPage: function () { + console.log('HRS FIXME WalletHome getPage', transactionHistoryModel.currentPageToRetrieve, transactionHistoryModel.itemsPerPage); Commerce.history(transactionHistoryModel.currentPageToRetrieve, transactionHistoryModel.itemsPerPage); } - pageRetrieved: function(result) { - transactionHistoryModel.processResult(result.status, result.data.history); - - if (!transactionHistoryModel.noMoreDataToRetrieve) { - calculatePendingAndInvalidated(); + processPage: function (data) { + console.log('HRS FIXME WalletHome processPage', JSON.stringify(data)); + var result, pending; + if (transactionHistoryModel.currentPageToRetrieve == 1) { + pending = {transaction_type: "pendingCount", count: 0}; + result = [pending]; + } else { + pending = transactionHistoryModel.get(0); + result = []; } + data.history.forEach(function (item) { + if (item.status === 'pending') { + pending.count++; + } else { + result = result.concat(item); + } + }); // Only auto-refresh if the user hasn't scrolled // and there is more data to grab - if (transactionHistory.atYBeginning && !transactionHistoryModel.noMoreDataToRetrieve) { + if (transactionHistory.atYBeginning && data.history.length && transactionHistoryModel.currentPageToRetrieve >= 0) { refreshTimer.start(); } + return result; } } Item { @@ -243,8 +251,8 @@ Item { anchors.left: parent.left; anchors.right: parent.right; - Item { - visible: transactionHistoryModel.count === 0 && transactionHistoryModel.initialResultReceived; + Item { // On empty history. We don't want to flash and then replace, so don't show until we know we're zero. + visible: transactionHistoryModel.count === 0 && transactionHistoryModel.currentPageToRetrieve < 0; anchors.centerIn: parent; width: parent.width - 12; height: parent.height; @@ -316,10 +324,10 @@ Item { model: transactionHistoryModel.model; delegate: Item { width: parent.width; - height: (model.transaction_type === "pendingCount" && root.pendingCount !== 0) ? 40 : ((model.status === "confirmed" || model.status === "invalidated") ? transactionText.height + 30 : 0); + height: (model.transaction_type === "pendingCount" && model.count !== 0) ? 40 : ((model.status === "confirmed" || model.status === "invalidated") ? transactionText.height + 30 : 0); Item { - visible: model.transaction_type === "pendingCount" && root.pendingCount !== 0; + visible: model.transaction_type === "pendingCount" && model.count !== 0; anchors.top: parent.top; anchors.left: parent.left; width: parent.width; @@ -328,7 +336,7 @@ Item { AnonymousProRegular { id: pendingCountText; anchors.fill: parent; - text: root.pendingCount + ' Transaction' + (root.pendingCount > 1 ? 's' : '') + ' Pending'; + text: model.count + ' Transaction' + (model.count > 1 ? 's' : '') + ' Pending'; size: 18; color: hifi.colors.blueAccent; verticalAlignment: Text.AlignVCenter; @@ -432,21 +440,6 @@ Item { return year + '-' + month + '-' + day + '
' + drawnHour + ':' + min + amOrPm; } - - function calculatePendingAndInvalidated(startingPendingCount) { - var pendingCount = startingPendingCount ? startingPendingCount : 0; - for (var i = 0; i < transactionHistoryModel.count; i++) { - if (transactionHistoryModel.get(i).status === "pending") { - pendingCount++; - } - } - - root.pendingCount = pendingCount; - if (pendingCount > 0) { - transactionHistoryModel.insert(0, {"transaction_type": "pendingCount"}); - } - } - // // Function Name: fromScript() // diff --git a/interface/resources/qml/hifi/models/PSFListModel.qml b/interface/resources/qml/hifi/models/PSFListModel.qml index f3b14fedd7..bf67d30232 100644 --- a/interface/resources/qml/hifi/models/PSFListModel.qml +++ b/interface/resources/qml/hifi/models/PSFListModel.qml @@ -18,102 +18,96 @@ import QtQuick 2.7 Item { - id: root; // Used when printing debug statements - property string listModelName: ""; + property string listModelName: endpoint; - // Holds the value of the page that'll be retrieved the next time `getPage()` is called - property int currentPageToRetrieve: 1; - - // If defined, the endpoint that `getPage()` will hit (as long as there isn't a custom `getPage()` - // that does something fancy) + // Parameters. Even if you override getPage, below, please set these for clarity and consistency, when applicable. + // E.g., your getPage function could refer to this sortKey, etc. property string endpoint; - // If defined, the sort key used when calling the above endpoint. - // (as long as there isn't a custom `getPage()` that does something fancy) property string sortKey; - // If defined, the search filter used when calling the above endpoint. - // (as long as there isn't a custom `getPage()` that does something fancy) property string searchFilter; - // If defined, the tags filter used when calling the above endpoint. - // (as long as there isn't a custom `getPage()` that does something fancy) property string tagsFilter; - // The number of items that'll be retrieved per page when calling `getPage()` - // (as long as there isn't a custom `getPage()` that does something fancy) + onEndpointChanged: getFirstPage(); + onSortKeyChanged: getFirstPage(); + onSearchFilterChanged: getFirstPage(); + onTagsFilterChanged: getFirstPage(); property int itemsPerPage: 100; - // This function, by default, will retrieve data from the above-defined `endpoint` with the - // sort and filter data as set above. It can be custom-defined by this item's Parent. - property var getPage: function() { - // Put code here that calls the `endpoint` with the proper `sortKey`, `searchFilter`, and `tagsFilter`. - // Whatever code goes here should define the below `pageRetrieved()` as - // the callback for after the page is asynchronously retrieved. - - // The parent of this Item can also define custom `getPage()` and `pageRetrieved()` functions. - // See `WalletHome.qml` as an example of a file that does this. `WalletHome.qml` must use that method because - // it hits an endpoint that must be authenticated via the Wallet. - console.log("default getPage()"); - } - // This function, by default, will handle the data retrieved using `getPage()` above. - // It can be custom-defined by this item's Parent. - property var pageRetrieved: function() { - console.log("default pageRetrieved()"); - } - - // This function, by default, will get the _next_ page of data according to `getPage()` if there - // isn't a pending request and if there's more data to retrieve. - // It can be custom-defined by this item's Parent. - property var getNextPage: function() { - if (!root.requestPending && !root.noMoreDataToRetrieve) { - root.requestPending = true; - root.currentPageToRetrieve++; - root.getPage(); - console.log("Fetching Page " + root.currentPageToRetrieve + " of " + root.listModelName + "..."); - } - } - - // A helper function used to get the first page from the server. - // It can be custom-defined by this item's Parent. - property var getFirstPage: function() { - root.initialResultReceived = false; - root.currentPageToRetrieve = 1; - root.noMoreDataToRetrieve = false; - root.getPage(); - } - + // State. + property int currentPageToRetrieve: 0; // 0 = before first page. -1 = we have them all. Otherwise 1-based page number. + property bool retrievedAtLeastOnePage: false; // Resets both internal `ListModel`s and resets the page to retrieve to "1". function resetModel() { - pagesAlreadyAdded = new Array(); tempModel.clear(); finalModel.clear(); - root.currentPageToRetrieve = 1; + currentPageToRetrieve = 1; + retrievedAtLeastOnePage = false } - onEndpointChanged: { + // Processing one page. + + // Override to return one property of data, and/or to transform the elements. Must return an array of model elements. + property var processPage: function (data) { return data; } + + // Check consistency and call processPage. + function handlePage(error, response) { + console.log("HRS FIXME got", endpoint, error, JSON.stringify(response)); + function fail(message) { + console.warn("Warning", listModelName, JSON.stringify(message)); + current_page_to_retrieve = -1; + requestPending = false; + } + if (error || (response.status !== 'success')) { + return fail(error || response.status); + } + if (!requestPending) { + return fail("No request in flight."); + } + requestPending = false; + if (response.current_page && response.current_page !== currentPageToRetrieve) { // Not all endpoints specify this property. + return fail("Mismatched page, expected:" + currentPageToRetrieve); + } + finalModel.append(processPage(response.data || response)); // FIXME keep index steady, and apply any post sort/filter + retrievedAtLeastOnePage = true; + } + + // Override either http or getPage. + property var http: null; // An Item that has a request function. + property var getPage: function () { // Any override MUST call handlePage(), above, even if results empty. + if (!http) { return console.warn("Neither http nor getPage was set in", listModelName); } + var url = /^\//.test(endpoint) ? (Account.metaverseServerURL + endpoint) : endpoint; + // FIXME: handle sort and search parameters, and per_page and page parameters + console.log("HRS FIXME requesting", url); + http.request({uri: url}, handlePage); + } + + // Start the show by retrieving data according to `getPage()`. + // It can be custom-defined by this item's Parent. + property var getFirstPage: function () { resetModel(); - root.getFirstPage(); + requestPending = true; + getPage(); } - - onSortKeyChanged: { - resetModel(); - root.getFirstPage(); - } - - onSearchFilterChanged: { - resetModel(); - root.getFirstPage(); - } - - onTagsFilterChanged: { - resetModel(); - root.getFirstPage(); - } - - property bool initialResultReceived: false; - property bool requestPending: false; - property bool noMoreDataToRetrieve: false; - property var pagesAlreadyAdded: new Array(); + property bool requestPending: false; // For de-bouncing getNextPage. + // This function, will get the _next_ page of data according to `getPage()`. + // It can be custom-defined by this item's Parent. Typical usage: + // ListView { + // id: theList + // model: thisPSFListModelId + // onAtYEndChanged: if (theList.atYEnd) { thisPSFListModelId.getNextPage(); } + // ...} + property var getNextPage: function () { + if (requestPending || currentPageToRetrieve < 0) { + return; + } + console.log("HRS FIXME Fetching Page " + currentPageToRetrieve + " of " + listModelName + "..."); + currentPageToRetrieve++; + requestPending = true; + getPage(); + } + // Redefining members and methods so that the parent of this Item // can use PSFListModel as they would a regular ListModel property alias model: finalModel; @@ -123,6 +117,8 @@ Item { function remove(index) { return finalModel.remove(index); } function setProperty(index, prop, value) { return finalModel.setProperty(index, prop, value); } function move(from, to, n) { return finalModel.move(from, to, n); } + function insert(index, newElement) { finalModel.insert(index, newElement); } + function append(newElements) { finalModel.append(newElements); } // Used while processing page data and sorting ListModel { @@ -134,97 +130,6 @@ Item { id: finalModel; } - function processResult(status, retrievedResult) { - root.initialResultReceived = true; - root.requestPending = false; - - if (status === 'success') { - var currentPage = parseInt(retrievedResult.current_page); - - if (retrievedResult.length === 0) { - root.noMoreDataToRetrieve = true; - console.log("No more data to retrieve from backend endpoint.") - } - /* - See FIXME below... - - else if (root.currentPageToRetrieve === 1) { - var sameItemCount = 0; - - tempModel.clear(); - tempModel.append(retrievedResult); - - for (var i = 0; i < tempModel.count; i++) { - if (!finalModel.get(i)) { - sameItemCount = -1; - break; - } - // Gotta think of a generic way to determine if the data we just got is the same - // as the data that we already have in the model. - else if (tempModel.get(i).transaction_type === finalModel.get(i).transaction_type && - tempModel.get(i).text === finalModel.get(i).text) { - sameItemCount++; - } - } - - if (sameItemCount !== tempModel.count) { - finalModel.clear(); - for (var i = 0; i < tempModel.count; i++) { - finalModel.append(tempModel.get(i)); - } - } - } - */ - else { - // FIXME! Reconsider this logic, because it means that auto-refreshing the first page of results - // (like we do in WalletHome for Recent Activity) _won't_ catch brand new data elements! - // See the commented code above for how I did this for WalletHome specifically. - if (root.pagesAlreadyAdded.indexOf(currentPage) !== -1) { - console.log("Page " + currentPage + " of paginated data has already been added to the list."); - } else { - // First, add the result to a temporary model - tempModel.clear(); - tempModel.append(retrievedResult); - - // Make a note that we've already added this page to the model... - root.pagesAlreadyAdded.push(currentPage); - - var insertionIndex = 0; - // If there's nothing in the model right now, we don't need to modify insertionIndex. - if (finalModel.count !== 0) { - var currentIteratorPage; - // Search through the whole model and look for the insertion point. - // The insertion point is found when the result page from the server is less than - // the page that the current item came from, OR when we've reached the end of the whole model. - for (var i = 0; i < finalModel.count; i++) { - currentIteratorPage = finalModel.get(i).resultIsFromPage; - - if (currentPage < currentIteratorPage) { - insertionIndex = i; - break; - } else if (i === finalModel.count - 1) { - insertionIndex = i + 1; - break; - } - } - } - - // Go through the results we just got back from the server, setting the "resultIsFromPage" - // property of those results and adding them to the main model. - // NOTE that this wouldn't be necessary if we did this step (or a similar step) on the server. - for (var i = 0; i < tempModel.count; i++) { - tempModel.setProperty(i, "resultIsFromPage", currentPage); - finalModel.insert(i + insertionIndex, tempModel.get(i)) - } - } - } - return true; - } else { - console.log("Failed to get page result for " + root.listModelName); - } - - return false; - } // Used when sorting model data on the CLIENT // Right now, there is no sorting done on the client for diff --git a/scripts/system/commerce/wallet.js b/scripts/system/commerce/wallet.js index aea752c565..ac25269e41 100644 --- a/scripts/system/commerce/wallet.js +++ b/scripts/system/commerce/wallet.js @@ -511,6 +511,9 @@ case 'wallet_availableUpdatesReceived': // NOP break; + case 'http.request': + // Handled elsewhere, don't log. + break; default: print('Unrecognized message from QML:', JSON.stringify(message)); } diff --git a/scripts/system/marketplaces/marketplaces.js b/scripts/system/marketplaces/marketplaces.js index dc4d5aa844..ea8278a459 100644 --- a/scripts/system/marketplaces/marketplaces.js +++ b/scripts/system/marketplaces/marketplaces.js @@ -988,6 +988,9 @@ var selectionDisplay = null; // for gridTool.js to ignore sendAssetParticleEffectUpdateTimer = Script.setInterval(updateSendAssetParticleEffect, SEND_ASSET_PARTICLE_TIMER_UPDATE); } break; + case 'http.request': + // Handled elsewhere, don't log. + break; default: print('Unrecognized message from Checkout.qml or Purchases.qml: ' + JSON.stringify(message)); } From 81d615c9db3c65ef312edd02bfeb6c625c384836 Mon Sep 17 00:00:00 2001 From: Alexia Mandeville Date: Thu, 24 May 2018 17:36:29 -0700 Subject: [PATCH 074/300] Revert "Removing sit functionality from teleport" This reverts commit 36df9d7de86a067ef045c459403b7b5cb1041430. --- .../controllers/controllerModules/teleport.js | 46 ++++++++++++++++++- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/scripts/system/controllers/controllerModules/teleport.js b/scripts/system/controllers/controllerModules/teleport.js index 1dc7990f6e..560da57b20 100644 --- a/scripts/system/controllers/controllerModules/teleport.js +++ b/scripts/system/controllers/controllerModules/teleport.js @@ -23,6 +23,7 @@ Script.include("/~/system/libraries/controllers.js"); var TARGET_MODEL_URL = Script.resolvePath("../../assets/models/teleport-destination.fbx"); var TOO_CLOSE_MODEL_URL = Script.resolvePath("../../assets/models/teleport-cancel.fbx"); + var SEAT_MODEL_URL = Script.resolvePath("../../assets/models/teleport-seat.fbx"); var TARGET_MODEL_DIMENSIONS = { x: 1.15, @@ -30,6 +31,12 @@ Script.include("/~/system/libraries/controllers.js"); z: 1.15 }; + var COLORS_TELEPORT_SEAT = { + red: 255, + green: 0, + blue: 170 + }; + var COLORS_TELEPORT_CAN_TELEPORT = { red: 97, green: 247, @@ -72,6 +79,15 @@ Script.include("/~/system/libraries/controllers.js"); drawInFront: true, glow: 1.0 }; + var seatPath = { + type: "line3d", + color: COLORS_TELEPORT_SEAT, + ignoreRayIntersection: true, + alpha: 1, + solid: true, + drawInFront: true, + glow: 1.0 + }; var cancelEnd = { type: "model", url: TOO_CLOSE_MODEL_URL, @@ -84,10 +100,17 @@ Script.include("/~/system/libraries/controllers.js"); dimensions: TARGET_MODEL_DIMENSIONS, ignoreRayIntersection: true }; + var seatEnd = { + type: "model", + url: SEAT_MODEL_URL, + dimensions: TARGET_MODEL_DIMENSIONS, + ignoreRayIntersection: true + }; var teleportRenderStates = [{name: "cancel", path: cancelPath, end: cancelEnd}, - {name: "teleport", path: teleportPath, end: teleportEnd}]; + {name: "teleport", path: teleportPath, end: teleportEnd}, + {name: "seat", path: seatPath, end: seatEnd}]; var DEFAULT_DISTANCE = 50; var teleportDefaultRenderStates = [{name: "cancel", distance: DEFAULT_DISTANCE, path: cancelPath}]; @@ -108,6 +131,7 @@ Script.include("/~/system/libraries/controllers.js"); INVISIBLE: 'invisible', // The current target is an invvsible surface INVALID: 'invalid', // The current target is invalid (wall, ceiling, etc.) SURFACE: 'surface', // The current target is a valid surface + SEAT: 'seat' // The current target is a seat }; function Teleporter(hand) { @@ -195,9 +219,11 @@ Script.include("/~/system/libraries/controllers.js"); if (!Vec3.equal(AVATAR_PROPORTIONAL_TARGET_MODEL_DIMENSIONS, cancelEnd.dimensions)) { cancelEnd.dimensions = AVATAR_PROPORTIONAL_TARGET_MODEL_DIMENSIONS; teleportEnd.dimensions = AVATAR_PROPORTIONAL_TARGET_MODEL_DIMENSIONS; + seatEnd.dimensions = AVATAR_PROPORTIONAL_TARGET_MODEL_DIMENSIONS; teleportRenderStates = [{name: "cancel", path: cancelPath, end: cancelEnd}, - {name: "teleport", path: teleportPath, end: teleportEnd}]; + {name: "teleport", path: teleportPath, end: teleportEnd}, + {name: "seat", path: seatPath, end: seatEnd}]; Pointers.editRenderState(this.teleportRayHandVisible, "cancel", teleportRenderStates[0]); Pointers.editRenderState(this.teleportRayHandInvisible, "cancel", teleportRenderStates[0]); @@ -209,6 +235,10 @@ Script.include("/~/system/libraries/controllers.js"); Pointers.editRenderState(this.teleportRayHeadVisible, "teleport", teleportRenderStates[1]); Pointers.editRenderState(this.teleportRayHeadInvisible, "teleport", teleportRenderStates[1]); + Pointers.editRenderState(this.teleportRayHandVisible, "seat", teleportRenderStates[2]); + Pointers.editRenderState(this.teleportRayHandInvisible, "seat", teleportRenderStates[2]); + Pointers.editRenderState(this.teleportRayHeadVisible, "seat", teleportRenderStates[2]); + Pointers.editRenderState(this.teleportRayHeadInvisible, "seat", teleportRenderStates[2]); } }; @@ -276,6 +306,8 @@ Script.include("/~/system/libraries/controllers.js"); } else { this.setTeleportState(mode, "teleport", ""); } + } else if (teleportLocationType === TARGET.SEAT) { + this.setTeleportState(mode, "", "seat"); } return this.teleport(result, teleportLocationType); }; @@ -288,6 +320,8 @@ Script.include("/~/system/libraries/controllers.js"); if (target === TARGET.NONE || target === TARGET.INVALID || this.state === TELEPORTER_STATES.COOL_IN) { // Do nothing + } else if (target === TARGET.SEAT) { + Entities.callEntityMethod(result.objectID, 'sit'); } else if (target === TARGET.SURFACE) { var offset = getAvatarFootOffset(); result.intersection.y += offset; @@ -375,6 +409,14 @@ Script.include("/~/system/libraries/controllers.js"); var props = Entities.getEntityProperties(result.objectID, ['userData', 'visible']); var data = parseJSON(props.userData); + if (data !== undefined && data.seat !== undefined) { + var avatarUuid = Uuid.fromString(data.seat.user); + if (Uuid.isNull(avatarUuid) || !AvatarList.getAvatar(avatarUuid).sessionUUID) { + return TARGET.SEAT; + } else { + return TARGET.INVALID; + } + } if (!props.visible) { return TARGET.INVISIBLE; From adee5e9ef7a544e201fadf3a5e75ff71aa8d0287 Mon Sep 17 00:00:00 2001 From: Dante Ruiz Date: Thu, 24 May 2018 17:54:53 -0700 Subject: [PATCH 075/300] fix crash --- interface/src/ui/overlays/Web3DOverlay.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/interface/src/ui/overlays/Web3DOverlay.cpp b/interface/src/ui/overlays/Web3DOverlay.cpp index c678e3d2a2..8af818edc6 100644 --- a/interface/src/ui/overlays/Web3DOverlay.cpp +++ b/interface/src/ui/overlays/Web3DOverlay.cpp @@ -259,7 +259,6 @@ void Web3DOverlay::setupQmlSurface() { _webSurface->getSurfaceContext()->setContextProperty("Web3DOverlay", this); _webSurface->getSurfaceContext()->setContextProperty("Window", DependencyManager::get().data()); _webSurface->getSurfaceContext()->setContextProperty("Reticle", qApp->getApplicationCompositor().getReticleInterface()); - _webSurface->getSurfaceContext()->setContextProperty("desktop", DependencyManager::get()->getDesktop()); _webSurface->getSurfaceContext()->setContextProperty("HiFiAbout", AboutUtil::getInstance()); // Override min fps for tablet UI, for silky smooth scrolling From 554056173025459011000521a09b4e90501c8803 Mon Sep 17 00:00:00 2001 From: Alexia Mandeville Date: Thu, 24 May 2018 18:45:04 -0700 Subject: [PATCH 076/300] Removing trigger input stopping animation to enable VR --- scripts/system/emote.js | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/scripts/system/emote.js b/scripts/system/emote.js index f2013edbdd..2b4e971ede 100644 --- a/scripts/system/emote.js +++ b/scripts/system/emote.js @@ -36,7 +36,6 @@ var EMOTE_LABEL = "EMOTE"; var EMOTE_APP_SORT_ORDER = 12; var FPS = 60; var MSEC_PER_SEC = 1000; -var FINISHED = 3; // see ScriptableResource::State var onEmoteScreen = false; var button; @@ -60,7 +59,7 @@ function onClicked() { } function onScreenChanged(type, url) { - onEmoteScreen = type === "Web" && (url.indexOf(EMOTE_APP_BASE) == url.length - EMOTE_APP_BASE.length); + onEmoteScreen = type === "Web" && (url.indexOf(EMOTE_APP_BASE) === url.length - EMOTE_APP_BASE.length); button.editProperties({ isActive: onEmoteScreen }); } @@ -87,18 +86,19 @@ function onWebEventReceived(event) { // Allow for a random sitting animation when a user selects sit var randSit = Math.floor(Math.random() * 3) + 1; - if(emoteName == "Sit"){ + if (emoteName === "Sit"){ emoteName = event.data + randSit; // "Sit1, Sit2, Sit3" } var frameCount = ANIMATIONS[emoteName].animation.frames.length; // Three types of emotes (non-looping end, non-looping return, looping) - if(emoteName.match(/^Sit.*$/) || emoteName == "Fall") { // non-looping end + if (emoteName.match(/^Sit.*$/) || emoteName === "Fall") { // non-looping end MyAvatar.overrideAnimation(ANIMATIONS[emoteName].url, FPS, false, 0, frameCount); - - } else if (emoteName == "Love" || emoteName == "Surprised" || emoteName == "Cry" || emoteName == "Point"){ // non-looping return + + // non-looping return + } else if (emoteName === "Love" || emoteName === "Surprised" || emoteName === "Cry" || emoteName === "Point"){ MyAvatar.overrideAnimation(ANIMATIONS[emoteName].url, FPS, false, 0, frameCount); var timeOut = MSEC_PER_SEC * frameCount / FPS; @@ -118,27 +118,24 @@ function onWebEventReceived(event) { activeEmote = false; MyAvatar.restoreAnimation(); } - } } function restoreAnimation() { - MyAvatar.restoreAnimation(); + MyAvatar.restoreAnimation(); } -Controller.keyPressEvent.connect(restoreAnimation) +Controller.keyPressEvent.connect(restoreAnimation); // Note peek() so as to not interfere with other mappings. eventMapping.from(Controller.Standard.LeftPrimaryThumb).peek().to(restoreAnimation); eventMapping.from(Controller.Standard.RightPrimaryThumb).peek().to(restoreAnimation); eventMapping.from(Controller.Standard.LeftSecondaryThumb).peek().to(restoreAnimation); eventMapping.from(Controller.Standard.RightSecondaryThumb).peek().to(restoreAnimation); -eventMapping.from(Controller.Standard.LT).peek().to(restoreAnimation); eventMapping.from(Controller.Standard.LB).peek().to(restoreAnimation); eventMapping.from(Controller.Standard.LS).peek().to(restoreAnimation); eventMapping.from(Controller.Standard.LeftGrip).peek().to(restoreAnimation); -eventMapping.from(Controller.Standard.RT).peek().to(restoreAnimation); eventMapping.from(Controller.Standard.RB).peek().to(restoreAnimation); eventMapping.from(Controller.Standard.RS).peek().to(restoreAnimation); eventMapping.from(Controller.Standard.RightGrip).peek().to(restoreAnimation); From 720b0a896323a309e71486d1bc0193e337aad3b3 Mon Sep 17 00:00:00 2001 From: Wayne Chen Date: Fri, 25 May 2018 09:51:16 -0700 Subject: [PATCH 077/300] Adding fix for enabling saved front/back advanced controls. --- ...oggleAdvancedMovementForHandControllers.js | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/scripts/system/controllers/toggleAdvancedMovementForHandControllers.js b/scripts/system/controllers/toggleAdvancedMovementForHandControllers.js index a1b96ac607..78b074573f 100644 --- a/scripts/system/controllers/toggleAdvancedMovementForHandControllers.js +++ b/scripts/system/controllers/toggleAdvancedMovementForHandControllers.js @@ -171,4 +171,24 @@ Messages.subscribe(HIFI_ADVANCED_MOVEMENT_DISABLER_CHANNEL); Messages.messageReceived.connect(handleMessage); + function initializeControls() { + if(HMD.active) { + if (Controller.Hardware.Vive !== undefined || Controller.Hardware.OculusTouch !== undefined) { + if (MyAvatar.useAdvancedMovementControls) { + Controller.disableMapping(DRIVING_MAPPING_NAME); + } else { + Controller.enableMapping(DRIVING_MAPPING_NAME); + } + + if (MyAvatar.getFlyingEnabled()) { + Controller.disableMapping(FLYING_MAPPING_NAME); + } else { + Controller.enableMapping(FLYING_MAPPING_NAME); + } + }); + + } + } + + initializeControls(); }()); // END LOCAL_SCOPE From cdf56d3c6d40e22e1c5f67ea58bcbcf50951e838 Mon Sep 17 00:00:00 2001 From: Alexia Mandeville Date: Fri, 25 May 2018 10:42:56 -0700 Subject: [PATCH 078/300] Adding comment for clarification, formatting comment style --- scripts/system/emote.js | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/scripts/system/emote.js b/scripts/system/emote.js index 2b4e971ede..87fc86d569 100644 --- a/scripts/system/emote.js +++ b/scripts/system/emote.js @@ -19,7 +19,7 @@ var EMOTE_ANIMATIONS = ['Cry', 'Surprised', 'Dance', 'Cheer', 'Wave', 'Fall', 'Point', 'Clap', 'Sit1', 'Sit2', 'Sit3', 'Love']; var ANIMATIONS = Array(); -var eventMappingName = "io.highfidelity.away"; // restoreAnimation on hand controller button events, too. +var eventMappingName = "io.highfidelity.away"; // restoreAnimation on hand controller button events, too var eventMapping = Controller.newMapping(eventMappingName); EMOTE_ANIMATIONS.forEach(function (name) { @@ -40,8 +40,8 @@ var MSEC_PER_SEC = 1000; var onEmoteScreen = false; var button; var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system"); -var activeTimer = false; // used to cancel active timer if a user plays an amimation while another animation is playing -var activeEmote = false; // to keep track of the currently playing emote +var activeTimer = false; // Used to cancel active timer if a user plays an animation while another animation is playing +var activeEmote = false; // To keep track of the currently playing emote button = tablet.addButton({ icon: "icons/tablet-icons/EmoteAppIcon.svg", @@ -79,8 +79,8 @@ function onWebEventReceived(event) { Script.clearTimeout(activeTimer); } - // if the activeEmote is different from the chosen emote, then play the new emote. Other wise, - // this is a second click on the same emote as the activeEmote, and we will just stop it. + // If the activeEmote is different from the chosen emote, then play the new emote. Other wise, + // This is a second click on the same emote as the activeEmote, and we will just stop it. if (activeEmote !== emoteName) { activeEmote = emoteName; @@ -97,7 +97,7 @@ function onWebEventReceived(event) { MyAvatar.overrideAnimation(ANIMATIONS[emoteName].url, FPS, false, 0, frameCount); - // non-looping return + // Non-looping return } else if (emoteName === "Love" || emoteName === "Surprised" || emoteName === "Cry" || emoteName === "Point"){ MyAvatar.overrideAnimation(ANIMATIONS[emoteName].url, FPS, false, 0, frameCount); @@ -108,7 +108,7 @@ function onWebEventReceived(event) { activeEmote = false; }, timeOut); - } else { // looping + } else { // Looping MyAvatar.overrideAnimation(ANIMATIONS[emoteName].url, FPS, true, 0, frameCount); @@ -123,11 +123,13 @@ function onWebEventReceived(event) { } } +// If a user provides input, end the emote animation and restore the navigation animation states (idle, walk, run) function restoreAnimation() { MyAvatar.restoreAnimation(); } Controller.keyPressEvent.connect(restoreAnimation); + // Note peek() so as to not interfere with other mappings. eventMapping.from(Controller.Standard.LeftPrimaryThumb).peek().to(restoreAnimation); eventMapping.from(Controller.Standard.RightPrimaryThumb).peek().to(restoreAnimation); From 65bb4c218ebfcba766391308f36acc3b01a8d8f1 Mon Sep 17 00:00:00 2001 From: Simon Walton Date: Fri, 25 May 2018 11:02:49 -0700 Subject: [PATCH 079/300] Distinguish appIDs for production & nonproduction --- cmake/templates/NSIS.template.in | 6 +++++- server-console/src/main.js | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/cmake/templates/NSIS.template.in b/cmake/templates/NSIS.template.in index ff80c21588..8c7479af48 100644 --- a/cmake/templates/NSIS.template.in +++ b/cmake/templates/NSIS.template.in @@ -1173,7 +1173,11 @@ Section "-Core installation" !insertmacro MUI_STARTMENU_WRITE_END - ApplicationID::Set "$SMPROGRAMS\$STARTMENU_FOLDER\@INTERFACE_SHORTCUT_NAME@.lnk" "com.highfidelity.interface" + !if @PRODUCTION_BUILD@ == 1 + ApplicationID::Set "$SMPROGRAMS\$STARTMENU_FOLDER\@INTERFACE_SHORTCUT_NAME@.lnk" "com.highfidelity.interface" + !else + ApplicationID::Set "$SMPROGRAMS\$STARTMENU_FOLDER\@INTERFACE_SHORTCUT_NAME@.lnk" "com.highfidelity.interface-dev" + !endif @CPACK_NSIS_EXTRA_INSTALL_COMMANDS@ diff --git a/server-console/src/main.js b/server-console/src/main.js index ab35529b48..498be966ed 100644 --- a/server-console/src/main.js +++ b/server-console/src/main.js @@ -867,6 +867,7 @@ function onContentLoaded() { } catch (e) { } + var appUserModelId = 'com.highfidelity.interface'; // For Windows jump list, etc. if (currentVersion !== null) { const CHECK_FOR_UPDATES_INTERVAL_SECONDS = 60 * 30; var hasShownUpdateNotification = false; @@ -878,7 +879,7 @@ function onContentLoaded() { title: 'An update is available!', message: 'High Fidelity version ' + latestVersion + ' is available', wait: true, - appID: 'com.highfidelity.interface', + appID: appUserModelId, url: url }); hasShownUpdateNotification = true; From caa01aa25edf84fa764a31acfcf9f0f9fbfc82fe Mon Sep 17 00:00:00 2001 From: Clement Date: Tue, 22 May 2018 18:38:39 -0700 Subject: [PATCH 080/300] Don't mark Asset-less DS's backups corrupted If the DS doesn't choose to run an Asset Server, add an empty mappings file to the archive so they do not show as corrupted --- domain-server/src/AssetsBackupHandler.cpp | 10 ++++++---- domain-server/src/AssetsBackupHandler.h | 3 ++- domain-server/src/DomainServer.cpp | 22 ++++++++++++---------- domain-server/src/DomainServer.h | 2 ++ 4 files changed, 22 insertions(+), 15 deletions(-) diff --git a/domain-server/src/AssetsBackupHandler.cpp b/domain-server/src/AssetsBackupHandler.cpp index 2369b01690..6bcabc0bf1 100644 --- a/domain-server/src/AssetsBackupHandler.cpp +++ b/domain-server/src/AssetsBackupHandler.cpp @@ -34,8 +34,9 @@ static const chrono::minutes MAX_REFRESH_TIME { 5 }; Q_DECLARE_LOGGING_CATEGORY(asset_backup) Q_LOGGING_CATEGORY(asset_backup, "hifi.asset-backup"); -AssetsBackupHandler::AssetsBackupHandler(const QString& backupDirectory) : - _assetsDirectory(backupDirectory + ASSETS_DIR) +AssetsBackupHandler::AssetsBackupHandler(const QString& backupDirectory, bool assetServerEnabled) : + _assetsDirectory(backupDirectory + ASSETS_DIR), + _assetServerEnabled(assetServerEnabled) { // Make sure the asset directory exists. QDir(_assetsDirectory).mkpath("."); @@ -53,6 +54,7 @@ void AssetsBackupHandler::setupRefreshTimer() { auto nodeList = DependencyManager::get(); QObject::connect(nodeList.data(), &LimitedNodeList::nodeActivated, this, [this](SharedNodePointer node) { if (node->getType() == NodeType::AssetServer) { + assert(_assetServerEnabled); // run immediately for the first time. _mappingsRefreshTimer.start(0); } @@ -233,12 +235,12 @@ void AssetsBackupHandler::createBackup(const QString& backupName, QuaZip& zip) { return; } - if (_lastMappingsRefresh.time_since_epoch().count() == 0) { + if (_assetServerEnabled && _lastMappingsRefresh.time_since_epoch().count() == 0) { qCWarning(asset_backup) << "Current mappings not yet loaded."; return; } - if ((p_high_resolution_clock::now() - _lastMappingsRefresh) > MAX_REFRESH_TIME) { + if (_assetServerEnabled && (p_high_resolution_clock::now() - _lastMappingsRefresh) > MAX_REFRESH_TIME) { qCWarning(asset_backup) << "Backing up asset mappings that might be stale."; } diff --git a/domain-server/src/AssetsBackupHandler.h b/domain-server/src/AssetsBackupHandler.h index 82d684c2c3..427dc6831a 100644 --- a/domain-server/src/AssetsBackupHandler.h +++ b/domain-server/src/AssetsBackupHandler.h @@ -30,7 +30,7 @@ class AssetsBackupHandler : public QObject, public BackupHandlerInterface { Q_OBJECT public: - AssetsBackupHandler(const QString& backupDirectory); + AssetsBackupHandler(const QString& backupDirectory, bool assetServerEnabled); std::pair isAvailable(const QString& backupName) override; std::pair getRecoveryStatus() override; @@ -65,6 +65,7 @@ private: void updateMappings(); QString _assetsDirectory; + bool _assetServerEnabled { false }; QTimer _mappingsRefreshTimer; p_high_resolution_clock::time_point _lastMappingsRefresh; diff --git a/domain-server/src/DomainServer.cpp b/domain-server/src/DomainServer.cpp index 4e65df495c..45a911d097 100644 --- a/domain-server/src/DomainServer.cpp +++ b/domain-server/src/DomainServer.cpp @@ -308,7 +308,7 @@ DomainServer::DomainServer(int argc, char* argv[]) : connect(_contentManager.get(), &DomainContentBackupManager::started, _contentManager.get(), [this](){ _contentManager->addBackupHandler(BackupHandlerPointer(new EntitiesBackupHandler(getEntitiesFilePath(), getEntitiesReplacementFilePath()))); - _contentManager->addBackupHandler(BackupHandlerPointer(new AssetsBackupHandler(getContentBackupDir()))); + _contentManager->addBackupHandler(BackupHandlerPointer(new AssetsBackupHandler(getContentBackupDir(), isAssetServerEnabled()))); _contentManager->addBackupHandler(BackupHandlerPointer(new ContentSettingsBackupHandler(_settingsManager))); }); @@ -990,15 +990,11 @@ void DomainServer::populateDefaultStaticAssignmentsExcludingTypes(const QSet(static_cast(defaultedType) + 1)) { if (!excludedTypes.contains(defaultedType) && defaultedType != Assignment::AgentType) { - if (defaultedType == Assignment::AssetServerType) { - // Make sure the asset-server is enabled before adding it here. - // Initially we do not assign it by default so we can test it in HF domains first - static const QString ASSET_SERVER_ENABLED_KEYPATH = "asset_server.enabled"; - - if (!_settingsManager.valueOrDefaultValueForKeyPath(ASSET_SERVER_ENABLED_KEYPATH).toBool()) { - // skip to the next iteration if asset-server isn't enabled - continue; - } + // Make sure the asset-server is enabled before adding it here. + // Initially we do not assign it by default so we can test it in HF domains first + if (defaultedType == Assignment::AssetServerType && !isAssetServerEnabled()) { + // skip to the next iteraion if asset-server isn't enabled + continue; } // type has not been set from a command line or config file config, use the default @@ -2945,6 +2941,12 @@ bool DomainServer::shouldReplicateNode(const Node& node) { } }; + +bool DomainServer::isAssetServerEnabled() { + static const QString ASSET_SERVER_ENABLED_KEYPATH = "asset_server.enabled"; + return _settingsManager.valueOrDefaultValueForKeyPath(ASSET_SERVER_ENABLED_KEYPATH).toBool(); +} + void DomainServer::nodeAdded(SharedNodePointer node) { // we don't use updateNodeWithData, so add the DomainServerNodeData to the node here node->setLinkedData(std::unique_ptr { new DomainServerNodeData() }); diff --git a/domain-server/src/DomainServer.h b/domain-server/src/DomainServer.h index 01adbd99a9..d128ae068c 100644 --- a/domain-server/src/DomainServer.h +++ b/domain-server/src/DomainServer.h @@ -72,6 +72,8 @@ public: static const QString REPLACEMENT_FILE_EXTENSION; + bool isAssetServerEnabled(); + public slots: /// Called by NodeList to inform us a node has been added void nodeAdded(SharedNodePointer node); From d30d84f1bdccc2ef8717443e2b7c0e72eb7e8c1a Mon Sep 17 00:00:00 2001 From: howard-stearns Date: Fri, 25 May 2018 15:30:27 -0700 Subject: [PATCH 081/300] checkpoint that has two ways to do filtering --- .../commerce/common/sendAsset/SendAsset.qml | 22 +++----- .../qml/hifi/models/PSFListModel.qml | 55 ++++++++++++++----- 2 files changed, 49 insertions(+), 28 deletions(-) diff --git a/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml b/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml index 403dde0713..208cf2f49e 100644 --- a/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml +++ b/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml @@ -394,12 +394,16 @@ Item { HifiModels.PSFListModel { id: connectionsModel; http: root.parent; // Misuse of "root" in this file! - endpoint: "/api/v1/users?per_page=400&filter=connections"; // FIXME per_page + endpoint: "/api/v1/users?filter=connections"; + itemsPerPage: 8; processPage: function (data) { console.log("HRS FIXME processPage", JSON.stringify(data)); return data.users; - //buildFilteredConnectionsModel(); }; + searchFilter: filterBar.text; + searchItemTest: function (text, item) { + return item.username.toLowerCase().indexOf(text.toLowerCase()) !== -1; + }; //HRS FIXME remove when endpoint works. } Rectangle { @@ -475,10 +479,6 @@ Item { anchors.fill: parent; centerPlaceholderGlyph: hifi.glyphs.search; - onTextChanged: { - buildFilteredConnectionsModel(); - } - onAccepted: { focus = false; } @@ -520,6 +520,7 @@ Item { visible: !connectionsLoading.visible; clip: true; model: connectionsModel.model; + onAtYEndChanged: if (connectionsList.atYEnd) { connectionsModel.getNextPage(); } snapMode: ListView.SnapToItem; // Anchors anchors.fill: parent; @@ -1810,15 +1811,6 @@ Item { // FUNCTION DEFINITIONS START // - function buildFilteredConnectionsModel() { - filteredConnectionsModel.clear(); - for (var i = 0; i < connectionsModel.count; i++) { - if (connectionsModel.get(i).userName.toLowerCase().indexOf(filterBar.text.toLowerCase()) !== -1) { - filteredConnectionsModel.append(connectionsModel.get(i)); - } - } - } - function resetSendAssetData() { amountTextField.focus = false; optionalMessage.focus = false; diff --git a/interface/resources/qml/hifi/models/PSFListModel.qml b/interface/resources/qml/hifi/models/PSFListModel.qml index bf67d30232..ece229bea8 100644 --- a/interface/resources/qml/hifi/models/PSFListModel.qml +++ b/interface/resources/qml/hifi/models/PSFListModel.qml @@ -26,23 +26,43 @@ Item { // E.g., your getPage function could refer to this sortKey, etc. property string endpoint; property string sortKey; - property string searchFilter; + property string searchFilter: ""; property string tagsFilter; onEndpointChanged: getFirstPage(); onSortKeyChanged: getFirstPage(); - onSearchFilterChanged: getFirstPage(); + onSearchFilterChanged: { + if (searchItemTest) { + var filteredCopy = copyOfItems.filter(function (item) { + return searchItemTest(searchFilter, item); + }); + finalModel.clear(); + finalModel.append(filteredCopy); + /*for (var index = 0; index < finalModel.count; index++) { + if (!searchItemTest(searchFilter, finalModel.get(index))) { + finalModel.remove(index); + index--; // Don't skip over anything now that the indices have shifted. + } + }*/ + } else { // TODO: fancy timer against fast typing. + getFirstPage(); + } + } onTagsFilterChanged: getFirstPage(); property int itemsPerPage: 100; + // If the endpoint doesn't do search, tags, sort, these functions can be supplied to do it here. + property var searchItemTest: nil; + property var copyOfItems: []; + // State. property int currentPageToRetrieve: 0; // 0 = before first page. -1 = we have them all. Otherwise 1-based page number. property bool retrievedAtLeastOnePage: false; // Resets both internal `ListModel`s and resets the page to retrieve to "1". function resetModel() { - tempModel.clear(); finalModel.clear(); currentPageToRetrieve = 1; - retrievedAtLeastOnePage = false + retrievedAtLeastOnePage = false; + copyOfItems = []; } // Processing one page. @@ -52,6 +72,7 @@ Item { // Check consistency and call processPage. function handlePage(error, response) { + var processed; console.log("HRS FIXME got", endpoint, error, JSON.stringify(response)); function fail(message) { console.warn("Warning", listModelName, JSON.stringify(message)); @@ -68,7 +89,16 @@ Item { if (response.current_page && response.current_page !== currentPageToRetrieve) { // Not all endpoints specify this property. return fail("Mismatched page, expected:" + currentPageToRetrieve); } - finalModel.append(processPage(response.data || response)); // FIXME keep index steady, and apply any post sort/filter + processed = processPage(response.data || response); + if (searchItemTest) { + copyOfItems = copyOfItems.concat(processed); + if (searchFilter) { + processed = processed.filter(function (item) { + return searchItemTest(searchFilter, item); + }); + } + } + finalModel.append(processed); // FIXME keep index steady, and apply any post sort/filter retrievedAtLeastOnePage = true; } @@ -77,7 +107,13 @@ Item { property var getPage: function () { // Any override MUST call handlePage(), above, even if results empty. if (!http) { return console.warn("Neither http nor getPage was set in", listModelName); } var url = /^\//.test(endpoint) ? (Account.metaverseServerURL + endpoint) : endpoint; - // FIXME: handle sort and search parameters, and per_page and page parameters + var parameters = [ + // FIXME: handle sort, search, tag parameters + 'per_page=' + itemsPerPage, + 'page=' + currentPageToRetrieve + ]; + var parametersSeparator = /\?/.test(url) ? '&' : '?'; + url = url + parametersSeparator + parameters.join('&'); console.log("HRS FIXME requesting", url); http.request({uri: url}, handlePage); } @@ -120,17 +156,10 @@ Item { function insert(index, newElement) { finalModel.insert(index, newElement); } function append(newElements) { finalModel.append(newElements); } - // Used while processing page data and sorting - ListModel { - id: tempModel; - } - - // This is the model that the parent of this Item will actually see ListModel { id: finalModel; } - // Used when sorting model data on the CLIENT // Right now, there is no sorting done on the client for // any users of PSFListModel, but that could very easily change. From 68b18def2252f15f0e72fed81e2feb8e919ca6ac Mon Sep 17 00:00:00 2001 From: Dante Ruiz Date: Fri, 25 May 2018 15:34:17 -0700 Subject: [PATCH 082/300] fix copy delete cut paste commands and menus --- interface/src/Menu.cpp | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index f55c389a1f..42618796a5 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -103,16 +103,32 @@ Menu::Menu() { editMenu->addSeparator(); // Edit > Cut - addActionToQMenuAndActionHash(editMenu, "Cut", Qt::CTRL | Qt::Key_X); + auto cutAction = addActionToQMenuAndActionHash(editMenu, "Cut", QKeySequence::Cut); + connect(cutAction, &QAction::triggered, [] { + QKeyEvent* keyEvent = new QKeyEvent(QEvent::KeyPress, Qt::Key_X, Qt::ControlModifier); + QCoreApplication::postEvent(QCoreApplication::instance(), keyEvent); + }); // Edit > Copy - addActionToQMenuAndActionHash(editMenu, "Copy", Qt::CTRL | Qt::Key_C); + auto copyAction = addActionToQMenuAndActionHash(editMenu, "Copy", QKeySequence::Copy); + connect(copyAction, &QAction::triggered, [] { + QKeyEvent* keyEvent = new QKeyEvent(QEvent::KeyPress, Qt::Key_C, Qt::ControlModifier); + QCoreApplication::postEvent(QCoreApplication::instance(), keyEvent); + }); // Edit > Paste - addActionToQMenuAndActionHash(editMenu, "Paste", Qt::CTRL | Qt::Key_V); + auto pasteAction = addActionToQMenuAndActionHash(editMenu, "Paste", QKeySequence::Paste); + connect(pasteAction, &QAction::triggered, [] { + QKeyEvent* keyEvent = new QKeyEvent(QEvent::KeyPress, Qt::Key_V, Qt::ControlModifier); + QCoreApplication::postEvent(QCoreApplication::instance(), keyEvent); + }); // Edit > Delete - addActionToQMenuAndActionHash(editMenu, "Delete", Qt::Key_Delete); + auto deleteAction =addActionToQMenuAndActionHash(editMenu, "Delete", QKeySequence::Delete); + connect(deleteAction, &QAction::triggered, [] { + QKeyEvent* keyEvent = new QKeyEvent(QEvent::KeyPress, Qt::Key_Delete, Qt::ControlModifier); + QCoreApplication::postEvent(QCoreApplication::instance(), keyEvent); + }); editMenu->addSeparator(); From 17be460adfba228a7bc6aa2ff9d111133befe9b2 Mon Sep 17 00:00:00 2001 From: howard-stearns Date: Fri, 25 May 2018 16:37:06 -0700 Subject: [PATCH 083/300] checkpoint --- .../commerce/common/sendAsset/SendAsset.qml | 2 +- .../qml/hifi/commerce/wallet/WalletHome.qml | 2 +- .../qml/hifi/models/PSFListModel.qml | 33 ++++++------ scripts/system/request-service.js | 50 +++++++++++++++++++ 4 files changed, 70 insertions(+), 17 deletions(-) create mode 100644 scripts/system/request-service.js diff --git a/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml b/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml index 208cf2f49e..24753e7b6a 100644 --- a/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml +++ b/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml @@ -558,7 +558,7 @@ Item { // "Make a Connection" instructions Rectangle { id: connectionInstructions; - visible: connectionsModel.count === 0 && !connectionsLoading.visible; + visible: connectionsModel.count === 0 && !connectionsModel.searchFilter && !connectionsLoading.visible; anchors.fill: parent; color: "white"; diff --git a/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml b/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml index efd51bfdf3..b23f6ec16c 100644 --- a/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml +++ b/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml @@ -147,7 +147,7 @@ Item { if (transactionHistory.atYBeginning) { console.log("Refreshing 1st Page of Recent Activity..."); Commerce.balance(); - transactionHistoryModel.getFirstPage(); + transactionHistoryModel.getFirstPage("delayedClear"); } } } diff --git a/interface/resources/qml/hifi/models/PSFListModel.qml b/interface/resources/qml/hifi/models/PSFListModel.qml index ece229bea8..4dc96857af 100644 --- a/interface/resources/qml/hifi/models/PSFListModel.qml +++ b/interface/resources/qml/hifi/models/PSFListModel.qml @@ -32,17 +32,9 @@ Item { onSortKeyChanged: getFirstPage(); onSearchFilterChanged: { if (searchItemTest) { - var filteredCopy = copyOfItems.filter(function (item) { - return searchItemTest(searchFilter, item); - }); + var filteredCopy = applySearchItemTest(copyOfItems); finalModel.clear(); finalModel.append(filteredCopy); - /*for (var index = 0; index < finalModel.count; index++) { - if (!searchItemTest(searchFilter, finalModel.get(index))) { - finalModel.remove(index); - index--; // Don't skip over anything now that the indices have shifted. - } - }*/ } else { // TODO: fancy timer against fast typing. getFirstPage(); } @@ -57,9 +49,11 @@ Item { // State. property int currentPageToRetrieve: 0; // 0 = before first page. -1 = we have them all. Otherwise 1-based page number. property bool retrievedAtLeastOnePage: false; - // Resets both internal `ListModel`s and resets the page to retrieve to "1". + // We normally clear on reset. But if we want to "refresh", we can delay clearing the model until we get a result. + // Not normally set directly, but rather by giving a truthy argument to getFirstPage(true); + property bool delayedClear: false; function resetModel() { - finalModel.clear(); + if (!delayedClear) { finalModel.clear(); } currentPageToRetrieve = 1; retrievedAtLeastOnePage = false; copyOfItems = []; @@ -78,6 +72,7 @@ Item { console.warn("Warning", listModelName, JSON.stringify(message)); current_page_to_retrieve = -1; requestPending = false; + delayedClear = false; } if (error || (response.status !== 'success')) { return fail(error || response.status); @@ -93,14 +88,21 @@ Item { if (searchItemTest) { copyOfItems = copyOfItems.concat(processed); if (searchFilter) { - processed = processed.filter(function (item) { - return searchItemTest(searchFilter, item); - }); + processed = applySearchItemTest(processed); } } + if (delayedClear) { + finalModel.clear(); + delayedClear = false; + } finalModel.append(processed); // FIXME keep index steady, and apply any post sort/filter retrievedAtLeastOnePage = true; } + function applySearchItemTest(items) { + return items.filter(function (item) { + return searchItemTest(searchFilter, item); + }); + } // Override either http or getPage. property var http: null; // An Item that has a request function. @@ -120,7 +122,8 @@ Item { // Start the show by retrieving data according to `getPage()`. // It can be custom-defined by this item's Parent. - property var getFirstPage: function () { + property var getFirstPage: function (delayClear) { + delayedClear = !!delayClear; resetModel(); requestPending = true; getPage(); diff --git a/scripts/system/request-service.js b/scripts/system/request-service.js new file mode 100644 index 0000000000..84e80489fa --- /dev/null +++ b/scripts/system/request-service.js @@ -0,0 +1,50 @@ +"use strict"; +// +// request-service.js +// +// Created by Howard Stearns on May 22, 2018 +// Copyright 2018 High Fidelity, Inc +// +// Distributed under the Apache License, Version 2.0 +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +(function() { // BEGIN LOCAL_SCOPE + + // QML has its own XMLHttpRequest, but: + // - npm request is easier to use. + // - It is not easy to hack QML's XMLHttpRequest to use our MetaverseServer, and to supply the user's auth when contacting it. + // a. Our custom XMLHttpRequestClass object only works with QScriptEngine, not QML's javascript. + // b. We have hacked profiles that intercept requests to our MetavserseServer (providing the correct auth), but those + // only work in QML WebEngineView. Setting up communication between ordinary QML and a hiddent WebEngineView is + // tantamount to the following anyway, and would still have to duplicate the code from request.js. + + // So, this script does two things: + // 1. Allows any root .qml to signal sendToScript({id: aString, method: 'http.request', params: byNameOptions}) + // We will then asynchonously call fromScript({id: theSameString, method: 'http.response', error: errorOrFalsey, response: body}) + // on that root object. + // 2. If the uri used (computed from byNameOptions, see request.js) begins with '/', we will: + // a. Prepend Account.metaverseServerUR. + // b. Use the appropriate auth. + + var request = Script.require('request').request; + var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system"); + function fromQml(message) { // messages are {id, method, params}, like json-rpc. See also sendToQml. + switch (message.method) { + case 'http.request': + request(message.params, function (error, response) { + console.log('HRS FIXME request-service got', JSON.stringify(error), JSON.stringify(response)); + tablet.sendToQml({ + id: message.id, + method: 'http.response', + error: error, // Alas, this isn't always a JSON-RPC conforming error object. + response: response, + jsonrpc: '2.0' + }); + }); + break; + } + } + tablet.fromQml.connect(fromQml); + Script.scriptEnding.connect(function () { tablet.fromQml.disconnect(fromQml); }); +}()); // END LOCAL_SCOPE From e57bba1c0890fd2538d64a9b80e77c466a392790 Mon Sep 17 00:00:00 2001 From: milad Date: Tue, 29 May 2018 09:35:22 -0700 Subject: [PATCH 084/300] more cleanup --- tools/jsdoc/.gitignore | 6 +++- tools/jsdoc/Grav-Formater.js | 0 tools/jsdoc/gravPrep.js | 67 +++++++++++++++++++++++++----------- tools/jsdoc/warningLog | 0 4 files changed, 52 insertions(+), 21 deletions(-) delete mode 100644 tools/jsdoc/Grav-Formater.js delete mode 100644 tools/jsdoc/warningLog diff --git a/tools/jsdoc/.gitignore b/tools/jsdoc/.gitignore index 3f338a63fb..9387000ab1 100644 --- a/tools/jsdoc/.gitignore +++ b/tools/jsdoc/.gitignore @@ -2,4 +2,8 @@ out grav.bat gravE.bat gravPrep-Explore -Examine \ No newline at end of file +Examine +Check.js +grav.sh +gravPrep-Explore.js + diff --git a/tools/jsdoc/Grav-Formater.js b/tools/jsdoc/Grav-Formater.js deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tools/jsdoc/gravPrep.js b/tools/jsdoc/gravPrep.js index f48f08762e..caaab7fa73 100644 --- a/tools/jsdoc/gravPrep.js +++ b/tools/jsdoc/gravPrep.js @@ -84,7 +84,8 @@ const html_reg_typeDefinitonsTitle_replace = `

Type const html_reg_classDefinitonsTitle = /

Classes<\/h3>/; const html_reg_classDefinitonsTitle_replace = `

Classes

` const html_reg_firstDivClose = ``; -const html_reg_allNonHTML = /(
)/g; +const html_reg_allNonHTTPLinks = /()/g; +const html_reg_allHTTPLinks = /()/g; const html_reg_pretty = /(
)([\s\S]*?)(<\/pre>)/g;
 const html_reg_pretty_replace = "
$2<\/pre>";
 const html_reg_availableIn = /(
[\s\S]+?Available in:[\s\S]+?<\/table>)/g; @@ -97,8 +98,15 @@ const html_reg_typeDefType = /(
)(Type:)(<\/h5>[\s\S]*?)(
$2 $4
`; const html_reg_returnSize = /
Returns:<\/h5>/g; const html_reg_returnSize_replace = '
Returns:<\/h6>'; +const html_reg_depreciated = /(
[\s\S]+?)(
)([\s\S]+?)([\s\S]+?)(<\/ul>[\s\S]+?)(<\/dd>)/g; +const html_reg_depreciated_replace = '$1
$4
' + // Procedural functions -// Procedural functions +//remove .html from non http links +function removeHTML(match, p1, p2, p3) { + p2 = p2.replace(".html", ""); + return [p1, p2, p3].join(""); +} // Turn links to lower case that aren't part of IDs function allLinksToLowerCase(match, p1, p2, p3) { @@ -114,20 +122,31 @@ function allLinksToLowerCase(match, p1, p2, p3) { // Return the right group for where the method or type came from function fixLinkGrouping(match, p1, p2, p3) { + // Handle if referencing ID + let count = (p2.match(/\./g) || []).length; if (p2.indexOf("#") > -1) { let split = p2.split("#"); + if (count >= 2) { + // console.log("MULTI DOTS!"); + split = p2.split("."); + // This is a case where we are in an object page and there are multiple levels referenced (only doing 2 levels at the moment) + // console.log("split", split) + return [p1, "/api-reference/", returnRightGroup(split[1].slice(0, -1)), "/", split[1], ".", split[2], p3].join(""); + } if (split[0] === "global") { return [p1, "/api-reference/", "globals", "#", split[1], p3].join(""); } return [p1, "/api-reference/", returnRightGroup(split[0]), "/", p2, p3].join(""); } else { - if (p2.indexOf(".") > -1) { - let split = p2.split("."); + // Handle if there are member references + // console.log("count", count) + let split; + if (count === 1) { + split = p2.split("."); return [p1, "/api-reference/", returnRightGroup(split[1]), "/", split[1], p3].join(""); } return [p1, "/api-reference/", returnRightGroup(p2), "/", p2, p3].join(""); } - } function returnRightGroup(methodToCheck) { @@ -356,13 +375,14 @@ function makeGroupTOC(group) { let nextIndex = 0; let findbyNameLength = searchTerm.length; let curEndSplitTermIndex = -1; + let classHeader; do { // Find the index of where to stop searching curEndSplitTermIndex = content.indexOf(endSplitTerm); - console.log("curEndSplitTermIndex", curEndSplitTermIndex) + // console.log("curEndSplitTermIndex", curEndSplitTermIndex) // Find the index of the the next Search term curIndex = content.indexOf(searchTerm); - console.log("curIndex", curIndex) + // console.log("curIndex", curIndex) // The index of where the next search will start afterCurSearchIndex = curIndex+findbyNameLength; @@ -375,17 +395,20 @@ function makeGroupTOC(group) { if (curIndex > curEndSplitTermIndex){ break; } - // push from the cur index to the next found || the end term + // Push from the cur index to the next found || the end term let contentSlice = content.slice(curIndex, nextIndex); if (contentSlice.indexOf(`id="${title}"`) === -1){ foundArray.push(contentSlice); + } else { + classHeader = contentSlice; } - // remove that content + // Remove that content content = content.replace(contentSlice, ""); + curEndSplitTermIndex = content.indexOf(endSplitTerm); nextIndex = content.indexOf(searchTerm,afterCurSearchIndex); - // handle if nextIndex goes beyond endSplitTerm + // Handle if nextIndex goes beyond endSplitTerm if (nextIndex > curEndSplitTermIndex) { curIndex = content.indexOf(searchTerm); contentSlice = content.slice(curIndex, curEndSplitTermIndex); @@ -396,7 +419,9 @@ function makeGroupTOC(group) { break; } } while (curIndex > -1) - + if (classHeader){ + content = append(content, html_reg_findByArticleClose, classHeader, true); + } return [content, foundArray]; } @@ -486,7 +511,7 @@ function makeGroupTOC(group) { }) files.forEach(function (file, index){ // For testing individual files - if (index !== 6) return; + // if (index !== 59) return; let curSource = path.join(dir_out, file); if (path.extname(curSource) == ".html" && path.basename(curSource, '.html') !== "index") { // Clean up the html source @@ -508,16 +533,18 @@ function makeGroupTOC(group) { .replace(html_reg_static,"") // Remove static from the file names .replace(html_reg_title,"") // Remove title .replace(html_reg_objectHeader,"") // Remove extra Object Header - .replace(html_reg_htmlExt,"") // Remove the .html extension from all links - .replace(html_reg_dlClassDetails, "") // Remove unneccsary dlClassDetails Tag - .replace(html_reg_allNonHTML, allLinksToLowerCase) // Turn all links into lowercase before ID tags - .replace(html_reg_allNonHTML, fixLinkGrouping) // Make sure links refer to correct grouping + // .replace(html_reg_htmlExt,"") + .replace(html_reg_dlClassDetails, "") // Remove unneccsary dlClassDetails Tag + .replace(html_reg_allNonHTTPLinks, removeHTML) // Remove the .html extension from all links + .replace(html_reg_allNonHTTPLinks, allLinksToLowerCase) // Turn all links into lowercase before ID tags + .replace(html_reg_allNonHTTPLinks, fixLinkGrouping) // Make sure links refer to correct grouping .replace(html_reg_propertiesHeaderEdit, html_reg_propertiesHeaderEdit_Replace) // Remove : from Properties .replace(html_reg_typeEdit, html_reg_typeEdit_replace) // Put type on the same line .replace(html_reg_returnSize, html_reg_returnSize_replace) // make return size h6 instead of h5 .replace(html_reg_methodSize, html_reg_methodSize_replace) // make method size into h5 .replace(html_reg_pretty, html_reg_pretty_replace) - .replace(html_reg_classDefinitonsTitle, html_reg_classDefinitonsTitle_replace); + .replace(html_reg_classDefinitonsTitle, html_reg_classDefinitonsTitle_replace) + .replace(html_reg_depreciated, html_reg_depreciated_replace); // format depreciated better // Further HTML Manipulation // Make end term either Type Definitions or by the article @@ -525,12 +552,12 @@ function makeGroupTOC(group) { let foundTypeDefinitions; let foundSignalsAndMethods; if (currentContent.indexOf("Type Definitions") > -1){ - console.log("Found Type Definitions"); + // console.log("Found Type Definitions"); endTerm = `

Type Definitions

`; // Split HTML by Each named entry let contentSplitArray = splitBy(currentContent, html_reg_findByName, endTerm, htmlTitle); foundSignalsAndMethods = contentSplitArray[1]; - console.log("foundSignalsAndMethods", foundSignalsAndMethods) + // console.log("foundSignalsAndMethods", foundSignalsAndMethods) // Create a reference to the current content after split and the split functions currentContent = contentSplitArray[0] .replace(html_reg_typeDefType, html_reg_typeDefType_replace) // Edit how the typedef type looks @@ -540,7 +567,7 @@ function makeGroupTOC(group) { let contentSplitArrayForTypeDefs = splitBy(currentContent, html_reg_findByName, endTerm, htmlTitle); currentContent = contentSplitArrayForTypeDefs[0]; foundTypeDefinitions = contentSplitArrayForTypeDefs[1]; - console.log("foundTypeDefinitions", foundTypeDefinitions) + // console.log("foundTypeDefinitions", foundTypeDefinitions) } else { endTerm = html_reg_findByArticleClose; diff --git a/tools/jsdoc/warningLog b/tools/jsdoc/warningLog deleted file mode 100644 index e69de29bb2..0000000000 From 9c664a251243dd81f1927cd010221c49e11be042 Mon Sep 17 00:00:00 2001 From: milad Date: Tue, 29 May 2018 11:24:13 -0700 Subject: [PATCH 085/300] Cleaned up gravprep.js --- tools/jsdoc/README.md | 16 +- tools/jsdoc/gravPrep.js | 748 +++++++++++++++++++--------------------- 2 files changed, 377 insertions(+), 387 deletions(-) diff --git a/tools/jsdoc/README.md b/tools/jsdoc/README.md index 5cce6bb2a6..c428ab3a20 100644 --- a/tools/jsdoc/README.md +++ b/tools/jsdoc/README.md @@ -2,12 +2,26 @@ ##Prerequisites -* Install node.js +* Install node.js. * Install jsdoc via npm. `npm install jsdoc -g` +Run npm install if you would like th extra functionality for gravPrep. + To generate html documentation for the High Fidelity JavaScript API: * `cd tools/jsdoc` * `jsdoc . -c config.json` The out folder should contain index.html. + +To generate the grav automation files, run node gravPrep.js after you have made a JSdoc output folder. + +This will create files that are needed for hifi-grav and hifi-grav-content repos + +The md files for hifi-grav-content are located in out/grav/06.api-reference. + +The template twig html files for hifi-grav are located out/grav/templates. + +if you would like to copy these to a local version of the docs on your system you can run with the follows args: + +* node grav true "path/to/grav/" "path/to/grav/content" \ No newline at end of file diff --git a/tools/jsdoc/gravPrep.js b/tools/jsdoc/gravPrep.js index caaab7fa73..c9a4d14d0a 100644 --- a/tools/jsdoc/gravPrep.js +++ b/tools/jsdoc/gravPrep.js @@ -120,7 +120,7 @@ function allLinksToLowerCase(match, p1, p2, p3) { return [p1, p2, p3].join(""); } -// Return the right group for where the method or type came from +// Helper for fixing formatting of page links function fixLinkGrouping(match, p1, p2, p3) { // Handle if referencing ID let count = (p2.match(/\./g) || []).length; @@ -149,6 +149,7 @@ function fixLinkGrouping(match, p1, p2, p3) { } } +// Return the right group for where the method or type came from function returnRightGroup(methodToCheck) { for (var key in groupNameMemberMap) { for (i = 0; i < groupNameMemberMap[key].length; i++) { @@ -232,16 +233,16 @@ function prepareHtml(source) { function makeMdSource(title) { return dedent( ` - --- - title: ${title} - taxonomy: - category: - - docs - visible: true - highlight: - enabled: false - --- - ` + --- + title: ${title} + taxonomy: + category: + - docs + visible: true + highlight: + enabled: false + --- + ` ) } @@ -249,35 +250,35 @@ function makeMdSource(title) { function makeTwigFile(contentHtml) { return dedent( ` - {% extends 'partials/base_noGit.html.twig' %} - {% set tags = page.taxonomy.tag %} - {% if tags %} - {% set progress = page.collection({'items':{'@taxonomy':{'category': 'docs', 'tag': tags}},'order': {'by': 'default', 'dir': 'asc'}}) %} - {% else %} - {% set progress = page.collection({'items':{'@taxonomy':{'category': 'docs'}},'order': {'by': 'default', 'dir': 'asc'}}) %} - {% endif %} - - {% block navigation %} -
- {% endblock %} - - {% block content %} -
-
-

{{ page.title }}

- ${contentHtml} + + {% block navigation %} + -
- {% endblock %} - ` + {% endblock %} + + {% block content %} +
+
+

{{ page.title }}

+ ${contentHtml} +
+
+ {% endblock %} + ` ) } @@ -315,388 +316,363 @@ function makeGroupTOC(group) { let htmlGroup = mappedGroup.map(item => { return dedent( ` -
- ${item} -
- ` - ) - }) - return htmlGroup.join("\n"); - } +
+ ${item} +
+ ` + ) + }) + return htmlGroup.join("\n"); + } - // Handle Class TOCS - function makeClassTOC(group){ - let linkArray = [] - group.forEach( item => { - linkArray.push(`
${item.type}
`) - item.array.forEach( link => { - if ( link.indexOf('.') > -1 ){ - linkArray.push(``); - } else { - linkArray.push(``); - + // Handle Class TOCS + function makeClassTOC(group){ + let linkArray = [] + group.forEach( item => { + linkArray.push(`
${item.type}
`) + item.array.forEach( link => { + if ( link.indexOf('.') > -1 ){ + linkArray.push(``); + } else { + linkArray.push(``); + + } + }) + linkArray.push("
"); + }) + return linkArray.join("\n"); + } + + // Extract IDS for TOC + function extractIDs(groupToExtract){ + let firstLine = ""; + let id = ""; + let extractedIDs = []; + groupToExtract.forEach((item)=>{ + firstLine = item.split("\n")[0]; + try { + id = firstLine.split('id="')[1].split(`"`)[0]; + } catch (e){ + id = ""; + } + if (id){ + extractedIDs.push(id) } }) - linkArray.push("
"); - }) - return linkArray.join("\n"); - } + return extractedIDs; + } - // Extract IDS for TOC - function extractIDs(groupToExtract){ - let firstLine = ""; - let id = ""; - let extractedIDs = []; - groupToExtract.forEach((item)=>{ - firstLine = item.split("\n")[0]; - try { - id = firstLine.split('id="')[1].split(`"`)[0]; - } catch (e){ - id = ""; - } - if (id){ - extractedIDs.push(id) - } - }) - return extractedIDs; - } - - // Helper for splitting up html - // Takes: Content to split, SearchTerm to Split by, and term to End Splitting By - // Returns: [newContent after Split, Array of extracted ] - function splitBy(content, searchTerm, endSplitTerm, title){ - let foundArray = []; - let curIndex = -1; - let afterCurSearchIndex = -1 - let nextIndex = 0; - let findbyNameLength = searchTerm.length; - let curEndSplitTermIndex = -1; - let classHeader; - do { - // Find the index of where to stop searching - curEndSplitTermIndex = content.indexOf(endSplitTerm); - // console.log("curEndSplitTermIndex", curEndSplitTermIndex) - // Find the index of the the next Search term - curIndex = content.indexOf(searchTerm); - // console.log("curIndex", curIndex) - - // The index of where the next search will start - afterCurSearchIndex = curIndex+findbyNameLength; - // Find the content of the next Index - nextIndex = content.indexOf(searchTerm,afterCurSearchIndex); - // If the next index isn't found, then next index === index of the end term - if (nextIndex === -1){ - nextIndex = curEndSplitTermIndex; - } - if (curIndex > curEndSplitTermIndex){ - break; - } - // Push from the cur index to the next found || the end term - let contentSlice = content.slice(curIndex, nextIndex); - if (contentSlice.indexOf(`id="${title}"`) === -1){ - foundArray.push(contentSlice); - } else { - classHeader = contentSlice; - } - - // Remove that content - content = content.replace(contentSlice, ""); - - curEndSplitTermIndex = content.indexOf(endSplitTerm); - nextIndex = content.indexOf(searchTerm,afterCurSearchIndex); - // Handle if nextIndex goes beyond endSplitTerm - if (nextIndex > curEndSplitTermIndex) { + // Helper for splitting up html + // Takes: Content to split, SearchTerm to Split by, and term to End Splitting By + // Returns: [newContent after Split, Array of extracted ] + function splitBy(content, searchTerm, endSplitTerm, title){ + let foundArray = []; + let curIndex = -1; + let afterCurSearchIndex = -1 + let nextIndex = 0; + let findbyNameLength = searchTerm.length; + let curEndSplitTermIndex = -1; + let classHeader; + do { + // Find the index of where to stop searching + curEndSplitTermIndex = content.indexOf(endSplitTerm); + // console.log("curEndSplitTermIndex", curEndSplitTermIndex) + // Find the index of the the next Search term curIndex = content.indexOf(searchTerm); - contentSlice = content.slice(curIndex, curEndSplitTermIndex); + // console.log("curIndex", curIndex) + + // The index of where the next search will start + afterCurSearchIndex = curIndex+findbyNameLength; + // Find the content of the next Index + nextIndex = content.indexOf(searchTerm,afterCurSearchIndex); + // If the next index isn't found, then next index === index of the end term + if (nextIndex === -1){ + nextIndex = curEndSplitTermIndex; + } + if (curIndex > curEndSplitTermIndex){ + break; + } + // Push from the cur index to the next found || the end term + let contentSlice = content.slice(curIndex, nextIndex); if (contentSlice.indexOf(`id="${title}"`) === -1){ foundArray.push(contentSlice); + } else { + classHeader = contentSlice; } + + // Remove that content content = content.replace(contentSlice, ""); - break; + + curEndSplitTermIndex = content.indexOf(endSplitTerm); + nextIndex = content.indexOf(searchTerm,afterCurSearchIndex); + // Handle if nextIndex goes beyond endSplitTerm + if (nextIndex > curEndSplitTermIndex) { + curIndex = content.indexOf(searchTerm); + contentSlice = content.slice(curIndex, curEndSplitTermIndex); + if (contentSlice.indexOf(`id="${title}"`) === -1){ + foundArray.push(contentSlice); + } + content = content.replace(contentSlice, ""); + break; + } + } while (curIndex > -1) + if (classHeader){ + content = append(content, html_reg_findByArticleClose, classHeader, true); } - } while (curIndex > -1) - if (classHeader){ - content = append(content, html_reg_findByArticleClose, classHeader, true); + return [content, foundArray]; } - return [content, foundArray]; - } - // Split the signals and methods [Might make this more generic] - function splitMethodsSignals(allItemToSplit){ - let methodArray = []; - let signalArray = []; - - allItemToSplit.forEach( (content, index) => { - firstLine = content.split("\n")[0]; - if (firstLine.indexOf("{Signal}") > -1){ - signalArray.push(content); - } else if (firstLine.indexOf("span") > -1) { - methodArray.push(content); - } else { - } - }) - return [methodArray, signalArray]; - } - - // Helper to append - // Takes content, the search term to appendTo, the content to append, - // and bool if the append is before the found area - function append(content, searchTermToAppendto, contentToAppend, appendBefore){ - let contentArray = content.split("\n"); - let foundIndex = findArrayTrim(contentArray, searchTermToAppendto) - foundIndex = appendBefore ? foundIndex : foundIndex +1 - - contentArray.splice(foundIndex,0,contentToAppend) - return contentArray.join("\n") - } - - // Helper function for append - function findArrayTrim(array, searchTerm){ - var index = -1; - for (var i = 0; i < array.length; i++){ - index = array[i].trim().indexOf(searchTerm.trim()); - if (index > -1){ - return i - } + // Split the signals and methods [Might make this more generic] + function splitMethodsSignals(allItemToSplit){ + let methodArray = []; + let signalArray = []; + + allItemToSplit.forEach( (content, index) => { + firstLine = content.split("\n")[0]; + if (firstLine.indexOf("{Signal}") > -1){ + signalArray.push(content); + } else if (firstLine.indexOf("span") > -1) { + methodArray.push(content); + } else { + } + }) + return [methodArray, signalArray]; + } + + // Helper to append + // Takes content, the search term to appendTo, the content to append, + // and bool if the append is before the found area + function append(content, searchTermToAppendto, contentToAppend, appendBefore){ + let contentArray = content.split("\n"); + let foundIndex = findArrayTrim(contentArray, searchTermToAppendto) + foundIndex = appendBefore ? foundIndex : foundIndex +1 + + contentArray.splice(foundIndex,0,contentToAppend) + return contentArray.join("\n") + } + + // Helper function for append + function findArrayTrim(array, searchTerm){ + var index = -1; + for (var i = 0; i < array.length; i++){ + index = array[i].trim().indexOf(searchTerm.trim()); + if (index > -1){ + return i + } + } + return index; } - return index; - } // Remove grav directory if exists to make sure old files aren't kept - if (fs.existsSync(dir_grav)){ - console.log("dir_grav exists"); - rimraf.sync(dir_grav); - } +if (fs.existsSync(dir_grav)){ + console.log("dir_grav exists"); + rimraf.sync(dir_grav); +} // Create Grav directories in JSDOC output - dirArray.forEach(function(dir){ - if (!fs.existsSync(dir)) { - fs.mkdirSync(dir); - } - }) +dirArray.forEach(function(dir){ + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir); + } +}) // Create baseMD files - baseMDDirectories.forEach( md => { - createMD(md, map_dir_md[md]); - }) +baseMDDirectories.forEach( md => { + createMD(md, map_dir_md[md]); +}) // Read jsdoc output folder and process html files - let links = []; - let unTouchedLinks = []; +let links = []; +let unTouchedLinks = []; - let files = fs.readdirSync(dir_out); - // Create initial Group name member map to handle individual link :: TODO find better way to do this - files.forEach(function (file){ - let curSource = path.join(dir_out, file); - if (path.extname(curSource) == ".html" && path.basename(curSource, '.html') !== "index") { - let loadedHtml = prepareHtml(curSource); - let splitTitle = loadedHtml("title").text().split(": "); - let groupName = splitTitle[1]; - let htmlTitle = splitTitle.pop(); +let files = fs.readdirSync(dir_out); +// Create initial Group name member map to handle individual link +files.forEach(function (file){ + let curSource = path.join(dir_out, file); + if (path.extname(curSource) == ".html" && path.basename(curSource, '.html') !== "index") { + let loadedHtml = prepareHtml(curSource); + let splitTitle = loadedHtml("title").text().split(": "); + let groupName = splitTitle[1]; + let htmlTitle = splitTitle.pop(); + switch(groupName){ + case "Namespace": + groupNameMemberMap["Namespaces"].push(htmlTitle); + break; + case "Class": + groupNameMemberMap["Objects"].push(htmlTitle); + break; + default: + console.log(`Case not handled for ${groupName}`); + } + } +}) +files.forEach(function (file, index){ + // For testing individual files + // if (index !== 59) return; + let curSource = path.join(dir_out, file); + if (path.extname(curSource) == ".html" && path.basename(curSource, '.html') !== "index") { + // Clean up the html source + let loadedHtml = prepareHtml(curSource); + + // Extract the title, group name, and the main div + let splitTitle = loadedHtml("title").text().split(": "); + let groupName = splitTitle[1]; + let htmlTitle = splitTitle.pop(); + console.log("html title", htmlTitle) + let mainDiv = loadedHtml("#main") + + let methodIDs = []; + let signalIDs = []; + let typeDefIDs = []; + // Basic Regex HTML edits + let currentContent = mainDiv.html() + .replace(html_reg_findByMethod, "") //Remove Method title to be remade later + .replace(html_reg_static,"") // Remove static from the file names + .replace(html_reg_title,"") // Remove title + .replace(html_reg_objectHeader,"") // Remove extra Object Header + // .replace(html_reg_htmlExt,"") + .replace(html_reg_dlClassDetails, "") // Remove unneccsary dlClassDetails Tag + .replace(html_reg_allNonHTTPLinks, removeHTML) // Remove the .html extension from all links + .replace(html_reg_allNonHTTPLinks, allLinksToLowerCase) // Turn all links into lowercase before ID tags + .replace(html_reg_allNonHTTPLinks, fixLinkGrouping) // Make sure links refer to correct grouping + .replace(html_reg_propertiesHeaderEdit, html_reg_propertiesHeaderEdit_Replace) // Remove : from Properties + .replace(html_reg_typeEdit, html_reg_typeEdit_replace) // Put type on the same line + .replace(html_reg_returnSize, html_reg_returnSize_replace) // Make return size h6 instead of h5 + .replace(html_reg_methodSize, html_reg_methodSize_replace) // Make method size into h5 + .replace(html_reg_pretty, html_reg_pretty_replace) // remove the references to pretty + .replace(html_reg_classDefinitonsTitle, html_reg_classDefinitonsTitle_replace) // Change the class def titles + .replace(html_reg_depreciated, html_reg_depreciated_replace); // format depreciated better + + // Further HTML Manipulation + // Make end term either Type Definitions or by the article + let endTerm; + let foundTypeDefinitions; + let foundSignalsAndMethods; + if (currentContent.indexOf("Type Definitions") > -1){ + // console.log("Found Type Definitions"); + endTerm = `

Type Definitions

`; + // Split HTML by Each named entry + let contentSplitArray = splitBy(currentContent, html_reg_findByName, endTerm, htmlTitle); + foundSignalsAndMethods = contentSplitArray[1]; + // console.log("foundSignalsAndMethods", foundSignalsAndMethods) + // Create a reference to the current content after split and the split functions + currentContent = contentSplitArray[0] + .replace(html_reg_typeDefType, html_reg_typeDefType_replace) // Edit how the typedef type looks + .replace(html_reg_typeDefinitonsTitle, ""); // Remove Type Definitions Title to be remade later; + endTerm = html_reg_findByArticleClose; + // Grab split Type Definitions + let contentSplitArrayForTypeDefs = splitBy(currentContent, html_reg_findByName, endTerm, htmlTitle); + currentContent = contentSplitArrayForTypeDefs[0]; + foundTypeDefinitions = contentSplitArrayForTypeDefs[1]; + // console.log("foundTypeDefinitions", foundTypeDefinitions) + + } else { + endTerm = html_reg_findByArticleClose; + let contentSplitArray = splitBy(currentContent, html_reg_findByName, endTerm, htmlTitle); + foundSignalsAndMethods = contentSplitArray[1]; + currentContent = contentSplitArray[0]; + } + + // Create references to the split methods and signals + let processedMethodsSignalsAndTypeDefs = splitMethodsSignals(foundSignalsAndMethods); + let splitMethods = processedMethodsSignalsAndTypeDefs[0]; + let splitSignals = processedMethodsSignalsAndTypeDefs[1]; + let splitTypeDefinitionIDS; + // let splitDescription = processedMethodsSignalsAndTypeDefs[3]; + let splitMethodIDS = extractIDs(splitMethods); + let splitSignalIDS = extractIDs(splitSignals); + if (foundTypeDefinitions){ + splitTypeDefinitionIDS = extractIDs(foundTypeDefinitions); + } + let arrayToPassToClassToc = []; + + // if (splitDescription) { + // currentContent = append(currentContent, html_reg_containerOverview, splitDescription); + // } + if (splitMethods.length > 0) { + arrayToPassToClassToc.push({type: "Methods", array: splitMethodIDS}); + // Add the Signals header to the Signals HTML + splitMethods.unshift(html_reg_findByMethod_replace) + currentContent = append(currentContent, html_reg_findByArticleClose, splitMethods.join('\n'), true); + } + if (splitSignals.length > 0) { + arrayToPassToClassToc.push({type: "Signals", array: splitSignalIDS}); + // Add the Signals header to the Signals HTML + splitSignals.unshift(html_reg_signalTitle) + currentContent = append(currentContent, html_reg_findByArticleClose, splitSignals.join('\n'),true); + } + if (foundTypeDefinitions && foundTypeDefinitions.length > 0) { + arrayToPassToClassToc.push({type: "Type Definitions", array: splitTypeDefinitionIDS}); + // Add the Signals header to the Signals HTML + foundTypeDefinitions.unshift(html_reg_typeDefinitonsTitle_replace) + currentContent = append(currentContent, html_reg_findByArticleClose, foundTypeDefinitions.join('\n'), true); + } + + let classTOC = makeClassTOC(arrayToPassToClassToc); + if (groupName === "Global"){ + currentContent = append(currentContent, html_reg_findByTitle, classTOC); + } else if (htmlTitle === "Controller") { + // currentContent = currentContent.replace(html_reg_availableIn, ""); + let curatedList = currentContent.match(html_reg_findControllerCuratedList); + currentContent = currentContent.replace(html_reg_findControllerCuratedList, ""); + let entityMethods = currentContent.match(html_reg_findEntityMethods); + currentContent = currentContent.replace(html_reg_findEntityMethods, ""); + currentContent = append(currentContent, html_reg_firstDivClose, [classTOC, curatedList, entityMethods].join("\n")); + currentContent = currentContent.replace(html_reg_EntityMethodsHeader, html_reg_EntityMethodsHeader_replace); + } else { + currentContent = append(currentContent, html_reg_firstDivClose, classTOC); + } + + // Final Pretty Content + currentContent = htmlclean(currentContent); + currentContent = pretty(currentContent); + + // Handle Unique Categories switch(groupName){ case "Namespace": - groupNameMemberMap["Namespaces"].push(htmlTitle); + handleNamespace(htmlTitle, currentContent); break; case "Class": - groupNameMemberMap["Objects"].push(htmlTitle); + handleClass(htmlTitle, currentContent); + break; + case "Global": + handleGlobal(htmlTitle, currentContent); break; default: console.log(`Case not handled for ${groupName}`); } - } - }) - files.forEach(function (file, index){ - // For testing individual files - // if (index !== 59) return; - let curSource = path.join(dir_out, file); - if (path.extname(curSource) == ".html" && path.basename(curSource, '.html') !== "index") { - // Clean up the html source - let loadedHtml = prepareHtml(curSource); - - // Extract the title, group name, and the main div - let splitTitle = loadedHtml("title").text().split(": "); - let groupName = splitTitle[1]; - let htmlTitle = splitTitle.pop(); - console.log("html title", htmlTitle) - let mainDiv = loadedHtml("#main") - - let methodIDs = []; - let signalIDs = []; - let typeDefIDs = []; - // Basic Regex HTML edits - let currentContent = mainDiv.html() - .replace(html_reg_findByMethod, "") //Remove Method title to be remade later - .replace(html_reg_static,"") // Remove static from the file names - .replace(html_reg_title,"") // Remove title - .replace(html_reg_objectHeader,"") // Remove extra Object Header - // .replace(html_reg_htmlExt,"") - .replace(html_reg_dlClassDetails, "") // Remove unneccsary dlClassDetails Tag - .replace(html_reg_allNonHTTPLinks, removeHTML) // Remove the .html extension from all links - .replace(html_reg_allNonHTTPLinks, allLinksToLowerCase) // Turn all links into lowercase before ID tags - .replace(html_reg_allNonHTTPLinks, fixLinkGrouping) // Make sure links refer to correct grouping - .replace(html_reg_propertiesHeaderEdit, html_reg_propertiesHeaderEdit_Replace) // Remove : from Properties - .replace(html_reg_typeEdit, html_reg_typeEdit_replace) // Put type on the same line - .replace(html_reg_returnSize, html_reg_returnSize_replace) // make return size h6 instead of h5 - .replace(html_reg_methodSize, html_reg_methodSize_replace) // make method size into h5 - .replace(html_reg_pretty, html_reg_pretty_replace) - .replace(html_reg_classDefinitonsTitle, html_reg_classDefinitonsTitle_replace) - .replace(html_reg_depreciated, html_reg_depreciated_replace); // format depreciated better - - // Further HTML Manipulation - // Make end term either Type Definitions or by the article - let endTerm; - let foundTypeDefinitions; - let foundSignalsAndMethods; - if (currentContent.indexOf("Type Definitions") > -1){ - // console.log("Found Type Definitions"); - endTerm = `

Type Definitions

`; - // Split HTML by Each named entry - let contentSplitArray = splitBy(currentContent, html_reg_findByName, endTerm, htmlTitle); - foundSignalsAndMethods = contentSplitArray[1]; - // console.log("foundSignalsAndMethods", foundSignalsAndMethods) - // Create a reference to the current content after split and the split functions - currentContent = contentSplitArray[0] - .replace(html_reg_typeDefType, html_reg_typeDefType_replace) // Edit how the typedef type looks - .replace(html_reg_typeDefinitonsTitle, ""); // Remove Type Definitions Title to be remade later; - endTerm = html_reg_findByArticleClose; - // Grab split Type Definitions - let contentSplitArrayForTypeDefs = splitBy(currentContent, html_reg_findByName, endTerm, htmlTitle); - currentContent = contentSplitArrayForTypeDefs[0]; - foundTypeDefinitions = contentSplitArrayForTypeDefs[1]; - // console.log("foundTypeDefinitions", foundTypeDefinitions) - - } else { - endTerm = html_reg_findByArticleClose; - let contentSplitArray = splitBy(currentContent, html_reg_findByName, endTerm, htmlTitle); - foundSignalsAndMethods = contentSplitArray[1]; - currentContent = contentSplitArray[0]; - } - - // Create references to the split methods and signals - let processedMethodsSignalsAndTypeDefs = splitMethodsSignals(foundSignalsAndMethods); - let splitMethods = processedMethodsSignalsAndTypeDefs[0]; - let splitSignals = processedMethodsSignalsAndTypeDefs[1]; - let splitTypeDefinitionIDS; - // let splitDescription = processedMethodsSignalsAndTypeDefs[3]; - let splitMethodIDS = extractIDs(splitMethods); - let splitSignalIDS = extractIDs(splitSignals); - if (foundTypeDefinitions){ - splitTypeDefinitionIDS = extractIDs(foundTypeDefinitions); - } - let arrayToPassToClassToc = []; - - // if (splitDescription) { - // currentContent = append(currentContent, html_reg_containerOverview, splitDescription); - // } - if (splitMethods.length > 0) { - arrayToPassToClassToc.push({type: "Methods", array: splitMethodIDS}); - // Add the Signals header to the Signals HTML - splitMethods.unshift(html_reg_findByMethod_replace) - currentContent = append(currentContent, html_reg_findByArticleClose, splitMethods.join('\n'), true); - } - if (splitSignals.length > 0) { - arrayToPassToClassToc.push({type: "Signals", array: splitSignalIDS}); - // Add the Signals header to the Signals HTML - splitSignals.unshift(html_reg_signalTitle) - currentContent = append(currentContent, html_reg_findByArticleClose, splitSignals.join('\n'),true); - } - if (foundTypeDefinitions && foundTypeDefinitions.length > 0) { - arrayToPassToClassToc.push({type: "Type Definitions", array: splitTypeDefinitionIDS}); - // Add the Signals header to the Signals HTML - foundTypeDefinitions.unshift(html_reg_typeDefinitonsTitle_replace) - currentContent = append(currentContent, html_reg_findByArticleClose, foundTypeDefinitions.join('\n'), true); - } - - let classTOC = makeClassTOC(arrayToPassToClassToc); - if (groupName === "Global"){ - currentContent = append(currentContent, html_reg_findByTitle, classTOC); - } else if (htmlTitle === "Controller") { - // currentContent = currentContent.replace(html_reg_availableIn, ""); - let curatedList = currentContent.match(html_reg_findControllerCuratedList); - currentContent = currentContent.replace(html_reg_findControllerCuratedList, ""); - let entityMethods = currentContent.match(html_reg_findEntityMethods); - currentContent = currentContent.replace(html_reg_findEntityMethods, ""); - currentContent = append(currentContent, html_reg_firstDivClose, [classTOC, curatedList, entityMethods].join("\n")); - currentContent = currentContent.replace(html_reg_EntityMethodsHeader, html_reg_EntityMethodsHeader_replace); - } else { - currentContent = append(currentContent, html_reg_firstDivClose, classTOC); - } - - // Final Pretty Content - currentContent = htmlclean(currentContent); - currentContent = pretty(currentContent); - - // Handle Unique Categories - switch(groupName){ - case "Namespace": - handleNamespace(htmlTitle, currentContent); - break; - case "Class": - handleClass(htmlTitle, currentContent); - break; - case "Global": - handleGlobal(htmlTitle, currentContent); - break; - default: - console.log(`Case not handled for ${groupName}`); - } - } - }) + } +}) // Create the base Templates after processing individual files - createTemplate("API-Reference", makeGroupTOC(["Namespaces", "Objects", "Globals"])); - createTemplate("Namespaces", makeGroupTOC("Namespaces")); - createTemplate("Objects", makeGroupTOC("Objects")); +createTemplate("API-Reference", makeGroupTOC(["Namespaces", "Objects", "Globals"])); +createTemplate("Namespaces", makeGroupTOC("Namespaces")); +createTemplate("Objects", makeGroupTOC("Objects")); // Copy the files to the target Directories if Local - if (copyLocal){ - // Copy files to the Twig Directory - let templateFiles = fs.readdirSync(path.resolve(targetTemplateDirectory)); - // Remove Existing API files - templateFiles.forEach(function(file){ - let curSource = path.join(targetTemplateDirectory, file); - - if(path.basename(file, '.html').indexOf("API") > -1){ - fs.unlink(curSource); - } +if (copyLocal){ + // Copy files to the Twig Directory + let templateFiles = fs.readdirSync(path.resolve(targetTemplateDirectory)); + // Remove Existing API files + templateFiles.forEach(function(file){ + let curSource = path.join(targetTemplateDirectory, file); - }) - copyFolderRecursiveSync(dir_template, targetTemplateDirectory); - - // Copy files to the Md Directory - let baseMdRefDir = path.join(targetMDDirectory,"06.api-reference"); - // Remove existing MD directory - if (fs.existsSync(baseMdRefDir)){ - rimraf.sync(baseMdRefDir); + if(path.basename(file, '.html').indexOf("API") > -1){ + fs.unlink(curSource); } - copyFolderRecursiveSync(dir_md, targetMDDirectory); + + }) + copyFolderRecursiveSync(dir_template, targetTemplateDirectory); + + // Copy files to the Md Directory + let baseMdRefDir = path.join(targetMDDirectory,"06.api-reference"); + // Remove existing MD directory + if (fs.existsSync(baseMdRefDir)){ + rimraf.sync(baseMdRefDir); } - - - -/* - const html_reg_subsectionEdit_replace = '

$2

'; - const html_reg_subsectionEdit = /()([\s\S]*?)(<\/h.>)/g; - const html_reg_brRemove = /
[\s\S]+?
/; - const html_reg_typeDefSize = /(\n)/g; - const html_reg_typeDefSize_replace = ''; - const html_reg_typeReturnSize = /
Type:\<\/h5>/g; - const html_reg_typeReturnSize_replace = '
Type:
'; - const html_reg_containerOverview = `
` - - const html_reg_findByArticleOpen = `
` - const html_reg_fixLinkHashIssue = /()/g; - const html_reg_fixLinkHashIssue_replace = "$1$2#$4" - const html_reg_findLinks = /([\s\S]+?<\/a>)/g; - const html_reg_findGeneralLinks = /()/g; - const html_reg_findClassLinks = /([\s\S]+?<\/a>)/g; - const html_reg_findControllerPropertiesHeader = "
Properties
"; - - // .replace(html_reg_brRemove, "") // Remove extra Brs - // .replace(html_reg_code, html_reg_code_replace) -*/ \ No newline at end of file + copyFolderRecursiveSync(dir_md, targetMDDirectory); +} \ No newline at end of file From 7da96c0a72bbd0be4fcbf27488bf998ae420e4f6 Mon Sep 17 00:00:00 2001 From: milad Date: Tue, 29 May 2018 13:22:27 -0700 Subject: [PATCH 086/300] added vec3 fix --- libraries/script-engine/src/Vec3.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/script-engine/src/Vec3.h b/libraries/script-engine/src/Vec3.h index 59d55c8738..696981d1b4 100644 --- a/libraries/script-engine/src/Vec3.h +++ b/libraries/script-engine/src/Vec3.h @@ -1,4 +1,4 @@ -git rm // +// // Vec3.h // libraries/script-engine/src // From 4b4f6e0f0270d290a64fcd35df010fa79d2a49e4 Mon Sep 17 00:00:00 2001 From: milad Date: Tue, 29 May 2018 13:31:13 -0700 Subject: [PATCH 087/300] cleaned up file cruft --- tools/jsdoc/Check.js | 225 --------------- tools/jsdoc/grav.bat | 1 - tools/jsdoc/grav.sh | 3 - tools/jsdoc/gravPrep-Explore.js | 493 -------------------------------- 4 files changed, 722 deletions(-) delete mode 100644 tools/jsdoc/Check.js delete mode 100644 tools/jsdoc/grav.bat delete mode 100755 tools/jsdoc/grav.sh delete mode 100644 tools/jsdoc/gravPrep-Explore.js diff --git a/tools/jsdoc/Check.js b/tools/jsdoc/Check.js deleted file mode 100644 index 8005db743a..0000000000 --- a/tools/jsdoc/Check.js +++ /dev/null @@ -1,225 +0,0 @@ -var fs = require('fs'); -var path = require('path'); -var request = require('request'); -var axios = require('axios'); - -var badLinks = []; -// var baseLink = `http://localhost:8000/api-reference/`; -var baseLink = `https://docs.highfidelity.com`; -var linkList = fs.readFileSync(__dirname + '/Links-Untouched','utf8').split('\n'); -// console.log("link list", linkList); -// console.log("filtered List", JSON.stringify(filteredList)); -var linkHash = {}; - -var currentGroup; -linkList.forEach( link => { - link = link.trim() - // console.log("link", link) - if (link.slice(-1) === ':'){ - currentGroup = link.slice(0, link.length-1); - // console.log("current Group: ", currentGroup); - linkHash[currentGroup] = {}; - } else { - if (!linkHash[currentGroup][link]){ - linkHash[currentGroup][link] = link; - } - } -}); - -// console.log("linkHash:", JSON.stringify(linkHash)) -var badLinks = []; - - -var stream = fs.createWriteStream("badLinks", {flags: 'a'}); -var linkReg = /="([\s\S]*?)"/g -var keys = Object.keys(linkHash); - -keys.forEach( key => { - for (var linkKey in linkHash[key]){ - var link = linkHash[key][linkKey]; - // console.log("link", link); - var extractLink = link.split(`"`)[1]; - - if (!(extractLink.indexOf(':') > -1)){ - console.log(" adding link") - extractLink = baseLink + extractLink; - } else { - // console.log("found https") - } - console.log("extractLink", extractLink) - - // console.log("about to make a request for", extractLink) - axios.get(extractLink) - .then( response => { - console.log("response") - if (response.status === 404){ - console.log("found bad link") - // console.log(JSON.stringify({file: key, link: extractLink})) - // stream.write(JSON.stringify({file: key, link: extractLink})); - } - }) - .catch( error => { - console.log("error") - // console.log(error); - // if (error.response.status === 404){ - // console.log("found bad link") - // console.log(JSON.stringify({file: key, link: extractLink})) - // stream.write(JSON.stringify({file: key, link: extractLink})); - // } - }) - } - }) -stream.end(); - -function endsWith(path, exts) { - var result = false; - exts.forEach(function(ext) { - if (path.endsWith(ext)) { - result = true; - } - }); - return result; -} - -function WarningObject(file, type, issues){ - this.file = file; - this.type = type; - this.issues = issues; -} - -var warnings = []; - -function parse() { - var rootFolder = __dirname; - console.log("Scanning hifi source for jsdoc comments..."); - - // directories to scan for jsdoc comments - var dirList = [ - '../../interface/src', - '../../interface/src/assets', - '../../interface/src/audio', - '../../interface/src/avatar', - '../../interface/src/commerce', - '../../interface/src/devices', - '../../interface/src/java', - '../../interface/src/networking', - '../../interface/src/ui/', - '../../interface/src/scripting', - '../../interface/src/ui/overlays', - '../../interface/src/raypick', - '../../libraries/animation/src', - '../../libraries/audio-client/src', - '../../libraries/audio/src', - '../../libraries/avatars/src', - '../../libraries/avatars-renderer/src/avatars-renderer', - '../../libraries/controllers/src/controllers/', - '../../libraries/controllers/src/controllers/impl/', - '../../libraries/display-plugins/src/display-plugins/', - '../../libraries/entities/src', - '../../libraries/graphics-scripting/src/graphics-scripting/', - '../../libraries/input-plugins/src/input-plugins', - '../../libraries/model-networking/src/model-networking/', - '../../libraries/networking/src', - '../../libraries/octree/src', - '../../libraries/physics/src', - '../../libraries/pointers/src', - '../../libraries/script-engine/src', - '../../libraries/shared/src', - '../../libraries/shared/src/shared', - '../../libraries/trackers/src/trackers', - '../../libraries/ui/src/ui', - '../../plugins/oculus/src', - '../../plugins/openvr/src' - ]; - - // only files with this extension will be searched for jsdoc comments. - var exts = ['.h', '.cpp']; - - dirList.forEach(function (dir) { - var joinedDir = path.join(rootFolder, dir); - var files = fs.readdirSync(joinedDir); - files.forEach(function (file) { - var pathDir = path.join(joinedDir, file); - if (fs.lstatSync(pathDir).isFile() && endsWith(pathDir, exts)) { - // load entire file into a string - var data = fs.readFileSync(pathDir, "utf8"); - var fileName = path.basename(file); - // var badJSDocWarnings = checkForBadJSDoc(data, fileName); - // if (badJSDocWarnings.length > 0){ - // warnings.push(badJSDocWarnings); - // } - // var badWordsList = checkForBadwordlist(data, fileName); - // if (badWordsList){ - // warnings.push(badWordsList); - // } - // var dotDescriptionList = checkForDotDescription(data, fileName); - // if (dotDescriptionList.length > 0){ - // warnings.push(dotDescriptionList); - // } - - - } - }); - }); -} - -function checkForBadJSDoc(dataToSearch, file){ - var warningList = []; - var reg = /\/\*\*js.*/g; - var matches = dataToSearch.match(reg); - if (matches) { - // add to source, but strip off c-comment asterisks - var filtered = matches.filter( item => { - return item.trim() !== '/**jsdoc'; - }); - if (filtered.length > 0){ - warningList.push(new WarningObject(file, "badJSDOC", filtered)); - } - } - return warningList; -} - -function checkForDotDescription(dataToSearch, file){ - var warningList = []; - var reg = /@property {.+?\..+?}/g - var matches = dataToSearch.match(reg); - if (matches) { - warningList.push(new WarningObject(file, "dotDescription", matches)); - } - return warningList; -} - -var badWordList = ["@params", "@return", "@bool"]; - -function checkForBadwordlist(dataToSearch, file){ - var warningList = []; - var reg = /(\/\*\*jsdoc(.|[\r\n])*?\*\/)/g; - var matches = dataToSearch.match(reg); - if (matches) { - var filtered = matches.forEach( item => { - var split = item.split(" "); - var filterList = []; - item.split(" ").forEach( item => { - badWordList.forEach(searchTerm => { - if (item === searchTerm) { - filterList.push(searchTerm); - } - }) - }) - if (filterList.length > 0) { - warningList.push(filterList); - } - }); - } - let flatten = warningList.reduce( (prev, cur) => { - return [...prev, ...cur]; - },[]) - let unique = [...new Set(flatten)]; - if (warningList.length > 0) { - return new WarningObject(file, "badWordList", unique); - } - -} - -parse(); -fs.writeFileSync(path.join(__dirname, "warningLog"), warnings.map( item => JSON.stringify(item)).join("\n")); \ No newline at end of file diff --git a/tools/jsdoc/grav.bat b/tools/jsdoc/grav.bat deleted file mode 100644 index 8ac0e4162a..0000000000 --- a/tools/jsdoc/grav.bat +++ /dev/null @@ -1 +0,0 @@ -node gravPrep true "D:\ROLC_High-Fidelity\02_Organize\O_Projects\Docs\hifi-docs-grav\user\themes\learn2" "D:\ROLC_High-Fidelity\02_Organize\O_Projects\Docs\hifi-docs-grav-content" \ No newline at end of file diff --git a/tools/jsdoc/grav.sh b/tools/jsdoc/grav.sh deleted file mode 100755 index edd8b6b197..0000000000 --- a/tools/jsdoc/grav.sh +++ /dev/null @@ -1,3 +0,0 @@ -!#/bin/bash -clear -node gravPrep true "/Users/milad/ROLC/Reference/Programming/R_VR/Hifi/hifi-docs-grav/user/themes/learn2/" "/Users/milad/ROLC/Reference/Programming/R_VR/Hifi/hifi-docs-grav-content" \ No newline at end of file diff --git a/tools/jsdoc/gravPrep-Explore.js b/tools/jsdoc/gravPrep-Explore.js deleted file mode 100644 index e0f56de1f2..0000000000 --- a/tools/jsdoc/gravPrep-Explore.js +++ /dev/null @@ -1,493 +0,0 @@ -// Dependencies -const htmlclean = require('htmlclean'); -const fs = require('fs'); -const path = require('path'); -const pretty = require('pretty'); -const cheerio = require('cheerio'); -const rimraf = require('rimraf'); -const dedent = require('dedent-js'); - -// Arg Vars -const copyLocal = process.argv[2]; -console.log("copyLocal:", copyLocal); -let targetTemplateDirectory = '' -let targetMDDirectory = '' -if (copyLocal){ - targetTemplateDirectory = process.argv[3]; - targetMDDirectory = process.argv[4];; -} - -// Required directories -let dir_out = path.join(__dirname, 'out'); - -let dir_grav = path.join(dir_out, 'grav'); -let dir_css = path.join(dir_grav, 'css'); -let dir_js = path.join(dir_grav, 'js'); -let dir_template = path.join(dir_grav, 'templates'); - -let dir_md = path.join(dir_grav, '06.api-reference'); -let dir_md_objects = path.join(dir_md, '02.Objects'); -let dir_md_namespaces = path.join(dir_md, '01.Namespaces'); -let dir_md_globals = path.join(dir_md, '03.Globals'); - -// Array to itterate over and create if doesn't exist -let dirArray = [dir_grav, dir_css, dir_js, dir_template, dir_md, dir_md_objects, dir_md_namespaces, dir_md_globals]; - -// Maps for directory names -let map_dir_md = { - "API-Reference": dir_md, - "Globals": dir_md_globals, - "Objects": dir_md_objects, - "Namespaces": dir_md_namespaces, - "Class": dir_md_objects, - "Namespace": dir_md_namespaces, - "Global": dir_md_globals -} - -// Base Grouping Directories for MD files -let baseMDDirectories = ["API-Reference", "Globals", "Namespaces", "Objects"] - -// Html variables to be handle regex replacements -const html_reg_static = /\(static\)<\/span>/g -const html_reg_title = /\.+?\<\/h1\>/g; -const html_reg_htmlExt = /\.html/g; -const html_reg_objectHeader = /
[\s\S]+?<\/header>/; -const html_reg_objectSpanNew = /

<\/h4>/; -const html_reg_brRemove = /
[\s\S]+?
/; -const html_reg_subsectionEdit = /()([\s\S]*?)(<\/h.>)/g; -const html_reg_subsectionEdit_replace = '

$2

'; -const html_reg_propertiesHeaderEdit = '

Properties:

'; -const html_reg_propertiesHeaderEdit_Replace = '

Properties

'; -const html_reg_typeEdit = /(
Returns[\s\S]*?Type)(<\/dt[\s\S]*?type">)(.*?)(<\/span><\/dd>[\s\S]*?<\/dl>)/g; -const html_reg_typeEdit_replace = '$1: $3' -const html_reg_methodSize = /()(<\/h4>)/g; -const html_reg_methodSize_replace = ''; -const html_reg_typeDefSize = /()/g; -const html_reg_typeDefSize_replace = ''; -const html_reg_returnSize = /
Returns:<\/h5>/g; -const html_reg_returnSize_replace = '
Returns:<\/h6>'; -const html_reg_findByName = '
Methods
`; -const html_reg_findByArticleClose = `

` -const html_reg_signalTitle = `

Signals

`; -const html_reg_typeDefinitonsTitle = `

Type Definitions

`; -const html_reg_firstTableClose = `
`; - - -// Mapping for GroupNames and Members -let groupNameMemberMap = { - "Objects": [], - "Namespaces": [], - "Globals": [] -} - -// Procedural functions -// Create the actual MD file -function createMD(title, directory, needsDir, isGlobal){ - let mdSource = makeMdSource(title); - - if (needsDir){ - if (!fs.existsSync(directory)) { - fs.mkdirSync(directory); - } - } - - let destinationMDFile = path.join(directory, `API_${title}.md`); - fs.writeFileSync(destinationMDFile, mdSource); -} - -// Create the actual Template file -function createTemplate(title,content){ - let twigBasePartial = makeTwigFile(content); - let destinationFile = path.join(dir_template, `API_${title}.html.twig`); - fs.writeFileSync(destinationFile, twigBasePartial); -} - -// Copy file from source to target - used for recurssive call -function copyFileSync( source, target ) { - let targetFile = target; - - // If target is a directory a new file with the same name will be created - if ( fs.existsSync( target ) ) { - // console.log("target exists"); - if ( fs.lstatSync( target ).isDirectory() ) { - // console.log("target is a directory"); - - targetFile = path.join( target, path.basename( source ) ); - } - } - - fs.writeFileSync(targetFile, fs.readFileSync(source)); -} - -// Copy file from source to target -function copyFolderRecursiveSync( source, target ) { - var files = []; - - // Check if folder needs to be created or integrated - var targetFolder = path.join( target, path.basename( source ) ); - if ( !fs.existsSync( targetFolder ) ) { - fs.mkdirSync( targetFolder ); - } - - // Copy - if ( fs.lstatSync( source ).isDirectory() ) { - files = fs.readdirSync( source ); - files.forEach( function ( file ) { - var curSource = path.join( source, file ); - if ( fs.lstatSync( curSource ).isDirectory() ) { - copyFolderRecursiveSync( curSource, targetFolder ); - } else { - copyFileSync( curSource, targetFolder ); - } - }); - } -} - -// Clean up the Html -function prepareHtml(source){ - let htmlBefore = fs.readFileSync(source, {encoding: 'utf8'}); - let htmlAfter = htmlclean(htmlBefore); - let htmlAfterPretty = pretty(htmlAfter); - return cheerio.load(htmlAfterPretty); -} - -// Base file for MD's -function makeMdSource(title){ - return dedent( - ` - --- - title: ${title} - taxonomy: - category: - - docs - visible: true - --- - ` - ) -} - -// Base file for Templates -function makeTwigFile(contentHtml){ - return dedent( - ` - {% extends 'partials/base_noGit.html.twig' %} - {% set tags = page.taxonomy.tag %} - {% if tags %} - {% set progress = page.collection({'items':{'@taxonomy':{'category': 'docs', 'tag': tags}},'order': {'by': 'default', 'dir': 'asc'}}) %} - {% else %} - {% set progress = page.collection({'items':{'@taxonomy':{'category': 'docs'}},'order': {'by': 'default', 'dir': 'asc'}}) %} - {% endif %} - - {% block navigation %} - - {% endblock %} - - {% block content %} -
-

{{ page.title }}

- ${contentHtml} -
- {% endblock %} - ` - ) -} - -// Handle NameSpace Group -function handleNamespace(title, content){ - groupNameMemberMap["Namespaces"].push(title); - let destinationDirectory = path.join(map_dir_md["Namespace"], title); - createMD(title, destinationDirectory, true); - createTemplate(title, content); -} - -// Handle Class Group -function handleClass(title, content){ - groupNameMemberMap["Objects"].push(title); - let destinationDirectory = path.join(map_dir_md["Class"], title); - createMD(title, destinationDirectory, true) - - let formatedHtml = content - .replace(html_reg_objectSpanNew,"") - createTemplate(title, formatedHtml); -} - -// Handle Global Group -function handleGlobal(title, content){ - groupNameMemberMap["Globals"].push("Globals"); - createMD("Globals", map_dir_md["Global"], false, true); - createTemplate("Globals", content); -} - -// Handle Group TOCs -function makeGroupTOC(group){ - let mappedGroup; - if (!Array.isArray(group)){ - mappedGroup = groupNameMemberMap[group]; - } else { - mappedGroup = group; - } - let htmlGroup = mappedGroup.map( item => { - return dedent( - ` -
- ${item} -
- ` - ) - }) - return htmlGroup.join("\n"); -} - -// Handle Class TOCS -function makeClassTOC(group){ - console.log("group", group) - let linkArray = [] - group.forEach( item => { - linkArray.push(`
${item.type}
`) - item.array.forEach( link => { - if ( link.indexOf('.') > -1 ){ - linkArray.push(``); - } else { - linkArray.push(``); - } - - }) - linkArray.push("
"); - }) - return linkArray.join("\n"); -} - -// Extract IDS for TOC -function extractIDs(groupToExtract){ - let firstLine = ""; - let id = ""; - let extractedIDs = []; - groupToExtract.forEach((item)=>{ - firstLine = item.split("\n")[0]; - try { - id = firstLine.split('id="')[1].split(`"`)[0]; - } catch (e){ - - } - extractedIDs.push(id) - }) - return extractedIDs; -} - -// Helper for splitting up html -// Takes: Content to split, SearchTerm to Split by, and term to End Splitting By -// Returns: [newContent after Split, Array of extracted ] -function splitBy(content, searchTerm, endSplitTerm){ - let foundArray = []; - let curIndex = -1; - let afterCurSearchIndex = -1 - let negateTermIndex = -1; - let nextIndex = 0; - let findbyNameLength = searchTerm.length; - let curfoundArrayIndex = 0; - let curEndSplitTermIndex = -1; - do { - curEndSplitTermIndex = content.indexOf(endSplitTerm); - curIndex = content.indexOf(searchTerm); - afterCurSearchIndex = curIndex+findbyNameLength; - nextIndex = content.indexOf(searchTerm,afterCurSearchIndex); - if (nextIndex === -1){ - nextIndex = curEndSplitTermIndex; - } - foundArray.push(content.slice(curIndex, nextIndex)) - // remove that content - content = content.replace(foundArray[curfoundArrayIndex], ""); - curfoundArrayIndex++; - } while (curIndex > -1) - return [content, foundArray]; -} - -// Split the signals and methods [Might make this more generic] -function splitMethodsSignalsAndTypeDefs(allItemToSplit){ - let methodArray = []; - let signalArray = []; - let typeDefArray = []; - let description; - // console.log(allItemToSplit.length); - allItemToSplit.forEach( content => { - firstLine = content.split("\n")[0]; - if (firstLine.indexOf("Signal") > -1){ - // console.log("Found signal") - signalArray.push(content); - } else if (firstLine.indexOf("span") > -1) { - // console.log("Found method") - if (content.indexOf("Available") > -1){ - console.log("found Available"); - description = content; - } else { - methodArray.push(content); - } - } else { - // console.log("Found typeDef") - if(firstLine.trim() !== ""){ - typeDefArray.push(content); - } - } - }) - return [methodArray, signalArray, typeDefArray, description]; -} - -// Helper to append -// Takes content, the search term to appendTo, the content to append, -// and bool if the append is before the found area -function append(content, searchTermToAppendto, contentToAppend, appendBefore){ - let contentArray = content.split("\n"); - let foundIndex = findArrayTrim(contentArray, searchTermToAppendto) - foundIndex = appendBefore ? foundIndex : foundIndex +1 - - contentArray.splice(foundIndex,0,contentToAppend) - return contentArray.join("\n") -} - -// Helper function for append -function findArrayTrim(array, searchTerm){ - var index = -1; - for (var i = 0; i < array.length; i++){ - index = array[i].trim().indexOf(searchTerm.trim()); - if (index > -1){ - return i - } - } - return index; -} - - -// Remove grav directory if exists to make sure old files aren't kept -if (fs.existsSync(dir_grav)){ - console.log("dir_grav exists"); - rimraf.sync(dir_grav); -} - -// Create Grav directories in JSDOC output -dirArray.forEach(function(dir){ - if (!fs.existsSync(dir)) { - fs.mkdirSync(dir); - } -}) - -// Create baseMD files -baseMDDirectories.forEach( md => { - createMD(md, map_dir_md[md]); -}) - -// Read jsdoc output folder and process html files - let curSource = path.join(dir_out, 'global.html'); - if (path.extname(curSource) == ".html" && path.basename(curSource, '.html') !== "index") { - // Clean up the html source - let loadedHtml = prepareHtml(curSource); - - // Extract the title, group name, and the main div - let splitTitle = loadedHtml("title").text().split(": "); - let groupName = splitTitle[1]; - let htmlTitle = splitTitle.pop(); - let mainDiv = loadedHtml("#main") - - let methodIDs = []; - let signalIDs = []; - let typeDefIDs = []; - // Basic Regex HTML edits - let mainDivRegexed = mainDiv.html() - .replace(html_reg_static,"") - .replace(html_reg_title,"") - .replace(html_reg_objectHeader,"") - .replace(html_reg_htmlExt,"") - .replace(html_reg_brRemove, "") - .replace(html_reg_subsectionEdit, html_reg_subsectionEdit_replace) - .replace(html_reg_propertiesHeaderEdit, html_reg_propertiesHeaderEdit_Replace) - .replace(html_reg_typeEdit, html_reg_typeEdit_replace) - .replace(html_reg_returnSize, html_reg_returnSize_replace) - .replace(html_reg_methodSize, html_reg_methodSize_replace) - .replace(html_reg_typeDefSize, html_reg_typeDefSize_replace) - .replace(html_reg_typeDefinitonsTitle, "") - .replace(html_reg_findByMethod, ""); - fs.writeFileSync(__dirname + "/Examine/global.html", mainDivRegexed); - // Further HTML Manipulation - // Split HTML by Each named entry - let contentSplitArray = splitBy(mainDivRegexed, html_reg_findByName, html_reg_findByArticleClose); - // Create a reference to the current content after split and the split functions - let currentContent = contentSplitArray[0]; - // Create references to the split methods and signals - let processedMethodsSignalsAndTypeDefs = splitMethodsSignalsAndTypeDefs(contentSplitArray[1]); - let splitMethods = processedMethodsSignalsAndTypeDefs[0]; - let splitSignals = processedMethodsSignalsAndTypeDefs[1]; - let splitTypeDefintions = processedMethodsSignalsAndTypeDefs[2]; - let splitDescription = processedMethodsSignalsAndTypeDefs[3]; - let splitMethodIDS = extractIDs(splitMethods); - let splitSignalIDS = extractIDs(splitSignals); - let splitTypeDefinitionIDS = extractIDs(splitTypeDefintions); - let arrayToPassToClassToc = []; - - // Append Signals and Methods to the current Content - if (!splitDescription) { - currentContent = append(currentContent, html_reg_title, splitDescription); - } - if (splitMethods.length > 0) { - arrayToPassToClassToc.push({type: "Methods", array: splitMethodIDS}); - // Add the Signals header to the Signals HTML - splitMethods.unshift(html_reg_findByMethod) - currentContent = append(currentContent, html_reg_findByArticleClose, splitMethods.join('\n'), true); - } - if (splitSignals.length > 0) { - arrayToPassToClassToc.push({type: "Signals", array: splitSignalIDS}); - // Add the Signals header to the Signals HTML - splitSignals.unshift(html_reg_signalTitle) - currentContent = append(currentContent, html_reg_findByArticleClose, splitSignals.join('\n'),true); - } - if (splitTypeDefintions.length > 0) { - - // console.log(path.basename(curSource, '.html')); - // console.log(splitTypeDefintions.length); - arrayToPassToClassToc.push({type: "Type Definitions", array: splitTypeDefinitionIDS}); - // Add the Signals header to the Signals HTML - splitTypeDefintions.unshift(html_reg_typeDefinitonsTitle) - currentContent = append(currentContent, html_reg_findByArticleClose, splitTypeDefintions.join('\n'), true); - } - - let classTOC = makeClassTOC(arrayToPassToClassToc); - currentContent = append(currentContent, html_reg_firstTableClose, classTOC); - - // Final Pretty Content - currentContent = htmlclean(currentContent); - currentContent = pretty(currentContent); - - // Handle Unique Categories - switch(groupName){ - case "Namespace": - handleNamespace(htmlTitle, currentContent); - break; - case "Class": - handleClass(htmlTitle, currentContent); - break; - case "Global": - handleGlobal(htmlTitle, currentContent); - break; - default: - console.log(`Case not handled for ${groupName}`); - } - } - -// Create the base Templates after processing individual files -createTemplate("API-Reference", makeGroupTOC(["Namespaces", "Objects", "Globals"])); -createTemplate("Namespaces", makeGroupTOC("Namespaces")); -createTemplate("Objects", makeGroupTOC("Objects")); - -// Copy the files to the target Directories if Local \ No newline at end of file From 6a8fa3a15afb972cb55b79176f51135e6999d648 Mon Sep 17 00:00:00 2001 From: milad Date: Tue, 29 May 2018 14:35:33 -0700 Subject: [PATCH 088/300] Added edits to readme --- tools/jsdoc/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/jsdoc/README.md b/tools/jsdoc/README.md index c428ab3a20..5cdb1ea44e 100644 --- a/tools/jsdoc/README.md +++ b/tools/jsdoc/README.md @@ -5,7 +5,8 @@ * Install node.js. * Install jsdoc via npm. `npm install jsdoc -g` -Run npm install if you would like th extra functionality for gravPrep. +If you would like the extra functionality for gravPrep: +* Run npm install To generate html documentation for the High Fidelity JavaScript API: From 301aba06a3caea1285393991dabac7dd7ecd9155 Mon Sep 17 00:00:00 2001 From: milad Date: Tue, 29 May 2018 14:39:10 -0700 Subject: [PATCH 089/300] modified git ignore --- tools/jsdoc/.gitignore | 7 ------- 1 file changed, 7 deletions(-) diff --git a/tools/jsdoc/.gitignore b/tools/jsdoc/.gitignore index 9387000ab1..148363ca03 100644 --- a/tools/jsdoc/.gitignore +++ b/tools/jsdoc/.gitignore @@ -1,9 +1,2 @@ out -grav.bat -gravE.bat -gravPrep-Explore -Examine -Check.js -grav.sh -gravPrep-Explore.js From a048f6f7d5d71737521367182cbdcef8704c62e1 Mon Sep 17 00:00:00 2001 From: milad Date: Tue, 29 May 2018 14:48:52 -0700 Subject: [PATCH 090/300] indent fix --- tools/jsdoc/gravPrep.js | 359 ++++++++++++++++++++-------------------- 1 file changed, 176 insertions(+), 183 deletions(-) diff --git a/tools/jsdoc/gravPrep.js b/tools/jsdoc/gravPrep.js index c9a4d14d0a..849837bae0 100644 --- a/tools/jsdoc/gravPrep.js +++ b/tools/jsdoc/gravPrep.js @@ -100,7 +100,8 @@ const html_reg_returnSize = /
Returns:<\/h5>/g; const html_reg_returnSize_replace = '
Returns:<\/h6>'; const html_reg_depreciated = /(
[\s\S]+?)(
)([\s\S]+?)([\s\S]+?)(<\/ul>[\s\S]+?)(<\/dd>)/g; const html_reg_depreciated_replace = '$1
$4
' - // Procedural functions + +// Procedural functions //remove .html from non http links function removeHTML(match, p1, p2, p3) { @@ -233,16 +234,16 @@ function prepareHtml(source) { function makeMdSource(title) { return dedent( ` - --- - title: ${title} - taxonomy: - category: - - docs - visible: true - highlight: - enabled: false - --- - ` + --- + title: ${title} + taxonomy: + category: + - docs + visible: true + highlight: + enabled: false + --- + ` ) } @@ -250,35 +251,35 @@ function makeMdSource(title) { function makeTwigFile(contentHtml) { return dedent( ` - {% extends 'partials/base_noGit.html.twig' %} - {% set tags = page.taxonomy.tag %} - {% if tags %} - {% set progress = page.collection({'items':{'@taxonomy':{'category': 'docs', 'tag': tags}},'order': {'by': 'default', 'dir': 'asc'}}) %} - {% else %} - {% set progress = page.collection({'items':{'@taxonomy':{'category': 'docs'}},'order': {'by': 'default', 'dir': 'asc'}}) %} - {% endif %} - - {% block navigation %} - - {% endblock %} - - {% block content %} -
-
-

{{ page.title }}

- ${contentHtml} -
-
- {% endblock %} - ` + {% extends 'partials/base_noGit.html.twig' %} + {% set tags = page.taxonomy.tag %} + {% if tags %} + {% set progress = page.collection({'items':{'@taxonomy':{'category': 'docs', 'tag': tags}},'order': {'by': 'default', 'dir': 'asc'}}) %} + {% else %} + {% set progress = page.collection({'items':{'@taxonomy':{'category': 'docs'}},'order': {'by': 'default', 'dir': 'asc'}}) %} + {% endif %} + + {% block navigation %} + + {% endblock %} + + {% block content %} +
+
+

{{ page.title }}

+ ${contentHtml} +
+
+ {% endblock %} + ` ) } @@ -329,143 +330,143 @@ function makeGroupTOC(group) { return htmlGroup.join("\n"); } - // Handle Class TOCS - function makeClassTOC(group){ - let linkArray = [] - group.forEach( item => { - linkArray.push(`
${item.type}
`) - item.array.forEach( link => { - if ( link.indexOf('.') > -1 ){ - linkArray.push(``); - } else { - linkArray.push(``); - - } - }) - linkArray.push("
"); - }) - return linkArray.join("\n"); - } - - // Extract IDS for TOC - function extractIDs(groupToExtract){ - let firstLine = ""; - let id = ""; - let extractedIDs = []; - groupToExtract.forEach((item)=>{ - firstLine = item.split("\n")[0]; - try { - id = firstLine.split('id="')[1].split(`"`)[0]; - } catch (e){ - id = ""; - } - if (id){ - extractedIDs.push(id) - } - }) - return extractedIDs; - } - - // Helper for splitting up html - // Takes: Content to split, SearchTerm to Split by, and term to End Splitting By - // Returns: [newContent after Split, Array of extracted ] - function splitBy(content, searchTerm, endSplitTerm, title){ - let foundArray = []; - let curIndex = -1; - let afterCurSearchIndex = -1 - let nextIndex = 0; - let findbyNameLength = searchTerm.length; - let curEndSplitTermIndex = -1; - let classHeader; - do { - // Find the index of where to stop searching - curEndSplitTermIndex = content.indexOf(endSplitTerm); - // console.log("curEndSplitTermIndex", curEndSplitTermIndex) - // Find the index of the the next Search term - curIndex = content.indexOf(searchTerm); - // console.log("curIndex", curIndex) - - // The index of where the next search will start - afterCurSearchIndex = curIndex+findbyNameLength; - // Find the content of the next Index - nextIndex = content.indexOf(searchTerm,afterCurSearchIndex); - // If the next index isn't found, then next index === index of the end term - if (nextIndex === -1){ - nextIndex = curEndSplitTermIndex; - } - if (curIndex > curEndSplitTermIndex){ - break; - } - // Push from the cur index to the next found || the end term - let contentSlice = content.slice(curIndex, nextIndex); - if (contentSlice.indexOf(`id="${title}"`) === -1){ - foundArray.push(contentSlice); - } else { - classHeader = contentSlice; - } - - // Remove that content - content = content.replace(contentSlice, ""); - - curEndSplitTermIndex = content.indexOf(endSplitTerm); - nextIndex = content.indexOf(searchTerm,afterCurSearchIndex); - // Handle if nextIndex goes beyond endSplitTerm - if (nextIndex > curEndSplitTermIndex) { - curIndex = content.indexOf(searchTerm); - contentSlice = content.slice(curIndex, curEndSplitTermIndex); - if (contentSlice.indexOf(`id="${title}"`) === -1){ - foundArray.push(contentSlice); - } - content = content.replace(contentSlice, ""); - break; - } - } while (curIndex > -1) - if (classHeader){ - content = append(content, html_reg_findByArticleClose, classHeader, true); +// Handle Class TOCS +function makeClassTOC(group){ + let linkArray = [] + group.forEach( item => { + linkArray.push(`
${item.type}
`) + item.array.forEach( link => { + if ( link.indexOf('.') > -1 ){ + linkArray.push(``); + } else { + linkArray.push(``); + } - return [content, foundArray]; - } + }) + linkArray.push("
"); + }) + return linkArray.join("\n"); +} - // Split the signals and methods [Might make this more generic] - function splitMethodsSignals(allItemToSplit){ - let methodArray = []; - let signalArray = []; - - allItemToSplit.forEach( (content, index) => { - firstLine = content.split("\n")[0]; - if (firstLine.indexOf("{Signal}") > -1){ - signalArray.push(content); - } else if (firstLine.indexOf("span") > -1) { - methodArray.push(content); - } else { - } - }) - return [methodArray, signalArray]; +// Extract IDS for TOC +function extractIDs(groupToExtract){ + let firstLine = ""; + let id = ""; + let extractedIDs = []; + groupToExtract.forEach((item)=>{ + firstLine = item.split("\n")[0]; + try { + id = firstLine.split('id="')[1].split(`"`)[0]; + } catch (e){ + id = ""; } - - // Helper to append - // Takes content, the search term to appendTo, the content to append, - // and bool if the append is before the found area - function append(content, searchTermToAppendto, contentToAppend, appendBefore){ - let contentArray = content.split("\n"); - let foundIndex = findArrayTrim(contentArray, searchTermToAppendto) - foundIndex = appendBefore ? foundIndex : foundIndex +1 - - contentArray.splice(foundIndex,0,contentToAppend) - return contentArray.join("\n") + if (id){ + extractedIDs.push(id) } + }) + return extractedIDs; +} - // Helper function for append - function findArrayTrim(array, searchTerm){ - var index = -1; - for (var i = 0; i < array.length; i++){ - index = array[i].trim().indexOf(searchTerm.trim()); - if (index > -1){ - return i - } +// Helper for splitting up html +// Takes: Content to split, SearchTerm to Split by, and term to End Splitting By +// Returns: [newContent after Split, Array of extracted ] +function splitBy(content, searchTerm, endSplitTerm, title){ + let foundArray = []; + let curIndex = -1; + let afterCurSearchIndex = -1 + let nextIndex = 0; + let findbyNameLength = searchTerm.length; + let curEndSplitTermIndex = -1; + let classHeader; + do { + // Find the index of where to stop searching + curEndSplitTermIndex = content.indexOf(endSplitTerm); + // console.log("curEndSplitTermIndex", curEndSplitTermIndex) + // Find the index of the the next Search term + curIndex = content.indexOf(searchTerm); + // console.log("curIndex", curIndex) + + // The index of where the next search will start + afterCurSearchIndex = curIndex+findbyNameLength; + // Find the content of the next Index + nextIndex = content.indexOf(searchTerm,afterCurSearchIndex); + // If the next index isn't found, then next index === index of the end term + if (nextIndex === -1){ + nextIndex = curEndSplitTermIndex; + } + if (curIndex > curEndSplitTermIndex){ + break; + } + // Push from the cur index to the next found || the end term + let contentSlice = content.slice(curIndex, nextIndex); + if (contentSlice.indexOf(`id="${title}"`) === -1){ + foundArray.push(contentSlice); + } else { + classHeader = contentSlice; + } + + // Remove that content + content = content.replace(contentSlice, ""); + + curEndSplitTermIndex = content.indexOf(endSplitTerm); + nextIndex = content.indexOf(searchTerm,afterCurSearchIndex); + // Handle if nextIndex goes beyond endSplitTerm + if (nextIndex > curEndSplitTermIndex) { + curIndex = content.indexOf(searchTerm); + contentSlice = content.slice(curIndex, curEndSplitTermIndex); + if (contentSlice.indexOf(`id="${title}"`) === -1){ + foundArray.push(contentSlice); } - return index; + content = content.replace(contentSlice, ""); + break; } + } while (curIndex > -1) + if (classHeader){ + content = append(content, html_reg_findByArticleClose, classHeader, true); + } + return [content, foundArray]; +} + +// Split the signals and methods [Might make this more generic] +function splitMethodsSignals(allItemToSplit){ + let methodArray = []; + let signalArray = []; + + allItemToSplit.forEach( (content, index) => { + firstLine = content.split("\n")[0]; + if (firstLine.indexOf("{Signal}") > -1){ + signalArray.push(content); + } else if (firstLine.indexOf("span") > -1) { + methodArray.push(content); + } else { + } + }) + return [methodArray, signalArray]; +} + +// Helper to append +// Takes content, the search term to appendTo, the content to append, +// and bool if the append is before the found area +function append(content, searchTermToAppendto, contentToAppend, appendBefore){ + let contentArray = content.split("\n"); + let foundIndex = findArrayTrim(contentArray, searchTermToAppendto) + foundIndex = appendBefore ? foundIndex : foundIndex +1 + + contentArray.splice(foundIndex,0,contentToAppend) + return contentArray.join("\n") +} + +// Helper function for append +function findArrayTrim(array, searchTerm){ + var index = -1; + for (var i = 0; i < array.length; i++){ + index = array[i].trim().indexOf(searchTerm.trim()); + if (index > -1){ + return i + } + } + return index; +} // Remove grav directory if exists to make sure old files aren't kept if (fs.existsSync(dir_grav)){ @@ -486,10 +487,8 @@ baseMDDirectories.forEach( md => { }) // Read jsdoc output folder and process html files -let links = []; -let unTouchedLinks = []; - let files = fs.readdirSync(dir_out); + // Create initial Group name member map to handle individual link files.forEach(function (file){ let curSource = path.join(dir_out, file); @@ -528,13 +527,12 @@ files.forEach(function (file, index){ let methodIDs = []; let signalIDs = []; let typeDefIDs = []; - // Basic Regex HTML edits + // Basic Regex HTML edits let currentContent = mainDiv.html() .replace(html_reg_findByMethod, "") //Remove Method title to be remade later .replace(html_reg_static,"") // Remove static from the file names .replace(html_reg_title,"") // Remove title .replace(html_reg_objectHeader,"") // Remove extra Object Header - // .replace(html_reg_htmlExt,"") .replace(html_reg_dlClassDetails, "") // Remove unneccsary dlClassDetails Tag .replace(html_reg_allNonHTTPLinks, removeHTML) // Remove the .html extension from all links .replace(html_reg_allNonHTTPLinks, allLinksToLowerCase) // Turn all links into lowercase before ID tags @@ -547,7 +545,7 @@ files.forEach(function (file, index){ .replace(html_reg_classDefinitonsTitle, html_reg_classDefinitonsTitle_replace) // Change the class def titles .replace(html_reg_depreciated, html_reg_depreciated_replace); // format depreciated better - // Further HTML Manipulation + // Further HTML Manipulation // Make end term either Type Definitions or by the article let endTerm; let foundTypeDefinitions; @@ -582,7 +580,6 @@ files.forEach(function (file, index){ let splitMethods = processedMethodsSignalsAndTypeDefs[0]; let splitSignals = processedMethodsSignalsAndTypeDefs[1]; let splitTypeDefinitionIDS; - // let splitDescription = processedMethodsSignalsAndTypeDefs[3]; let splitMethodIDS = extractIDs(splitMethods); let splitSignalIDS = extractIDs(splitSignals); if (foundTypeDefinitions){ @@ -590,12 +587,9 @@ files.forEach(function (file, index){ } let arrayToPassToClassToc = []; - // if (splitDescription) { - // currentContent = append(currentContent, html_reg_containerOverview, splitDescription); - // } if (splitMethods.length > 0) { arrayToPassToClassToc.push({type: "Methods", array: splitMethodIDS}); - // Add the Signals header to the Signals HTML + // Add the Methods header to the Methods HTML splitMethods.unshift(html_reg_findByMethod_replace) currentContent = append(currentContent, html_reg_findByArticleClose, splitMethods.join('\n'), true); } @@ -607,7 +601,7 @@ files.forEach(function (file, index){ } if (foundTypeDefinitions && foundTypeDefinitions.length > 0) { arrayToPassToClassToc.push({type: "Type Definitions", array: splitTypeDefinitionIDS}); - // Add the Signals header to the Signals HTML + // Add the Type Defs header to the Type Defs HTML foundTypeDefinitions.unshift(html_reg_typeDefinitonsTitle_replace) currentContent = append(currentContent, html_reg_findByArticleClose, foundTypeDefinitions.join('\n'), true); } @@ -616,7 +610,6 @@ files.forEach(function (file, index){ if (groupName === "Global"){ currentContent = append(currentContent, html_reg_findByTitle, classTOC); } else if (htmlTitle === "Controller") { - // currentContent = currentContent.replace(html_reg_availableIn, ""); let curatedList = currentContent.match(html_reg_findControllerCuratedList); currentContent = currentContent.replace(html_reg_findControllerCuratedList, ""); let entityMethods = currentContent.match(html_reg_findEntityMethods); From 42ea7f358ab98432aa1013a5412830dc64692f87 Mon Sep 17 00:00:00 2001 From: milad Date: Tue, 29 May 2018 15:39:04 -0700 Subject: [PATCH 091/300] added root.js to cmake build --- tools/jsdoc/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/jsdoc/CMakeLists.txt b/tools/jsdoc/CMakeLists.txt index 4a6c18f243..1c4333983f 100644 --- a/tools/jsdoc/CMakeLists.txt +++ b/tools/jsdoc/CMakeLists.txt @@ -8,7 +8,7 @@ set(JSDOC_WORKING_DIR ${CMAKE_SOURCE_DIR}/tools/jsdoc) file(TO_NATIVE_PATH ${JSDOC_WORKING_DIR}/node_modules/.bin/jsdoc JSDOC_PATH) file(TO_NATIVE_PATH ${JSDOC_WORKING_DIR}/config.json JSDOC_CONFIG_PATH) file(TO_NATIVE_PATH ${JSDOC_WORKING_DIR}/out OUTPUT_DIR) -file(TO_NATIVE_PATH ${JSDOC_WORKING_DIR} NATIVE_JSDOC_WORKING_DIR) +file(TO_NATIVE_PATH ${JSDOC_WORKING_DIR}/root.js NATIVE_JSDOC_WORKING_DIR) add_custom_command(TARGET ${TARGET_NAME} COMMAND ${NPM_EXECUTABLE} --no-progress install && ${JSDOC_PATH} ${NATIVE_JSDOC_WORKING_DIR} -c ${JSDOC_CONFIG_PATH} -d ${OUTPUT_DIR} From ef4d09c5e2452bd1378205350052f0eb6622ea37 Mon Sep 17 00:00:00 2001 From: Simon Walton Date: Wed, 30 May 2018 10:21:07 -0700 Subject: [PATCH 092/300] Add app user-model IDs to Sandbox shortcut and use in server-console --- cmake/templates/NSIS.template.in | 6 ++++++ server-console/src/main.js | 5 +++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/cmake/templates/NSIS.template.in b/cmake/templates/NSIS.template.in index 8c7479af48..4151a16e15 100644 --- a/cmake/templates/NSIS.template.in +++ b/cmake/templates/NSIS.template.in @@ -1174,8 +1174,14 @@ Section "-Core installation" !insertmacro MUI_STARTMENU_WRITE_END !if @PRODUCTION_BUILD@ == 1 + ${If} @SERVER_COMPONENT_CONDITIONAL@ + ApplicationID::Set "$SMPROGRAMS\$STARTMENU_FOLDER\@CONSOLE_SHORTCUT_NAME@.lnk" "com.highfidelity.sandbox" + ${EndIf} ApplicationID::Set "$SMPROGRAMS\$STARTMENU_FOLDER\@INTERFACE_SHORTCUT_NAME@.lnk" "com.highfidelity.interface" !else + ${If} @SERVER_COMPONENT_CONDITIONAL@ + ApplicationID::Set "$SMPROGRAMS\$STARTMENU_FOLDER\@CONSOLE_SHORTCUT_NAME@.lnk" "com.highfidelity.sandbox-dev" + ${EndIf} ApplicationID::Set "$SMPROGRAMS\$STARTMENU_FOLDER\@INTERFACE_SHORTCUT_NAME@.lnk" "com.highfidelity.interface-dev" !endif diff --git a/server-console/src/main.js b/server-console/src/main.js index 498be966ed..b803c5e882 100644 --- a/server-console/src/main.js +++ b/server-console/src/main.js @@ -44,6 +44,8 @@ const LOG_FILE_REGEX = /(domain-server|ac-monitor|ac)-.*-std(out|err).txt/; const HOME_CONTENT_URL = "http://cdn.highfidelity.com/content-sets/home-tutorial-RC40.tar.gz"; +const APP_USER_MODEL_ID = 'com.highfidelity.sandbox'; // For Windows jump list, etc. + function getBuildInfo() { var buildInfoPath = null; @@ -867,7 +869,6 @@ function onContentLoaded() { } catch (e) { } - var appUserModelId = 'com.highfidelity.interface'; // For Windows jump list, etc. if (currentVersion !== null) { const CHECK_FOR_UPDATES_INTERVAL_SECONDS = 60 * 30; var hasShownUpdateNotification = false; @@ -879,7 +880,7 @@ function onContentLoaded() { title: 'An update is available!', message: 'High Fidelity version ' + latestVersion + ' is available', wait: true, - appID: appUserModelId, + appID: APP_USER_MODEL_ID, url: url }); hasShownUpdateNotification = true; From 3942f397d006fb3aefc72f7e4af1c660301c1ba7 Mon Sep 17 00:00:00 2001 From: Dante Ruiz Date: Tue, 29 May 2018 17:38:02 -0700 Subject: [PATCH 093/300] adding back reload scripts --- interface/src/AboutUtil.cpp | 16 ++++++++-------- interface/src/AboutUtil.h | 19 ++++++++----------- interface/src/Application.cpp | 8 +++++++- 3 files changed, 23 insertions(+), 20 deletions(-) diff --git a/interface/src/AboutUtil.cpp b/interface/src/AboutUtil.cpp index 5179897443..43b4ac1ff4 100644 --- a/interface/src/AboutUtil.cpp +++ b/interface/src/AboutUtil.cpp @@ -20,9 +20,9 @@ #include AboutUtil::AboutUtil(QObject *parent) : QObject(parent) { - QLocale locale_; - m_DateConverted = QDate::fromString(BuildInfo::BUILD_TIME, "dd/MM/yyyy"). - toString(locale_.dateFormat(QLocale::ShortFormat)); + QLocale locale; + _dateConverted = QDate::fromString(BuildInfo::BUILD_TIME, "dd/MM/yyyy"). + toString(locale.dateFormat(QLocale::ShortFormat)); } AboutUtil *AboutUtil::getInstance() @@ -31,17 +31,17 @@ AboutUtil *AboutUtil::getInstance() return &instance; } -QString AboutUtil::buildDate() const +QString AboutUtil::getBuildDate() const { - return m_DateConverted; + return _dateConverted; } -QString AboutUtil::buildVersion() const +QString AboutUtil::getBuildVersion() const { return BuildInfo::VERSION; } -QString AboutUtil::qtVersion() const +QString AboutUtil::getQtVersion() const { return qVersion(); } @@ -49,7 +49,7 @@ QString AboutUtil::qtVersion() const void AboutUtil::openUrl(const QString& url) const { auto tabletScriptingInterface = DependencyManager::get(); - auto tablet = dynamic_cast(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system")); + auto tablet = tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"); auto hmd = DependencyManager::get(); auto offscreenUi = DependencyManager::get(); diff --git a/interface/src/AboutUtil.h b/interface/src/AboutUtil.h index 9b65b887b9..06c04cc9df 100644 --- a/interface/src/AboutUtil.h +++ b/interface/src/AboutUtil.h @@ -16,27 +16,24 @@ #include class AboutUtil : public QObject { - Q_OBJECT - Q_PROPERTY(QString buildDate READ buildDate CONSTANT) - Q_PROPERTY(QString buildVersion READ buildVersion CONSTANT) - Q_PROPERTY(QString qtVersion READ qtVersion CONSTANT) - - AboutUtil(QObject* parent = nullptr); + Q_PROPERTY(QString buildDate READ getBuildDate CONSTANT) + Q_PROPERTY(QString buildVersion READ getBuildVersion CONSTANT) + Q_PROPERTY(QString qtVersion READ getQtVersion CONSTANT) public: static AboutUtil* getInstance(); ~AboutUtil() {} - QString buildDate() const; - QString buildVersion() const; - QString qtVersion() const; + QString getBuildDate() const; + QString getBuildVersion() const; + QString getQtVersion() const; public slots: void openUrl(const QString &url) const; private: - - QString m_DateConverted; + AboutUtil(QObject* parent = nullptr); + QString _dateConverted; }; #endif // hifi_AboutUtil_h diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 6a102f418b..626ece9fe5 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -3642,7 +3642,6 @@ void Application::keyPressEvent(QKeyEvent* event) { _keysPressed.insert(event->key()); _controllerScriptingInterface->emitKeyPressEvent(event); // send events to any registered scripts - // if one of our scripts have asked to capture this event, then stop processing it if (_controllerScriptingInterface->isKeyCaptured(event)) { return; @@ -3727,6 +3726,13 @@ void Application::keyPressEvent(QKeyEvent* event) { } break; + case Qt::Key_R: + if (isMeta && !event->isAutoRepeat()) { + DependencyManager::get()->reloadAllScripts(); + DependencyManager::get()->clearCache(); + } + break; + case Qt::Key_Asterisk: Menu::getInstance()->triggerOption(MenuOption::DefaultSkybox); break; From 646b852aefa6d3c0643de54a4f6cab9d964b9c2d Mon Sep 17 00:00:00 2001 From: Dante Ruiz Date: Tue, 29 May 2018 17:55:42 -0700 Subject: [PATCH 094/300] fix headers --- interface/src/AboutUtil.cpp | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/interface/src/AboutUtil.cpp b/interface/src/AboutUtil.cpp index 43b4ac1ff4..634e52b481 100644 --- a/interface/src/AboutUtil.cpp +++ b/interface/src/AboutUtil.cpp @@ -8,16 +8,18 @@ // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // + +#include "AboutUtil.h" #include #include -#include "AboutUtil.h" -#include "BuildInfo.h" #include +#include + +#include "BuildInfo.h" #include "DependencyManager.h" #include "scripting/HMDScriptingInterface.h" #include "Application.h" -#include AboutUtil::AboutUtil(QObject *parent) : QObject(parent) { QLocale locale; @@ -25,24 +27,20 @@ AboutUtil::AboutUtil(QObject *parent) : QObject(parent) { toString(locale.dateFormat(QLocale::ShortFormat)); } -AboutUtil *AboutUtil::getInstance() -{ +AboutUtil *AboutUtil::getInstance() { static AboutUtil instance; return &instance; } -QString AboutUtil::getBuildDate() const -{ +QString AboutUtil::getBuildDate() const { return _dateConverted; } -QString AboutUtil::getBuildVersion() const -{ +QString AboutUtil::getBuildVersion() const { return BuildInfo::VERSION; } -QString AboutUtil::getQtVersion() const -{ +QString AboutUtil::getQtVersion() const { return qVersion(); } From 19308c3a58bcbf8e3d6680fb6ad74463008ff318 Mon Sep 17 00:00:00 2001 From: Wayne Chen Date: Wed, 30 May 2018 11:22:17 -0700 Subject: [PATCH 095/300] fixing typo in script file. --- .../toggleAdvancedMovementForHandControllers.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/scripts/system/controllers/toggleAdvancedMovementForHandControllers.js b/scripts/system/controllers/toggleAdvancedMovementForHandControllers.js index 78b074573f..92d079cff6 100644 --- a/scripts/system/controllers/toggleAdvancedMovementForHandControllers.js +++ b/scripts/system/controllers/toggleAdvancedMovementForHandControllers.js @@ -185,10 +185,9 @@ } else { Controller.enableMapping(FLYING_MAPPING_NAME); } - }); + } + } + } - } - } - - initializeControls(); + initializeControls(); }()); // END LOCAL_SCOPE From 6fa58fce1f22c1bd3efa838feff1566d41d00f2b Mon Sep 17 00:00:00 2001 From: Gabriel Date: Tue, 29 May 2018 16:42:09 -0300 Subject: [PATCH 096/300] Update Application.cpp Remove the mic bar for android --- interface/src/Application.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 6a102f418b..b4372cf8c2 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -3011,9 +3011,11 @@ void Application::onDesktopRootItemCreated(QQuickItem* rootItem) { auto surfaceContext = DependencyManager::get()->getSurfaceContext(); surfaceContext->setContextProperty("Stats", Stats::getInstance()); +#if !defined(Q_OS_ANDROID) auto offscreenUi = DependencyManager::get(); auto qml = PathUtils::qmlUrl("AvatarInputsBar.qml"); offscreenUi->show(qml, "AvatarInputsBar"); +#endif } void Application::updateCamera(RenderArgs& renderArgs, float deltaTime) { From 3f696df3a50fc26e2f3c6ef6a4ca57d42d362d8f Mon Sep 17 00:00:00 2001 From: Gabriel Calero Date: Tue, 29 May 2018 17:21:44 -0300 Subject: [PATCH 097/300] Show stats button only in debug mode. Add isDebugMode to Script public interface --- libraries/script-engine/src/ScriptEngine.cpp | 8 ++++++++ libraries/script-engine/src/ScriptEngine.h | 6 ++++++ scripts/+android/defaultScripts.js | 17 +++++++++++++++-- scripts/system/+android/stats.js | 2 +- 4 files changed, 30 insertions(+), 3 deletions(-) diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp index 23ffbabe77..72860acbc5 100644 --- a/libraries/script-engine/src/ScriptEngine.cpp +++ b/libraries/script-engine/src/ScriptEngine.cpp @@ -237,6 +237,14 @@ QString ScriptEngine::getContext() const { return "unknown"; } +bool ScriptEngine::isDebugMode() const { +#if defined(DEBUG) + return true; +#else + return false; +#endif +} + ScriptEngine::~ScriptEngine() { auto scriptEngines = DependencyManager::get(); if (scriptEngines) { diff --git a/libraries/script-engine/src/ScriptEngine.h b/libraries/script-engine/src/ScriptEngine.h index 3001666b5d..c02a63ef3c 100644 --- a/libraries/script-engine/src/ScriptEngine.h +++ b/libraries/script-engine/src/ScriptEngine.h @@ -232,6 +232,12 @@ public: */ Q_INVOKABLE bool isClientScript() const { return _context == CLIENT_SCRIPT; } + /**jsdoc + * @function Script.isDebugMode + * @returns {boolean} + */ + Q_INVOKABLE bool isDebugMode() const; + /**jsdoc * @function Script.isEntityClientScript * @returns {boolean} diff --git a/scripts/+android/defaultScripts.js b/scripts/+android/defaultScripts.js index 98fbb4b1a7..8950af808d 100644 --- a/scripts/+android/defaultScripts.js +++ b/scripts/+android/defaultScripts.js @@ -16,8 +16,7 @@ var DEFAULT_SCRIPTS_COMBINED = [ "system/+android/touchscreenvirtualpad.js", "system/+android/actionbar.js", "system/+android/audio.js" , - "system/+android/modes.js", - "system/+android/stats.js"/*, + "system/+android/modes.js"/*, "system/away.js", "system/controllers/controllerDisplayManager.js", "system/controllers/handControllerGrabAndroid.js", @@ -33,6 +32,10 @@ var DEFAULT_SCRIPTS_COMBINED = [ "developer/debugging/debugAndroidMouse.js"*/ ]; +var DEBUG_SCRIPTS = [ + "system/+android/stats.js" +]; + var DEFAULT_SCRIPTS_SEPARATE = [ ]; // add a menu item for debugging @@ -70,6 +73,11 @@ function runDefaultsTogether() { for (var i in DEFAULT_SCRIPTS_COMBINED) { Script.include(DEFAULT_SCRIPTS_COMBINED[i]); } + if (Script.isDebugMode()) { + for (var i in DEBUG_SCRIPTS) { + Script.include(DEBUG_SCRIPTS[i]); + } + } loadSeparateDefaults(); } @@ -77,6 +85,11 @@ function runDefaultsSeparately() { for (var i in DEFAULT_SCRIPTS_COMBINED) { Script.load(DEFAULT_SCRIPTS_COMBINED[i]); } + if (Script.isDebugMode()) { + for (var i in DEBUG_SCRIPTS) { + Script.load(DEBUG_SCRIPTS[i]); + } + } loadSeparateDefaults(); } diff --git a/scripts/system/+android/stats.js b/scripts/system/+android/stats.js index a93bcb5794..0731684291 100644 --- a/scripts/system/+android/stats.js +++ b/scripts/system/+android/stats.js @@ -30,7 +30,7 @@ function init() { text: "STATS" }); statsButton.clicked.connect(function() { - Menu.triggerOption("Stats"); + Menu.triggerOption("Show Statistics"); }); } From 785c0b634d1e98117815e280ab45260177ff32bd Mon Sep 17 00:00:00 2001 From: Gabriel Calero Date: Fri, 25 May 2018 17:42:41 -0300 Subject: [PATCH 098/300] Change gradle configuration to sign release apk. Remove Daydream intent from AndroidManifest --- android/app/build.gradle | 9 +++++++++ android/app/src/main/AndroidManifest.xml | 6 ------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 70f7c622a0..5f92417ba4 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -27,6 +27,14 @@ android { '-DDISABLE_KTX_CACHE=OFF' } } + signingConfigs { + release { + storeFile file(HIFI_ANDROID_KEYSTORE) + storePassword HIFI_ANDROID_KEYSTORE_PASSWORD + keyAlias HIFI_ANDROID_KEY_ALIAS + keyPassword HIFI_ANDROID_KEY_PASSWORD + } + } } compileOptions { @@ -38,6 +46,7 @@ android { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + signingConfig signingConfigs.release } } diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index e105f5bccf..0b52046057 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -49,12 +49,6 @@ android:label="@string/app_name" android:launchMode="singleTop" > - - - - - - From a0274f8b4bac07ae45f70efcbc670202c0f14078 Mon Sep 17 00:00:00 2001 From: Gabriel Calero Date: Wed, 30 May 2018 12:43:44 -0300 Subject: [PATCH 099/300] Make APK release signature optional --- android/app/build.gradle | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 5f92417ba4..46de9642d9 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -29,10 +29,10 @@ android { } signingConfigs { release { - storeFile file(HIFI_ANDROID_KEYSTORE) - storePassword HIFI_ANDROID_KEYSTORE_PASSWORD - keyAlias HIFI_ANDROID_KEY_ALIAS - keyPassword HIFI_ANDROID_KEY_PASSWORD + storeFile project.hasProperty("HIFI_ANDROID_KEYSTORE") ? file(HIFI_ANDROID_KEYSTORE) : null + storePassword project.hasProperty("HIFI_ANDROID_KEYSTORE_PASSWORD") ? HIFI_ANDROID_KEYSTORE_PASSWORD : '' + keyAlias project.hasProperty("HIFI_ANDROID_KEY_ALIAS") ? HIFI_ANDROID_KEY_ALIAS : '' + keyPassword project.hasProperty("HIFI_ANDROID_KEY_PASSWORD") ? HIFI_ANDROID_KEY_PASSWORD : '' } } } @@ -46,7 +46,10 @@ android { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' - signingConfig signingConfigs.release + signingConfig project.hasProperty("HIFI_ANDROID_KEYSTORE") && + project.hasProperty("HIFI_ANDROID_KEYSTORE_PASSWORD") && + project.hasProperty("HIFI_ANDROID_KEY_ALIAS") && + project.hasProperty("HIFI_ANDROID_KEY_PASSWORD")? signingConfigs.release : null } } From 33a122c08eac017d3d3857a556cb62cede97627c Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Wed, 30 May 2018 12:05:07 -0700 Subject: [PATCH 100/300] remove short SHA where it should not appear --- cmake/macros/SetPackagingParameters.cmake | 5 +++-- cmake/templates/console-build-info.json.in | 3 ++- server-console/src/main.js | 5 +---- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/cmake/macros/SetPackagingParameters.cmake b/cmake/macros/SetPackagingParameters.cmake index c589d8efff..bde6d55e84 100644 --- a/cmake/macros/SetPackagingParameters.cmake +++ b/cmake/macros/SetPackagingParameters.cmake @@ -113,6 +113,7 @@ macro(SET_PACKAGING_PARAMETERS) message(FATAL_ERROR "Could not retreive abbreviated SHA for PR or production master build") endif () + set(BUILD_VERSION_NO_SHA ${BUILD_VERSION}) set(BUILD_VERSION "${BUILD_VERSION}-${GIT_COMMIT_HASH}") # pass along a release number without the SHA in case somebody @@ -172,8 +173,8 @@ macro(SET_PACKAGING_PARAMETERS) set(INTERFACE_SHORTCUT_NAME "High Fidelity Interface") set(CONSOLE_SHORTCUT_NAME "Sandbox") else () - set(INTERFACE_SHORTCUT_NAME "High Fidelity Interface - ${BUILD_VERSION}") - set(CONSOLE_SHORTCUT_NAME "Sandbox - ${BUILD_VERSION}") + set(INTERFACE_SHORTCUT_NAME "High Fidelity Interface - ${BUILD_VERSION_NO_SHA}") + set(CONSOLE_SHORTCUT_NAME "Sandbox - ${BUILD_VERSION_NO_SHA}") endif () set(INTERFACE_HF_SHORTCUT_NAME "${INTERFACE_SHORTCUT_NAME}") diff --git a/cmake/templates/console-build-info.json.in b/cmake/templates/console-build-info.json.in index c1ef010e08..6b4ee99292 100644 --- a/cmake/templates/console-build-info.json.in +++ b/cmake/templates/console-build-info.json.in @@ -1,4 +1,5 @@ { "releaseType": "@RELEASE_TYPE@", - "buildIdentifier": "@BUILD_VERSION@" + "buildIdentifier": "@BUILD_VERSION@", + "organization": "@BUILD_ORGANIZATION@" } diff --git a/server-console/src/main.js b/server-console/src/main.js index b08db6222f..8a92fc8a5d 100644 --- a/server-console/src/main.js +++ b/server-console/src/main.js @@ -76,10 +76,7 @@ function getBuildInfo() { const buildInfo = getBuildInfo(); function getRootHifiDataDirectory() { - var organization = "High Fidelity"; - if (buildInfo.releaseType != "PRODUCTION") { - organization += ' - ' + buildInfo.buildIdentifier; - } + var organization = buildInfo.organization; if (osType == 'Windows_NT') { return path.resolve(osHomeDir(), 'AppData/Roaming', organization); } else if (osType == 'Darwin') { From b9e9c952de3473b6e8a52893c2b1b6e8afd8ff65 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Wed, 30 May 2018 12:15:39 -0700 Subject: [PATCH 101/300] fix setting of abbreviated SHA for master builds --- cmake/macros/SetPackagingParameters.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/macros/SetPackagingParameters.cmake b/cmake/macros/SetPackagingParameters.cmake index bde6d55e84..029c829022 100644 --- a/cmake/macros/SetPackagingParameters.cmake +++ b/cmake/macros/SetPackagingParameters.cmake @@ -106,7 +106,7 @@ macro(SET_PACKAGING_PARAMETERS) separate_arguments(_COMMIT_PARENTS UNIX_COMMAND ${_GIT_LOG_OUTPUT}) list(GET _COMMIT_PARENTS 1 GIT_COMMIT_HASH) else () - set(GIT_COMMIT_HASH _GIT_LOG_OUTPUT) + set(GIT_COMMIT_HASH ${_GIT_LOG_OUTPUT}) endif () if (_GIT_LOG_ERROR OR NOT GIT_COMMIT_HASH) From 8cdbf460db8590487ece33be01a93888d55842be Mon Sep 17 00:00:00 2001 From: Dante Ruiz Date: Wed, 30 May 2018 13:36:02 -0700 Subject: [PATCH 102/300] adding back notifcations --- scripts/defaultScripts.js | 1 + scripts/system/notifications.js | 49 --------------------------------- 2 files changed, 1 insertion(+), 49 deletions(-) diff --git a/scripts/defaultScripts.js b/scripts/defaultScripts.js index b0cbf0e246..59a51830be 100644 --- a/scripts/defaultScripts.js +++ b/scripts/defaultScripts.js @@ -23,6 +23,7 @@ var DEFAULT_SCRIPTS_COMBINED = [ "system/makeUserConnection.js", "system/tablet-goto.js", "system/marketplaces/marketplaces.js", + "system/notifications.js", "system/commerce/wallet.js", "system/edit.js", "system/dialTone.js", diff --git a/scripts/system/notifications.js b/scripts/system/notifications.js index a28f343ad3..0778e2a44b 100644 --- a/scripts/system/notifications.js +++ b/scripts/system/notifications.js @@ -79,11 +79,7 @@ var frame = 0; var ctrlIsPressed = false; var ready = true; - var MENU_NAME = 'Tools > Notifications'; - var PLAY_NOTIFICATION_SOUNDS_MENU_ITEM = "Play Notification Sounds"; var NOTIFICATION_MENU_ITEM_POST = " Notifications"; - var PLAY_NOTIFICATION_SOUNDS_SETTING = "play_notification_sounds"; - var PLAY_NOTIFICATION_SOUNDS_TYPE_SETTING_PRE = "play_notification_sounds_type_"; var NOTIFICATIONS_MESSAGE_CHANNEL = "Hifi-Notifications"; var NotificationType = { @@ -401,11 +397,6 @@ alpha: backgroundAlpha }; - if (Menu.isOptionChecked(PLAY_NOTIFICATION_SOUNDS_MENU_ITEM) && - Menu.isOptionChecked(NotificationType.getMenuString(notificationType))) { - randomSounds.playRandom(); - } - return notify(noticeProperties, buttonProperties, height, imageProperties); } @@ -618,30 +609,6 @@ } } - function setup() { - var type; - Menu.addMenu(MENU_NAME); - var checked = Settings.getValue(PLAY_NOTIFICATION_SOUNDS_SETTING); - checked = checked === '' ? true : checked; - Menu.addMenuItem({ - menuName: MENU_NAME, - menuItemName: PLAY_NOTIFICATION_SOUNDS_MENU_ITEM, - isCheckable: true, - isChecked: Settings.getValue(PLAY_NOTIFICATION_SOUNDS_SETTING) - }); - Menu.addSeparator(MENU_NAME, "Play sounds for:"); - for (type in NotificationType.properties) { - checked = Settings.getValue(PLAY_NOTIFICATION_SOUNDS_TYPE_SETTING_PRE + (parseInt(type, 10) + 1)); - checked = checked === '' ? true : checked; - Menu.addMenuItem({ - menuName: MENU_NAME, - menuItemName: NotificationType.properties[type].text + NOTIFICATION_MENU_ITEM_POST, - isCheckable: true, - isChecked: checked - }); - } - } - // When our script shuts down, we should clean up all of our overlays function scriptEnding() { var notificationIndex; @@ -649,27 +616,14 @@ Overlays.deleteOverlay(notifications[notificationIndex]); Overlays.deleteOverlay(buttons[notificationIndex]); } - Menu.removeMenu(MENU_NAME); Messages.unsubscribe(NOTIFICATIONS_MESSAGE_CHANNEL); } - function menuItemEvent(menuItem) { - if (menuItem === PLAY_NOTIFICATION_SOUNDS_MENU_ITEM) { - Settings.setValue(PLAY_NOTIFICATION_SOUNDS_SETTING, Menu.isOptionChecked(PLAY_NOTIFICATION_SOUNDS_MENU_ITEM)); - return; - } - var notificationType = NotificationType.getTypeFromMenuItem(menuItem); - if (notificationType !== notificationType.UNKNOWN) { - Settings.setValue(PLAY_NOTIFICATION_SOUNDS_TYPE_SETTING_PRE + notificationType, Menu.isOptionChecked(menuItem)); - } - } - Controller.keyPressEvent.connect(keyPressEvent); Controller.mousePressEvent.connect(mousePressEvent); Controller.keyReleaseEvent.connect(keyReleaseEvent); Script.update.connect(update); Script.scriptEnding.connect(scriptEnding); - Menu.menuItemEvent.connect(menuItemEvent); Window.domainConnectionRefused.connect(onDomainConnectionRefused); Window.stillSnapshotTaken.connect(onSnapshotTaken); Window.snapshot360Taken.connect(onSnapshotTaken); @@ -684,7 +638,4 @@ Messages.subscribe(NOTIFICATIONS_MESSAGE_CHANNEL); Messages.messageReceived.connect(onMessageReceived); - - setup(); - }()); // END LOCAL_SCOPE From 5e17ef5e21de40dfdcf0f3149416a7afccda01ba Mon Sep 17 00:00:00 2001 From: Simon Walton Date: Wed, 30 May 2018 14:25:05 -0700 Subject: [PATCH 103/300] Also call electron's setAppUserModelId() --- server-console/src/main.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/server-console/src/main.js b/server-console/src/main.js index b803c5e882..cb58c3eedf 100644 --- a/server-console/src/main.js +++ b/server-console/src/main.js @@ -235,6 +235,8 @@ const configPath = path.join(getApplicationDataDirectory(), 'config.json'); var userConfig = new Config(); userConfig.load(configPath); +app.setAppUserModelId(APP_USER_MODEL_ID); + // print out uncaught exceptions in the console process.on('uncaughtException', function(err) { log.error(err); From 03bad0265c3a4259eddc4d97a160440c693b887e Mon Sep 17 00:00:00 2001 From: David Rowe Date: Thu, 31 May 2018 11:09:51 +1200 Subject: [PATCH 104/300] Fix properties not populating particle explorer tab --- scripts/system/edit.js | 11 +++----- .../particle_explorer/particleExplorerTool.js | 26 ++++++++++++++++--- 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/scripts/system/edit.js b/scripts/system/edit.js index f549c7dd85..9285023ed8 100644 --- a/scripts/system/edit.js +++ b/scripts/system/edit.js @@ -2366,22 +2366,19 @@ var selectedParticleEntity = 0; var selectedParticleEntityID = null; function selectParticleEntity(entityID) { - var properties = Entities.getEntityProperties(entityID); selectedParticleEntityID = entityID; + + var properties = Entities.getEntityProperties(entityID); if (properties.emitOrientation) { properties.emitOrientation = Quat.safeEulerAngles(properties.emitOrientation); } - var particleData = { - messageType: "particle_settings", - currentProperties: properties - }; + particleExplorerTool.destroyWebView(); particleExplorerTool.createWebView(); selectedParticleEntity = entityID; particleExplorerTool.setActiveParticleEntity(entityID); - - particleExplorerTool.webView.emitScriptEvent(JSON.stringify(particleData)); + particleExplorerTool.setActiveParticleProperties(properties); // Switch to particle explorer var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system"); diff --git a/scripts/system/particle_explorer/particleExplorerTool.js b/scripts/system/particle_explorer/particleExplorerTool.js index d85fc169b1..016691e2b6 100644 --- a/scripts/system/particle_explorer/particleExplorerTool.js +++ b/scripts/system/particle_explorer/particleExplorerTool.js @@ -16,37 +16,55 @@ var PARTICLE_EXPLORER_HTML_URL = Script.resolvePath('particleExplorer.html'); ParticleExplorerTool = function() { var that = {}; + that.activeParticleEntity = 0; + that.activeParticleProperties = {}; + that.createWebView = function() { that.webView = Tablet.getTablet("com.highfidelity.interface.tablet.system"); that.webView.setVisible = function(value) {}; that.webView.webEventReceived.connect(that.webEventReceived); - } + }; that.destroyWebView = function() { if (!that.webView) { return; } that.activeParticleEntity = 0; + that.activeParticleProperties = {}; var messageData = { messageType: "particle_close" }; that.webView.emitScriptEvent(JSON.stringify(messageData)); + }; + + function sendActiveParticleProperies() { + that.webView.emitScriptEvent(JSON.stringify({ + messageType: "particle_settings", + currentProperties: that.activeParticleProperties + })); } that.webEventReceived = function(data) { - var data = JSON.parse(data); + data = JSON.parse(data); if (data.messageType === "settings_update") { if (data.updatedSettings.emitOrientation) { data.updatedSettings.emitOrientation = Quat.fromVec3Degrees(data.updatedSettings.emitOrientation); } Entities.editEntity(that.activeParticleEntity, data.updatedSettings); + } else if (data.messageType === "page_loaded") { + sendActiveParticleProperies(); } - } + }; that.setActiveParticleEntity = function(id) { that.activeParticleEntity = id; - } + }; + + that.setActiveParticleProperties = function(properties) { + that.activeParticleProperties = properties; + sendActiveParticleProperies(); + }; return that; }; From 4efdba738283a58b7619bb001a18029c4fb4cb38 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Thu, 31 May 2018 11:10:54 +1200 Subject: [PATCH 105/300] Remove redundant variable --- scripts/system/edit.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/scripts/system/edit.js b/scripts/system/edit.js index 9285023ed8..05f5e3cb19 100644 --- a/scripts/system/edit.js +++ b/scripts/system/edit.js @@ -2362,7 +2362,6 @@ var showMenuItem = propertyMenu.addMenuItem("Show in Marketplace"); var propertiesTool = new PropertiesTool(); var particleExplorerTool = new ParticleExplorerTool(); -var selectedParticleEntity = 0; var selectedParticleEntityID = null; function selectParticleEntity(entityID) { @@ -2376,7 +2375,6 @@ function selectParticleEntity(entityID) { particleExplorerTool.destroyWebView(); particleExplorerTool.createWebView(); - selectedParticleEntity = entityID; particleExplorerTool.setActiveParticleEntity(entityID); particleExplorerTool.setActiveParticleProperties(properties); @@ -2401,13 +2399,13 @@ entityListTool.webView.webEventReceived.connect(function (data) { var ids = data.entityIds; if (ids.length === 1) { if (Entities.getEntityProperties(ids[0], "type").type === "ParticleEffect") { - if (JSON.stringify(selectedParticleEntity) === JSON.stringify(ids[0])) { + if (JSON.stringify(selectedParticleEntityID) === JSON.stringify(ids[0])) { // This particle entity is already selected, so return return; } // Destroy the old particles web view first } else { - selectedParticleEntity = 0; + selectedParticleEntityID = 0; particleExplorerTool.destroyWebView(); } } From bdd38cef7ace61369711ddab842aff7db6949d6e Mon Sep 17 00:00:00 2001 From: howard-stearns Date: Wed, 30 May 2018 17:09:13 -0700 Subject: [PATCH 106/300] checkpoint --- .../resources/qml/hifi/RootHttpRequest.qml | 39 ++++++++++++++++++ .../commerce/common/sendAsset/SendAsset.qml | 5 ++- .../qml/hifi/commerce/purchases/Purchases.qml | 40 +++++++++++++++---- .../qml/hifi/commerce/wallet/Wallet.qml | 29 +++++--------- .../qml/hifi/commerce/wallet/WalletHome.qml | 13 +++--- .../qml/hifi/models/PSFListModel.qml | 27 ++++++++----- scripts/system/request-service.js | 30 +++++++------- 7 files changed, 124 insertions(+), 59 deletions(-) create mode 100644 interface/resources/qml/hifi/RootHttpRequest.qml diff --git a/interface/resources/qml/hifi/RootHttpRequest.qml b/interface/resources/qml/hifi/RootHttpRequest.qml new file mode 100644 index 0000000000..0355626996 --- /dev/null +++ b/interface/resources/qml/hifi/RootHttpRequest.qml @@ -0,0 +1,39 @@ +// +// RootHttpRequest.qml +// qml/hifi +// +// Create an item of this in the ROOT qml to be able to make http requests. +// Used by PSFListModel.qml +// +// Created by Howard Stearns on 5/29/2018 +// Copyright 2018 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +import QtQuick 2.5 + +Item { + property var httpCalls: ({}); + property var httpCounter: 0; + // Public function for initiating an http request. + // REQUIRES parent to be root to have sendToScript! + function request(options, callback) { + console.debug('HttpRequest', JSON.stringify(options)); + httpCalls[httpCounter] = callback; + var message = {method: 'http.request', params: options, id: httpCounter++, jsonrpc: "2.0"}; + parent.sendToScript(message); + } + // REQUIRES that parent/root handle http.response message.method in fromScript, by calling this function. + function handleHttpResponse(message) { + var callback = httpCalls[message.id]; // FIXME: as different top level tablet apps gets loaded, the id repeats. We should drop old app callbacks without warning. + if (!callback) { + console.warn('No callback for', JSON.stringify(message)); + return; + } + delete httpCalls[message.id]; + console.debug('HttpRequest response', JSON.stringify(message)); + callback(message.error, message.response); + } +} diff --git a/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml b/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml index 24753e7b6a..13fe748ec7 100644 --- a/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml +++ b/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml @@ -37,6 +37,8 @@ Item { property string assetName: ""; property string assetCertID: ""; property string sendingPubliclyEffectImage; + property var http; + property var listModelName; // This object is always used in a popup or full-screen Wallet section. // This MouseArea is used to prevent a user from being @@ -393,7 +395,8 @@ Item { HifiModels.PSFListModel { id: connectionsModel; - http: root.parent; // Misuse of "root" in this file! + http: root.http; + listModelName: root.listModelName; endpoint: "/api/v1/users?filter=connections"; itemsPerPage: 8; processPage: function (data) { diff --git a/interface/resources/qml/hifi/commerce/purchases/Purchases.qml b/interface/resources/qml/hifi/commerce/purchases/Purchases.qml index 93400349a2..795bb2306a 100644 --- a/interface/resources/qml/hifi/commerce/purchases/Purchases.qml +++ b/interface/resources/qml/hifi/commerce/purchases/Purchases.qml @@ -21,6 +21,7 @@ import "../wallet" as HifiWallet import "../common" as HifiCommerceCommon import "../inspectionCertificate" as HifiInspectionCertificate import "../common/sendAsset" as HifiSendAsset +import "../.." as HifiCommon // references XXX from root context @@ -81,7 +82,7 @@ Rectangle { } onInventoryResult: { - purchasesModel.pageRetrieved(result); + purchasesModel.handlePage(result.status !== "success" && result.message, result); } onAvailableUpdatesResult: { @@ -145,8 +146,14 @@ Rectangle { } } + HifiCommon.RootHttpRequest { + id: http; + } + HifiSendAsset.SendAsset { id: sendAsset; + http: http; + listModelName: "Gift Connections"; z: 998; visible: root.activeView === "giftAsset"; anchors.fill: parent; @@ -547,9 +554,10 @@ Rectangle { HifiModels.PSFListModel { id: purchasesModel; + itemsPerPage: 6; - itemsPerPage: 3; - getPage: function() { + getPage: function () { + console.log('HRS FIXME Purchases getPage', root.isShowingMyItems, filterBar.primaryFilter_filterName, purchasesModel.currentPageToRetrieve, purchasesModel.itemsPerPage); Commerce.inventory( root.isShowingMyItems ? "proofs" : "purchased", filterBar.primaryFilter_filterName.toLowerCase(), @@ -557,10 +565,24 @@ Rectangle { purchasesModel.itemsPerPage ); } - pageRetrieved: function(result) { - purchasesReceived = true; + processPage: function(data) { + purchasesReceived = true; // HRS FIXME? + data.assets.forEach(function (item) { + if (item.status.length > 1) { console.warn("Unrecognized inventory status", item); } + item.status = item.status[0]; + item.categories = item.categories.join(';'); + item.cardBackVisible = false; + item.isInstalled = root.installedApps.indexOf(item.id) > -1; + item.wornEntityID = ''; + // HRS FIXME updateable + }); + // HRS FIXME purchaess_updateWearables + // HRS FIXME populateDisplayedItemCounts + // HRS FIXME sortByDate + return data.assets; - var processedInventory = processInventoryResult(result.data.assets); + /* + var processedInventory = processInventoryResult(data.assets); if (purchasesModel.processResult(result.status, processedInventory)) { var currentId; @@ -592,6 +614,7 @@ Rectangle { // the most recent purchases on the 1st page) //sortByDate(); } + */ } } @@ -970,7 +993,7 @@ Rectangle { // FUNCTION DEFINITIONS START // - function processInventoryResult(inventory) { + function processInventoryResult(inventory) { // HRS FIXME remove for (var i = 0; i < inventory.length; i++) { if (inventory[i].status.length > 1) { console.log("WARNING: Inventory result index " + i + " has a status of length >1!") @@ -1087,6 +1110,9 @@ Rectangle { case 'updateWearables': updateCurrentlyWornWearables(message.wornWearables); break; + case 'http.response': + http.handleHttpResponse(message); + break; default: console.log('Unrecognized message from marketplaces.js:', JSON.stringify(message)); } diff --git a/interface/resources/qml/hifi/commerce/wallet/Wallet.qml b/interface/resources/qml/hifi/commerce/wallet/Wallet.qml index 781420f2b2..1e11cbc058 100644 --- a/interface/resources/qml/hifi/commerce/wallet/Wallet.qml +++ b/interface/resources/qml/hifi/commerce/wallet/Wallet.qml @@ -19,6 +19,7 @@ import "../../../controls-uit" as HifiControlsUit import "../../../controls" as HifiControls import "../common" as HifiCommerceCommon import "../common/sendAsset" +import "../.." as HifiCommon Rectangle { HifiConstants { id: hifi; } @@ -343,8 +344,14 @@ Rectangle { } } + HifiCommon.RootHttpRequest { + id: http; + } + SendAsset { id: sendMoney; + http: http; + listModelName: "Send Money Connections"; z: 997; visible: root.activeView === "sendMoney"; anchors.fill: parent; @@ -762,38 +769,22 @@ Rectangle { // NOP break; case 'updateConnections': + console.log('Wallet.qml updateConnections');// HRS FIXME sendMoney.updateConnections(message.connections); break; case 'selectRecipient': case 'updateSelectedRecipientUsername': + console.log('Wallet.qml updateSelectedRecipientUsername'); // HRS FIXME sendMoney.fromScript(message); break; case 'http.response': - handleHttpResponse(message); + http.handleHttpResponse(message); break; default: console.log('Unrecognized message from wallet.js:', JSON.stringify(message)); } } signal sendToScript(var message); - property var httpCalls: ({}); - property var httpCounter: 0; - function request(options, callback) { - console.debug('HRS FIXME Wallet request', JSON.stringify(options)); - httpCalls[httpCounter] = callback; - var message = {method: 'http.request', params: options, id: httpCounter++, jsonrpc: "2.0"}; - sendToScript(message); - } - function handleHttpResponse(message) { - var callback = httpCalls[message.id]; // FIXME: as different top level tablet apps gets loaded, the id repeats. We should drop old app callbacks without warning. - if (!callback) { - console.warn('No callback for', JSON.stringify(message)); - return; - } - delete httpCalls[message.id]; - console.log('HRS FIXME QML handling of', JSON.stringify(message)); - callback(message.error, message.response); - } // generateUUID() taken from: // https://stackoverflow.com/a/8809472 diff --git a/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml b/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml index b23f6ec16c..6d41da1e6e 100644 --- a/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml +++ b/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml @@ -211,16 +211,15 @@ Item { HifiModels.PSFListModel { id: transactionHistoryModel; - - listModelName: "transaction history"; - itemsPerPage: 100; + listModelName: "transaction history"; // For debugging. Alternatively, we could specify endpoint for that purpose, even though it's not used directly. + itemsPerPage: 6; getPage: function () { - console.log('HRS FIXME WalletHome getPage', transactionHistoryModel.currentPageToRetrieve, transactionHistoryModel.itemsPerPage); + console.debug('WalletHome getPage', transactionHistoryModel.currentPageToRetrieve); Commerce.history(transactionHistoryModel.currentPageToRetrieve, transactionHistoryModel.itemsPerPage); } processPage: function (data) { - console.log('HRS FIXME WalletHome processPage', JSON.stringify(data)); - var result, pending; + console.debug('WalletHome processPage', JSON.stringify(data)); + var result, pending; // Set up or get the accumulator for pending. if (transactionHistoryModel.currentPageToRetrieve == 1) { pending = {transaction_type: "pendingCount", count: 0}; result = [pending]; @@ -228,6 +227,8 @@ Item { pending = transactionHistoryModel.get(0); result = []; } + + // Either add to pending, or to result. data.history.forEach(function (item) { if (item.status === 'pending') { pending.count++; diff --git a/interface/resources/qml/hifi/models/PSFListModel.qml b/interface/resources/qml/hifi/models/PSFListModel.qml index 4dc96857af..daafec4e62 100644 --- a/interface/resources/qml/hifi/models/PSFListModel.qml +++ b/interface/resources/qml/hifi/models/PSFListModel.qml @@ -18,7 +18,7 @@ import QtQuick 2.7 Item { - + id: root; // Used when printing debug statements property string listModelName: endpoint; @@ -28,9 +28,14 @@ Item { property string sortKey; property string searchFilter: ""; property string tagsFilter; - onEndpointChanged: getFirstPage(); - onSortKeyChanged: getFirstPage(); + + // QML fires the following changed handlers even when first instantiating the Item. So we need a guard against firing them too early. + property bool initialized: false; + Component.onCompleted: initialized = true; + onEndpointChanged: if (initialized) { getFirstPage(); } + onSortKeyChanged: if (initialized) { getFirstPage(); } onSearchFilterChanged: { + if (!initialized) { return; } if (searchItemTest) { var filteredCopy = applySearchItemTest(copyOfItems); finalModel.clear(); @@ -39,11 +44,11 @@ Item { getFirstPage(); } } - onTagsFilterChanged: getFirstPage(); + onTagsFilterChanged: if (initialized) { getFirstPage(); } property int itemsPerPage: 100; // If the endpoint doesn't do search, tags, sort, these functions can be supplied to do it here. - property var searchItemTest: nil; + property var searchItemTest: null; property var copyOfItems: []; // State. @@ -67,10 +72,10 @@ Item { // Check consistency and call processPage. function handlePage(error, response) { var processed; - console.log("HRS FIXME got", endpoint, error, JSON.stringify(response)); + console.debug('handlePage', listModelName, error, JSON.stringify(response)); function fail(message) { console.warn("Warning", listModelName, JSON.stringify(message)); - current_page_to_retrieve = -1; + currentPageToRetrieve = -1; requestPending = false; delayedClear = false; } @@ -105,9 +110,9 @@ Item { } // Override either http or getPage. - property var http: null; // An Item that has a request function. + property var http; // An Item that has a request function. property var getPage: function () { // Any override MUST call handlePage(), above, even if results empty. - if (!http) { return console.warn("Neither http nor getPage was set in", listModelName); } + if (!http) { return console.warn("Neither http nor getPage was set for", listModelName); } var url = /^\//.test(endpoint) ? (Account.metaverseServerURL + endpoint) : endpoint; var parameters = [ // FIXME: handle sort, search, tag parameters @@ -116,7 +121,7 @@ Item { ]; var parametersSeparator = /\?/.test(url) ? '&' : '?'; url = url + parametersSeparator + parameters.join('&'); - console.log("HRS FIXME requesting", url); + console.debug('getPage', listModelName); http.request({uri: url}, handlePage); } @@ -141,8 +146,8 @@ Item { if (requestPending || currentPageToRetrieve < 0) { return; } - console.log("HRS FIXME Fetching Page " + currentPageToRetrieve + " of " + listModelName + "..."); currentPageToRetrieve++; + console.debug("getNextPage", listModelName, currentPageToRetrieve); requestPending = true; getPage(); } diff --git a/scripts/system/request-service.js b/scripts/system/request-service.js index 84e80489fa..3c3b9ccc04 100644 --- a/scripts/system/request-service.js +++ b/scripts/system/request-service.js @@ -22,7 +22,8 @@ // So, this script does two things: // 1. Allows any root .qml to signal sendToScript({id: aString, method: 'http.request', params: byNameOptions}) // We will then asynchonously call fromScript({id: theSameString, method: 'http.response', error: errorOrFalsey, response: body}) - // on that root object. + // on that root object. + // RootHttpRequest.qml does this. // 2. If the uri used (computed from byNameOptions, see request.js) begins with '/', we will: // a. Prepend Account.metaverseServerUR. // b. Use the appropriate auth. @@ -30,20 +31,19 @@ var request = Script.require('request').request; var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system"); function fromQml(message) { // messages are {id, method, params}, like json-rpc. See also sendToQml. - switch (message.method) { - case 'http.request': - request(message.params, function (error, response) { - console.log('HRS FIXME request-service got', JSON.stringify(error), JSON.stringify(response)); - tablet.sendToQml({ - id: message.id, - method: 'http.response', - error: error, // Alas, this isn't always a JSON-RPC conforming error object. - response: response, - jsonrpc: '2.0' - }); - }); - break; - } + switch (message.method) { + case 'http.request': + request(message.params, function (error, response) { + tablet.sendToQml({ + id: message.id, + method: 'http.response', + error: error, // Alas, this isn't always a JSON-RPC conforming error object. + response: response, + jsonrpc: '2.0' + }); + }); + break; + } } tablet.fromQml.connect(fromQml); Script.scriptEnding.connect(function () { tablet.fromQml.disconnect(fromQml); }); From ac33f33828f1fcdb0d103533b2fe62739de67f35 Mon Sep 17 00:00:00 2001 From: David Back Date: Thu, 31 May 2018 09:24:16 -0700 Subject: [PATCH 107/300] update version from json in toByteArray --- libraries/octree/src/OctreeDataUtils.cpp | 14 +++++++------- libraries/octree/src/OctreeDataUtils.h | 1 + libraries/octree/src/OctreePersistThread.cpp | 4 ++-- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/libraries/octree/src/OctreeDataUtils.cpp b/libraries/octree/src/OctreeDataUtils.cpp index b57ab8db31..44a56fe97a 100644 --- a/libraries/octree/src/OctreeDataUtils.cpp +++ b/libraries/octree/src/OctreeDataUtils.cpp @@ -40,9 +40,10 @@ bool readOctreeFile(QString path, QJsonDocument* doc) { } bool OctreeUtils::RawOctreeData::readOctreeDataInfoFromJSON(QJsonObject root) { - if (root.contains("Id") && root.contains("DataVersion")) { + if (root.contains("Id") && root.contains("DataVersion") && root.contains("Version")) { id = root["Id"].toVariant().toUuid(); - version = root["DataVersion"].toInt(); + dataVersion = root["DataVersion"].toInt(); + version = root["Version"].toInt(); } readSubclassData(root); return true; @@ -76,11 +77,10 @@ bool OctreeUtils::RawOctreeData::readOctreeDataInfoFromFile(QString path) { } QByteArray OctreeUtils::RawOctreeData::toByteArray() { - const auto protocolVersion = (int)versionForPacketType((PacketTypeEnum::Value)dataPacketType()); QJsonObject obj { - { "DataVersion", QJsonValue((qint64)version) }, + { "DataVersion", QJsonValue((qint64)dataVersion) }, { "Id", QJsonValue(id.toString()) }, - { "Version", protocolVersion }, + { "Version", QJsonValue((qint64)version) }, }; writeSubclassData(obj); @@ -111,8 +111,8 @@ PacketType OctreeUtils::RawOctreeData::dataPacketType() const { void OctreeUtils::RawOctreeData::resetIdAndVersion() { id = QUuid::createUuid(); - version = OctreeUtils::INITIAL_VERSION; - qDebug() << "Reset octree data to: " << id << version; + dataVersion = OctreeUtils::INITIAL_VERSION; + qDebug() << "Reset octree data to: " << id << dataVersion; } void OctreeUtils::RawEntityData::readSubclassData(const QJsonObject& root) { diff --git a/libraries/octree/src/OctreeDataUtils.h b/libraries/octree/src/OctreeDataUtils.h index 485599096d..9060e7b460 100644 --- a/libraries/octree/src/OctreeDataUtils.h +++ b/libraries/octree/src/OctreeDataUtils.h @@ -28,6 +28,7 @@ constexpr Version INITIAL_VERSION = 0; class RawOctreeData { public: QUuid id { QUuid() }; + Version dataVersion { -1 }; Version version { -1 }; virtual PacketType dataPacketType() const; diff --git a/libraries/octree/src/OctreePersistThread.cpp b/libraries/octree/src/OctreePersistThread.cpp index e6afccab47..3dc051675d 100644 --- a/libraries/octree/src/OctreePersistThread.cpp +++ b/libraries/octree/src/OctreePersistThread.cpp @@ -179,8 +179,8 @@ bool OctreePersistThread::process() { OctreeUtils::RawOctreeData data; if (data.readOctreeDataInfoFromFile(_filename)) { - qDebug() << "Setting entity version info to: " << data.id << data.version; - _tree->setOctreeVersionInfo(data.id, data.version); + qDebug() << "Setting entity version info to: " << data.id << data.dataVersion; + _tree->setOctreeVersionInfo(data.id, data.dataVersion); } bool persistentFileRead; From 147017029679e45f838a84bd92583bcf0b3cf3e3 Mon Sep 17 00:00:00 2001 From: SamGondelman Date: Thu, 31 May 2018 11:54:37 -0700 Subject: [PATCH 108/300] lock weak resource --- libraries/networking/src/ResourceCache.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libraries/networking/src/ResourceCache.cpp b/libraries/networking/src/ResourceCache.cpp index 18e60ef5ef..0b1334daba 100644 --- a/libraries/networking/src/ResourceCache.cpp +++ b/libraries/networking/src/ResourceCache.cpp @@ -636,7 +636,10 @@ void Resource::attemptRequest() { << "- retrying asset load - attempt" << _attempts << " of " << MAX_ATTEMPTS; } - ResourceCache::attemptRequest(_self); + auto self = _self.lock(); + if (self) { + ResourceCache::attemptRequest(self); + } } void Resource::finishedLoading(bool success) { From f99b2dd23fd1e0bc81b0d3afa1494f323ba4dac8 Mon Sep 17 00:00:00 2001 From: Cristian Luis Duarte Date: Thu, 31 May 2018 16:02:41 -0300 Subject: [PATCH 109/300] Android - Fix joystick and view control bug that makes it bounce --- .../src/input-plugins/TouchscreenVirtualPadDevice.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libraries/input-plugins/src/input-plugins/TouchscreenVirtualPadDevice.cpp b/libraries/input-plugins/src/input-plugins/TouchscreenVirtualPadDevice.cpp index 8d63b82911..32194e1b84 100644 --- a/libraries/input-plugins/src/input-plugins/TouchscreenVirtualPadDevice.cpp +++ b/libraries/input-plugins/src/input-plugins/TouchscreenVirtualPadDevice.cpp @@ -350,6 +350,8 @@ void TouchscreenVirtualPadDevice::touchUpdateEvent(const QTouchEvent* event) { if (idxMoveStartingPointCandidate != -1) { _moveCurrentTouchId = tPoints[idxMoveStartingPointCandidate].id(); _unusedTouches.erase(_moveCurrentTouchId); + thisPoint.x = tPoints[idxMoveStartingPointCandidate].pos().x(); + thisPoint.y = tPoints[idxMoveStartingPointCandidate].pos().y(); moveTouchBegin(thisPoint); } else { moveTouchEnd(); @@ -359,6 +361,8 @@ void TouchscreenVirtualPadDevice::touchUpdateEvent(const QTouchEvent* event) { if (idxViewStartingPointCandidate != -1) { _viewCurrentTouchId = tPoints[idxViewStartingPointCandidate].id(); _unusedTouches.erase(_viewCurrentTouchId); + thisPoint.x = tPoints[idxViewStartingPointCandidate].pos().x(); + thisPoint.y = tPoints[idxViewStartingPointCandidate].pos().y(); viewTouchBegin(thisPoint); } else { viewTouchEnd(); @@ -368,6 +372,8 @@ void TouchscreenVirtualPadDevice::touchUpdateEvent(const QTouchEvent* event) { if (idxJumpStartingPointCandidate != -1) { _jumpCurrentTouchId = tPoints[idxJumpStartingPointCandidate].id(); _unusedTouches.erase(_jumpCurrentTouchId); + thisPoint.x = tPoints[idxJumpStartingPointCandidate].pos().x(); + thisPoint.y = tPoints[idxJumpStartingPointCandidate].pos().y(); jumpTouchBegin(thisPoint); } else { if (_jumpHasValidTouch) { @@ -424,6 +430,7 @@ void TouchscreenVirtualPadDevice::moveTouchBegin(glm::vec2 touchPoint) { } else { _moveRefTouchPoint = touchPoint; } + _moveCurrentTouchPoint = touchPoint; _moveHasValidTouch = true; } } From 7598c7aaf3d99ed574164713aef2bf178630d6de Mon Sep 17 00:00:00 2001 From: Simon Walton Date: Thu, 31 May 2018 13:52:06 -0700 Subject: [PATCH 110/300] Remove tablet message-box when required Desktop request was being honoured but not HMD. --- interface/src/ui/DialogsManager.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/interface/src/ui/DialogsManager.cpp b/interface/src/ui/DialogsManager.cpp index d01e7d6671..51c6987875 100644 --- a/interface/src/ui/DialogsManager.cpp +++ b/interface/src/ui/DialogsManager.cpp @@ -97,6 +97,9 @@ void DialogsManager::setDomainConnectionFailureVisibility(bool visible) { if (!hmd->getShouldShowTablet()) { hmd->openTablet(); } + } else { + tablet->gotoHomeScreen(); + hmd->closeTablet(); } } } From 146f871bec463dcb62f621c741c4eabe36888167 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Fri, 1 Jun 2018 09:39:39 +1200 Subject: [PATCH 111/300] Don't modify function parameter --- scripts/system/particle_explorer/particleExplorerTool.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/system/particle_explorer/particleExplorerTool.js b/scripts/system/particle_explorer/particleExplorerTool.js index 016691e2b6..0543cfc56b 100644 --- a/scripts/system/particle_explorer/particleExplorerTool.js +++ b/scripts/system/particle_explorer/particleExplorerTool.js @@ -45,8 +45,8 @@ ParticleExplorerTool = function() { })); } - that.webEventReceived = function(data) { - data = JSON.parse(data); + that.webEventReceived = function(message) { + var data = JSON.parse(message); if (data.messageType === "settings_update") { if (data.updatedSettings.emitOrientation) { data.updatedSettings.emitOrientation = Quat.fromVec3Degrees(data.updatedSettings.emitOrientation); From e8e12eef8f9d2597c4e57886f838fa610ffcd591 Mon Sep 17 00:00:00 2001 From: howard-stearns Date: Thu, 31 May 2018 14:42:52 -0700 Subject: [PATCH 112/300] checkpoint --- .../commerce/common/sendAsset/SendAsset.qml | 5 ++-- .../qml/hifi/commerce/wallet/Wallet.qml | 3 +++ .../qml/hifi/commerce/wallet/WalletHome.qml | 23 ++----------------- .../qml/hifi/models/PSFListModel.qml | 21 +++++++++++++++-- scripts/system/marketplaces/marketplaces.js | 2 ++ 5 files changed, 29 insertions(+), 25 deletions(-) diff --git a/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml b/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml index 13fe748ec7..716758a3fe 100644 --- a/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml +++ b/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml @@ -399,8 +399,9 @@ Item { listModelName: root.listModelName; endpoint: "/api/v1/users?filter=connections"; itemsPerPage: 8; + listView: connectionsList; processPage: function (data) { - console.log("HRS FIXME processPage", JSON.stringify(data)); + console.log("processPage", connectionsModel.listModelName, JSON.stringify(data)); return data.users; }; searchFilter: filterBar.text; @@ -523,7 +524,7 @@ Item { visible: !connectionsLoading.visible; clip: true; model: connectionsModel.model; - onAtYEndChanged: if (connectionsList.atYEnd) { connectionsModel.getNextPage(); } + onAtYEndChanged: if (connectionsList.atYEnd /*&& !connectionsList.atYBeginning*/) { connectionsModel.getNextPage(); } snapMode: ListView.SnapToItem; // Anchors anchors.fill: parent; diff --git a/interface/resources/qml/hifi/commerce/wallet/Wallet.qml b/interface/resources/qml/hifi/commerce/wallet/Wallet.qml index 1e11cbc058..b75141f8dd 100644 --- a/interface/resources/qml/hifi/commerce/wallet/Wallet.qml +++ b/interface/resources/qml/hifi/commerce/wallet/Wallet.qml @@ -780,6 +780,9 @@ Rectangle { case 'http.response': http.handleHttpResponse(message); break; + case 'palIsStale': + case 'avatarDisconnected': // HRS FIXME. What are these about? + break; default: console.log('Unrecognized message from wallet.js:', JSON.stringify(message)); } diff --git a/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml b/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml index 6d41da1e6e..1c0debb12b 100644 --- a/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml +++ b/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml @@ -214,11 +214,11 @@ Item { listModelName: "transaction history"; // For debugging. Alternatively, we could specify endpoint for that purpose, even though it's not used directly. itemsPerPage: 6; getPage: function () { - console.debug('WalletHome getPage', transactionHistoryModel.currentPageToRetrieve); + console.debug('getPage', transactionHistoryModel.listModelName, transactionHistoryModel.currentPageToRetrieve); Commerce.history(transactionHistoryModel.currentPageToRetrieve, transactionHistoryModel.itemsPerPage); } processPage: function (data) { - console.debug('WalletHome processPage', JSON.stringify(data)); + console.debug('processPage', transactionHistoryModel.listModelName, JSON.stringify(data)); var result, pending; // Set up or get the accumulator for pending. if (transactionHistoryModel.currentPageToRetrieve == 1) { pending = {transaction_type: "pendingCount", count: 0}; @@ -441,25 +441,6 @@ Item { return year + '-' + month + '-' + day + '
' + drawnHour + ':' + min + amOrPm; } - // - // Function Name: fromScript() - // - // Relevant Variables: - // None - // - // Arguments: - // message: The message sent from the JavaScript. - // Messages are in format "{method, params}", like json-rpc. - // - // Description: - // Called when a message is received from a script. - // - function fromScript(message) { - switch (message.method) { - default: - console.log('Unrecognized message from wallet.js:', JSON.stringify(message)); - } - } signal sendSignalToWallet(var msg); // diff --git a/interface/resources/qml/hifi/models/PSFListModel.qml b/interface/resources/qml/hifi/models/PSFListModel.qml index daafec4e62..d9e31cbfa1 100644 --- a/interface/resources/qml/hifi/models/PSFListModel.qml +++ b/interface/resources/qml/hifi/models/PSFListModel.qml @@ -40,6 +40,7 @@ Item { var filteredCopy = applySearchItemTest(copyOfItems); finalModel.clear(); finalModel.append(filteredCopy); + debugView('after searchFilterChanged'); } else { // TODO: fancy timer against fast typing. getFirstPage(); } @@ -69,6 +70,7 @@ Item { // Override to return one property of data, and/or to transform the elements. Must return an array of model elements. property var processPage: function (data) { return data; } + property var listView; // Optional. For debugging. // Check consistency and call processPage. function handlePage(error, response) { var processed; @@ -100,14 +102,28 @@ Item { finalModel.clear(); delayedClear = false; } - finalModel.append(processed); // FIXME keep index steady, and apply any post sort/filter + finalModel.append(processed); // FIXME keep index steady, and apply any post sort retrievedAtLeastOnePage = true; + if (response.total_pages && (response.total_pages === currentPageToRetrieve)) { + currentPageToRetrieve = -1; + } + debugView('after handlePage'); + if (searchItemTest && searchFilter && listView && listView.atYEnd && (currentPageToRetrieve >= 0)) { + getNextPage(); // too fancy?? + } } function applySearchItemTest(items) { return items.filter(function (item) { return searchItemTest(searchFilter, item); }); } + function debugView(label) { + if (!listView) { return; } + console.debug(label, listModelName, 'perPage:', itemsPerPage, 'count:', listView.count, + 'index:', listView.currentIndex, 'section:', listView.currentSection, + 'atYBeginning:', listView.atYBeginning, 'atYEnd:', listView.atYEnd, + 'y:', listView.y, 'contentY:', listView.contentY); + } // Override either http or getPage. property var http; // An Item that has a request function. @@ -121,7 +137,7 @@ Item { ]; var parametersSeparator = /\?/.test(url) ? '&' : '?'; url = url + parametersSeparator + parameters.join('&'); - console.debug('getPage', listModelName); + console.debug('getPage', listModelName, currentPageToRetrieve); http.request({uri: url}, handlePage); } @@ -131,6 +147,7 @@ Item { delayedClear = !!delayClear; resetModel(); requestPending = true; + console.debug("getFirstPage", listModelName, currentPageToRetrieve); getPage(); } diff --git a/scripts/system/marketplaces/marketplaces.js b/scripts/system/marketplaces/marketplaces.js index ea8278a459..208e64fd5e 100644 --- a/scripts/system/marketplaces/marketplaces.js +++ b/scripts/system/marketplaces/marketplaces.js @@ -991,6 +991,8 @@ var selectionDisplay = null; // for gridTool.js to ignore case 'http.request': // Handled elsewhere, don't log. break; + case 'goToPurchases_fromWalletHome': // HRS FIXME What's this about? + break; default: print('Unrecognized message from Checkout.qml or Purchases.qml: ' + JSON.stringify(message)); } From 1a128abdfd098625914db983b817d28186425c08 Mon Sep 17 00:00:00 2001 From: Wayne Chen Date: Thu, 31 May 2018 15:05:33 -0700 Subject: [PATCH 113/300] adding alternate solution. --- ...oggleAdvancedMovementForHandControllers.js | 23 ++----------------- 1 file changed, 2 insertions(+), 21 deletions(-) diff --git a/scripts/system/controllers/toggleAdvancedMovementForHandControllers.js b/scripts/system/controllers/toggleAdvancedMovementForHandControllers.js index 92d079cff6..92f72f8724 100644 --- a/scripts/system/controllers/toggleAdvancedMovementForHandControllers.js +++ b/scripts/system/controllers/toggleAdvancedMovementForHandControllers.js @@ -28,7 +28,7 @@ var isDisabled = false; var previousFlyingState = MyAvatar.getFlyingEnabled(); - var previousDrivingState = MyAvatar.useAdvancedMovementControls; + var previousDrivingState = false; function rotate180() { var newOrientation = Quat.multiply(MyAvatar.orientation, Quat.angleAxis(180, { @@ -100,7 +100,7 @@ Controller.enableMapping(DRIVING_MAPPING_NAME); } - if (MyAvatar.getFyingEnabled()) { + if (MyAvatar.getFlyingEnabled()) { Controller.disableMapping(FLYING_MAPPING_NAME); } else { Controller.enableMapping(FLYING_MAPPING_NAME); @@ -171,23 +171,4 @@ Messages.subscribe(HIFI_ADVANCED_MOVEMENT_DISABLER_CHANNEL); Messages.messageReceived.connect(handleMessage); - function initializeControls() { - if(HMD.active) { - if (Controller.Hardware.Vive !== undefined || Controller.Hardware.OculusTouch !== undefined) { - if (MyAvatar.useAdvancedMovementControls) { - Controller.disableMapping(DRIVING_MAPPING_NAME); - } else { - Controller.enableMapping(DRIVING_MAPPING_NAME); - } - - if (MyAvatar.getFlyingEnabled()) { - Controller.disableMapping(FLYING_MAPPING_NAME); - } else { - Controller.enableMapping(FLYING_MAPPING_NAME); - } - } - } - } - - initializeControls(); }()); // END LOCAL_SCOPE From de6db6f0cd1639ae2e936e7655b17539f08a128c Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Tue, 29 May 2018 16:18:07 -0700 Subject: [PATCH 114/300] remove confusing sandbox content update/backup system --- server-console/src/main.js | 106 ------------------------------------- 1 file changed, 106 deletions(-) diff --git a/server-console/src/main.js b/server-console/src/main.js index b08db6222f..aa0fc8eff6 100644 --- a/server-console/src/main.js +++ b/server-console/src/main.js @@ -436,13 +436,6 @@ var labels = { logWindow.open(); } }, - restoreBackup: { - label: 'Restore Backup Instructions', - click: function() { - var folder = getRootHifiDataDirectory() + "/Server Backup"; - openBackupInstructions(folder); - } - }, share: { label: 'Share', click: function() { @@ -478,7 +471,6 @@ function buildMenuArray(serverState) { menuArray.push(labels.stopServer); menuArray.push(labels.settings); menuArray.push(labels.viewLogs); - menuArray.push(labels.restoreBackup); menuArray.push(separator); menuArray.push(labels.share); menuArray.push(separator); @@ -545,103 +537,6 @@ function backupResourceDirectories(folder) { } } -function openBackupInstructions(folder) { - // Explain user how to restore server - var window = new BrowserWindow({ - icon: appIcon, - width: 800, - height: 520, - }); - window.loadURL('file://' + __dirname + '/content-update.html'); - if (!debug) { - window.setMenu(null); - } - window.show(); - - electron.ipcMain.on('setSize', function(event, obj) { - window.setSize(obj.width, obj.height); - }); - electron.ipcMain.on('ready', function() { - log.debug("got ready"); - window.webContents.send('update', folder); - }); -} -function backupResourceDirectoriesAndRestart() { - homeServer.stop(); - - var folder = getRootHifiDataDirectory() + "/Server Backup - " + Date.now(); - if (backupResourceDirectories(folder)) { - maybeInstallDefaultContentSet(onContentLoaded); - openBackupInstructions(folder); - } else { - dialog.showMessageBox({ - type: 'warning', - buttons: ['Ok'], - title: 'Update Error', - message: 'There was an error updating the content, aborting.' - }, function() {}); - } -} - -function checkNewContent() { - if (argv.noUpdater) { - return; - } - - // Start downloading content set - var req = request.head({ - url: HOME_CONTENT_URL - }, function (error, response, body) { - if (error === null) { - var localContent = Date.parse(userConfig.get('homeContentLastModified')); - var remoteContent = Date.parse(response.headers['last-modified']); - - var shouldUpdate = isNaN(localContent) || (!isNaN(remoteContent) && (remoteContent > localContent)); - - var wantDebug = false; - if (wantDebug) { - log.debug('Last Modified: ' + response.headers['last-modified']); - log.debug(localContent + " " + remoteContent + " " + shouldUpdate + " " + new Date()); - log.debug("Remote content is " + (shouldUpdate ? "newer" : "older") + " that local content."); - } - - if (shouldUpdate) { - dialog.showMessageBox({ - type: 'question', - buttons: ['Yes', 'No'], - defaultId: 1, - cancelId: 1, - title: 'High Fidelity Sandbox', - message: 'A newer version of the home content set is available.\nDo you wish to update?', - noLink: true, - }, function(idx) { - if (idx === 0) { - dialog.showMessageBox({ - type: 'warning', - buttons: ['Yes', 'No'], - defaultId: 1, - cancelId: 1, - title: 'Are you sure?', - message: 'Updating with the new content will remove all your current content and settings and place them in a backup folder.\nAre you sure?', - noLink: true, - }, function(idx) { - if (idx === 0) { - backupResourceDirectoriesAndRestart(); - } - }); - } else { - // They don't want to update, mark content set as current - userConfig.set('homeContentLastModified', new Date()); - userConfig.save(configPath); - } - }); - } else if (fs.existsSync(UPDATER_LOCK_FULL_PATH)) { - backupResourceDirectoriesAndRestart(); - } - } - }); -} - function removeIncompleteUpdate(acResourceDirectory, dsResourceDirectory) { if (fs.existsSync(UPDATER_LOCK_FULL_PATH)) { log.debug('Removing incomplete content update files before copying new update'); @@ -684,7 +579,6 @@ function maybeInstallDefaultContentSet(onComplete) { log.debug("User has existing data, suppressing downloader"); onComplete(); - checkNewContent(); return; } From 3bda5bf6a0609f23067731cae51210a9e05631e7 Mon Sep 17 00:00:00 2001 From: amantley Date: Thu, 31 May 2018 17:58:37 -0700 Subject: [PATCH 115/300] added MyAvatar.hasProceduralBlinkFaceMovement and MyAvatar.hasProceduralEyeFaceMovement properties to MyAvatar.h and cpp and HeadData.h --- interface/src/avatar/MyAvatar.cpp | 12 + interface/src/avatar/MyAvatar.h | 12 +- .../src/avatars-renderer/Head.cpp | 62 +-- libraries/avatars/src/AvatarData.h | 2 + libraries/avatars/src/HeadData.h | 23 ++ .../DefaultStylizedFemale_Clothed.fst | 139 +++++++ scripts/developer/facialExpressions.js | 374 ++++++++++++++++++ 7 files changed, 596 insertions(+), 28 deletions(-) create mode 100644 scripts/developer/DefaultStylizedFemale_Clothed.fst create mode 100644 scripts/developer/facialExpressions.js diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index e231a42f92..0f6fe88ce9 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -2094,6 +2094,18 @@ void MyAvatar::setHasScriptedBlendshapes(bool hasScriptedBlendshapes) { _hasScriptedBlendShapes = hasScriptedBlendshapes; } +void MyAvatar::setHasProceduralBlinkFaceMovement(bool hasProceduralBlinkFaceMovement) { + _headData->setHasProceduralBlinkFaceMovement(hasProceduralBlinkFaceMovement); +} + +void MyAvatar::setHasProceduralEyeFaceMovement(bool hasProceduralEyeFaceMovement) { + _headData->setHasProceduralEyeFaceMovement(hasProceduralEyeFaceMovement); +} + +void MyAvatar::setHasAudioEnabledFaceMovement(bool hasAudioEnabledFaceMovement) { + _headData->setHasAudioEnabledFaceMovement(hasAudioEnabledFaceMovement); +} + void MyAvatar::updateOrientation(float deltaTime) { // Smoothly rotate body with arrow keys diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 55780b56ac..813dddcc98 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -87,6 +87,8 @@ class MyAvatar : public Avatar { * @property {number} audioListenerModeCustom=2 - The audio listening position is at a the position specified by set by the * customListenPosition and customListenOrientation property values. Read-only. * @property {boolean} hasScriptedBlendshapes=false - Blendshapes will be transmitted over the network if set to true. + * @property {boolean} hasProceduralBlinkFaceMovement=true - procedural blinking will be turned on if set to true. + * @property {boolean} hasProceduralEyeFaceMovement=true - procedural eye movement will be turned on if set to true. * @property {boolean} hasAudioEnabledFaceMovement=true - If set to true, voice audio will move the mouth Blendshapes while MyAvatar.hasScriptedBlendshapes is enabled. * @property {Vec3} customListenPosition=Vec3.ZERO - The listening position used when the audioListenerMode * property value is audioListenerModeCustom. @@ -187,6 +189,8 @@ class MyAvatar : public Avatar { Q_PROPERTY(AudioListenerMode audioListenerModeCamera READ getAudioListenerModeCamera) Q_PROPERTY(AudioListenerMode audioListenerModeCustom READ getAudioListenerModeCustom) Q_PROPERTY(bool hasScriptedBlendshapes READ getHasScriptedBlendshapes WRITE setHasScriptedBlendshapes) + Q_PROPERTY(bool hasProceduralBlinkFaceMovement READ getHasProceduralBlinkFaceMovement WRITE setHasProceduralBlinkFaceMovement) + Q_PROPERTY(bool hasProceduralEyeFaceMovement READ getHasProceduralEyeFaceMovement WRITE setHasProceduralEyeFaceMovement) Q_PROPERTY(bool hasAudioEnabledFaceMovement READ getHasAudioEnabledFaceMovement WRITE setHasAudioEnabledFaceMovement) //TODO: make gravity feature work Q_PROPERTY(glm::vec3 gravity READ getGravity WRITE setGravity) @@ -1347,8 +1351,12 @@ private: bool getShouldRenderLocally() const { return _shouldRender; } void setHasScriptedBlendshapes(bool hasScriptedBlendshapes); bool getHasScriptedBlendshapes() const override { return _hasScriptedBlendShapes; } - void setHasAudioEnabledFaceMovement(bool hasAudioEnabledFaceMovement) { _hasAudioEnabledFaceMovement = hasAudioEnabledFaceMovement; } - bool getHasAudioEnabledFaceMovement() const override { return _hasAudioEnabledFaceMovement; } + void setHasProceduralBlinkFaceMovement(bool hasProceduralBlinkFaceMovement); + bool getHasProceduralBlinkFaceMovement() const override { return _headData->getHasProceduralBlinkFaceMovement(); } + void setHasProceduralEyeFaceMovement(bool hasProceduralEyeFaceMovement); + bool getHasProceduralEyeFaceMovement() const override { return _headData->getHasProceduralEyeFaceMovement(); } + void setHasAudioEnabledFaceMovement(bool hasAudioEnabledFaceMovement); + bool getHasAudioEnabledFaceMovement() const override { return _headData->getHasAudioEnabledFaceMovement(); } bool isMyAvatar() const override { return true; } virtual int parseDataFromBuffer(const QByteArray& buffer) override; virtual glm::vec3 getSkeletonPosition() const override; diff --git a/libraries/avatars-renderer/src/avatars-renderer/Head.cpp b/libraries/avatars-renderer/src/avatars-renderer/Head.cpp index 256b3bf8a6..b0707922ea 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Head.cpp +++ b/libraries/avatars-renderer/src/avatars-renderer/Head.cpp @@ -100,41 +100,51 @@ void Head::simulate(float deltaTime) { } _browAudioLift = glm::clamp(_browAudioLift *= 0.7f, 0.0f, 1.0f); + const float BLINK_SPEED = 10.0f; const float BLINK_SPEED_VARIABILITY = 1.0f; const float BLINK_START_VARIABILITY = 0.25f; const float FULLY_OPEN = 0.0f; const float FULLY_CLOSED = 1.0f; - if (_leftEyeBlinkVelocity == 0.0f && _rightEyeBlinkVelocity == 0.0f) { - // no blinking when brows are raised; blink less with increasing loudness - const float BASE_BLINK_RATE = 15.0f / 60.0f; - const float ROOT_LOUDNESS_TO_BLINK_INTERVAL = 0.25f; - if (forceBlink || (_browAudioLift < EPSILON && shouldDo(glm::max(1.0f, sqrt(fabs(_averageLoudness - _longTermAverageLoudness)) * + if (getHasProceduralBlinkFaceMovement()) { + if (_leftEyeBlinkVelocity == 0.0f && _rightEyeBlinkVelocity == 0.0f) { + // no blinking when brows are raised; blink less with increasing loudness + const float BASE_BLINK_RATE = 15.0f / 60.0f; + const float ROOT_LOUDNESS_TO_BLINK_INTERVAL = 0.25f; + if (forceBlink || (_browAudioLift < EPSILON && shouldDo(glm::max(1.0f, sqrt(fabs(_averageLoudness - _longTermAverageLoudness)) * ROOT_LOUDNESS_TO_BLINK_INTERVAL) / BASE_BLINK_RATE, deltaTime))) { - _leftEyeBlinkVelocity = BLINK_SPEED + randFloat() * BLINK_SPEED_VARIABILITY; - _rightEyeBlinkVelocity = BLINK_SPEED + randFloat() * BLINK_SPEED_VARIABILITY; - if (randFloat() < 0.5f) { - _leftEyeBlink = BLINK_START_VARIABILITY; - } else { - _rightEyeBlink = BLINK_START_VARIABILITY; + _leftEyeBlinkVelocity = BLINK_SPEED + randFloat() * BLINK_SPEED_VARIABILITY; + _rightEyeBlinkVelocity = BLINK_SPEED + randFloat() * BLINK_SPEED_VARIABILITY; + if (randFloat() < 0.5f) { + _leftEyeBlink = BLINK_START_VARIABILITY; + } + else { + _rightEyeBlink = BLINK_START_VARIABILITY; + } + } + } + else { + _leftEyeBlink = glm::clamp(_leftEyeBlink + _leftEyeBlinkVelocity * deltaTime, FULLY_OPEN, FULLY_CLOSED); + _rightEyeBlink = glm::clamp(_rightEyeBlink + _rightEyeBlinkVelocity * deltaTime, FULLY_OPEN, FULLY_CLOSED); + + if (_leftEyeBlink == FULLY_CLOSED) { + _leftEyeBlinkVelocity = -BLINK_SPEED; + + } + else if (_leftEyeBlink == FULLY_OPEN) { + _leftEyeBlinkVelocity = 0.0f; + } + if (_rightEyeBlink == FULLY_CLOSED) { + _rightEyeBlinkVelocity = -BLINK_SPEED; + + } + else if (_rightEyeBlink == FULLY_OPEN) { + _rightEyeBlinkVelocity = 0.0f; } } } else { - _leftEyeBlink = glm::clamp(_leftEyeBlink + _leftEyeBlinkVelocity * deltaTime, FULLY_OPEN, FULLY_CLOSED); - _rightEyeBlink = glm::clamp(_rightEyeBlink + _rightEyeBlinkVelocity * deltaTime, FULLY_OPEN, FULLY_CLOSED); - - if (_leftEyeBlink == FULLY_CLOSED) { - _leftEyeBlinkVelocity = -BLINK_SPEED; - - } else if (_leftEyeBlink == FULLY_OPEN) { - _leftEyeBlinkVelocity = 0.0f; - } - if (_rightEyeBlink == FULLY_CLOSED) { - _rightEyeBlinkVelocity = -BLINK_SPEED; - - } else if (_rightEyeBlink == FULLY_OPEN) { - _rightEyeBlinkVelocity = 0.0f; - } + _rightEyeBlink = FULLY_OPEN; + _leftEyeBlink = FULLY_OPEN; } // use data to update fake Faceshift blendshape coefficients diff --git a/libraries/avatars/src/AvatarData.h b/libraries/avatars/src/AvatarData.h index 568c48dd62..2d8ee52ea1 100644 --- a/libraries/avatars/src/AvatarData.h +++ b/libraries/avatars/src/AvatarData.h @@ -502,6 +502,8 @@ public: float getDomainLimitedScale() const; virtual bool getHasScriptedBlendshapes() const { return false; } + virtual bool getHasProceduralBlinkFaceMovement() const { return true; } + virtual bool getHasProceduralEyeFaceMovement() const { return true; } virtual bool getHasAudioEnabledFaceMovement() const { return false; } /**jsdoc diff --git a/libraries/avatars/src/HeadData.h b/libraries/avatars/src/HeadData.h index bcc2cacde5..f8eca0915e 100644 --- a/libraries/avatars/src/HeadData.h +++ b/libraries/avatars/src/HeadData.h @@ -69,6 +69,24 @@ public: } bool lookAtPositionChangedSince(quint64 time) { return _lookAtPositionChanged >= time; } + bool getHasProceduralEyeFaceMovement() const { return _hasProceduralEyeFaceMovement; } + + void setHasProceduralEyeFaceMovement(const bool hasProceduralEyeFaceMovement) { + _hasProceduralEyeFaceMovement = hasProceduralEyeFaceMovement; + } + + bool getHasProceduralBlinkFaceMovement() const { return _hasProceduralBlinkFaceMovement; } + + void setHasProceduralBlinkFaceMovement(const bool hasProceduralBlinkFaceMovement) { + _hasProceduralBlinkFaceMovement = hasProceduralBlinkFaceMovement; + } + + bool getHasAudioEnabledFaceMovement() const { return _hasAudioEnabledFaceMovement; } + + void setHasAudioEnabledFaceMovement(const bool hasAudioEnabledFaceMovement) { + _hasAudioEnabledFaceMovement = hasAudioEnabledFaceMovement; + } + friend class AvatarData; QJsonObject toJson() const; @@ -83,6 +101,11 @@ protected: glm::vec3 _lookAtPosition; quint64 _lookAtPositionChanged { 0 }; + //std::atomic _hasProceduralBlinkFaceMovement{ true }; + //std::atomic _hasProceduralEyeFaceMovement{ true }; + bool _hasAudioEnabledFaceMovement { true }; + bool _hasProceduralBlinkFaceMovement{ true }; + bool _hasProceduralEyeFaceMovement{ true }; bool _isFaceTrackerConnected { false }; bool _isEyeTrackerConnected { false }; float _leftEyeBlink { 0.0f }; diff --git a/scripts/developer/DefaultStylizedFemale_Clothed.fst b/scripts/developer/DefaultStylizedFemale_Clothed.fst new file mode 100644 index 0000000000..3e46d6a15c --- /dev/null +++ b/scripts/developer/DefaultStylizedFemale_Clothed.fst @@ -0,0 +1,139 @@ +name = DefaultStylizedFemale_Clothed +type = body+head +scale = 1 +filename = DefaultStylizedFemale_Clothed/DefaultStylizedFemale_Clothed.fbx +texdir = DefaultStylizedFemale_Clothed/textures +joint = jointLean = Spine +joint = jointRightHand = RightHand +joint = jointEyeLeft = LeftEye +joint = jointHead = HeadTop_End +joint = jointNeck = Neck +joint = jointRoot = Hips +joint = jointEyeRight = RightEye +joint = jointLeftHand = LeftHand +freeJoint = LeftArm +freeJoint = LeftForeArm +freeJoint = RightArm +freeJoint = RightForeArm +bs = EyeBlink_L = Blink_Left = 1 +bs = Sneer = Squint_Right = 0.5 +bs = Sneer = Squint_Left = 0.5 +bs = Sneer = NoseScrunch_Right = 0.75 +bs = Sneer = NoseScrunch_Left = 0.75 +bs = ChinLowerRaise = Jaw_Up = 1 +bs = EyeSquint_R = Squint_Right = 1 +bs = MouthSmile_R = Smile_Right = 1 +bs = ChinUpperRaise = UpperLipUp_Right = 0.5 +bs = ChinUpperRaise = UpperLipUp_Left = 0.5 +bs = LipsLowerOpen = LowerLipOut = 1 +bs = LipsLowerDown = LowerLipDown_Right = 0.7 +bs = LipsLowerDown = LowerLipDown_Left = 0.7 +bs = BrowsU_L = BrowsUp_Left = 1 +bs = MouthRight = Midmouth_Right = 1 +bs = MouthDimple_R = Smile_Right = 0.25 +bs = LipsPucker = MouthNarrow_Right = 1 +bs = LipsPucker = MouthNarrow_Left = 1 +bs = Puff = CheekPuff_Right = 1 +bs = Puff = CheekPuff_Left = 1 +bs = JawFwd = JawForeward = 1 +bs = BrowsD_L = BrowsDown_Left = 1 +bs = LipsFunnel = TongueUp = 1 +bs = LipsFunnel = MouthWhistle_NarrowAdjust_Right = 0.5 +bs = LipsFunnel = MouthWhistle_NarrowAdjust_Left = 0.5 +bs = LipsFunnel = MouthNarrow_Right = 1 +bs = LipsFunnel = MouthNarrow_Left = 1 +bs = LipsFunnel = Jaw_Down = 0.36 +bs = LipsFunnel = JawForeward = 0.39 +bs = LipsUpperOpen = UpperLipOut = 1 +bs = EyeSquint_L = Squint_Left = 1 +bs = MouthDimple_L = Smile_Left = 0.25 +bs = LipsLowerClose = LowerLipIn = 1 +bs = MouthFrown_R = Frown_Right = 1 +bs = MouthFrown_L = Frown_Left = 1 +bs = BrowsU_R = BrowsUp_Right = 1 +bs = JawOpen = MouthOpen = 0.7 +bs = JawRight = Jaw_Right = 1 +bs = MouthLeft = Midmouth_Left = 1 +bs = BrowsU_C = BrowsUp_Right = 1 +bs = BrowsU_C = BrowsUp_Left = 1 +bs = LipsUpperUp = UpperLipUp_Right = 0.7 +bs = LipsUpperUp = UpperLipUp_Left = 0.7 +bs = EyeBlink_R = Blink_Right = 1 +bs = EyeOpen_R = EyesWide_Right = 1 +bs = LipsUpperClose = UpperLipIn = 1 +bs = MouthSmile_L = Smile_Left = 1 +bs = EyeOpen_L = EyesWide_Left = 1 +bs = JawLeft = JawRotateY_Left = 0.5 +bs = BrowsD_R = BrowsDown_Right = 1 +jointIndex = RightHandThumb4 = 21 +jointIndex = Neck = 62 +jointIndex = LeftHandIndex4 = 57 +jointIndex = Body = 71 +jointIndex = LeftHandIndex1 = 54 +jointIndex = RightHand = 17 +jointIndex = RightHandMiddle1 = 26 +jointIndex = Spine = 11 +jointIndex = RightHandRing2 = 31 +jointIndex = RightArm = 15 +jointIndex = RightHandPinky2 = 35 +jointIndex = LeftToeBase = 9 +jointIndex = RightHandIndex3 = 24 +jointIndex = RightHandRing1 = 30 +jointIndex = RightHandPinky1 = 34 +jointIndex = RightEye = 66 +jointIndex = LeftHandRing4 = 49 +jointIndex = LeftHandRing2 = 47 +jointIndex = RightHandMiddle2 = 27 +jointIndex = Head = 63 +jointIndex = LeftHandMiddle4 = 53 +jointIndex = LeftLeg = 7 +jointIndex = LeftHandPinky2 = 43 +jointIndex = LeftHandThumb1 = 58 +jointIndex = LeftHandPinky4 = 45 +jointIndex = RightHandIndex1 = 22 +jointIndex = Tops = 67 +jointIndex = Hips = 0 +jointIndex = LeftUpLeg = 6 +jointIndex = RightShoulder = 14 +jointIndex = Spine2 = 13 +jointIndex = RightHandRing4 = 33 +jointIndex = RightHandThumb3 = 20 +jointIndex = RightHandIndex4 = 25 +jointIndex = LeftFoot = 8 +jointIndex = LeftHandRing3 = 48 +jointIndex = LeftHand = 41 +jointIndex = LeftForeArm = 40 +jointIndex = LeftToe_End = 10 +jointIndex = Bottoms = 68 +jointIndex = RightFoot = 3 +jointIndex = LeftHandMiddle2 = 51 +jointIndex = LeftHandThumb3 = 60 +jointIndex = RightHandPinky3 = 36 +jointIndex = LeftEye = 65 +jointIndex = LeftHandIndex2 = 55 +jointIndex = RightHandIndex2 = 23 +jointIndex = LeftHandPinky1 = 42 +jointIndex = LeftHandMiddle3 = 52 +jointIndex = RightHandMiddle4 = 29 +jointIndex = LeftHandThumb2 = 59 +jointIndex = Shoes = 69 +jointIndex = RightHandThumb1 = 18 +jointIndex = RightToe_End = 5 +jointIndex = RightHandThumb2 = 19 +jointIndex = RightUpLeg = 1 +jointIndex = RightLeg = 2 +jointIndex = LeftHandMiddle1 = 50 +jointIndex = LeftHandIndex3 = 56 +jointIndex = LeftHandThumb4 = 61 +jointIndex = RightHandRing3 = 32 +jointIndex = Hair = 70 +jointIndex = Spine1 = 12 +jointIndex = LeftHandRing1 = 46 +jointIndex = LeftArm = 39 +jointIndex = LeftShoulder = 38 +jointIndex = RightForeArm = 16 +jointIndex = HeadTop_End = 64 +jointIndex = RightHandPinky4 = 37 +jointIndex = LeftHandPinky3 = 44 +jointIndex = RightToeBase = 4 +jointIndex = RightHandMiddle3 = 28 diff --git a/scripts/developer/facialExpressions.js b/scripts/developer/facialExpressions.js new file mode 100644 index 0000000000..84e3966c4a --- /dev/null +++ b/scripts/developer/facialExpressions.js @@ -0,0 +1,374 @@ +// +// facialExpressions.js +// A script to set different emotions using blend shapes +// +// Author: Elisa Lupin-Jimenez +// Copyright High Fidelity 2018 +// +// Licensed under the Apache 2.0 License +// See accompanying license file or http://apache.org/ +// +// All assets are under CC Attribution Non-Commerical +// http://creativecommons.org/licenses/ +// + +(function() { + + var TABLET_BUTTON_NAME = "EMOTIONS"; + // TODO: ADD HTML LANDING PAGE + + var TRANSITION_TIME_SECONDS = 0.25; + + var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system"); + var icon = "https://hifi-content.s3.amazonaws.com/elisalj/emoji_scripts/icons/emoji-i.svg"; + var activeIcon = "https://hifi-content.s3.amazonaws.com/elisalj/emoji_scripts/icons/emoji-a.svg"; + var isActive = true; + + var controllerMappingName; + var controllerMapping; + + var tabletButton = tablet.addButton({ + icon: icon, + activeIcon: activeIcon, + text: TABLET_BUTTON_NAME, + isActive: true + }); + + var toggle = function() { + isActive = !isActive; + tabletButton.editProperties({isActive: isActive}); + if (isActive) { + Controller.enableMapping(controllerMappingName); + } else { + setEmotion(DEFAULT); + Controller.disableMapping(controllerMappingName); + } + }; + + tabletButton.clicked.connect(toggle); + + var DEFAULT = { + "EyeOpen_L": 0.00, + "EyeOpen_R": 0.00, + "EyeBlink_L": 0.00, + "EyeBlink_R": 0.00, + "EyeSquint_L": 0.00, + "EyeSquint_R": 0.00, + "BrowsD_L": 0.00, + "BrowsD_R": 0.00, + "BrowsU_L": 0.00, + "BrowsU_C": 0.00, + "JawOpen": 0.00, + "JawFwd": 0.00, + "MouthFrown_L": 0.00, + "MouthFrown_R": 0.00, + "MouthSmile_L": 0.00, + "MouthSmile_R": 0.00, + "MouthDimple_L": 0.00, + "MouthDimple_R": 0.00, + "LipsUpperClose": 0.00, + "LipsLowerClose": 0.00, + "LipsLowerOpen": 0.00, + "ChinUpperRaise": 0.00, + "Sneer": 0.00, + "Puff": 0.00 + }; + + var SMILE = { + "EyeOpen_L": 0.00, + "EyeOpen_R": 0.00, + "EyeBlink_L": 0.30, + "EyeBlink_R": 0.30, + "EyeSquint_L": 0.90, + "EyeSquint_R": 0.90, + "BrowsD_L": 1.00, + "BrowsD_R": 1.00, + "BrowsU_L": 0.00, + "BrowsU_C": 0.00, + "JawOpen": 0.00, + "JawFwd": 0.00, + "MouthFrown_L": 0.00, + "MouthFrown_R": 0.00, + "MouthSmile_L": 1.00, + "MouthSmile_R": 1.00, + "MouthDimple_L": 1.00, + "MouthDimple_R": 1.00, + "LipsUpperClose": 0.40, + "LipsLowerClose": 0.30, + "LipsLowerOpen": 0.25, + "ChinUpperRaise": 0.35, + "Sneer": 0.00, + "Puff": 0.00 + }; + + var LAUGH = { + "EyeOpen_L": 0.00, + "EyeOpen_R": 0.00, + "EyeBlink_L": 0.45, + "EyeBlink_R": 0.45, + "EyeSquint_L": 0.75, + "EyeSquint_R": 0.75, + "BrowsD_L": 0.00, + "BrowsD_R": 0.00, + "BrowsU_L": 0.00, + "BrowsU_C": 0.50, + "JawOpen": 0.50, + "JawFwd": 0.00, + "MouthFrown_L": 0.00, + "MouthFrown_R": 0.00, + "MouthSmile_L": 1.00, + "MouthSmile_R": 1.00, + "MouthDimple_L": 1.00, + "MouthDimple_R": 1.00, + "LipsUpperClose": 0.00, + "LipsLowerClose": 0.00, + "LipsLowerOpen": 0.00, + "ChinUpperRaise": 0.30, + "Sneer": 1.00, + "Puff": 0.30 + }; + + var FLIRT = { + "EyeOpen_L": 0.00, + "EyeOpen_R": 0.00, + "EyeBlink_L": 0.50, + "EyeBlink_R": 0.50, + "EyeSquint_L": 0.25, + "EyeSquint_R": 0.25, + "BrowsD_L": 0.00, + "BrowsD_R": 1.00, + "BrowsU_L": 0.55, + "BrowsU_C": 0.00, + "JawOpen": 0.00, + "JawFwd": 0.00, + "MouthFrown_L": 0.00, + "MouthFrown_R": 0.00, + "MouthSmile_L": 0.50, + "MouthSmile_R": 0.00, + "MouthDimple_L": 1.00, + "MouthDimple_R": 1.00, + "LipsUpperClose": 0.00, + "LipsLowerClose": 0.00, + "LipsLowerOpen": 0.00, + "ChinUpperRaise": 0.00, + "Sneer": 0.00, + "Puff": 0.00 + }; + + var SAD = { + "EyeOpen_L": 0.00, + "EyeOpen_R": 0.00, + "EyeBlink_L": 0.30, + "EyeBlink_R": 0.30, + "EyeSquint_L": 0.30, + "EyeSquint_R": 0.30, + "BrowsD_L": 0.00, + "BrowsD_R": 0.00, + "BrowsU_L": 0.00, + "BrowsU_C": 0.50, + "JawOpen": 0.00, + "JawFwd": 0.80, + "MouthFrown_L": 0.80, + "MouthFrown_R": 0.80, + "MouthSmile_L": 0.00, + "MouthSmile_R": 0.00, + "MouthDimple_L": 0.00, + "MouthDimple_R": 0.00, + "LipsUpperClose": 0.00, + "LipsLowerClose": 0.50, + "LipsLowerOpen": 0.00, + "ChinUpperRaise": 0.00, + "Sneer": 0.00, + "Puff": 0.00 + }; + + var ANGRY = { + "EyeOpen_L": 1.00, + "EyeOpen_R": 1.00, + "EyeBlink_L": 0.00, + "EyeBlink_R": 0.00, + "EyeSquint_L": 1.00, + "EyeSquint_R": 1.00, + "BrowsD_L": 1.00, + "BrowsD_R": 1.00, + "BrowsU_L": 0.00, + "BrowsU_C": 0.00, + "JawOpen": 0.00, + "JawFwd": 0.00, + "MouthFrown_L": 0.50, + "MouthFrown_R": 0.50, + "MouthSmile_L": 0.00, + "MouthSmile_R": 0.00, + "MouthDimple_L": 0.00, + "MouthDimple_R": 0.00, + "LipsUpperClose": 0.50, + "LipsLowerClose": 0.50, + "LipsLowerOpen": 0.00, + "ChinUpperRaise": 0.00, + "Sneer": 0.50, + "Puff": 0.00 + }; + + var FEAR = { + "EyeOpen_L": 1.00, + "EyeOpen_R": 1.00, + "EyeBlink_L": 0.00, + "EyeBlink_R": 0.00, + "EyeSquint_L": 0.00, + "EyeSquint_R": 0.00, + "BrowsD_L": 0.00, + "BrowsD_R": 0.00, + "BrowsU_L": 0.00, + "BrowsU_C": 1.00, + "JawOpen": 0.15, + "JawFwd": 0.00, + "MouthFrown_L": 0.30, + "MouthFrown_R": 0.30, + "MouthSmile_L": 0.00, + "MouthSmile_R": 0.00, + "MouthDimple_L": 0.00, + "MouthDimple_R": 0.00, + "LipsUpperClose": 0.00, + "LipsLowerClose": 0.00, + "LipsLowerOpen": 0.00, + "ChinUpperRaise": 0.00, + "Sneer": 0.00, + "Puff": 0.00 + }; + + var DISGUST = { + "EyeOpen_L": 0.00, + "EyeOpen_R": 0.00, + "EyeBlink_L": 0.25, + "EyeBlink_R": 0.25, + "EyeSquint_L": 1.00, + "EyeSquint_R": 1.00, + "BrowsD_L": 1.00, + "BrowsD_R": 1.00, + "BrowsU_L": 0.00, + "BrowsU_C": 0.00, + "JawOpen": 0.00, + "JawFwd": 0.00, + "MouthFrown_L": 1.00, + "MouthFrown_R": 1.00, + "MouthSmile_L": 0.00, + "MouthSmile_R": 0.00, + "MouthDimple_L": 0.00, + "MouthDimple_R": 0.00, + "LipsUpperClose": 0.00, + "LipsLowerClose": 0.75, + "LipsLowerOpen": 0.00, + "ChinUpperRaise": 0.75, + "Sneer": 1.00, + "Puff": 0.00 + }; + + + function mixValue(valueA, valueB, percentage) { + return valueA + ((valueB - valueA) * percentage); + } + + var lastEmotionUsed = DEFAULT; + var emotion = DEFAULT; + var isChangingEmotion = false; + var changingEmotionPercentage = 0.0; + + Script.update.connect(function(deltaTime) { + if (!isChangingEmotion) { + return; + } + changingEmotionPercentage += deltaTime / TRANSITION_TIME_SECONDS; + if (changingEmotionPercentage >= 1.0) { + changingEmotionPercentage = 1.0; + isChangingEmotion = false; + if (emotion === DEFAULT) { + MyAvatar.hasScriptedBlendshapes = false; + } + } + for (var blendshape in emotion) { + MyAvatar.setBlendshape(blendshape, + mixValue(lastEmotionUsed[blendshape], emotion[blendshape], changingEmotionPercentage)); + } + }); + + function setEmotion(currentEmotion) { + if (emotion !== lastEmotionUsed) { + lastEmotionUsed = emotion; + } + if (currentEmotion !== lastEmotionUsed) { + changingEmotionPercentage = 0.0; + emotion = currentEmotion; + isChangingEmotion = true; + MyAvatar.hasScriptedBlendshapes = true; + } + } + + + controllerMappingName = 'Hifi-FacialExpressions-Mapping'; + controllerMapping = Controller.newMapping(controllerMappingName); + + controllerMapping.from(Controller.Hardware.Keyboard.H).to(function(value) { + if (value !== 0) { + setEmotion(SMILE); + } + }); + + controllerMapping.from(Controller.Hardware.Keyboard.J).to(function(value) { + if (value !== 0) { + setEmotion(LAUGH); + } + }); + + controllerMapping.from(Controller.Hardware.Keyboard.K).to(function(value) { + if (value !== 0) { + setEmotion(FLIRT); + } + }); + + controllerMapping.from(Controller.Hardware.Keyboard.L).to(function(value) { + if (value !== 0) { + setEmotion(SAD); + } + }); + + controllerMapping.from(Controller.Hardware.Keyboard.V).to(function(value) { + if (value !== 0) { + setEmotion(ANGRY); + } + }); + + controllerMapping.from(Controller.Hardware.Keyboard.B).to(function(value) { + if (value !== 0) { + setEmotion(FEAR); + } + }); + + controllerMapping.from(Controller.Hardware.Keyboard.M).to(function(value) { + if (value !== 0) { + setEmotion(DISGUST); + } + }); + + controllerMapping.from(Controller.Hardware.Keyboard.N).to(function(value) { + if (value !== 0) { + setEmotion(DEFAULT); + } + }); + + Controller.enableMapping(controllerMappingName); + + Script.scriptEnding.connect(function() { + tabletButton.clicked.disconnect(toggle); + tablet.removeButton(tabletButton); + Controller.disableMapping(controllerMappingName); + + if (emotion !== DEFAULT || isChangingEmotion) { + isChangingEmotion = false; + for (var blendshape in DEFAULT) { + MyAvatar.setBlendshape(blendshape, DEFAULT[blendshape]); + } + MyAvatar.hasScriptedBlendshapes = false; + } + }); + +}()); \ No newline at end of file From 7d1d7f7bcd56b9d8a3aa54af38205f4eaa6e5c68 Mon Sep 17 00:00:00 2001 From: Simon Walton Date: Thu, 31 May 2018 18:31:53 -0700 Subject: [PATCH 116/300] Closing the open tablet dialog - try harder --- interface/resources/qml/hifi/tablet/TabletRoot.qml | 12 ++++++++++++ interface/src/ui/DialogsManager.cpp | 3 ++- libraries/ui/src/ui/TabletScriptingInterface.cpp | 14 ++++++++++++++ libraries/ui/src/ui/TabletScriptingInterface.h | 6 ++++++ 4 files changed, 34 insertions(+), 1 deletion(-) diff --git a/interface/resources/qml/hifi/tablet/TabletRoot.qml b/interface/resources/qml/hifi/tablet/TabletRoot.qml index 15db5d8f88..fa268ad6ee 100644 --- a/interface/resources/qml/hifi/tablet/TabletRoot.qml +++ b/interface/resources/qml/hifi/tablet/TabletRoot.qml @@ -65,6 +65,18 @@ Item { return false; } + function closeDialog() { + if (openMessage != null) { + openMessage.destroy(); + openMessage = null; + } + + if (openModal != null) { + openModal.destroy(); + openModal = null; + } + } + function isUrlLoaded(url) { if (currentApp >= 0) { var currentAppUrl = tabletApps.get(currentApp).appUrl; diff --git a/interface/src/ui/DialogsManager.cpp b/interface/src/ui/DialogsManager.cpp index 51c6987875..95a96e3388 100644 --- a/interface/src/ui/DialogsManager.cpp +++ b/interface/src/ui/DialogsManager.cpp @@ -97,7 +97,8 @@ void DialogsManager::setDomainConnectionFailureVisibility(bool visible) { if (!hmd->getShouldShowTablet()) { hmd->openTablet(); } - } else { + } else if (tablet->isPathLoaded(url)) { + tablet->closeDialog(); tablet->gotoHomeScreen(); hmd->closeTablet(); } diff --git a/libraries/ui/src/ui/TabletScriptingInterface.cpp b/libraries/ui/src/ui/TabletScriptingInterface.cpp index 9070d87a3c..062acd2d99 100644 --- a/libraries/ui/src/ui/TabletScriptingInterface.cpp +++ b/libraries/ui/src/ui/TabletScriptingInterface.cpp @@ -431,6 +431,20 @@ bool TabletProxy::isMessageDialogOpen() { return result.toBool(); } +void TabletProxy::closeDialog() { + if (QThread::currentThread() != thread()) { + bool result = false; + QMetaObject::invokeMethod(this, "isMessageDialogOpen"); + return; + } + + if (!_qmlTabletRoot) { + return; + } + + QMetaObject::invokeMethod(_qmlTabletRoot, "closeDialog"); +} + void TabletProxy::emitWebEvent(const QVariant& msg) { if (QThread::currentThread() != thread()) { QMetaObject::invokeMethod(this, "emitWebEvent", Q_ARG(QVariant, msg)); diff --git a/libraries/ui/src/ui/TabletScriptingInterface.h b/libraries/ui/src/ui/TabletScriptingInterface.h index 43d889f1d1..1ab29ca3fd 100644 --- a/libraries/ui/src/ui/TabletScriptingInterface.h +++ b/libraries/ui/src/ui/TabletScriptingInterface.h @@ -308,6 +308,12 @@ public: */ Q_INVOKABLE bool isMessageDialogOpen(); + /**jsdoc + * Close any open dialogs. + * @function TabletProxy#closeDialog + */ + Q_INVOKABLE void closeDialog(); + /**jsdoc * Creates a new button, adds it to this and returns it. * @function TabletProxy#addButton From c277cc7574762e9666320cade0038a57dc146dc7 Mon Sep 17 00:00:00 2001 From: Simon Walton Date: Thu, 31 May 2018 18:39:25 -0700 Subject: [PATCH 117/300] Fix minor error --- libraries/ui/src/ui/TabletScriptingInterface.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/ui/src/ui/TabletScriptingInterface.cpp b/libraries/ui/src/ui/TabletScriptingInterface.cpp index 062acd2d99..e03dc7ac63 100644 --- a/libraries/ui/src/ui/TabletScriptingInterface.cpp +++ b/libraries/ui/src/ui/TabletScriptingInterface.cpp @@ -434,7 +434,7 @@ bool TabletProxy::isMessageDialogOpen() { void TabletProxy::closeDialog() { if (QThread::currentThread() != thread()) { bool result = false; - QMetaObject::invokeMethod(this, "isMessageDialogOpen"); + QMetaObject::invokeMethod(this, "closeDialog"); return; } From 2d9a5c62c161ccb54bee0e311af7ae785111a553 Mon Sep 17 00:00:00 2001 From: Simon Walton Date: Fri, 1 Jun 2018 10:02:41 -0700 Subject: [PATCH 118/300] Clean-up for compiler warnings --- libraries/ui/src/ui/TabletScriptingInterface.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/libraries/ui/src/ui/TabletScriptingInterface.cpp b/libraries/ui/src/ui/TabletScriptingInterface.cpp index e03dc7ac63..2c52e669a0 100644 --- a/libraries/ui/src/ui/TabletScriptingInterface.cpp +++ b/libraries/ui/src/ui/TabletScriptingInterface.cpp @@ -433,7 +433,6 @@ bool TabletProxy::isMessageDialogOpen() { void TabletProxy::closeDialog() { if (QThread::currentThread() != thread()) { - bool result = false; QMetaObject::invokeMethod(this, "closeDialog"); return; } From f58e1ebdd973f1e6c98eb253640a74e2d9acfd57 Mon Sep 17 00:00:00 2001 From: Simon Walton Date: Fri, 1 Jun 2018 10:41:08 -0700 Subject: [PATCH 119/300] Only take down tablet if it was brought up --- interface/src/ui/DialogsManager.cpp | 6 +++++- interface/src/ui/DialogsManager.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/interface/src/ui/DialogsManager.cpp b/interface/src/ui/DialogsManager.cpp index 95a96e3388..83601a2797 100644 --- a/interface/src/ui/DialogsManager.cpp +++ b/interface/src/ui/DialogsManager.cpp @@ -93,6 +93,7 @@ void DialogsManager::setDomainConnectionFailureVisibility(bool visible) { static const QUrl url("dialogs/TabletConnectionFailureDialog.qml"); auto hmd = DependencyManager::get(); if (visible) { + _dialogCreatedWhileShown = tablet->property("tabletShown").toBool(); tablet->initialScreen(url); if (!hmd->getShouldShowTablet()) { hmd->openTablet(); @@ -100,7 +101,10 @@ void DialogsManager::setDomainConnectionFailureVisibility(bool visible) { } else if (tablet->isPathLoaded(url)) { tablet->closeDialog(); tablet->gotoHomeScreen(); - hmd->closeTablet(); + if (!_dialogCreatedWhileShown) { + hmd->closeTablet(); + } + _dialogCreatedWhileShown = false; } } } diff --git a/interface/src/ui/DialogsManager.h b/interface/src/ui/DialogsManager.h index f17ac39a7e..0633dec573 100644 --- a/interface/src/ui/DialogsManager.h +++ b/interface/src/ui/DialogsManager.h @@ -80,6 +80,7 @@ private: QPointer _octreeStatsDialog; QPointer _testingDialog; QPointer _domainConnectionDialog; + bool _dialogCreatedWhileShown { false }; bool _addressBarVisible { false }; }; From 01848fafe0b716872a8dd781c7c7d3f6faacc2ff Mon Sep 17 00:00:00 2001 From: amantley Date: Fri, 1 Jun 2018 11:37:11 -0700 Subject: [PATCH 120/300] made all changes except those to AvatarData toByteArray function also to do: verify that transientBlendshapes are set to 0 in headData simulate when there are blendshapes from script but no face tracker present --- interface/src/avatar/MyHead.cpp | 2 +- .../src/avatars-renderer/Head.cpp | 30 ++++++++++++------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/interface/src/avatar/MyHead.cpp b/interface/src/avatar/MyHead.cpp index 44d679f3f8..13d635bdd8 100644 --- a/interface/src/avatar/MyHead.cpp +++ b/interface/src/avatar/MyHead.cpp @@ -51,7 +51,7 @@ void MyHead::simulate(float deltaTime) { _isFaceTrackerConnected = hasActualFaceTrackerConnected || _owningAvatar->getHasScriptedBlendshapes(); if (_isFaceTrackerConnected) { if (hasActualFaceTrackerConnected) { - _transientBlendshapeCoefficients = faceTracker->getBlendshapeCoefficients(); + _blendshapeCoefficients = faceTracker->getBlendshapeCoefficients(); } else { _transientBlendshapeCoefficients.fill(0, _blendshapeCoefficients.size()); } diff --git a/libraries/avatars-renderer/src/avatars-renderer/Head.cpp b/libraries/avatars-renderer/src/avatars-renderer/Head.cpp index b0707922ea..06b52c8d44 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Head.cpp +++ b/libraries/avatars-renderer/src/avatars-renderer/Head.cpp @@ -148,18 +148,28 @@ void Head::simulate(float deltaTime) { } // use data to update fake Faceshift blendshape coefficients - calculateMouthShapes(deltaTime); + if (getHasAudioEnabledFaceMovement()) { + calculateMouthShapes(deltaTime); + } else { + _audioJawOpen = 0.0f; + _browAudioLift = 0.0f; + _mouth2 = 0.0f; + _mouth3 = 0.0f; + _mouth4 = 0.0f; + _mouthTime = 0.0f; + } FaceTracker::updateFakeCoefficients(_leftEyeBlink, - _rightEyeBlink, - _browAudioLift, - _audioJawOpen, - _mouth2, - _mouth3, - _mouth4, - _transientBlendshapeCoefficients); - - applyEyelidOffset(getOrientation()); + _rightEyeBlink, + _browAudioLift, + _audioJawOpen, + _mouth2, + _mouth3, + _mouth4, + _transientBlendshapeCoefficients); + if (getHasProceduralEyeFaceMovement()) { + applyEyelidOffset(getOrientation()); + } } else { _saccade = glm::vec3(); } From 29b09d64e68292595952b8d664e79f5f3049ba79 Mon Sep 17 00:00:00 2001 From: howard-stearns Date: Fri, 1 Jun 2018 13:33:45 -0700 Subject: [PATCH 121/300] checkpoint with PAL working. --- interface/resources/qml/hifi/Pal.qml | 113 +++++----------- .../commerce/common/sendAsset/SendAsset.qml | 1 - .../qml/hifi/models/PSFListModel.qml | 122 ++++++------------ scripts/system/pal.js | 2 + 4 files changed, 74 insertions(+), 164 deletions(-) diff --git a/interface/resources/qml/hifi/Pal.qml b/interface/resources/qml/hifi/Pal.qml index d779b4ba42..8a067c0733 100644 --- a/interface/resources/qml/hifi/Pal.qml +++ b/interface/resources/qml/hifi/Pal.qml @@ -18,6 +18,7 @@ import Qt.labs.settings 1.0 import "../styles-uit" import "../controls-uit" as HifiControlsUit import "../controls" as HifiControls +import "models" as HifiModels // references HMD, Users, UserActivityLogger from root context @@ -44,6 +45,28 @@ Rectangle { property bool punctuationMode: false; HifiConstants { id: hifi; } + RootHttpRequest { id: http; } + HifiModels.PSFListModel { + id: connectionsUserModel; + http: http; + endpoint: "/api/v1/users?filter=connections"; + localSort: true; + property var sortColumn: connectionsTable.getColumn(connectionsTable.sortIndicatorColumn); + sortProperty: sortColumn ? sortColumn.role : "userName"; + sortAscending: connectionsTable.sortIndicatorOrder === Qt.AscendingOrder; + itemsPerPage: 9; + listView: connectionsTable; + processPage: function (data) { + return data.users.map(function (user) { + return { + userName: user.username, + connection: user.connection, + profileUrl: user.images.thumbnail, + placeName: (user.location.root || user.location.domain || {}).name || '' + }; + }); + }; + } // The letterbox used for popup messages LetterboxMessage { @@ -106,16 +129,6 @@ Rectangle { }); return sessionIDs; } - function getSelectedConnectionsUserNames() { - var userNames = []; - connectionsTable.selection.forEach(function (userIndex) { - var datum = connectionsUserModelData[userIndex]; - if (datum) { - userNames.push(datum.userName); - } - }); - return userNames; - } function refreshNearbyWithFilter() { // We should just be able to set settings.filtered to inViewCheckbox.checked, but see #3249, so send to .js for saving. var userIds = getSelectedNearbySessionIDs(); @@ -232,9 +245,7 @@ Rectangle { anchors.fill: parent; onClicked: { if (activeTab != "connectionsTab") { - connectionsLoading.visible = false; - connectionsLoading.visible = true; - pal.sendToScript({method: 'refreshConnections'}); + connectionsUserModel.getFirstPage(); } activeTab = "connectionsTab"; connectionsHelpText.color = hifi.colors.blueAccent; @@ -258,11 +269,7 @@ Rectangle { id: reloadConnections; width: reloadConnections.height; glyph: hifi.glyphs.reload; - onClicked: { - connectionsLoading.visible = false; - connectionsLoading.visible = true; - pal.sendToScript({method: 'refreshConnections'}); - } + onClicked: connectionsUserModel.getFirstPage('delayRefresh'); } } // "CONNECTIONS" text @@ -702,7 +709,7 @@ Rectangle { anchors.top: parent.top; anchors.topMargin: 185; anchors.horizontalCenter: parent.horizontalCenter; - visible: true; + visible: !connectionsUserModel.retrievedAtLeastOnePage; onVisibleChanged: { if (visible) { connectionsTimeoutTimer.start(); @@ -747,14 +754,6 @@ Rectangle { headerVisible: true; sortIndicatorColumn: settings.connectionsSortIndicatorColumn; sortIndicatorOrder: settings.connectionsSortIndicatorOrder; - onSortIndicatorColumnChanged: { - settings.connectionsSortIndicatorColumn = sortIndicatorColumn; - sortConnectionsModel(); - } - onSortIndicatorOrderChanged: { - settings.connectionsSortIndicatorOrder = sortIndicatorOrder; - sortConnectionsModel(); - } TableViewColumn { id: connectionsUserNameHeader; @@ -779,8 +778,10 @@ Rectangle { resizable: false; } - model: ListModel { - id: connectionsUserModel; + model: connectionsUserModel.model; + Connections { + target: connectionsTable.flickableItem; + onAtYEndChanged: if (connectionsTable.flickableItem.atYEnd) { connectionsUserModel.getNextPage(); } } // This Rectangle refers to each Row in the connectionsTable. @@ -1130,16 +1131,6 @@ Rectangle { sortModel(); reloadNearby.color = 0; break; - case 'connections': - var data = message.params; - if (pal.debug) { - console.log('Got connection data: ', JSON.stringify(data)); - } - connectionsUserModelData = data; - sortConnectionsModel(); - connectionsLoading.visible = false; - connectionsRefreshProblemText.visible = false; - break; case 'select': var sessionIds = message.params[0]; var selected = message.params[1]; @@ -1239,6 +1230,11 @@ Rectangle { reloadNearby.color = 2; } break; + case 'inspectionCertificate_resetCert': // HRS FIXME what's this about? + break; + case 'http.response': + http.handleHttpResponse(message); + break; default: console.log('Unrecognized message:', JSON.stringify(message)); } @@ -1287,45 +1283,6 @@ Rectangle { nearbyTable.positionViewAtRow(newSelectedIndexes[0], ListView.Beginning); } } - function sortConnectionsModel() { - var column = connectionsTable.getColumn(connectionsTable.sortIndicatorColumn); - var sortProperty = column ? column.role : "userName"; - var before = (connectionsTable.sortIndicatorOrder === Qt.AscendingOrder) ? -1 : 1; - var after = -1 * before; - // get selection(s) before sorting - var selectedIDs = getSelectedConnectionsUserNames(); - connectionsUserModelData.sort(function (a, b) { - var aValue = a[sortProperty].toString().toLowerCase(), bValue = b[sortProperty].toString().toLowerCase(); - if (!aValue && !bValue) { - return 0; - } else if (!aValue) { - return after; - } else if (!bValue) { - return before; - } - switch (true) { - case (aValue < bValue): return before; - case (aValue > bValue): return after; - default: return 0; - } - }); - connectionsTable.selection.clear(); - - connectionsUserModel.clear(); - var userIndex = 0; - var newSelectedIndexes = []; - connectionsUserModelData.forEach(function (datum) { - datum.userIndex = userIndex++; - connectionsUserModel.append(datum); - if (selectedIDs.indexOf(datum.sessionId) != -1) { - newSelectedIndexes.push(datum.userIndex); - } - }); - if (newSelectedIndexes.length > 0) { - connectionsTable.selection.select(newSelectedIndexes); - connectionsTable.positionViewAtRow(newSelectedIndexes[0], ListView.Beginning); - } - } signal sendToScript(var message); function noticeSelection() { var userIds = []; diff --git a/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml b/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml index 716758a3fe..21d803b1ab 100644 --- a/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml +++ b/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml @@ -401,7 +401,6 @@ Item { itemsPerPage: 8; listView: connectionsList; processPage: function (data) { - console.log("processPage", connectionsModel.listModelName, JSON.stringify(data)); return data.users; }; searchFilter: filterBar.text; diff --git a/interface/resources/qml/hifi/models/PSFListModel.qml b/interface/resources/qml/hifi/models/PSFListModel.qml index d9e31cbfa1..9858d76d4a 100644 --- a/interface/resources/qml/hifi/models/PSFListModel.qml +++ b/interface/resources/qml/hifi/models/PSFListModel.qml @@ -25,15 +25,17 @@ Item { // Parameters. Even if you override getPage, below, please set these for clarity and consistency, when applicable. // E.g., your getPage function could refer to this sortKey, etc. property string endpoint; - property string sortKey; + property string sortProperty; // Currently only handles sorting on one column, which fits with current needs and tables. + property bool sortAscending; + property string sortKey: !sortProperty ? '' : (sortProperty + "," + (sortAscending ? "asc" : "desc")); property string searchFilter: ""; property string tagsFilter; // QML fires the following changed handlers even when first instantiating the Item. So we need a guard against firing them too early. property bool initialized: false; Component.onCompleted: initialized = true; - onEndpointChanged: if (initialized) { getFirstPage(); } - onSortKeyChanged: if (initialized) { getFirstPage(); } + onEndpointChanged: if (initialized) { getFirstPage('delayClear'); } + onSortKeyChanged: if (initialized) { getFirstPage('delayClear'); } onSearchFilterChanged: { if (!initialized) { return; } if (searchItemTest) { @@ -42,14 +44,15 @@ Item { finalModel.append(filteredCopy); debugView('after searchFilterChanged'); } else { // TODO: fancy timer against fast typing. - getFirstPage(); + getFirstPage('delayClear'); } } - onTagsFilterChanged: if (initialized) { getFirstPage(); } + onTagsFilterChanged: if (initialized) { getFirstPage('delayClear'); } property int itemsPerPage: 100; // If the endpoint doesn't do search, tags, sort, these functions can be supplied to do it here. property var searchItemTest: null; + property bool localSort: false; property var copyOfItems: []; // State. @@ -92,21 +95,29 @@ Item { return fail("Mismatched page, expected:" + currentPageToRetrieve); } processed = processPage(response.data || response); + if (response.total_pages && (response.total_pages === currentPageToRetrieve)) { + currentPageToRetrieve = -1; + } if (searchItemTest) { copyOfItems = copyOfItems.concat(processed); if (searchFilter) { processed = applySearchItemTest(processed); } } + if (localSort) { + copyOfItems = copyOfItems.concat(processed); + if (sortProperty) { + sortCopy(sortProperty, sortAscending); + processed = copyOfItems; + delayedClear = true; // see next conditional + } + } if (delayedClear) { finalModel.clear(); delayedClear = false; } finalModel.append(processed); // FIXME keep index steady, and apply any post sort retrievedAtLeastOnePage = true; - if (response.total_pages && (response.total_pages === currentPageToRetrieve)) { - currentPageToRetrieve = -1; - } debugView('after handlePage'); if (searchItemTest && searchFilter && listView && listView.atYEnd && (currentPageToRetrieve >= 0)) { getNextPage(); // too fancy?? @@ -185,85 +196,26 @@ Item { id: finalModel; } - // Used when sorting model data on the CLIENT - // Right now, there is no sorting done on the client for - // any users of PSFListModel, but that could very easily change. - property string sortColumnName: ""; - property bool isSortingDescending: true; - property bool valuesAreNumerical: false; + function sortCopy(sortProperty, isAscending) { + console.debug('client sort', listModelName, sortProperty, isAscending, copyOfItems.length, 'items'); + var before = isAscending ? -1 : 1; + var after = -1 * before; - function swap(a, b) { - if (a < b) { - move(a, b, 1); - move(b - 1, a, 1); - } else if (a > b) { - move(b, a, 1); - move(a - 1, b, 1); - } - } - - function partition(begin, end, pivot) { - if (valuesAreNumerical) { - var piv = get(pivot)[sortColumnName]; - swap(pivot, end - 1); - var store = begin; - var i; - - for (i = begin; i < end - 1; ++i) { - var currentElement = get(i)[sortColumnName]; - if (isSortingDescending) { - if (currentElement > piv) { - swap(store, i); - ++store; - } - } else { - if (currentElement < piv) { - swap(store, i); - ++store; - } - } + copyOfItems.sort(function (a, b) { + var aValue = a[sortProperty].toString().toLowerCase(), + bValue = b[sortProperty].toString().toLowerCase(); + if (!aValue && !bValue) { + return 0; + } else if (!aValue) { + return after; + } else if (!bValue) { + return before; } - swap(end - 1, store); - - return store; - } else { - var piv = get(pivot)[sortColumnName].toLowerCase(); - swap(pivot, end - 1); - var store = begin; - var i; - - for (i = begin; i < end - 1; ++i) { - var currentElement = get(i)[sortColumnName].toLowerCase(); - if (isSortingDescending) { - if (currentElement > piv) { - swap(store, i); - ++store; - } - } else { - if (currentElement < piv) { - swap(store, i); - ++store; - } - } + switch (true) { + case (aValue < bValue): return before; + case (aValue > bValue): return after; + default: return 0; } - swap(end - 1, store); - - return store; - } - } - - function qsort(begin, end) { - if (end - 1 > begin) { - var pivot = begin + Math.floor(Math.random() * (end - begin)); - - pivot = partition(begin, end, pivot); - - qsort(begin, pivot); - qsort(pivot + 1, end); - } - } - - function quickSort() { - qsort(0, count) + }); } } \ No newline at end of file diff --git a/scripts/system/pal.js b/scripts/system/pal.js index c70c2729f5..b122a5170a 100644 --- a/scripts/system/pal.js +++ b/scripts/system/pal.js @@ -317,6 +317,8 @@ function fromQml(message) { // messages are {method, params}, like json-rpc. See } ); break; + case 'http.request': + break; // Handled elsewhere. default: print('Unrecognized message from Pal.qml:', JSON.stringify(message)); } From 89c4b1ecdd65747b15b993fe627bcad0e4b880dc Mon Sep 17 00:00:00 2001 From: Gabriel Calero Date: Fri, 1 Jun 2018 15:00:00 -0300 Subject: [PATCH 122/300] Workaround for android buffer corruption issue --- .../hifiinterface/InterfaceActivity.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/android/app/src/main/java/io/highfidelity/hifiinterface/InterfaceActivity.java b/android/app/src/main/java/io/highfidelity/hifiinterface/InterfaceActivity.java index 2165339918..e850ec639b 100644 --- a/android/app/src/main/java/io/highfidelity/hifiinterface/InterfaceActivity.java +++ b/android/app/src/main/java/io/highfidelity/hifiinterface/InterfaceActivity.java @@ -20,6 +20,9 @@ import android.os.Vibrator; import android.view.HapticFeedbackConstants; import android.view.WindowManager; import android.util.Log; + +import org.qtproject.qt5.android.QtLayout; +import org.qtproject.qt5.android.QtSurface; import org.qtproject.qt5.android.bindings.QtActivity; /*import com.google.vr.cardboard.DisplaySynchronizer; @@ -31,6 +34,9 @@ import android.content.pm.ActivityInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.view.View; +import android.widget.FrameLayout; + +import java.lang.reflect.Field; public class InterfaceActivity extends QtActivity { @@ -134,6 +140,7 @@ public class InterfaceActivity extends QtActivity { protected void onResume() { super.onResume(); nativeEnterForeground(); + surfacesWorkaround(); //gvrApi.resumeTracking(); } @@ -158,6 +165,31 @@ public class InterfaceActivity extends QtActivity { Log.w("[VR]", "Portrait detected but not in VR mode. Should not happen"); } } + surfacesWorkaround(); + } + + private void surfacesWorkaround() { + FrameLayout fl = findViewById(android.R.id.content); + QtLayout qtLayout = (QtLayout) fl.getChildAt(0); + QtSurface s1 = (QtSurface) qtLayout.getChildAt(0); + QtSurface s2 = (QtSurface) qtLayout.getChildAt(1); + Integer subLayer1 = 0; + Integer subLayer2 = 0; + try { + Field f = s1.getClass().getSuperclass().getDeclaredField("mSubLayer"); + f.setAccessible(true); + subLayer1 = (Integer) f.get(s1); + subLayer2 = (Integer) f.get(s2); + if (subLayer1 < subLayer2) { + s1.setVisibility(View.VISIBLE); + s2.setVisibility(View.INVISIBLE); + } else { + s1.setVisibility(View.INVISIBLE); + s2.setVisibility(View.VISIBLE); + } + } catch (ReflectiveOperationException e) { + Log.e(TAG, "Workaround failed"); + } } public void openUrlInAndroidWebView(String urlString) { From 61953d0070b60d8f0a71748ead97b2cccd0e0204 Mon Sep 17 00:00:00 2001 From: Gabriel Calero Date: Fri, 1 Jun 2018 15:48:57 -0300 Subject: [PATCH 123/300] Fix NullPointerException introduced with the workaround --- .../hifiinterface/InterfaceActivity.java | 40 ++++++++++--------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/android/app/src/main/java/io/highfidelity/hifiinterface/InterfaceActivity.java b/android/app/src/main/java/io/highfidelity/hifiinterface/InterfaceActivity.java index e850ec639b..da938ab85b 100644 --- a/android/app/src/main/java/io/highfidelity/hifiinterface/InterfaceActivity.java +++ b/android/app/src/main/java/io/highfidelity/hifiinterface/InterfaceActivity.java @@ -170,25 +170,29 @@ public class InterfaceActivity extends QtActivity { private void surfacesWorkaround() { FrameLayout fl = findViewById(android.R.id.content); - QtLayout qtLayout = (QtLayout) fl.getChildAt(0); - QtSurface s1 = (QtSurface) qtLayout.getChildAt(0); - QtSurface s2 = (QtSurface) qtLayout.getChildAt(1); - Integer subLayer1 = 0; - Integer subLayer2 = 0; - try { - Field f = s1.getClass().getSuperclass().getDeclaredField("mSubLayer"); - f.setAccessible(true); - subLayer1 = (Integer) f.get(s1); - subLayer2 = (Integer) f.get(s2); - if (subLayer1 < subLayer2) { - s1.setVisibility(View.VISIBLE); - s2.setVisibility(View.INVISIBLE); - } else { - s1.setVisibility(View.INVISIBLE); - s2.setVisibility(View.VISIBLE); + if (fl.getChildCount() > 0) { + QtLayout qtLayout = (QtLayout) fl.getChildAt(0); + if (qtLayout.getChildCount() > 1) { + QtSurface s1 = (QtSurface) qtLayout.getChildAt(0); + QtSurface s2 = (QtSurface) qtLayout.getChildAt(1); + Integer subLayer1 = 0; + Integer subLayer2 = 0; + try { + Field f = s1.getClass().getSuperclass().getDeclaredField("mSubLayer"); + f.setAccessible(true); + subLayer1 = (Integer) f.get(s1); + subLayer2 = (Integer) f.get(s2); + if (subLayer1 < subLayer2) { + s1.setVisibility(View.VISIBLE); + s2.setVisibility(View.INVISIBLE); + } else { + s1.setVisibility(View.INVISIBLE); + s2.setVisibility(View.VISIBLE); + } + } catch (ReflectiveOperationException e) { + Log.e(TAG, "Workaround failed"); + } } - } catch (ReflectiveOperationException e) { - Log.e(TAG, "Workaround failed"); } } From 44027f74fc4558b4d67f546af70d3f9611590f3b Mon Sep 17 00:00:00 2001 From: Gabriel Calero Date: Fri, 1 Jun 2018 17:11:14 -0300 Subject: [PATCH 124/300] Workaround for android < Oreo --- .../io/highfidelity/hifiinterface/InterfaceActivity.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/android/app/src/main/java/io/highfidelity/hifiinterface/InterfaceActivity.java b/android/app/src/main/java/io/highfidelity/hifiinterface/InterfaceActivity.java index da938ab85b..28acc77609 100644 --- a/android/app/src/main/java/io/highfidelity/hifiinterface/InterfaceActivity.java +++ b/android/app/src/main/java/io/highfidelity/hifiinterface/InterfaceActivity.java @@ -14,6 +14,7 @@ package io.highfidelity.hifiinterface; import android.content.Intent; import android.content.res.AssetManager; import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Vibrator; @@ -178,7 +179,13 @@ public class InterfaceActivity extends QtActivity { Integer subLayer1 = 0; Integer subLayer2 = 0; try { - Field f = s1.getClass().getSuperclass().getDeclaredField("mSubLayer"); + String field; + if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + field = "mSubLayer"; + } else { + field = "mWindowType"; + } + Field f = s1.getClass().getSuperclass().getDeclaredField(field); f.setAccessible(true); subLayer1 = (Integer) f.get(s1); subLayer2 = (Integer) f.get(s2); From 97613f1f07137af7cef8109817d8a51dee9f4933 Mon Sep 17 00:00:00 2001 From: Simon Walton Date: Fri, 1 Jun 2018 14:13:52 -0700 Subject: [PATCH 125/300] Only set app ID on sandbox link Also pass down the app ID from CMake files to installer and server-console. --- cmake/macros/SetPackagingParameters.cmake | 2 ++ cmake/templates/CPackProperties.cmake.in | 1 + cmake/templates/NSIS.template.in | 14 ++------------ cmake/templates/console-build-info.json.in | 3 ++- server-console/src/main.js | 8 +++----- 5 files changed, 10 insertions(+), 18 deletions(-) diff --git a/cmake/macros/SetPackagingParameters.cmake b/cmake/macros/SetPackagingParameters.cmake index 36e5a065df..29947c793c 100644 --- a/cmake/macros/SetPackagingParameters.cmake +++ b/cmake/macros/SetPackagingParameters.cmake @@ -17,6 +17,7 @@ macro(SET_PACKAGING_PARAMETERS) set(DEV_BUILD 0) set(BUILD_GLOBAL_SERVICES "DEVELOPMENT") set(USE_STABLE_GLOBAL_SERVICES 0) + set(APP_USER_MODEL_ID "com.highfidelity.sandbox-dev") set_from_env(RELEASE_TYPE RELEASE_TYPE "DEV") set_from_env(RELEASE_NUMBER RELEASE_NUMBER "") @@ -126,6 +127,7 @@ macro(SET_PACKAGING_PARAMETERS) if (PRODUCTION_BUILD) set(INTERFACE_SHORTCUT_NAME "High Fidelity Interface") set(CONSOLE_SHORTCUT_NAME "Sandbox") + set(APP_USER_MODEL_ID "com.highfidelity.sandbox") else () set(INTERFACE_SHORTCUT_NAME "High Fidelity Interface - ${BUILD_VERSION}") set(CONSOLE_SHORTCUT_NAME "Sandbox - ${BUILD_VERSION}") diff --git a/cmake/templates/CPackProperties.cmake.in b/cmake/templates/CPackProperties.cmake.in index 80d86ac030..68fa098508 100644 --- a/cmake/templates/CPackProperties.cmake.in +++ b/cmake/templates/CPackProperties.cmake.in @@ -49,3 +49,4 @@ set(ADD_REMOVE_ICON_PATH "@ADD_REMOVE_ICON_PATH@") set(SERVER_COMPONENT_CONDITIONAL "@SERVER_COMPONENT_CONDITIONAL@") set(CLIENT_COMPONENT_CONDITIONAL "@CLIENT_COMPONENT_CONDITIONAL@") set(INSTALLER_TYPE "@INSTALLER_TYPE@") +set(APP_USER_MODEL_ID "@APP_USER_MODEL_ID@") diff --git a/cmake/templates/NSIS.template.in b/cmake/templates/NSIS.template.in index 4151a16e15..21043c7d73 100644 --- a/cmake/templates/NSIS.template.in +++ b/cmake/templates/NSIS.template.in @@ -1162,6 +1162,8 @@ Section "-Core installation" ${If} @SERVER_COMPONENT_CONDITIONAL@ CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\@CONSOLE_SHORTCUT_NAME@.lnk" \ "$INSTDIR\@CONSOLE_INSTALL_SUBDIR@\@CONSOLE_WIN_EXEC_NAME@" + ; Set appUserModelId + ApplicationID::Set "$SMPROGRAMS\$STARTMENU_FOLDER\@CONSOLE_SHORTCUT_NAME@.lnk" "@APP_USER_MODEL_ID@" ${EndIf} CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\@UNINSTALLER_NAME@" @@ -1173,18 +1175,6 @@ Section "-Core installation" !insertmacro MUI_STARTMENU_WRITE_END - !if @PRODUCTION_BUILD@ == 1 - ${If} @SERVER_COMPONENT_CONDITIONAL@ - ApplicationID::Set "$SMPROGRAMS\$STARTMENU_FOLDER\@CONSOLE_SHORTCUT_NAME@.lnk" "com.highfidelity.sandbox" - ${EndIf} - ApplicationID::Set "$SMPROGRAMS\$STARTMENU_FOLDER\@INTERFACE_SHORTCUT_NAME@.lnk" "com.highfidelity.interface" - !else - ${If} @SERVER_COMPONENT_CONDITIONAL@ - ApplicationID::Set "$SMPROGRAMS\$STARTMENU_FOLDER\@CONSOLE_SHORTCUT_NAME@.lnk" "com.highfidelity.sandbox-dev" - ${EndIf} - ApplicationID::Set "$SMPROGRAMS\$STARTMENU_FOLDER\@INTERFACE_SHORTCUT_NAME@.lnk" "com.highfidelity.interface-dev" - !endif - @CPACK_NSIS_EXTRA_INSTALL_COMMANDS@ ; see if we have a campaign that we might need to grab special content for diff --git a/cmake/templates/console-build-info.json.in b/cmake/templates/console-build-info.json.in index c1ef010e08..49f2ea2fda 100644 --- a/cmake/templates/console-build-info.json.in +++ b/cmake/templates/console-build-info.json.in @@ -1,4 +1,5 @@ { "releaseType": "@RELEASE_TYPE@", - "buildIdentifier": "@BUILD_VERSION@" + "buildIdentifier": "@BUILD_VERSION@", + "appUserModelId": "@APP_USER_MODEL_ID@" } diff --git a/server-console/src/main.js b/server-console/src/main.js index cb58c3eedf..df517aaa5f 100644 --- a/server-console/src/main.js +++ b/server-console/src/main.js @@ -44,8 +44,6 @@ const LOG_FILE_REGEX = /(domain-server|ac-monitor|ac)-.*-std(out|err).txt/; const HOME_CONTENT_URL = "http://cdn.highfidelity.com/content-sets/home-tutorial-RC40.tar.gz"; -const APP_USER_MODEL_ID = 'com.highfidelity.sandbox'; // For Windows jump list, etc. - function getBuildInfo() { var buildInfoPath = null; @@ -62,7 +60,7 @@ function getBuildInfo() { } } - const DEFAULT_BUILD_INFO = { releaseType: "", buildIdentifier: "dev" }; + const DEFAULT_BUILD_INFO = { releaseType: "", buildIdentifier: "dev", appUserModelId: "com.highfidelity.sandbox-dev"}; var buildInfo = DEFAULT_BUILD_INFO; if (buildInfoPath) { @@ -235,7 +233,7 @@ const configPath = path.join(getApplicationDataDirectory(), 'config.json'); var userConfig = new Config(); userConfig.load(configPath); -app.setAppUserModelId(APP_USER_MODEL_ID); +app.setAppUserModelId(buildInfo.appUserModelId); // print out uncaught exceptions in the console process.on('uncaughtException', function(err) { @@ -882,7 +880,7 @@ function onContentLoaded() { title: 'An update is available!', message: 'High Fidelity version ' + latestVersion + ' is available', wait: true, - appID: APP_USER_MODEL_ID, + appID: buildInfo.appUserModelId, url: url }); hasShownUpdateNotification = true; From 2879eeb687d4885cf220799bbade8fcd3960aaf1 Mon Sep 17 00:00:00 2001 From: amantley Date: Fri, 1 Jun 2018 17:18:48 -0700 Subject: [PATCH 126/300] added flags for procedural face movement AvatarData.cpp toByteArray and parseDataFromBuffer --- libraries/avatars/src/AvatarData.cpp | 54 ++++++++++++++++++++-------- libraries/avatars/src/AvatarData.h | 7 ++-- libraries/shared/src/SharedUtil.cpp | 17 ++++++--- libraries/shared/src/SharedUtil.h | 6 ++-- 4 files changed, 61 insertions(+), 23 deletions(-) diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index 649460d6c7..247fc2a76a 100644 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -308,7 +308,7 @@ QByteArray AvatarData::toByteArray(AvatarDataDetail dataDetail, quint64 lastSent const size_t byteArraySize = AvatarDataPacket::MAX_CONSTANT_HEADER_SIZE + - (hasFaceTrackerInfo ? AvatarDataPacket::maxFaceTrackerInfoSize(_headData->getNumSummedBlendshapeCoefficients()) : 0) + + (hasFaceTrackerInfo ? AvatarDataPacket::maxFaceTrackerInfoSize(_headData->getBlendshapeCoefficients().size()) : 0) + (hasJointData ? AvatarDataPacket::maxJointDataSize(_jointData.size()) : 0) + (hasJointDefaultPoseFlags ? AvatarDataPacket::maxJointDefaultPoseFlagsSize(_jointData.size()) : 0); @@ -443,7 +443,7 @@ QByteArray AvatarData::toByteArray(AvatarDataDetail dataDetail, quint64 lastSent auto startSection = destinationBuffer; auto data = reinterpret_cast(destinationBuffer); - uint8_t flags { 0 }; + uint16_t flags { 0 }; setSemiNibbleAt(flags, KEY_STATE_START_BIT, _keyState); @@ -451,20 +451,33 @@ QByteArray AvatarData::toByteArray(AvatarDataDetail dataDetail, quint64 lastSent bool isFingerPointing = _handState & IS_FINGER_POINTING_FLAG; setSemiNibbleAt(flags, HAND_STATE_START_BIT, _handState & ~IS_FINGER_POINTING_FLAG); if (isFingerPointing) { - setAtBit(flags, HAND_STATE_FINGER_POINTING_BIT); + setAtBit16(flags, HAND_STATE_FINGER_POINTING_BIT); } // face tracker state if (_headData->_isFaceTrackerConnected) { - setAtBit(flags, IS_FACE_TRACKER_CONNECTED); + setAtBit16(flags, IS_FACE_TRACKER_CONNECTED); } // eye tracker state if (_headData->_isEyeTrackerConnected) { - setAtBit(flags, IS_EYE_TRACKER_CONNECTED); + setAtBit16(flags, IS_EYE_TRACKER_CONNECTED); } // referential state if (!parentID.isNull()) { - setAtBit(flags, HAS_REFERENTIAL); + setAtBit16(flags, HAS_REFERENTIAL); } + // audio face movement + if (_headData->getHasAudioEnabledFaceMovement()) { + setAtBit16(flags, AUDIO_ENABLED_FACE_MOVEMENT); + } + // procedural eye face movement + if (_headData->getHasProceduralEyeFaceMovement()) { + setAtBit16(flags, PROCEDURAL_EYE_FACE_MOVEMENT); + } + // procedural blink face movement + if (_headData->getHasProceduralBlinkFaceMovement()) { + setAtBit16(flags, PROCEDURAL_BLINK_FACE_MOVEMENT); + } + data->flags = flags; destinationBuffer += sizeof(AvatarDataPacket::AdditionalFlags); @@ -507,7 +520,7 @@ QByteArray AvatarData::toByteArray(AvatarDataDetail dataDetail, quint64 lastSent if (hasFaceTrackerInfo) { auto startSection = destinationBuffer; auto faceTrackerInfo = reinterpret_cast(destinationBuffer); - const auto& blendshapeCoefficients = _headData->getSummedBlendshapeCoefficients(); + const auto& blendshapeCoefficients = _headData->getBlendshapeCoefficients(); faceTrackerInfo->leftEyeBlink = _headData->_leftEyeBlink; faceTrackerInfo->rightEyeBlink = _headData->_rightEyeBlink; @@ -973,7 +986,7 @@ int AvatarData::parseDataFromBuffer(const QByteArray& buffer) { PACKET_READ_CHECK(AdditionalFlags, sizeof(AvatarDataPacket::AdditionalFlags)); auto data = reinterpret_cast(sourceBuffer); - uint8_t bitItems = data->flags; + uint16_t bitItems = data->flags; // key state, stored as a semi-nibble in the bitItems auto newKeyState = (KeyState)getSemiNibbleAt(bitItems, KEY_STATE_START_BIT); @@ -981,26 +994,37 @@ int AvatarData::parseDataFromBuffer(const QByteArray& buffer) { // hand state, stored as a semi-nibble plus a bit in the bitItems // we store the hand state as well as other items in a shared bitset. The hand state is an octal, but is split // into two sections to maintain backward compatibility. The bits are ordered as such (0-7 left to right). - // +---+-----+-----+--+ - // |x,x|H0,H1|x,x,x|H2| - // +---+-----+-----+--+ + // AA 6/1/18 added three more flags here for procedural audio, blink, and eye saccade enabled + // +---+-----+-----+--+--+--+--+-----+ + // |x,x|H0,H1|x,x,x|H2|Au|Bl|Ey|xxxxx| + // +---+-----+-----+--+--+--+--+-----+ // Hand state - H0,H1,H2 is found in the 3rd, 4th, and 8th bits auto newHandState = getSemiNibbleAt(bitItems, HAND_STATE_START_BIT) - + (oneAtBit(bitItems, HAND_STATE_FINGER_POINTING_BIT) ? IS_FINGER_POINTING_FLAG : 0); + + (oneAtBit16(bitItems, HAND_STATE_FINGER_POINTING_BIT) ? IS_FINGER_POINTING_FLAG : 0); - auto newFaceTrackerConnected = oneAtBit(bitItems, IS_FACE_TRACKER_CONNECTED); - auto newEyeTrackerConnected = oneAtBit(bitItems, IS_EYE_TRACKER_CONNECTED); + auto newFaceTrackerConnected = oneAtBit16(bitItems, IS_FACE_TRACKER_CONNECTED); + auto newEyeTrackerConnected = oneAtBit16(bitItems, IS_EYE_TRACKER_CONNECTED); + + auto newHasAudioEnabledFaceMovement = oneAtBit16(bitItems, AUDIO_ENABLED_FACE_MOVEMENT); + auto newHasProceduralEyeFaceMovement = oneAtBit16(bitItems, PROCEDURAL_EYE_FACE_MOVEMENT); + auto newHasProceduralBlinkFaceMovement = oneAtBit16(bitItems, PROCEDURAL_BLINK_FACE_MOVEMENT); bool keyStateChanged = (_keyState != newKeyState); bool handStateChanged = (_handState != newHandState); bool faceStateChanged = (_headData->_isFaceTrackerConnected != newFaceTrackerConnected); bool eyeStateChanged = (_headData->_isEyeTrackerConnected != newEyeTrackerConnected); - bool somethingChanged = keyStateChanged || handStateChanged || faceStateChanged || eyeStateChanged; + bool audioEnableFaceMovementChanged = (_headData->getHasAudioEnabledFaceMovement() != newHasAudioEnabledFaceMovement); + bool proceduralEyeFaceMovementChanged = (_headData->getHasProceduralEyeFaceMovement() != newHasProceduralEyeFaceMovement); + bool proceduralBlinkFaceMovementChanged = (_headData->getHasProceduralBlinkFaceMovement() != newHasProceduralBlinkFaceMovement); + bool somethingChanged = keyStateChanged || handStateChanged || faceStateChanged || eyeStateChanged || audioEnableFaceMovementChanged || proceduralEyeFaceMovementChanged || proceduralBlinkFaceMovementChanged; _keyState = newKeyState; _handState = newHandState; _headData->_isFaceTrackerConnected = newFaceTrackerConnected; _headData->_isEyeTrackerConnected = newEyeTrackerConnected; + _headData->setHasAudioEnabledFaceMovement(newHasAudioEnabledFaceMovement); + _headData->setHasProceduralEyeFaceMovement(newHasProceduralEyeFaceMovement); + _headData->setHasProceduralBlinkFaceMovement(newHasProceduralBlinkFaceMovement); sourceBuffer += sizeof(AvatarDataPacket::AdditionalFlags); diff --git a/libraries/avatars/src/AvatarData.h b/libraries/avatars/src/AvatarData.h index 2d8ee52ea1..ad304d5796 100644 --- a/libraries/avatars/src/AvatarData.h +++ b/libraries/avatars/src/AvatarData.h @@ -93,6 +93,9 @@ const int IS_FACE_TRACKER_CONNECTED = 4; // 5th bit const int IS_EYE_TRACKER_CONNECTED = 5; // 6th bit (was CHAT_CIRCLING) const int HAS_REFERENTIAL = 6; // 7th bit const int HAND_STATE_FINGER_POINTING_BIT = 7; // 8th bit +const int AUDIO_ENABLED_FACE_MOVEMENT = 8; // 9th bit +const int PROCEDURAL_EYE_FACE_MOVEMENT = 9; // 10th bit +const int PROCEDURAL_BLINK_FACE_MOVEMENT = 10; // 11th bit const char HAND_STATE_NULL = 0; @@ -200,9 +203,9 @@ namespace AvatarDataPacket { static_assert(sizeof(SensorToWorldMatrix) == SENSOR_TO_WORLD_SIZE, "AvatarDataPacket::SensorToWorldMatrix size doesn't match."); PACKED_BEGIN struct AdditionalFlags { - uint8_t flags; // additional flags: hand state, key state, eye tracking + uint16_t flags; // additional flags: hand state, key state, eye tracking } PACKED_END; - const size_t ADDITIONAL_FLAGS_SIZE = 1; + const size_t ADDITIONAL_FLAGS_SIZE = 2; static_assert(sizeof(AdditionalFlags) == ADDITIONAL_FLAGS_SIZE, "AvatarDataPacket::AdditionalFlags size doesn't match."); // only present if HAS_REFERENTIAL flag is set in AvatarInfo.flags diff --git a/libraries/shared/src/SharedUtil.cpp b/libraries/shared/src/SharedUtil.cpp index 7c4a9b6d6c..35aab3fac1 100644 --- a/libraries/shared/src/SharedUtil.cpp +++ b/libraries/shared/src/SharedUtil.cpp @@ -297,14 +297,23 @@ void setAtBit(unsigned char& byte, int bitIndex) { byte |= (1 << (7 - bitIndex)); } +bool oneAtBit16(unsigned short word, int bitIndex) { + return (word >> (7 - bitIndex) & 1); +} + +void setAtBit16(unsigned short& word, int bitIndex) { + word |= (1 << (7 - bitIndex)); +} + + void clearAtBit(unsigned char& byte, int bitIndex) { if (oneAtBit(byte, bitIndex)) { byte -= (1 << (7 - bitIndex)); } } -int getSemiNibbleAt(unsigned char byte, int bitIndex) { - return (byte >> (6 - bitIndex) & 3); // semi-nibbles store 00, 01, 10, or 11 +int getSemiNibbleAt(unsigned short word, int bitIndex) { + return (word >> (6 - bitIndex) & 3); // semi-nibbles store 00, 01, 10, or 11 } int getNthBit(unsigned char byte, int ordinal) { @@ -326,9 +335,9 @@ int getNthBit(unsigned char byte, int ordinal) { return ERROR_RESULT; } -void setSemiNibbleAt(unsigned char& byte, int bitIndex, int value) { +void setSemiNibbleAt(unsigned short& word, int bitIndex, int value) { //assert(value <= 3 && value >= 0); - byte |= ((value & 3) << (6 - bitIndex)); // semi-nibbles store 00, 01, 10, or 11 + word |= ((value & 3) << (6 - bitIndex)); // semi-nibbles store 00, 01, 10, or 11 } bool isInEnvironment(const char* environment) { diff --git a/libraries/shared/src/SharedUtil.h b/libraries/shared/src/SharedUtil.h index 9875314aa4..db9fff3e93 100644 --- a/libraries/shared/src/SharedUtil.h +++ b/libraries/shared/src/SharedUtil.h @@ -163,9 +163,11 @@ void printVoxelCode(unsigned char* voxelCode); int numberOfOnes(unsigned char byte); bool oneAtBit(unsigned char byte, int bitIndex); void setAtBit(unsigned char& byte, int bitIndex); +bool oneAtBit16(unsigned short word, int bitIndex); +void setAtBit16(unsigned short& word, int bitIndex); void clearAtBit(unsigned char& byte, int bitIndex); -int getSemiNibbleAt(unsigned char byte, int bitIndex); -void setSemiNibbleAt(unsigned char& byte, int bitIndex, int value); +int getSemiNibbleAt(unsigned short word, int bitIndex); +void setSemiNibbleAt(unsigned short& word, int bitIndex, int value); int getNthBit(unsigned char byte, int ordinal); /// determines the bit placement 0-7 of the ordinal set bit From beaea7abe6bcf2f76c0ef24962e3df3c12217980 Mon Sep 17 00:00:00 2001 From: Angus Antley Date: Sat, 2 Jun 2018 14:39:30 +0100 Subject: [PATCH 127/300] changed max face tracker info size to reflect summed coeff --- libraries/avatars/src/AvatarData.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index 247fc2a76a..4a3967a938 100644 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -308,7 +308,7 @@ QByteArray AvatarData::toByteArray(AvatarDataDetail dataDetail, quint64 lastSent const size_t byteArraySize = AvatarDataPacket::MAX_CONSTANT_HEADER_SIZE + - (hasFaceTrackerInfo ? AvatarDataPacket::maxFaceTrackerInfoSize(_headData->getBlendshapeCoefficients().size()) : 0) + + (hasFaceTrackerInfo ? AvatarDataPacket::maxFaceTrackerInfoSize(_headData->getNumSummedBlendshapeCoefficients()) : 0) + (hasJointData ? AvatarDataPacket::maxJointDataSize(_jointData.size()) : 0) + (hasJointDefaultPoseFlags ? AvatarDataPacket::maxJointDefaultPoseFlagsSize(_jointData.size()) : 0); From 606b6d8947b87f646166d4cd8c0630dc65933330 Mon Sep 17 00:00:00 2001 From: Dante Ruiz Date: Mon, 4 Jun 2018 09:16:39 -0700 Subject: [PATCH 128/300] fix code standard issue --- interface/src/Menu.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index 42618796a5..e9de94ac57 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -124,7 +124,7 @@ Menu::Menu() { }); // Edit > Delete - auto deleteAction =addActionToQMenuAndActionHash(editMenu, "Delete", QKeySequence::Delete); + auto deleteAction = addActionToQMenuAndActionHash(editMenu, "Delete", QKeySequence::Delete); connect(deleteAction, &QAction::triggered, [] { QKeyEvent* keyEvent = new QKeyEvent(QEvent::KeyPress, Qt::Key_Delete, Qt::ControlModifier); QCoreApplication::postEvent(QCoreApplication::instance(), keyEvent); From 8d213efa75d65d3117bc4e6c842d89b2aa38bb1f Mon Sep 17 00:00:00 2001 From: Alexander Ivash Date: Tue, 8 May 2018 11:42:22 +0300 Subject: [PATCH 129/300] introduce test 'controls gallery' application for controls testing --- .../resources/qml/controls-uit/SpinBox.qml | 4 + libraries/ui/src/FileDialogHelper.cpp | 2 +- scripts/developer/tests/ControlsGallery.qml | 103 +++++++++++ scripts/developer/tests/Introspector.qml | 166 ++++++++++++++++++ scripts/developer/tests/controlsGallery.js | 23 +++ tests-manual/ui/qml/ControlsGalleryWindow.qml | 14 ++ tests-manual/ui/qmlscratch.pro | 5 +- tests-manual/ui/src/main.cpp | 18 +- 8 files changed, 331 insertions(+), 4 deletions(-) create mode 100644 scripts/developer/tests/ControlsGallery.qml create mode 100644 scripts/developer/tests/Introspector.qml create mode 100644 scripts/developer/tests/controlsGallery.js create mode 100644 tests-manual/ui/qml/ControlsGalleryWindow.qml diff --git a/interface/resources/qml/controls-uit/SpinBox.qml b/interface/resources/qml/controls-uit/SpinBox.qml index 9d63122dbc..7a1d064191 100644 --- a/interface/resources/qml/controls-uit/SpinBox.qml +++ b/interface/resources/qml/controls-uit/SpinBox.qml @@ -17,6 +17,10 @@ import "../controls-uit" as HifiControls SpinBox { id: spinBox + HifiConstants { + id: hifi + } + property int colorScheme: hifi.colorSchemes.light readonly property bool isLightColorScheme: colorScheme === hifi.colorSchemes.light property string label: "" diff --git a/libraries/ui/src/FileDialogHelper.cpp b/libraries/ui/src/FileDialogHelper.cpp index 6d14adf1db..54eb1fc36b 100644 --- a/libraries/ui/src/FileDialogHelper.cpp +++ b/libraries/ui/src/FileDialogHelper.cpp @@ -52,7 +52,7 @@ QUrl FileDialogHelper::pathToUrl(const QString& path) { QUrl FileDialogHelper::saveHelper(const QString& saveText, const QUrl& currentFolder, const QStringList& selectionFilters) { - qDebug(uiLogging) << "Calling save helper with " << saveText << " " << currentFolder << " " << selectionFilters; + // qDebug(uiLogging) << "Calling save helper with " << saveText << " " << currentFolder << " " << selectionFilters; QFileInfo fileInfo(saveText); diff --git a/scripts/developer/tests/ControlsGallery.qml b/scripts/developer/tests/ControlsGallery.qml new file mode 100644 index 0000000000..ceb8a26dc9 --- /dev/null +++ b/scripts/developer/tests/ControlsGallery.qml @@ -0,0 +1,103 @@ +import QtQuick 2.10 +import QtQuick.Window 2.10 +import QtQuick.Controls 2.2 +import QtQuick.Layouts 1.3 +import "qrc:////qml//styles-uit" as HifiStylesUit +import "qrc:////qml//controls-uit" as HifiControlsUit + +//uncomment to use from qmlscratch tool +//import '../../../interface/resources/qml/controls-uit' as HifiControlsUit +//import '../../../interface/resources/qml/styles-uit' + +//uncomment to use with HIFI_USE_SOURCE_TREE_RESOURCES=1 +//import '../../../resources/qml/controls-uit' as HifiControlsUit +//import '../../../resources/qml/styles-uit' + +Item { + visible: true + width: 640 + height: 480 + + Introspector { + id: introspector + properties: ['realFrom', 'realTo', 'realValue', 'realStepSize', 'decimals'] + visible: true + y: 50 + x: 130 + } + + HifiStylesUit.HifiConstants { + id: hifi + } + + TabBar { + id: bar + width: parent.width + TabButton { + text: "Spinbox" + } + TabButton { + text: "... Other Controls" + } + } + + StackLayout { + id: controlsLayout + currentIndex: bar.currentIndex + anchors.top: bar.bottom + anchors.bottom: parent.bottom + anchors.left: parent.left + anchors.right: parent.right + anchors.margins: 20 + + Item { + id: spinboxTab + anchors.fill: parent + + Column { + spacing: 20 + + HifiControlsUit.SpinBox { + realValue: 5.0 + realFrom: 16.0 + realTo: 20.0 + decimals: 2 + realStepSize: 0.01 + + width: 100 + height: 30 + + colorScheme: hifi.colorSchemes.dark + + onFocusChanged: { + if(focus) { + introspector.object = this + } + } + } + + HifiControlsUit.SpinBox { + realValue: 5.0 + realFrom: 1.0 + realTo: 20.0 + decimals: 2 + realStepSize: 0.01 + + width: 100 + height: 30 + + colorScheme: hifi.colorSchemes.light + + onFocusChanged: { + if(focus) { + introspector.object = this + } + } + } + } + } + Item { + id: otherTab + } + } +} diff --git a/scripts/developer/tests/Introspector.qml b/scripts/developer/tests/Introspector.qml new file mode 100644 index 0000000000..d21f5da976 --- /dev/null +++ b/scripts/developer/tests/Introspector.qml @@ -0,0 +1,166 @@ +import QtQuick 2.1; +import QtQuick.Window 2.1; + +MouseArea { + id: base; + opacity: 0.65; + // anchors.fill: parent; + width: 400; + height: 300; + + drag.target: list; + onWheel: { } + + onClicked: { object = null } + property var object: null + onObjectChanged: { + visible = (object != null) + } + + property var properties: [] + onPropertiesChanged: { + console.debug('properties: ', JSON.stringify(properties, 4, 0)) + } + + function getPropertiesList(obj) { + var props = []; + var propertiesObject = obj; + if(properties.length !== 0) { + propertiesObject = {}; + for(var i = 0; i < properties.length; ++i) { + propertiesObject[properties[i]] = properties[i]; + } + } + + for(var prop in propertiesObject) { + + var info = {'name' : prop}; + var value = obj[prop]; + var typeOfValue = typeof(value); + + if(typeof(value) === 'string') { + info['type'] = 'string' + } else if(typeof(value) === 'number') { + if(Number.isInteger(value)) + info['type'] = 'int' + else + info['type'] = 'float' + } else if(typeof(value) === 'boolean') { + info['type'] = 'boolean' + } else if(typeof(value) === 'function') { + continue; + } + + /* + if(prop !== 'parent' && prop !== 'data' && prop !== 'children') + console.debug('typeof(value): ', typeof(value), JSON.stringify(value, null, 4)); + */ + + info['subName'] = '' + props.push(info); + } + + return props; + } + + Rectangle { + color: "lightgray"; + anchors.fill: list; + anchors.margins: -50; + } + ListView { + id: list; + x: 50; + y: 50; + width: 400; + height: 300; + spacing: 5; + model: object !== null ? getPropertiesList(object) : []; + header: Text { + text: object !== null ? object.toString () : ''; + font.bold: true; + font.pixelSize: 20; + } + delegate: Row { + spacing: 20; + + Column { + width: 180; + + Text { + text: (modelData ["subName"] !== "" ? (modelData ["name"] + "." + modelData ["subName"]) : modelData ["name"]); + font.pixelSize: 16; + } + } + Column { + width: 200; + + Text { + text: { + return modelData ["type"] + } + font.pixelSize: 10; + } + TextInput { + id: input; + text: display; + width: parent.width; + font.pixelSize: 16; + font.underline: (text !== display); + Keys.onReturnPressed: { save (); } + Keys.onEnterPressed: { save (); } + Keys.onEscapePressed: { cancel (); } + + property string display : ""; + + function save () { + var tmp; + switch (modelData ["type"]) { + case 'boolean': + tmp = (text === "true" || text === "1"); + break; + case 'float': + tmp = parseFloat (text); + break; + case 'int': + tmp = parseInt (text); + break; + case 'string': + tmp = text; + break; + + default: + break; + } + if (modelData ["subName"] !== "") { + object [modelData ["name"]][modelData ["subName"]] = tmp; + } + else { + object [modelData ["name"]] = tmp; + } + text = display; + } + + function cancel () { + text = display; + } + + Binding on text { value: input.display; } + Binding on display { + value: { + var ret = (modelData ["subName"] !== "" + ? object [modelData ["name"]][modelData ["subName"]] + : object [modelData ["name"]]); + return ret.toString (); + } + } + Rectangle { + z: -1; + color: "white"; + anchors.fill: parent; + } + } + } + } + } +} diff --git a/scripts/developer/tests/controlsGallery.js b/scripts/developer/tests/controlsGallery.js new file mode 100644 index 0000000000..dc3fa7ba3c --- /dev/null +++ b/scripts/developer/tests/controlsGallery.js @@ -0,0 +1,23 @@ +(function() { // BEGIN LOCAL_SCOPE + + console.debug('controlsGallery: creating window') + + var qml = Script.resolvePath('ControlsGallery.qml'); + var qmlWindow = new OverlayWindow({ + title: 'Hifi Controls Gallery', + source: qml, + height: 480, + width: 640, + visible: true + }); + + console.debug('controlsGallery: creating window... done') + + qmlWindow.closed.connect(function() { Script.stop(); }); + + Script.scriptEnding.connect(function() { + console.debug('controlsGallery: end of scripting') + delete qmlWindow; + }); + +}()); // END LOCAL_SCOPE diff --git a/tests-manual/ui/qml/ControlsGalleryWindow.qml b/tests-manual/ui/qml/ControlsGalleryWindow.qml new file mode 100644 index 0000000000..32fd62da36 --- /dev/null +++ b/tests-manual/ui/qml/ControlsGalleryWindow.qml @@ -0,0 +1,14 @@ +import QtQuick 2.0 +import QtQuick.Window 2.3 +import QtQuick.Controls 1.4 +import '../../../scripts/developer/tests' as Tests + +ApplicationWindow { + width: 640 + height: 480 + visible: true + + Tests.ControlsGallery { + anchors.fill: parent + } +} diff --git a/tests-manual/ui/qmlscratch.pro b/tests-manual/ui/qmlscratch.pro index 5c9b91ee52..6b6ec311be 100644 --- a/tests-manual/ui/qmlscratch.pro +++ b/tests-manual/ui/qmlscratch.pro @@ -34,4 +34,7 @@ DISTFILES += \ ../../interface/resources/qml/hifi/toolbars/*.qml \ ../../interface/resources/qml/hifi/dialogs/*.qml \ ../../interface/resources/qml/hifi/dialogs/preferences/*.qml \ - ../../interface/resources/qml/hifi/overlays/*.qml + ../../interface/resources/qml/hifi/overlays/*.qml \ + ../../scripts/developer/tests/Introspector.qml \ + ../../scripts/developer/tests/ControlsGallery.qml \ + qml/ControlsGalleryWindow.qml diff --git a/tests-manual/ui/src/main.cpp b/tests-manual/ui/src/main.cpp index 312b5f3823..19002ed499 100644 --- a/tests-manual/ui/src/main.cpp +++ b/tests-manual/ui/src/main.cpp @@ -95,6 +95,7 @@ int main(int argc, char *argv[]) { app.setApplicationName("Amazing Application"); QDir::setCurrent(getRelativeDir("..")); + /* QtWebEngine::initialize(); qmlRegisterType("Hifi", 1, 0, "Preference"); @@ -117,9 +118,21 @@ int main(int argc, char *argv[]) { setChild(engine, "urlHandler"); engine.rootContext()->setContextProperty("DebugQML", true); engine.rootContext()->setContextProperty("fileDialogHelper", new FileDialogHelper()); + */ - //engine.load(QUrl(QStringLiteral("qrc:/qml/gallery/main.qml"))); - engine.load(QUrl(QStringLiteral("qml/main.qml"))); + QQmlApplicationEngine engine; + addImportPath(engine, "qml"); + addImportPath(engine, "../../interface/resources/qml"); + addImportPath(engine, "../../interface/resources"); + addImportPath(engine, "../../scripts/developer/tests"); + + QFontDatabase::addApplicationFont("../../interface/resources/fonts/FiraSans-Regular.ttf"); + QFontDatabase::addApplicationFont("../../interface/resources/fonts/FiraSans-SemiBold.ttf"); + QFontDatabase::addApplicationFont("../../interface/resources/fonts/hifi-glyphs.ttf"); + + engine.load(QUrl(QStringLiteral("qml/ControlsGalleryWindow.qml"))); + + /* for (QObject* rootObject : engine.rootObjects()) { if (rootObject->objectName() == "MainWindow") { Reticle* reticle = new Reticle(rootObject); @@ -129,6 +142,7 @@ int main(int argc, char *argv[]) { break; } } + */ return app.exec(); } From 56466e61d3f3b9ba8f34d0ca95bc426032888477 Mon Sep 17 00:00:00 2001 From: Alexander Ivash Date: Fri, 1 Jun 2018 18:20:47 +0300 Subject: [PATCH 130/300] fix binding loops disallowing to increment/decrement spinbox value under certain conditions --- interface/resources/qml/controls-uit/SpinBox.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/interface/resources/qml/controls-uit/SpinBox.qml b/interface/resources/qml/controls-uit/SpinBox.qml index 7a1d064191..a943b82a23 100644 --- a/interface/resources/qml/controls-uit/SpinBox.qml +++ b/interface/resources/qml/controls-uit/SpinBox.qml @@ -57,7 +57,8 @@ SpinBox { onValueChanged: realValue = value/factor stepSize: realStepSize*factor - value: realValue*factor + value: Math.round(realValue*factor) + to : realTo*factor from : realFrom*factor From 826d853edf543d3c43086d534bd906896081c99e Mon Sep 17 00:00:00 2001 From: Alexander Ivash Date: Fri, 1 Jun 2018 18:21:47 +0300 Subject: [PATCH 131/300] fix blinking 'up' indicator on pressing 'down' --- interface/resources/qml/controls-uit/SpinBox.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/resources/qml/controls-uit/SpinBox.qml b/interface/resources/qml/controls-uit/SpinBox.qml index a943b82a23..1b9eaa4c14 100644 --- a/interface/resources/qml/controls-uit/SpinBox.qml +++ b/interface/resources/qml/controls-uit/SpinBox.qml @@ -115,7 +115,7 @@ SpinBox { anchors.centerIn: parent text: hifi.glyphs.caratUp size: hifi.dimensions.spinnerSize - color: spinBox.down.pressed || spinBox.up.hovered ? (isLightColorScheme ? hifi.colors.black : hifi.colors.white) : hifi.colors.gray + color: spinBox.up.pressed || spinBox.up.hovered ? (isLightColorScheme ? hifi.colors.black : hifi.colors.white) : hifi.colors.gray } } From 9bf3759e8d84dffead568a8b54b73fde0b0bc542 Mon Sep 17 00:00:00 2001 From: Alexander Ivash Date: Fri, 1 Jun 2018 18:22:33 +0300 Subject: [PATCH 132/300] allow control spinbox with mouse wheel --- .../resources/qml/controls-uit/SpinBox.qml | 32 ++++++------------- 1 file changed, 10 insertions(+), 22 deletions(-) diff --git a/interface/resources/qml/controls-uit/SpinBox.qml b/interface/resources/qml/controls-uit/SpinBox.qml index 1b9eaa4c14..7302901a06 100644 --- a/interface/resources/qml/controls-uit/SpinBox.qml +++ b/interface/resources/qml/controls-uit/SpinBox.qml @@ -154,26 +154,14 @@ SpinBox { visible: spinBox.labelInside != "" } -// MouseArea { -// anchors.fill: parent -// propagateComposedEvents: true -// onWheel: { -// if(spinBox.activeFocus) -// wheel.accepted = false -// else -// wheel.accepted = true -// } -// onPressed: { -// mouse.accepted = false -// } -// onReleased: { -// mouse.accepted = false -// } -// onClicked: { -// mouse.accepted = false -// } -// onDoubleClicked: { -// mouse.accepted = false -// } -// } + MouseArea { + anchors.fill: parent + acceptedButtons: Qt.NoButton + onWheel: { + if (wheel.angleDelta.y > 0) + value += stepSize + else + value -= stepSize + } + } } From 254abfa04a6ed73c2a3fcc2ee39d2bd6c269b791 Mon Sep 17 00:00:00 2001 From: howard-stearns Date: Mon, 4 Jun 2018 12:59:08 -0700 Subject: [PATCH 133/300] add request-services to default scripts. --- scripts/defaultScripts.js | 1 + scripts/system/request-service.js | 4 +--- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/scripts/defaultScripts.js b/scripts/defaultScripts.js index 59a51830be..6ea9f4cb81 100644 --- a/scripts/defaultScripts.js +++ b/scripts/defaultScripts.js @@ -12,6 +12,7 @@ // var DEFAULT_SCRIPTS_COMBINED = [ + "system/request-service.js", "system/progress.js", "system/away.js", "system/audio.js", diff --git a/scripts/system/request-service.js b/scripts/system/request-service.js index 3c3b9ccc04..b57f2d4cd7 100644 --- a/scripts/system/request-service.js +++ b/scripts/system/request-service.js @@ -24,9 +24,7 @@ // We will then asynchonously call fromScript({id: theSameString, method: 'http.response', error: errorOrFalsey, response: body}) // on that root object. // RootHttpRequest.qml does this. - // 2. If the uri used (computed from byNameOptions, see request.js) begins with '/', we will: - // a. Prepend Account.metaverseServerUR. - // b. Use the appropriate auth. + // 2. If the uri used (computed from byNameOptions, see request.js) is to our metaverse, we will use the appropriate auth. var request = Script.require('request').request; var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system"); From e40fc20cb67bf4fd3259b030b5c0b794d81655fc Mon Sep 17 00:00:00 2001 From: howard-stearns Date: Mon, 4 Jun 2018 13:00:08 -0700 Subject: [PATCH 134/300] fix some bugs that had been introduced by various out-of-team prs. --- interface/resources/qml/controls-uit/TextField.qml | 6 +++--- interface/resources/qml/hifi/Pal.qml | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/interface/resources/qml/controls-uit/TextField.qml b/interface/resources/qml/controls-uit/TextField.qml index 6743d08275..917068ac01 100644 --- a/interface/resources/qml/controls-uit/TextField.qml +++ b/interface/resources/qml/controls-uit/TextField.qml @@ -165,11 +165,11 @@ TextField { anchors.left: parent.left Binding on anchors.right { - when: parent.right - value: parent.right + when: textField.right + value: textField.right } Binding on wrapMode { - when: parent.right + when: textField.right value: Text.WordWrap } diff --git a/interface/resources/qml/hifi/Pal.qml b/interface/resources/qml/hifi/Pal.qml index 8a067c0733..9a818ef4db 100644 --- a/interface/resources/qml/hifi/Pal.qml +++ b/interface/resources/qml/hifi/Pal.qml @@ -479,7 +479,6 @@ Rectangle { visible: !isCheckBox && !isButton && !isAvgAudio; uuid: model ? model.sessionId : ""; selected: styleData.selected; - isReplicated: model.isReplicated; isAdmin: model && model.admin; isPresent: model && model.isPresent; // Size From 5a1b56d5730094ea889748bfc4f42dfecb997620 Mon Sep 17 00:00:00 2001 From: howard-stearns Date: Mon, 4 Jun 2018 13:11:06 -0700 Subject: [PATCH 135/300] checkpoint with goto feeds working (but without filtering) --- interface/resources/qml/hifi/Feed.qml | 52 ++++++++++++++----- .../qml/hifi/models/PSFListModel.qml | 7 ++- .../qml/hifi/tablet/TabletAddressDialog.qml | 40 +++----------- 3 files changed, 54 insertions(+), 45 deletions(-) diff --git a/interface/resources/qml/hifi/Feed.qml b/interface/resources/qml/hifi/Feed.qml index 3f3a47a297..98721ba2e0 100644 --- a/interface/resources/qml/hifi/Feed.qml +++ b/interface/resources/qml/hifi/Feed.qml @@ -16,10 +16,11 @@ import QtQuick 2.5 import QtGraphicalEffects 1.0 import "toolbars" import "../styles-uit" +import "models" as HifiModels Column { id: root; - visible: false; + visible: !!suggestions.count; property int cardWidth: 212; property int cardHeight: 152; @@ -32,18 +33,37 @@ Column { property int stackedCardShadowHeight: 4; property int labelSize: 20; - property string metaverseServerUrl: ''; + property string metaverseServerUrl: ''; // FIXME loose this? property string protocol: ''; property string actions: 'snapshot'; // sendToScript doesn't get wired until after everything gets created. So we have to queue fillDestinations on nextTick. property string labelText: actions; property string filter: ''; - onFilterChanged: filterChoicesByText(); + // FIXME onFilterChanged: filterChoicesByText(); property var goFunction: null; - property var rpc: null; + property var http: null; HifiConstants { id: hifi } - ListModel { id: suggestions; } + //FIXME ListModel { id: suggestions; } + Component.onCompleted: suggestions.getFirstPage(); + HifiModels.PSFListModel { + id: suggestions; + http: root.http; + property var options: [ + 'include_actions=' + actions, + 'restriction=' + (Account.isLoggedIn() ? 'open,hifi' : 'open'), + 'require_online=true', + 'protocol=' + Window.protocolSignature() + ]; + endpoint: '/api/v1/user_stories?' + options.join('&'); + itemsPerPage: 3; + processPage: function (data) { + console.log('FIXME processPage', suggestions.listModelName, JSON.stringify(data)); + return data.user_stories.map(makeModelData); + }; + listModelName: actions; + listView: scroll; + } function resolveUrl(url) { return (url.indexOf('/') === 0) ? (metaverseServerUrl + url) : url; @@ -60,11 +80,11 @@ Column { data.details.connections = 4; data.action = 'announcement'; } - return { + var fixme = { place_name: name, username: data.username || "", path: data.path || "", - created_at: data.created_at || "", + created_at: data.created_at || data.updated_at || "", // FIXME why aren't we getting created_at? action: data.action || "", thumbnail_url: resolveUrl(thumbnail_url), image_url: resolveUrl(data.details && data.details.image_url), @@ -77,8 +97,11 @@ Column { drillDownToPlace: false, searchText: [name].concat(tags, description || []).join(' ').toUpperCase() - } + }; + console.log('fixme makeModelData', JSON.stringify(fixme)); + return fixme; } + /* FIXME property var allStories: []; property var placeMap: ({}); // Used for making stacks. property int requestId: 0; @@ -108,7 +131,7 @@ Column { ]; var url = metaverseBase + 'user_stories?' + options.join('&'); var thisRequestId = ++requestId; - rpc('request', url, function (error, data) { + http.request(url, function (error, data) { if (thisRequestId !== requestId) { error = 'stale'; } @@ -126,8 +149,9 @@ Column { }); } function fillDestinations() { // Public - console.debug('Feed::fillDestinations()') - + console.debug('Feed::fillDestinations()'); + //suggestions.getFirstPage(); + } function report(label, error) { console.log(label, actions, error || 'ok', allStories.length, 'filtered to', suggestions.count); } @@ -193,6 +217,7 @@ Column { allStories.forEach(makeFilteredStoryProcessor()); root.visible = !!suggestions.count; } + */ RalewayBold { id: label; @@ -202,12 +227,13 @@ Column { } ListView { id: scroll; - model: suggestions; + model: suggestions.model; orientation: ListView.Horizontal; highlightFollowsCurrentItem: false highlightMoveDuration: -1; highlightMoveVelocity: -1; currentIndex: -1; + onAtXEndChanged: { console.log('FIXME onAtXEndChanged', actions, scroll.atXEnd, scroll.atXBeginning); if (scroll.atXEnd && !scroll.atXBeginning) { suggestions.getNextPage(); } } spacing: 12; width: parent.width; @@ -239,6 +265,7 @@ Column { unhoverThunk: function () { hovered = false } } } + /* WTF is this? NumberAnimation { id: anim; target: scroll; @@ -256,4 +283,5 @@ Column { scroll.currentIndex = index; anim.running = true; } + */ } diff --git a/interface/resources/qml/hifi/models/PSFListModel.qml b/interface/resources/qml/hifi/models/PSFListModel.qml index 9858d76d4a..6eff1cc073 100644 --- a/interface/resources/qml/hifi/models/PSFListModel.qml +++ b/interface/resources/qml/hifi/models/PSFListModel.qml @@ -63,7 +63,7 @@ Item { property bool delayedClear: false; function resetModel() { if (!delayedClear) { finalModel.clear(); } - currentPageToRetrieve = 1; + currentPageToRetrieve = 1; console.log('fixme resetModel set currentPageToRetrieve to 1', listModelName); retrievedAtLeastOnePage = false; copyOfItems = []; } @@ -80,6 +80,7 @@ Item { console.debug('handlePage', listModelName, error, JSON.stringify(response)); function fail(message) { console.warn("Warning", listModelName, JSON.stringify(message)); + console.log('FIXME fail setting currentPageToRetrieve to -1', listModelName); currentPageToRetrieve = -1; requestPending = false; delayedClear = false; @@ -96,6 +97,7 @@ Item { } processed = processPage(response.data || response); if (response.total_pages && (response.total_pages === currentPageToRetrieve)) { + console.log('fixme hanglePage set currentPageToRetrieve to -1', listModelName, 'response.total_pages:', response.total_pages, 'old currentPageToRetrieve:', currentPageToRetrieve); currentPageToRetrieve = -1; } if (searchItemTest) { @@ -122,6 +124,7 @@ Item { if (searchItemTest && searchFilter && listView && listView.atYEnd && (currentPageToRetrieve >= 0)) { getNextPage(); // too fancy?? } + if (listView) { console.debug('handlePage completed', listModelName, 'model:', model.count, 'view:', listView.count); } } function applySearchItemTest(items) { return items.filter(function (item) { @@ -140,6 +143,7 @@ Item { property var http; // An Item that has a request function. property var getPage: function () { // Any override MUST call handlePage(), above, even if results empty. if (!http) { return console.warn("Neither http nor getPage was set for", listModelName); } + // If it is a path starting with slash, add the metaverseServer domain. var url = /^\//.test(endpoint) ? (Account.metaverseServerURL + endpoint) : endpoint; var parameters = [ // FIXME: handle sort, search, tag parameters @@ -171,6 +175,7 @@ Item { // onAtYEndChanged: if (theList.atYEnd) { thisPSFListModelId.getNextPage(); } // ...} property var getNextPage: function () { + console.log('fixme getNextPage', listModelName, requestPending, currentPageToRetrieve); if (requestPending || currentPageToRetrieve < 0) { return; } diff --git a/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml b/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml index dc67494e27..104756967e 100644 --- a/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml +++ b/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml @@ -37,38 +37,14 @@ StackView { property string metaverseBase: addressBarDialog.metaverseServerUrl + "/api/v1/"; property var tablet: null; - // This version only implements rpc(method, parameters, callback(error, result)) calls initiated from here, not initiated from .js, nor "notifications". - property var rpcCalls: ({}); - property var rpcCounter: 0; + RootHttpRequest { id: http; } signal sendToScript(var message); - function rpc(method, parameters, callback) { - console.debug('TabletAddressDialog: rpc: method = ', method, 'parameters = ', parameters, 'callback = ', callback) - - rpcCalls[rpcCounter] = callback; - var message = {method: method, params: parameters, id: rpcCounter++, jsonrpc: "2.0"}; - sendToScript(message); - } function fromScript(message) { - if (message.method === 'refreshFeeds') { - var feeds = [happeningNow, places, snapshots]; - console.debug('TabletAddressDialog::fromScript: refreshFeeds', 'feeds = ', feeds); - - feeds.forEach(function(feed) { - feed.protocol = encodeURIComponent(message.protocolSignature); - Qt.callLater(feed.fillDestinations); - }); - - return; + switch (message.method) { + case 'http.response': + http.handleHttpResponse(message); + break; } - - var callback = rpcCalls[message.id]; - if (!callback) { - // FIXME: We often recieve very long messages here, the logging of which is drastically slowing down the main thread - //console.log('No callback for message fromScript', JSON.stringify(message)); - return; - } - delete rpcCalls[message.id]; - callback(message.error, message.result); } Component { id: tabletWebView; TabletWebView {} } @@ -351,7 +327,7 @@ StackView { actions: 'announcement'; filter: addressLine.text; goFunction: goCard; - rpc: root.rpc; + http: http; } Feed { id: places; @@ -364,7 +340,7 @@ StackView { actions: 'concurrency'; filter: addressLine.text; goFunction: goCard; - rpc: root.rpc; + http: http; } Feed { id: snapshots; @@ -378,7 +354,7 @@ StackView { actions: 'snapshot'; filter: addressLine.text; goFunction: goCard; - rpc: root.rpc; + http: http; } } } From 5257a254cb95498d290ff34b41854ff022043b46 Mon Sep 17 00:00:00 2001 From: howard-stearns Date: Mon, 4 Jun 2018 13:12:41 -0700 Subject: [PATCH 136/300] more for the previous --- scripts/system/pal.js | 2 +- scripts/system/tablet-goto.js | 37 ----------------------------------- 2 files changed, 1 insertion(+), 38 deletions(-) diff --git a/scripts/system/pal.js b/scripts/system/pal.js index b122a5170a..41774629e7 100644 --- a/scripts/system/pal.js +++ b/scripts/system/pal.js @@ -318,7 +318,7 @@ function fromQml(message) { // messages are {method, params}, like json-rpc. See ); break; case 'http.request': - break; // Handled elsewhere. + break; // Handled by request-service. default: print('Unrecognized message from Pal.qml:', JSON.stringify(message)); } diff --git a/scripts/system/tablet-goto.js b/scripts/system/tablet-goto.js index 9cd8420a88..46ddeb2bab 100644 --- a/scripts/system/tablet-goto.js +++ b/scripts/system/tablet-goto.js @@ -41,24 +41,6 @@ sortOrder: 8 }); - function fromQml(message) { - console.debug('tablet-goto::fromQml: message = ', JSON.stringify(message)); - - var response = {id: message.id, jsonrpc: "2.0"}; - switch (message.method) { - case 'request': - request(message.params, function (error, data) { - debug('rpc', request, 'error:', error, 'data:', data); - response.error = error; - response.result = data; - tablet.sendToQml(response); - }); - return; - default: - response.error = {message: 'Unrecognized message', data: message}; - } - tablet.sendToQml(response); - } function messagesWaiting(isWaiting) { button.editProperties({ icon: isWaiting ? WAITING_ICON : NORMAL_ICON @@ -66,21 +48,6 @@ }); } - var hasEventBridge = false; - function wireEventBridge(on) { - if (on) { - if (!hasEventBridge) { - tablet.fromQml.connect(fromQml); - hasEventBridge = true; - } - } else { - if (hasEventBridge) { - tablet.fromQml.disconnect(fromQml); - hasEventBridge = false; - } - } - } - function onClicked() { if (onGotoScreen) { // for toolbar-mode: go back to home screen, this will close the window. @@ -98,15 +65,11 @@ onGotoScreen = true; shouldActivateButton = true; button.editProperties({isActive: shouldActivateButton}); - wireEventBridge(true); messagesWaiting(false); - tablet.sendToQml({ method: 'refreshFeeds', protocolSignature: Window.protocolSignature() }) - } else { shouldActivateButton = false; onGotoScreen = false; button.editProperties({isActive: shouldActivateButton}); - wireEventBridge(false); } } button.clicked.connect(onClicked); From 48c0b7379a1bf35da5c0105eb8edf59b783ec6df Mon Sep 17 00:00:00 2001 From: Dante Ruiz Date: Mon, 4 Jun 2018 15:16:11 -0700 Subject: [PATCH 137/300] fix vive configuration page --- .../qml/hifi/tablet/ControllerSettings.qml | 30 +- .../qml/hifi/tablet/OpenVrConfiguration.qml | 2150 +++++++++-------- 2 files changed, 1100 insertions(+), 1080 deletions(-) diff --git a/interface/resources/qml/hifi/tablet/ControllerSettings.qml b/interface/resources/qml/hifi/tablet/ControllerSettings.qml index da8334f831..7793b9926a 100644 --- a/interface/resources/qml/hifi/tablet/ControllerSettings.qml +++ b/interface/resources/qml/hifi/tablet/ControllerSettings.qml @@ -72,7 +72,13 @@ Item { property alias selectedPlugin: box.currentText Rectangle { id: inputConfiguration - anchors.fill: parent + anchors { + top: parent.top + left: parent.left + right: parent.right + } + + height: 230 HifiConstants { id: hifi } @@ -208,22 +214,26 @@ Item { anchors.leftMargin: 10 anchors.topMargin: 30 } + } + Rectangle { + id: loaderRectangle + z: -1 + color: hifi.colors.baseGray + width: parent.width + anchors.left: parent.left + anchors.right: parent.right + anchors.top: inputConfiguration.bottom + anchors.topMargin: 10 + anchors.bottom: parent.bottom Loader { id: loader asynchronous: false - - width: inputConfiguration.width - anchors.left: inputConfiguration.left - anchors.right: inputConfiguration.right - anchors.top: configurationHeader.bottom - anchors.topMargin: 10 - anchors.bottom: inputConfiguration.bottom - + anchors.fill: parent source: InputConfiguration.configurationLayout(box.currentText); onLoaded: { if (loader.item.hasOwnProperty("pluginName")) { - if (box.currentText === "HTC Vive") { + if (box.currentText === "HTC Vive") { loader.item.pluginName = "OpenVR"; } else { loader.item.pluginName = box.currentText; diff --git a/interface/resources/qml/hifi/tablet/OpenVrConfiguration.qml b/interface/resources/qml/hifi/tablet/OpenVrConfiguration.qml index 8fb49dffc0..1dbc603012 100644 --- a/interface/resources/qml/hifi/tablet/OpenVrConfiguration.qml +++ b/interface/resources/qml/hifi/tablet/OpenVrConfiguration.qml @@ -15,1092 +15,1102 @@ import "../../controls-uit" as HifiControls import "." -Rectangle { - id: openVrConfiguration - +Flickable { + id: flick width: parent.width height: parent.height anchors.fill: parent - - property int leftMargin: 75 - property int countDown: 0 - property string pluginName: "" - property var displayInformation: null - - readonly property bool feetChecked: feetBox.checked - readonly property bool hipsChecked: hipBox.checked - readonly property bool chestChecked: chestBox.checked - readonly property bool shouldersChecked: shoulderBox.checked - readonly property bool hmdHead: headBox.checked - readonly property bool headPuck: headPuckBox.checked - readonly property bool handController: handBox.checked - - readonly property bool handPuck: handPuckBox.checked - readonly property bool hmdDesktop: hmdInDesktop.checked - - property int state: buttonState.disabled - property var lastConfiguration: null - - HifiConstants { id: hifi } - - Component { id: screen; CalibratingScreen {} } - QtObject { - id: buttonState - readonly property int disabled: 0 - readonly property int apply: 1 - readonly property int applyAndCalibrate: 2 - readonly property int calibrate: 3 - - } - - MouseArea { - id: mouseArea - - anchors.fill: parent - propagateComposedEvents: true - onPressed: { - parent.forceActiveFocus() - mouse.accepted = false; - } - } - - color: hifi.colors.baseGray - - RalewayBold { - id: head - - text: "Head:" - size: 12 - - color: "white" - - anchors.left: parent.left - anchors.leftMargin: leftMargin - } - - Row { - id: headConfig - anchors.top: head.bottom - anchors.topMargin: 5 - anchors.left: openVrConfiguration.left - anchors.leftMargin: leftMargin + 10 - spacing: 10 - - HifiControls.CheckBox { - id: headBox - width: 15 - height: 15 - boxRadius: 7 - - onClicked: { - if (checked) { - headPuckBox.checked = false; - hmdInDesktop.checked = false; - } else { - checked = true; - } - sendConfigurationSettings(); - } - } - - RalewayBold { - size: 12 - text: stack.selectedPlugin + " HMD" - color: hifi.colors.lightGrayText - } - - HifiControls.CheckBox { - id: headPuckBox - width: 15 - height: 15 - boxRadius: 7 - - onClicked: { - if (checked) { - headBox.checked = false; - hmdInDesktop.checked = false; - } else { - checked = true; - } - sendConfigurationSettings(); - } - } - - RalewayBold { - size: 12 - text: "Tracker" - color: hifi.colors.lightGrayText - } - - HifiControls.CheckBox { - id: hmdInDesktop - width: 15 - height: 15 - boxRadius: 7 - visible: viveInDesktop.checked - - anchors.top: viveInDesktop.bottom - anchors.topMargin: 5 - anchors.left: openVrConfiguration.left - anchors.leftMargin: leftMargin + 10 - - onClicked: { - if (checked) { - headBox.checked = false; - headPuckBox.checked = false; - } else { - checked = true; - } - sendConfigurationSettings(); - } - } - - RalewayBold { - size: 12 - visible: viveInDesktop.checked - text: "None" - color: hifi.colors.lightGrayText - } - } - - Row { - id: headOffsets - anchors.top: headConfig.bottom - anchors.topMargin: 5 - anchors.left: openVrConfiguration.left - anchors.leftMargin: leftMargin + 10 - spacing: 10 - visible: headPuckBox.checked - HifiControls.SpinBox { - id: headYOffset - decimals: 1 - width: 112 - label: "Y Offset" - suffix: " cm" - minimumValue: -10 - realStepSize: 1 - realValue: -5 - colorScheme: hifi.colorSchemes.dark - - onEditingFinished: { - sendConfigurationSettings(); - } - } - - - HifiControls.SpinBox { - id: headZOffset - width: 112 - label: "Z Offset" - minimumValue: -10 - realStepSize: 1 - decimals: 1 - suffix: " cm" - realValue: -5 - colorScheme: hifi.colorSchemes.dark - - onEditingFinished: { - sendConfigurationSettings(); - } - } - } - - RalewayBold { - id: hands - - text: "Hands:" - size: 12 - - color: "white" - - anchors.top: (headOffsets.visible ? headOffsets.bottom : headConfig.bottom) - anchors.topMargin: (headOffsets.visible ? 22 : 10) - anchors.left: parent.left - anchors.leftMargin: leftMargin - } - - Row { - id: handConfig - anchors.top: hands.bottom - anchors.topMargin: 5 - anchors.left: openVrConfiguration.left - anchors.leftMargin: leftMargin + 10 - spacing: 10 - - HifiControls.CheckBox { - id: handBox - width: 15 - height: 15 - boxRadius: 7 - - onClicked: { - if (checked) { - handPuckBox.checked = false; - } else { - checked = true; - } - sendConfigurationSettings(); - } - } - - RalewayBold { - size: 12 - text: "Controllers" - color: hifi.colors.lightGrayText - } - - HifiControls.CheckBox { - id: handPuckBox - width: 12 - height: 15 - boxRadius: 7 - - onClicked: { - if (checked) { - handBox.checked = false; - } else { - checked = true; - } - sendConfigurationSettings(); - } - } - - RalewayBold { - size: 12 - text: "Trackers" - color: hifi.colors.lightGrayText - } - } - - Row { - id: handOffset - visible: handPuckBox.checked - anchors.top: handConfig.bottom - anchors.topMargin: 5 - anchors.left: openVrConfiguration.left - anchors.leftMargin: leftMargin + 10 - spacing: 10 - - HifiControls.SpinBox { - id: handYOffset - decimals: 1 - width: 112 - suffix: " cm" - label: "Y Offset" - minimumValue: -10 - realStepSize: 1 - colorScheme: hifi.colorSchemes.dark - - onEditingFinished: { - sendConfigurationSettings(); - } - } - - - HifiControls.SpinBox { - id: handZOffset - width: 112 - label: "Z Offset" - suffix: " cm" - minimumValue: -10 - realStepSize: 1 - decimals: 1 - colorScheme: hifi.colorSchemes.dark - - onEditingFinished: { - sendConfigurationSettings(); - } - } - } - - RalewayBold { - id: additional - - text: "Additional Trackers" - size: 12 - - color: hifi.colors.white - - anchors.top: (handOffset.visible ? handOffset.bottom : handConfig.bottom) - anchors.topMargin: (handOffset.visible ? 22 : 10) - anchors.left: parent.left - anchors.leftMargin: leftMargin - } - - RalewayRegular { - id: info - - text: "See Recommended Tracker Placement" - color: hifi.colors.blueHighlight - size: 10 - anchors { - left: additional.right - leftMargin: 10 - verticalCenter: additional.verticalCenter - } - - Rectangle { - id: selected - color: hifi.colors.blueHighlight - - width: info.width - height: 1 - - anchors { - top: info.bottom - topMargin: 1 - left: info.left - right: info.right - } - - visible: false - } - - MouseArea { - anchors.fill: parent; - hoverEnabled: true - - onEntered: { - selected.visible = true; - } - - onExited: { - selected.visible = false; - } - onClicked: { - stack.messageVisible = true; - } - } - } - - Row { - id: feetConfig - anchors.top: additional.bottom - anchors.topMargin: 15 - anchors.left: openVrConfiguration.left - anchors.leftMargin: leftMargin + 10 - spacing: 10 - - HifiControls.CheckBox { - id: feetBox - width: 15 - height: 15 - boxRadius: 7 - - onClicked: { - if (!checked) { - shoulderBox.checked = false; - chestBox.checked = false; - hipBox.checked = false; - } - sendConfigurationSettings(); - } - } - - RalewayBold { - size: 12 - text: "Feet" - color: hifi.colors.lightGrayText - } - } - - Row { - id: hipConfig - anchors.top: feetConfig.bottom - anchors.topMargin: 15 - anchors.left: openVrConfiguration.left - anchors.leftMargin: leftMargin + 10 - spacing: 10 - - HifiControls.CheckBox { - id: hipBox - width: 15 - height: 15 - boxRadius: 7 - - onClicked: { - if (checked) { - feetBox.checked = true; - } - - if (chestChecked) { - checked = true; - } - sendConfigurationSettings(); - } - } - - RalewayBold { - size: 12 - text: "Hips" - color: hifi.colors.lightGrayText - } - - RalewayRegular { - size: 12 - text: "requires feet" - color: hifi.colors.lightGray - } - } - - - Row { - id: chestConfig - anchors.top: hipConfig.bottom - anchors.topMargin: 15 - anchors.left: openVrConfiguration.left - anchors.leftMargin: leftMargin + 10 - spacing: 10 - - HifiControls.CheckBox { - id: chestBox - width: 15 - height: 15 - boxRadius: 7 - - onClicked: { - if (checked) { - hipBox.checked = true; - feetBox.checked = true; - shoulderBox.checked = false; - } - sendConfigurationSettings(); - } - } - - RalewayBold { - size: 12 - text: "Chest" - color: hifi.colors.lightGrayText - } - - RalewayRegular { - size: 12 - text: "requires hips" - color: hifi.colors.lightGray - } - } - - - Row { - id: shoulderConfig - anchors.top: chestConfig.bottom - anchors.topMargin: 15 - anchors.left: openVrConfiguration.left - anchors.leftMargin: leftMargin + 10 - spacing: 10 - - HifiControls.CheckBox { - id: shoulderBox - width: 15 - height: 15 - boxRadius: 7 - - onClicked: { - if (checked) { - hipBox.checked = true; - feetBox.checked = true; - chestBox.checked = false; - } - sendConfigurationSettings(); - } - } - - RalewayBold { - size: 12 - text: "Shoulders" - color: hifi.colors.lightGrayText - } - - RalewayRegular { - size: 12 - text: "requires hips" - color: hifi.colors.lightGray - } - } - - Row { - id: shoulderAdditionalConfig - visible: shoulderBox.checked - anchors.top: shoulderConfig.bottom - anchors.topMargin: 5 - anchors.left: openVrConfiguration.left - anchors.leftMargin: leftMargin + 20 - spacing: 10 - - HifiControls.SpinBox { - id: armCircumference - decimals: 1 - width: 160 - suffix: " cm" - label: "Arm Circumference" - minimumValue: 0 - realStepSize: 1.0 - colorScheme: hifi.colorSchemes.dark - realValue: 33.0 - - onEditingFinished: { - sendConfigurationSettings(); - } - } - - HifiControls.SpinBox { - id: shoulderWidth - width: 160 - label: "Shoulder Width" - suffix: " cm" - minimumValue: 0 - realStepSize: 1.0 - decimals: 1 - colorScheme: hifi.colorSchemes.dark - realValue: 48 - - onEditingFinished: { - sendConfigurationSettings(); - } - } - } - - Separator { - id: bottomSeperator - width: parent.width - anchors.top: shoulderAdditionalConfig.visible ? shoulderAdditionalConfig.bottom : shoulderConfig.bottom - anchors.topMargin: (shoulderAdditionalConfig.visible ? 25 : 10) - } - - Rectangle { - id: calibrationButton - property int color: hifi.buttons.blue - property int colorScheme: hifi.colorSchemes.light - property string glyph: hifi.glyphs.avatar1 - property bool enabled: false - property bool pressed: false - property bool hovered: false - property int size: 32 - property string text: "apply" - property int padding: 12 - - width: glyphButton.width + calibrationText.width + padding - height: hifi.dimensions.controlLineHeight - anchors.top: bottomSeperator.bottom - anchors.topMargin: 15 - anchors.left: parent.left - anchors.leftMargin: leftMargin - - radius: hifi.buttons.radius - - gradient: Gradient { - GradientStop { - position: 0.2 - color: { - if (!calibrationButton.enabled) { - hifi.buttons.disabledColorStart[calibrationButton.colorScheme] - } else if (calibrationButton.pressed) { - hifi.buttons.pressedColor[calibrationButton.color] - } else if (calibrationButton.hovered) { - hifi.buttons.hoveredColor[calibrationButton.color] - } else { - hifi.buttons.colorStart[calibrationButton.color] - } - } - } - - GradientStop { - position: 1.0 - color: { - if (!calibrationButton.enabled) { - hifi.buttons.disabledColorFinish[calibrationButton.colorScheme] - } else if (calibrationButton.pressed) { - hifi.buttons.pressedColor[calibrationButton.color] - } else if (calibrationButton.hovered) { - hifi.buttons.hoveredColor[calibrationButton.color] - } else { - hifi.buttons.colorFinish[calibrationButton.color] - } - } - } - } - - HiFiGlyphs { - id: glyphButton - color: enabled ? hifi.buttons.textColor[calibrationButton.color] - : hifi.buttons.disabledTextColor[calibrationButton.colorScheme] - text: calibrationButton.glyph - size: calibrationButton.size - - anchors { - top: parent.top - bottom: parent.bottom - bottomMargin: 1 - } - } - - RalewayBold { - id: calibrationText - font.capitalization: Font.AllUppercase - color: enabled ? hifi.buttons.textColor[calibrationButton.color] - : hifi.buttons.disabledTextColor[calibrationButton.colorScheme] - size: hifi.fontSizes.buttonLabel - text: calibrationButton.text - - anchors { - left: glyphButton.right - top: parent.top - topMargin: 7 - } - } - - MouseArea { - anchors.fill: parent - hoverEnabled: true - onClicked: { - if (calibrationButton.enabled) { - if (openVrConfiguration.state === buttonState.apply) { - InputConfiguration.uncalibratePlugin(pluginName); - updateCalibrationButton(); - } else { - calibrationTimer.interval = timeToCalibrate.realValue * 1000 - openVrConfiguration.countDown = timeToCalibrate.realValue; - var calibratingScreen = screen.createObject(); - stack.push(calibratingScreen); - calibratingScreen.canceled.connect(cancelCalibration); - calibratingScreen.restart.connect(restartCalibration); - calibratingScreen.start(calibrationTimer.interval, timeToCalibrate.realValue); - calibrationTimer.start(); - } - } - } - - onPressed: { - calibrationButton.pressed = true; - } - - onReleased: { - calibrationButton.pressed = false; - } - - onEntered: { - calibrationButton.hovered = true; - } - - onExited: { - calibrationButton.hovered = false; - } - } - } - - Timer { - id: calibrationTimer - repeat: false - interval: 20 - onTriggered: { - InputConfiguration.calibratePlugin(pluginName) - } - } - - Timer { - id: displayTimer - repeat: false - interval: 3000 - onTriggered: { - } - } + contentWidth: openVrConfiguration.width + contentHeight: 550 + flickableDirection: Flickable.VerticalFlick Component.onCompleted: { - InputConfiguration.calibrationStatus.connect(calibrationStatusInfo); - lastConfiguration = composeConfigurationSettings(); + config.createObject(flick.contentItem); } + Component { + id: config + Rectangle { + id: openVrConfiguration + property int leftMargin: 75 + property int countDown: 0 + property string pluginName: "" + property var displayInformation: null - Component.onDestruction: { - var settings = InputConfiguration.configurationSettings(pluginName); - var data = { - "num_pucks": settings["puckCount"] - } - UserActivityLogger.logAction("mocap_ui_close_dialog", data); - } + readonly property bool feetChecked: feetBox.checked + readonly property bool hipsChecked: hipBox.checked + readonly property bool chestChecked: chestBox.checked + readonly property bool shouldersChecked: shoulderBox.checked + readonly property bool hmdHead: headBox.checked + readonly property bool headPuck: headPuckBox.checked + readonly property bool handController: handBox.checked - HifiControls.SpinBox { - id: timeToCalibrate - width: 70 - anchors.top: calibrationButton.bottom - anchors.topMargin: 20 - anchors.left: parent.left - anchors.leftMargin: leftMargin + readonly property bool handPuck: handPuckBox.checked + readonly property bool hmdDesktop: hmdInDesktop.checked - minimumValue: 5 - realValue: 5 - colorScheme: hifi.colorSchemes.dark + property int state: buttonState.disabled + property var lastConfiguration: null - onEditingFinished: { - calibrationTimer.interval = realValue * 1000; - openVrConfiguration.countDown = realValue; - numberAnimation.duration = calibrationTimer.interval; - } - } + HifiConstants { id: hifi } - RalewayBold { - id: delayTextInfo - size: 10 - text: "Delay Before Calibration Starts" - color: hifi.colors.white + Component { id: screen; CalibratingScreen {} } + QtObject { + id: buttonState + readonly property int disabled: 0 + readonly property int apply: 1 + readonly property int applyAndCalibrate: 2 + readonly property int calibrate: 3 - anchors { - left: timeToCalibrate.right - leftMargin: 20 - verticalCenter: timeToCalibrate.verticalCenter - } - } - - RalewayRegular { - size: 12 - text: "sec" - color: hifi.colors.lightGray - - anchors { - left: delayTextInfo.right - leftMargin: 10 - verticalCenter: delayTextInfo.verticalCenter - } - } - - Separator { - id: advanceSeperator - width: parent.width - anchors.top: timeToCalibrate.bottom - anchors.topMargin: 10 - } - - RalewayBold { - id: advanceSettings - - text: "Advanced Settings" - size: 12 - - color: hifi.colors.white - - anchors.top: advanceSeperator.bottom - anchors.topMargin: 10 - anchors.left: parent.left - anchors.leftMargin: leftMargin - } - - - HifiControls.CheckBox { - id: viveInDesktop - width: 15 - height: 15 - boxRadius: 7 - - anchors.top: advanceSettings.bottom - anchors.topMargin: 5 - anchors.left: openVrConfiguration.left - anchors.leftMargin: leftMargin + 10 - - onClicked: { - if (!checked & hmdInDesktop.checked) { - headBox.checked = true; - headPuckBox.checked = false; - hmdInDesktop.checked = false; - } - sendConfigurationSettings(); - } - } - - RalewayBold { - id: viveDesktopText - size: 10 - text: "Use " + stack.selectedPlugin + " devices in desktop mode" - color: hifi.colors.white - - anchors { - left: viveInDesktop.right - leftMargin: 5 - verticalCenter: viveInDesktop.verticalCenter - } - } - - - NumberAnimation { - id: numberAnimation - target: openVrConfiguration - property: "countDown" - to: 0 - } - - - function logAction(action, status) { - console.log("calibrated from ui"); - var data = { - "num_pucks": status["puckCount"], - "puck_configuration": status["configuration"], - "head_puck": status["head_puck"], - "hand_puck": status["hand_pucks"] - } - UserActivityLogger.logAction(action, data); - } - - function calibrationStatusInfo(status) { - var calibrationScreen = stack.currentItem; - - if (!status["UI"]) { - calibratingScreen = screen.createObject(); - stack.push(calibratingScreen); - } - - if (status["calibrated"]) { - calibrationScreen.success(); - - if (status["UI"]) { - logAction("mocap_ui_success", status); } - } else if (!status["calibrated"]) { - calibrationScreen.failure(); + MouseArea { + id: mouseArea - if (status["UI"]) { - logAction("mocap_ui_failed", status); + anchors.fill: parent + propagateComposedEvents: true + onPressed: { + parent.forceActiveFocus() + mouse.accepted = false; + } + } + + color: hifi.colors.baseGray + + RalewayBold { + id: head + + text: "Head:" + size: 12 + + color: "white" + anchors.left: openVrConfiguration.left + anchors.leftMargin: leftMargin + } + + Row { + id: headConfig + anchors.top: head.bottom + anchors.topMargin: 5 + anchors.left: openVrConfiguration.left + anchors.leftMargin: leftMargin + 10 + spacing: 10 + + HifiControls.CheckBox { + id: headBox + width: 15 + height: 15 + boxRadius: 7 + + onClicked: { + if (checked) { + headPuckBox.checked = false; + hmdInDesktop.checked = false; + } else { + checked = true; + } + sendConfigurationSettings(); + } + } + + RalewayBold { + size: 12 + text: stack.selectedPlugin + " HMD" + color: hifi.colors.lightGrayText + } + + HifiControls.CheckBox { + id: headPuckBox + width: 15 + height: 15 + boxRadius: 7 + + onClicked: { + if (checked) { + headBox.checked = false; + hmdInDesktop.checked = false; + } else { + checked = true; + } + sendConfigurationSettings(); + } + } + + RalewayBold { + size: 12 + text: "Tracker" + color: hifi.colors.lightGrayText + } + + HifiControls.CheckBox { + id: hmdInDesktop + width: 15 + height: 15 + boxRadius: 7 + visible: viveInDesktop.checked + + anchors.top: viveInDesktop.bottom + anchors.topMargin: 5 + anchors.left: openVrConfiguration.left + anchors.leftMargin: leftMargin + 10 + + onClicked: { + if (checked) { + headBox.checked = false; + headPuckBox.checked = false; + } else { + checked = true; + } + sendConfigurationSettings(); + } + } + + RalewayBold { + size: 12 + visible: viveInDesktop.checked + text: "None" + color: hifi.colors.lightGrayText + } + } + + Row { + id: headOffsets + anchors.top: headConfig.bottom + anchors.topMargin: 5 + anchors.left: openVrConfiguration.left + anchors.leftMargin: leftMargin + 10 + spacing: 10 + visible: headPuckBox.checked + HifiControls.SpinBox { + id: headYOffset + decimals: 1 + width: 112 + label: "Y Offset" + suffix: " cm" + minimumValue: -10 + realStepSize: 1 + realValue: -5 + colorScheme: hifi.colorSchemes.dark + + onEditingFinished: { + sendConfigurationSettings(); + } + } + + + HifiControls.SpinBox { + id: headZOffset + width: 112 + label: "Z Offset" + minimumValue: -10 + realStepSize: 1 + decimals: 1 + suffix: " cm" + realValue: -5 + colorScheme: hifi.colorSchemes.dark + + onEditingFinished: { + sendConfigurationSettings(); + } + } + } + + RalewayBold { + id: hands + + text: "Hands:" + size: 12 + + color: "white" + + anchors.top: (headOffsets.visible ? headOffsets.bottom : headConfig.bottom) + anchors.topMargin: (headOffsets.visible ? 22 : 10) + anchors.left: openVrConfiguration.left + anchors.leftMargin: leftMargin + } + + Row { + id: handConfig + anchors.top: hands.bottom + anchors.topMargin: 5 + anchors.left: openVrConfiguration.left + anchors.leftMargin: leftMargin + 10 + spacing: 10 + + HifiControls.CheckBox { + id: handBox + width: 15 + height: 15 + boxRadius: 7 + + onClicked: { + if (checked) { + handPuckBox.checked = false; + } else { + checked = true; + } + sendConfigurationSettings(); + } + } + + RalewayBold { + size: 12 + text: "Controllers" + color: hifi.colors.lightGrayText + } + + HifiControls.CheckBox { + id: handPuckBox + width: 12 + height: 15 + boxRadius: 7 + + onClicked: { + if (checked) { + handBox.checked = false; + } else { + checked = true; + } + sendConfigurationSettings(); + } + } + + RalewayBold { + size: 12 + text: "Trackers" + color: hifi.colors.lightGrayText + } + } + + Row { + id: handOffset + visible: handPuckBox.checked + anchors.top: handConfig.bottom + anchors.topMargin: 5 + anchors.left: openVrConfiguration.left + anchors.leftMargin: leftMargin + 10 + spacing: 10 + + HifiControls.SpinBox { + id: handYOffset + decimals: 1 + width: 112 + suffix: " cm" + label: "Y Offset" + minimumValue: -10 + realStepSize: 1 + colorScheme: hifi.colorSchemes.dark + + onEditingFinished: { + sendConfigurationSettings(); + } + } + + + HifiControls.SpinBox { + id: handZOffset + width: 112 + label: "Z Offset" + suffix: " cm" + minimumValue: -10 + realStepSize: 1 + decimals: 1 + colorScheme: hifi.colorSchemes.dark + + onEditingFinished: { + sendConfigurationSettings(); + } + } + } + + RalewayBold { + id: additional + + text: "Additional Trackers" + size: 12 + + color: hifi.colors.white + + anchors.top: (handOffset.visible ? handOffset.bottom : handConfig.bottom) + anchors.topMargin: (handOffset.visible ? 22 : 10) + anchors.left: parent.left + anchors.leftMargin: leftMargin + } + + RalewayRegular { + id: info + + text: "See Recommended Tracker Placement" + color: hifi.colors.blueHighlight + size: 10 + anchors { + left: additional.right + leftMargin: 10 + verticalCenter: additional.verticalCenter + } + + Rectangle { + id: selected + color: hifi.colors.blueHighlight + + width: info.width + height: 1 + + anchors { + top: info.bottom + topMargin: 1 + left: info.left + right: info.right + } + + visible: false + } + + MouseArea { + anchors.fill: parent; + hoverEnabled: true + + onEntered: { + selected.visible = true; + } + + onExited: { + selected.visible = false; + } + onClicked: { + stack.messageVisible = true; + } + } + } + + Row { + id: feetConfig + anchors.top: additional.bottom + anchors.topMargin: 15 + anchors.left: parent.left + anchors.leftMargin: leftMargin + 10 + spacing: 10 + + HifiControls.CheckBox { + id: feetBox + width: 15 + height: 15 + boxRadius: 7 + + onClicked: { + if (!checked) { + shoulderBox.checked = false; + chestBox.checked = false; + hipBox.checked = false; + } + sendConfigurationSettings(); + } + } + + RalewayBold { + size: 12 + text: "Feet" + color: hifi.colors.lightGrayText + } + } + + Row { + id: hipConfig + anchors.top: feetConfig.bottom + anchors.topMargin: 15 + anchors.left: openVrConfiguration.left + anchors.leftMargin: leftMargin + 10 + spacing: 10 + + HifiControls.CheckBox { + id: hipBox + width: 15 + height: 15 + boxRadius: 7 + + onClicked: { + if (checked) { + feetBox.checked = true; + } + + if (chestChecked) { + checked = true; + } + sendConfigurationSettings(); + } + } + + RalewayBold { + size: 12 + text: "Hips" + color: hifi.colors.lightGrayText + } + + RalewayRegular { + size: 12 + text: "requires feet" + color: hifi.colors.lightGray + } + } + + + Row { + id: chestConfig + anchors.top: hipConfig.bottom + anchors.topMargin: 15 + anchors.left: openVrConfiguration.left + anchors.leftMargin: leftMargin + 10 + spacing: 10 + + HifiControls.CheckBox { + id: chestBox + width: 15 + height: 15 + boxRadius: 7 + + onClicked: { + if (checked) { + hipBox.checked = true; + feetBox.checked = true; + shoulderBox.checked = false; + } + sendConfigurationSettings(); + } + } + + RalewayBold { + size: 12 + text: "Chest" + color: hifi.colors.lightGrayText + } + + RalewayRegular { + size: 12 + text: "requires hips" + color: hifi.colors.lightGray + } + } + + + Row { + id: shoulderConfig + anchors.top: chestConfig.bottom + anchors.topMargin: 15 + anchors.left: openVrConfiguration.left + anchors.leftMargin: leftMargin + 10 + spacing: 10 + + HifiControls.CheckBox { + id: shoulderBox + width: 15 + height: 15 + boxRadius: 7 + + onClicked: { + if (checked) { + hipBox.checked = true; + feetBox.checked = true; + chestBox.checked = false; + } + sendConfigurationSettings(); + } + } + + RalewayBold { + size: 12 + text: "Shoulders" + color: hifi.colors.lightGrayText + } + + RalewayRegular { + size: 12 + text: "requires hips" + color: hifi.colors.lightGray + } + } + + Row { + id: shoulderAdditionalConfig + visible: shoulderBox.checked + anchors.top: shoulderConfig.bottom + anchors.topMargin: 5 + anchors.left: openVrConfiguration.left + anchors.leftMargin: leftMargin + 20 + spacing: 10 + + HifiControls.SpinBox { + id: armCircumference + decimals: 1 + width: 160 + suffix: " cm" + label: "Arm Circumference" + minimumValue: 0 + realStepSize: 1.0 + colorScheme: hifi.colorSchemes.dark + realValue: 33.0 + + onEditingFinished: { + sendConfigurationSettings(); + } + } + + HifiControls.SpinBox { + id: shoulderWidth + width: 160 + label: "Shoulder Width" + suffix: " cm" + minimumValue: 0 + realStepSize: 1.0 + decimals: 1 + colorScheme: hifi.colorSchemes.dark + realValue: 48 + + onEditingFinished: { + sendConfigurationSettings(); + } + } + } + + Separator { + id: bottomSeperator + width: parent.width + anchors.top: shoulderAdditionalConfig.visible ? shoulderAdditionalConfig.bottom : shoulderConfig.bottom + anchors.topMargin: (shoulderAdditionalConfig.visible ? 25 : 10) + } + + Rectangle { + id: calibrationButton + property int color: hifi.buttons.blue + property int colorScheme: hifi.colorSchemes.light + property string glyph: hifi.glyphs.avatar1 + property bool enabled: false + property bool pressed: false + property bool hovered: false + property int size: 32 + property string text: "apply" + property int padding: 12 + + width: glyphButton.width + calibrationText.width + padding + height: hifi.dimensions.controlLineHeight + anchors.top: bottomSeperator.bottom + anchors.topMargin: 15 + anchors.left: parent.left + anchors.leftMargin: leftMargin + + radius: hifi.buttons.radius + + gradient: Gradient { + GradientStop { + position: 0.2 + color: { + if (!calibrationButton.enabled) { + hifi.buttons.disabledColorStart[calibrationButton.colorScheme] + } else if (calibrationButton.pressed) { + hifi.buttons.pressedColor[calibrationButton.color] + } else if (calibrationButton.hovered) { + hifi.buttons.hoveredColor[calibrationButton.color] + } else { + hifi.buttons.colorStart[calibrationButton.color] + } + } + } + + GradientStop { + position: 1.0 + color: { + if (!calibrationButton.enabled) { + hifi.buttons.disabledColorFinish[calibrationButton.colorScheme] + } else if (calibrationButton.pressed) { + hifi.buttons.pressedColor[calibrationButton.color] + } else if (calibrationButton.hovered) { + hifi.buttons.hoveredColor[calibrationButton.color] + } else { + hifi.buttons.colorFinish[calibrationButton.color] + } + } + } + } + + HiFiGlyphs { + id: glyphButton + color: enabled ? hifi.buttons.textColor[calibrationButton.color] + : hifi.buttons.disabledTextColor[calibrationButton.colorScheme] + text: calibrationButton.glyph + size: calibrationButton.size + + anchors { + top: parent.top + bottom: parent.bottom + bottomMargin: 1 + } + } + + RalewayBold { + id: calibrationText + font.capitalization: Font.AllUppercase + color: enabled ? hifi.buttons.textColor[calibrationButton.color] + : hifi.buttons.disabledTextColor[calibrationButton.colorScheme] + size: hifi.fontSizes.buttonLabel + text: calibrationButton.text + + anchors { + left: glyphButton.right + top: parent.top + topMargin: 7 + } + } + + MouseArea { + anchors.fill: parent + hoverEnabled: true + onClicked: { + if (calibrationButton.enabled) { + if (openVrConfiguration.state === buttonState.apply) { + InputConfiguration.uncalibratePlugin(pluginName); + updateCalibrationButton(); + } else { + calibrationTimer.interval = timeToCalibrate.realValue * 1000 + openVrConfiguration.countDown = timeToCalibrate.realValue; + var calibratingScreen = screen.createObject(); + stack.push(calibratingScreen); + calibratingScreen.canceled.connect(cancelCalibration); + calibratingScreen.restart.connect(restartCalibration); + calibratingScreen.start(calibrationTimer.interval, timeToCalibrate.realValue); + calibrationTimer.start(); + } + } + } + + onPressed: { + calibrationButton.pressed = true; + } + + onReleased: { + calibrationButton.pressed = false; + } + + onEntered: { + calibrationButton.hovered = true; + } + + onExited: { + calibrationButton.hovered = false; + } + } + } + + Timer { + id: calibrationTimer + repeat: false + interval: 20 + onTriggered: { + InputConfiguration.calibratePlugin(pluginName) + } + } + + Timer { + id: displayTimer + repeat: false + interval: 3000 + onTriggered: { + } + } + + Component.onCompleted: { + InputConfiguration.calibrationStatus.connect(calibrationStatusInfo); + lastConfiguration = composeConfigurationSettings(); + } + + Component.onDestruction: { + var settings = InputConfiguration.configurationSettings(pluginName); + var data = { + "num_pucks": settings["puckCount"] + } + UserActivityLogger.logAction("mocap_ui_close_dialog", data); + } + + HifiControls.SpinBox { + id: timeToCalibrate + width: 70 + anchors.top: calibrationButton.bottom + anchors.topMargin: 20 + anchors.left: parent.left + anchors.leftMargin: leftMargin + + minimumValue: 5 + realValue: 5 + colorScheme: hifi.colorSchemes.dark + + onEditingFinished: { + calibrationTimer.interval = realValue * 1000; + openVrConfiguration.countDown = realValue; + numberAnimation.duration = calibrationTimer.interval; + } + } + + RalewayBold { + id: delayTextInfo + size: 10 + text: "Delay Before Calibration Starts" + color: hifi.colors.white + + anchors { + left: timeToCalibrate.right + leftMargin: 20 + verticalCenter: timeToCalibrate.verticalCenter + } + } + + RalewayRegular { + size: 12 + text: "sec" + color: hifi.colors.lightGray + + anchors { + left: delayTextInfo.right + leftMargin: 10 + verticalCenter: delayTextInfo.verticalCenter + } + } + + Separator { + id: advanceSeperator + width: parent.width + anchors.top: timeToCalibrate.bottom + anchors.topMargin: 10 + } + + RalewayBold { + id: advanceSettings + + text: "Advanced Settings" + size: 12 + + color: hifi.colors.white + + anchors.top: advanceSeperator.bottom + anchors.topMargin: 10 + anchors.left: parent.left + anchors.leftMargin: leftMargin + } + + + HifiControls.CheckBox { + id: viveInDesktop + width: 15 + height: 15 + boxRadius: 7 + + anchors.top: advanceSettings.bottom + anchors.topMargin: 5 + anchors.left: openVrConfiguration.left + anchors.leftMargin: leftMargin + 10 + + onClicked: { + if (!checked & hmdInDesktop.checked) { + headBox.checked = true; + headPuckBox.checked = false; + hmdInDesktop.checked = false; + } + sendConfigurationSettings(); + } + } + + RalewayBold { + id: viveDesktopText + size: 10 + text: "Use " + stack.selectedPlugin + " devices in desktop mode" + color: hifi.colors.white + + anchors { + left: viveInDesktop.right + leftMargin: 5 + verticalCenter: viveInDesktop.verticalCenter + } + } + + + NumberAnimation { + id: numberAnimation + target: openVrConfiguration + property: "countDown" + to: 0 + } + + + function logAction(action, status) { + console.log("calibrated from ui"); + var data = { + "num_pucks": status["puckCount"], + "puck_configuration": status["configuration"], + "head_puck": status["head_puck"], + "hand_puck": status["hand_pucks"] + } + UserActivityLogger.logAction(action, data); + } + + function calibrationStatusInfo(status) { + var calibrationScreen = stack.currentItem; + + if (!status["UI"]) { + calibratingScreen = screen.createObject(); + stack.push(calibratingScreen); + } + + if (status["calibrated"]) { + calibrationScreen.success(); + + if (status["UI"]) { + logAction("mocap_ui_success", status); + } + + } else if (!status["calibrated"]) { + calibrationScreen.failure(); + + if (status["UI"]) { + logAction("mocap_ui_failed", status); + } + } + updateCalibrationButton(); + } + + + function trackersForConfiguration() { + var pucksNeeded = 0; + + if (headPuckBox.checked) { + pucksNeeded++; + } + + if (feetBox.checked) { + pucksNeeded++; + } + + if (hipBox.checked) { + pucksNeeded++; + } + + if (chestBox.checked) { + pucksNeeded++; + } + + if (shoulderBox.checked) { + pucksNeeded++; + } + + return pucksNeeded; + } + + function cancelCalibration() { + calibrationTimer.stop(); + } + + function restartCalibration() { + calibrationTimer.restart(); + } + + function displayConfiguration() { + var settings = InputConfiguration.configurationSettings(pluginName); + var configurationType = settings["trackerConfiguration"]; + displayTrackerConfiguration(configurationType); + + + var HmdHead = settings["HMDHead"]; + var viveController = settings["handController"]; + var desktopMode = settings["desktopMode"]; + var hmdDesktopPosition = settings["hmdDesktopTracking"]; + + armCircumference.realValue = settings.armCircumference; + shoulderWidth.realValue = settings.shoulderWidth; + + if (HmdHead) { + headBox.checked = true; + headPuckBox.checked = false; + } else { + headPuckBox.checked = true; + headBox.checked = false; + } + + if (viveController) { + handBox.checked = true; + handPuckBox.checked = false; + } else { + handPuckBox.checked = true; + handBox.checked = false; + } + + viveInDesktop.checked = desktopMode; + hmdInDesktop.checked = hmdDesktopPosition; + + initializeButtonState(); + updateCalibrationText(); + + var data = { + "num_pucks": settings["puckCount"] + }; + + UserActivityLogger.logAction("mocap_ui_open_dialog", data); + } + + function displayTrackerConfiguration(type) { + if (type === "Feet") { + feetBox.checked = true; + } else if (type === "FeetAndHips") { + feetBox.checked = true; + hipBox.checked = true; + } else if (type === "FeetHipsChest") { + feetBox.checked = true; + hipBox.checked = true; + chestBox.checked = true; + } else if (type === "FeetHipsAndShoulders") { + feetBox.checked = true; + hipBox.checked = true; + shoulderBox.checked = true; + } else if (type === "FeetHipsChestAndShoulders") { + feetBox.checked = true; + hipBox.checked = true; + chestBox.checked = true; + shoulderBox.checked = true; + } + } + + function updateButtonState() { + var settings = composeConfigurationSettings(); + var bodySetting = settings["bodyConfiguration"]; + var headSetting = settings["headConfiguration"]; + var headOverride = headSetting["override"]; + var handSetting = settings["handConfiguration"]; + var handOverride = handSetting["override"]; + + var settingsChanged = false; + + if (lastConfiguration["bodyConfiguration"] !== bodySetting) { + settingsChanged = true; + } + + var lastHead = lastConfiguration["headConfiguration"]; + if (lastHead["override"] !== headOverride) { + settingsChanged = true; + } + + var lastHand = lastConfiguration["handConfiguration"]; + if (lastHand["override"] !== handOverride) { + settingsChanged = true; + } + + if (settingsChanged) { + if ((!handOverride) && (!headOverride) && (bodySetting === "None")) { + state = buttonState.apply; + } else { + state = buttonState.applyAndCalibrate; + } + } else { + if (state == buttonState.apply) { + state = buttonState.disabled; + } else if (state == buttonState.applyAndCalibrate) { + state = buttonState.calibrate; + } + } + + lastConfiguration = settings; + } + + function initializeButtonState() { + var settings = composeConfigurationSettings(); + var bodySetting = settings["bodyConfiguration"]; + var headSetting = settings["headConfiguration"]; + var headOverride = headSetting["override"]; + var handSetting = settings["handConfiguration"]; + var handOverride = handSetting["override"]; + + + if ((!handOverride) && (!headOverride) && (bodySetting === "None")) { + state = buttonState.disabled; + } else { + state = buttonState.calibrate; + } + } + + function updateCalibrationButton() { + updateButtonState(); + updateCalibrationText(); + } + + function updateCalibrationText() { + if (buttonState.disabled == state) { + calibrationButton.enabled = false; + calibrationButton.text = "Apply"; + } else if (buttonState.apply == state) { + calibrationButton.enabled = true; + calibrationButton.text = "Apply"; + } else if (buttonState.applyAndCalibrate == state) { + calibrationButton.enabled = true; + calibrationButton.text = "Apply And Calibrate"; + } else if (buttonState.calibrate == state) { + calibrationButton.enabled = true; + calibrationButton.text = "Calibrate"; + } + } + + function composeConfigurationSettings() { + var trackerConfiguration = ""; + var overrideHead = false; + var overrideHandController = false; + + if (shouldersChecked && chestChecked) { + trackerConfiguration = "FeetHipsChestAndShoulders"; + } else if (shouldersChecked) { + trackerConfiguration = "FeetHipsAndShoulders"; + } else if (chestChecked) { + trackerConfiguration = "FeetHipsAndChest"; + } else if (hipsChecked) { + trackerConfiguration = "FeetAndHips"; + } else if (feetChecked) { + trackerConfiguration = "Feet"; + } else { + trackerConfiguration = "None"; + } + + if (headPuck) { + overrideHead = true; + } else if (hmdHead) { + overrideHead = false; + } + + if (handController) { + overrideHandController = false; + } else if (handPuck) { + overrideHandController = true; + } + + var headObject = { + "override": overrideHead, + "Y": headYOffset.realValue, + "Z": headZOffset.realValue + } + + var handObject = { + "override": overrideHandController, + "Y": handYOffset.realValue, + "Z": handZOffset.realValue + } + + var settingsObject = { + "bodyConfiguration": trackerConfiguration, + "headConfiguration": headObject, + "handConfiguration": handObject, + "armCircumference": armCircumference.realValue, + "shoulderWidth": shoulderWidth.realValue, + "desktopMode": viveInDesktop.checked, + "hmdDesktopTracking": hmdInDesktop.checked + } + + return settingsObject; + } + + function sendConfigurationSettings() { + var settings = composeConfigurationSettings(); + InputConfiguration.setConfigurationSettings(settings, pluginName); + updateCalibrationButton(); } } - updateCalibrationButton(); - } - - - function trackersForConfiguration() { - var pucksNeeded = 0; - - if (headPuckBox.checked) { - pucksNeeded++; - } - - if (feetBox.checked) { - pucksNeeded++; - } - - if (hipBox.checked) { - pucksNeeded++; - } - - if (chestBox.checked) { - pucksNeeded++; - } - - if (shoulderBox.checked) { - pucksNeeded++; - } - - return pucksNeeded; - } - - function cancelCalibration() { - calibrationTimer.stop(); - } - - function restartCalibration() { - calibrationTimer.restart(); - } - - function displayConfiguration() { - var settings = InputConfiguration.configurationSettings(pluginName); - var configurationType = settings["trackerConfiguration"]; - displayTrackerConfiguration(configurationType); - - - var HmdHead = settings["HMDHead"]; - var viveController = settings["handController"]; - var desktopMode = settings["desktopMode"]; - var hmdDesktopPosition = settings["hmdDesktopTracking"]; - - armCircumference.realValue = settings.armCircumference; - shoulderWidth.realValue = settings.shoulderWidth; - - if (HmdHead) { - headBox.checked = true; - headPuckBox.checked = false; - } else { - headPuckBox.checked = true; - headBox.checked = false; - } - - if (viveController) { - handBox.checked = true; - handPuckBox.checked = false; - } else { - handPuckBox.checked = true; - handBox.checked = false; - } - - viveInDesktop.checked = desktopMode; - hmdInDesktop.checked = hmdDesktopPosition; - - initializeButtonState(); - updateCalibrationText(); - - var data = { - "num_pucks": settings["puckCount"] - }; - - UserActivityLogger.logAction("mocap_ui_open_dialog", data); - } - - function displayTrackerConfiguration(type) { - if (type === "Feet") { - feetBox.checked = true; - } else if (type === "FeetAndHips") { - feetBox.checked = true; - hipBox.checked = true; - } else if (type === "FeetHipsChest") { - feetBox.checked = true; - hipBox.checked = true; - chestBox.checked = true; - } else if (type === "FeetHipsAndShoulders") { - feetBox.checked = true; - hipBox.checked = true; - shoulderBox.checked = true; - } else if (type === "FeetHipsChestAndShoulders") { - feetBox.checked = true; - hipBox.checked = true; - chestBox.checked = true; - shoulderBox.checked = true; - } - } - - function updateButtonState() { - var settings = composeConfigurationSettings(); - var bodySetting = settings["bodyConfiguration"]; - var headSetting = settings["headConfiguration"]; - var headOverride = headSetting["override"]; - var handSetting = settings["handConfiguration"]; - var handOverride = handSetting["override"]; - - var settingsChanged = false; - - if (lastConfiguration["bodyConfiguration"] !== bodySetting) { - settingsChanged = true; - } - - var lastHead = lastConfiguration["headConfiguration"]; - if (lastHead["override"] !== headOverride) { - settingsChanged = true; - } - - var lastHand = lastConfiguration["handConfiguration"]; - if (lastHand["override"] !== handOverride) { - settingsChanged = true; - } - - if (settingsChanged) { - if ((!handOverride) && (!headOverride) && (bodySetting === "None")) { - state = buttonState.apply; - } else { - state = buttonState.applyAndCalibrate; - } - } else { - if (state == buttonState.apply) { - state = buttonState.disabled; - } else if (state == buttonState.applyAndCalibrate) { - state = buttonState.calibrate; - } - } - - lastConfiguration = settings; - } - - function initializeButtonState() { - var settings = composeConfigurationSettings(); - var bodySetting = settings["bodyConfiguration"]; - var headSetting = settings["headConfiguration"]; - var headOverride = headSetting["override"]; - var handSetting = settings["handConfiguration"]; - var handOverride = handSetting["override"]; - - - if ((!handOverride) && (!headOverride) && (bodySetting === "None")) { - state = buttonState.disabled; - } else { - state = buttonState.calibrate; - } - } - - function updateCalibrationButton() { - updateButtonState(); - updateCalibrationText(); - } - - function updateCalibrationText() { - if (buttonState.disabled == state) { - calibrationButton.enabled = false; - calibrationButton.text = "Apply"; - } else if (buttonState.apply == state) { - calibrationButton.enabled = true; - calibrationButton.text = "Apply"; - } else if (buttonState.applyAndCalibrate == state) { - calibrationButton.enabled = true; - calibrationButton.text = "Apply And Calibrate"; - } else if (buttonState.calibrate == state) { - calibrationButton.enabled = true; - calibrationButton.text = "Calibrate"; - } - } - - function composeConfigurationSettings() { - var trackerConfiguration = ""; - var overrideHead = false; - var overrideHandController = false; - - if (shouldersChecked && chestChecked) { - trackerConfiguration = "FeetHipsChestAndShoulders"; - } else if (shouldersChecked) { - trackerConfiguration = "FeetHipsAndShoulders"; - } else if (chestChecked) { - trackerConfiguration = "FeetHipsAndChest"; - } else if (hipsChecked) { - trackerConfiguration = "FeetAndHips"; - } else if (feetChecked) { - trackerConfiguration = "Feet"; - } else { - trackerConfiguration = "None"; - } - - if (headPuck) { - overrideHead = true; - } else if (hmdHead) { - overrideHead = false; - } - - if (handController) { - overrideHandController = false; - } else if (handPuck) { - overrideHandController = true; - } - - var headObject = { - "override": overrideHead, - "Y": headYOffset.realValue, - "Z": headZOffset.realValue - } - - var handObject = { - "override": overrideHandController, - "Y": handYOffset.realValue, - "Z": handZOffset.realValue - } - - var settingsObject = { - "bodyConfiguration": trackerConfiguration, - "headConfiguration": headObject, - "handConfiguration": handObject, - "armCircumference": armCircumference.realValue, - "shoulderWidth": shoulderWidth.realValue, - "desktopMode": viveInDesktop.checked, - "hmdDesktopTracking": hmdInDesktop.checked - } - - return settingsObject; - } - - function sendConfigurationSettings() { - var settings = composeConfigurationSettings(); - InputConfiguration.setConfigurationSettings(settings, pluginName); - updateCalibrationButton(); } } From f5e2a6834b1da22048f9c9f907d4b702080a36ff Mon Sep 17 00:00:00 2001 From: Dante Ruiz Date: Mon, 4 Jun 2018 16:09:31 -0700 Subject: [PATCH 138/300] fixing some issues --- interface/resources/qml/controls-uit/ComboBox.qml | 4 ++++ interface/resources/qml/hifi/tablet/ControllerSettings.qml | 7 ++++--- .../resources/qml/hifi/tablet/OpenVrConfiguration.qml | 1 - 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/interface/resources/qml/controls-uit/ComboBox.qml b/interface/resources/qml/controls-uit/ComboBox.qml index ab8a6c2344..be8c9f6740 100644 --- a/interface/resources/qml/controls-uit/ComboBox.qml +++ b/interface/resources/qml/controls-uit/ComboBox.qml @@ -171,6 +171,10 @@ FocusScope { } } + function textAt(index) { + return comboBox.textAt(index); + } + HifiControls.Label { id: comboBoxLabel text: root.label diff --git a/interface/resources/qml/hifi/tablet/ControllerSettings.qml b/interface/resources/qml/hifi/tablet/ControllerSettings.qml index 7793b9926a..6101caef23 100644 --- a/interface/resources/qml/hifi/tablet/ControllerSettings.qml +++ b/interface/resources/qml/hifi/tablet/ControllerSettings.qml @@ -174,7 +174,7 @@ Item { text: "show all input devices" onClicked: { - inputPlugins(); + box.model = inputPlugins(); changeSource(); } } @@ -262,11 +262,12 @@ Item { function changeSource() { loader.source = ""; + var selectedDevice = box.textAt(box.currentIndex); var source = ""; - if (box.currentText == "Vive") { + if (selectedDevice == "HTC Vive") { source = InputConfiguration.configurationLayout("OpenVR"); } else { - source = InputConfiguration.configurationLayout(box.currentText); + source = InputConfiguration.configurationLayout(selectedDevice); } loader.source = source; diff --git a/interface/resources/qml/hifi/tablet/OpenVrConfiguration.qml b/interface/resources/qml/hifi/tablet/OpenVrConfiguration.qml index 1dbc603012..2ad5be5b47 100644 --- a/interface/resources/qml/hifi/tablet/OpenVrConfiguration.qml +++ b/interface/resources/qml/hifi/tablet/OpenVrConfiguration.qml @@ -20,7 +20,6 @@ Flickable { width: parent.width height: parent.height anchors.fill: parent - contentWidth: openVrConfiguration.width contentHeight: 550 flickableDirection: Flickable.VerticalFlick From c5ef5cfccbf0c0e02e072359fbed795f8e0db3aa Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Mon, 4 Jun 2018 16:13:18 -0700 Subject: [PATCH 139/300] Fix MS15582: In My Purchases, invisible buttons shouldn't be clickable --- .../qml/hifi/commerce/purchases/PurchasedItem.qml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/interface/resources/qml/hifi/commerce/purchases/PurchasedItem.qml b/interface/resources/qml/hifi/commerce/purchases/PurchasedItem.qml index 19b57354dc..b43372da5c 100644 --- a/interface/resources/qml/hifi/commerce/purchases/PurchasedItem.qml +++ b/interface/resources/qml/hifi/commerce/purchases/PurchasedItem.qml @@ -163,7 +163,6 @@ Item { Rectangle { id: contextCard; - z: 2; anchors.left: parent.left; anchors.leftMargin: 30; anchors.top: parent.top; @@ -337,7 +336,6 @@ Item { Rectangle { id: permissionExplanationCard; - z: 1; anchors.left: parent.left; anchors.leftMargin: 30; anchors.top: parent.top; @@ -596,8 +594,8 @@ Item { anchors.fill: parent; hoverEnabled: enabled; onClicked: { - contextCard.z = 1; - permissionExplanationCard.z = 0; + contextCard.visible = true; + permissionExplanationCard.visible = false; root.sendToPurchases({ method: 'flipCard' }); } onEntered: { @@ -779,8 +777,8 @@ Item { noPermissionGlyph.color = hifi.colors.redAccent; } onClicked: { - contextCard.z = 0; - permissionExplanationCard.z = 1; + contextCard.visible = false; + permissionExplanationCard.visible = true; root.sendToPurchases({ method: 'flipCard' }); } } From 61592cdadac1277e129ec378160c63aa80578586 Mon Sep 17 00:00:00 2001 From: amantley Date: Mon, 4 Jun 2018 16:37:47 -0700 Subject: [PATCH 140/300] completed first try at all changes for scripted blendshapes --- interface/src/avatar/MyHead.cpp | 4 +++- libraries/avatars/src/AvatarData.cpp | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/interface/src/avatar/MyHead.cpp b/interface/src/avatar/MyHead.cpp index 13d635bdd8..8f53522b5a 100644 --- a/interface/src/avatar/MyHead.cpp +++ b/interface/src/avatar/MyHead.cpp @@ -72,7 +72,9 @@ void MyHead::simulate(float deltaTime) { _transientBlendshapeCoefficients[MMMM_BLENDSHAPE] += _mouth2; _transientBlendshapeCoefficients[FUNNEL_BLENDSHAPE] += _mouth3; } - applyEyelidOffset(getFinalOrientationInWorldFrame()); + if (_owningAvatar->getHasProceduralEyeFaceMovement()) { + applyEyelidOffset(getFinalOrientationInWorldFrame()); + } } auto eyeTracker = DependencyManager::get(); _isEyeTrackerConnected = eyeTracker->isTracking(); diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index 247fc2a76a..7ae9ba1257 100644 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -1102,6 +1102,8 @@ int AvatarData::parseDataFromBuffer(const QByteArray& buffer) { int numBytesRead = sourceBuffer - startSection; _faceTrackerRate.increment(numBytesRead); _faceTrackerUpdateRate.increment(); + } else { + _headData->_blendshapeCoefficients.fill(0, _headData->_blendshapeCoefficients.size()); } if (hasJointData) { From f72f8c762b3731b137f21784d6e9e5dd6300e7fd Mon Sep 17 00:00:00 2001 From: howard-stearns Date: Mon, 4 Jun 2018 16:52:20 -0700 Subject: [PATCH 141/300] goto client-side filtering (preliminary) --- interface/resources/qml/hifi/Feed.qml | 15 ++++++++++----- .../resources/qml/hifi/models/PSFListModel.qml | 2 +- .../qml/hifi/tablet/TabletAddressDialog.qml | 4 ---- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/interface/resources/qml/hifi/Feed.qml b/interface/resources/qml/hifi/Feed.qml index 98721ba2e0..fcfb61b1ca 100644 --- a/interface/resources/qml/hifi/Feed.qml +++ b/interface/resources/qml/hifi/Feed.qml @@ -33,7 +33,6 @@ Column { property int stackedCardShadowHeight: 4; property int labelSize: 20; - property string metaverseServerUrl: ''; // FIXME loose this? property string protocol: ''; property string actions: 'snapshot'; // sendToScript doesn't get wired until after everything gets created. So we have to queue fillDestinations on nextTick. @@ -63,10 +62,16 @@ Column { }; listModelName: actions; listView: scroll; + searchFilter: filter.toUpperCase().split(/\s+/).filter(identity).join(' '); + searchItemTest: function (text, item) { + return searchFilter.split().every(function (word) { + return item.searchText.indexOf(word) >= 0; + }); + }; //HRS FIXME remove when endpoint works. } function resolveUrl(url) { - return (url.indexOf('/') === 0) ? (metaverseServerUrl + url) : url; + return (url.indexOf('/') === 0) ? (Account.metaverseServerURL + url) : url; } function makeModelData(data) { // create a new obj from data // ListModel elements will only ever have those properties that are defined by the first obj that is added. @@ -101,6 +106,9 @@ Column { console.log('fixme makeModelData', JSON.stringify(fixme)); return fixme; } + function identity(x) { + return x; + } /* FIXME property var allStories: []; property var placeMap: ({}); // Used for making stacks. @@ -172,9 +180,6 @@ Column { report('user stories'); }); } - function identity(x) { - return x; - } function makeFilteredStoryProcessor() { // answer a function(storyData) that adds it to suggestions if it matches var words = filter.toUpperCase().split(/\s+/).filter(identity); function suggestable(story) { diff --git a/interface/resources/qml/hifi/models/PSFListModel.qml b/interface/resources/qml/hifi/models/PSFListModel.qml index 6eff1cc073..124e08b6cd 100644 --- a/interface/resources/qml/hifi/models/PSFListModel.qml +++ b/interface/resources/qml/hifi/models/PSFListModel.qml @@ -101,10 +101,10 @@ Item { currentPageToRetrieve = -1; } if (searchItemTest) { - copyOfItems = copyOfItems.concat(processed); if (searchFilter) { processed = applySearchItemTest(processed); } + copyOfItems = copyOfItems.concat(processed); } if (localSort) { copyOfItems = copyOfItems.concat(processed); diff --git a/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml b/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml index 104756967e..08f86770e6 100644 --- a/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml +++ b/interface/resources/qml/hifi/tablet/TabletAddressDialog.qml @@ -34,7 +34,6 @@ StackView { height: parent !== null ? parent.height : undefined property int cardWidth: 212; property int cardHeight: 152; - property string metaverseBase: addressBarDialog.metaverseServerUrl + "/api/v1/"; property var tablet: null; RootHttpRequest { id: http; } @@ -322,7 +321,6 @@ StackView { width: parent.width; cardWidth: 312 + (2 * 4); cardHeight: 163 + (2 * 4); - metaverseServerUrl: addressBarDialog.metaverseServerUrl; labelText: 'HAPPENING NOW'; actions: 'announcement'; filter: addressLine.text; @@ -335,7 +333,6 @@ StackView { cardWidth: 210; cardHeight: 110 + messageHeight; messageHeight: 44; - metaverseServerUrl: addressBarDialog.metaverseServerUrl; labelText: 'PLACES'; actions: 'concurrency'; filter: addressLine.text; @@ -349,7 +346,6 @@ StackView { cardHeight: 75 + messageHeight + 4; messageHeight: 32; textPadding: 6; - metaverseServerUrl: addressBarDialog.metaverseServerUrl; labelText: 'RECENT SNAPS'; actions: 'snapshot'; filter: addressLine.text; From 558711f906425ac23bb0b2f362192b4e261fb8a8 Mon Sep 17 00:00:00 2001 From: "Anthony J. Thibault" Date: Mon, 4 Jun 2018 16:57:41 -0700 Subject: [PATCH 142/300] Smooth hips transition between idle and fly. Also, take dt into account for the critically damped spring lerp calculation. --- interface/src/avatar/MySkeletonModel.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/interface/src/avatar/MySkeletonModel.cpp b/interface/src/avatar/MySkeletonModel.cpp index 87a22396cd..d8ceb09b5f 100644 --- a/interface/src/avatar/MySkeletonModel.cpp +++ b/interface/src/avatar/MySkeletonModel.cpp @@ -192,14 +192,20 @@ void MySkeletonModel::updateRig(float deltaTime, glm::mat4 parentTransform) { AnimPose hips = computeHipsInSensorFrame(myAvatar, isFlying); + // timescale in seconds + const float TRANS_HORIZ_TIMESCALE = 0.25f; + const float TRANS_VERT_TIMESCALE = 0.01f; // We want the vertical component of the hips to follow quickly to prevent spine squash/stretch. + const float ROT_TIMESCALE = 0.15f; + + float transHorizAlpha = glm::min(deltaTime / TRANS_HORIZ_TIMESCALE, 1.0f); + float transVertAlpha = glm::min(deltaTime / TRANS_VERT_TIMESCALE, 1.0f); + float rotAlpha = glm::min(deltaTime / ROT_TIMESCALE, 1.0f); + // smootly lerp hips, in sensorframe, with different coeff for horiz and vertical translation. - const float ROT_ALPHA = 0.9f; - const float TRANS_HORIZ_ALPHA = 0.9f; - const float TRANS_VERT_ALPHA = 0.1f; float hipsY = hips.trans().y; - hips.trans() = lerp(hips.trans(), _prevHips.trans(), TRANS_HORIZ_ALPHA); - hips.trans().y = lerp(hipsY, _prevHips.trans().y, TRANS_VERT_ALPHA); - hips.rot() = safeLerp(hips.rot(), _prevHips.rot(), ROT_ALPHA); + hips.trans() = lerp(_prevHips.trans(), hips.trans(), transHorizAlpha); + hips.trans().y = lerp(_prevHips.trans().y, hipsY, transVertAlpha); + hips.rot() = safeLerp(_prevHips.rot(), hips.rot(), rotAlpha); _prevHips = hips; _prevHipsValid = true; From f87775c269475158c10c7c28b59025324b1a6dde Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Mon, 4 Jun 2018 14:39:48 -0700 Subject: [PATCH 143/300] Update serverless content to v2 --- cmake/externals/serverless-content/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/externals/serverless-content/CMakeLists.txt b/cmake/externals/serverless-content/CMakeLists.txt index aa1c59a86b..81b82e8651 100644 --- a/cmake/externals/serverless-content/CMakeLists.txt +++ b/cmake/externals/serverless-content/CMakeLists.txt @@ -4,8 +4,8 @@ set(EXTERNAL_NAME serverless-content) ExternalProject_Add( ${EXTERNAL_NAME} - URL http://cdn.highfidelity.com/content-sets/serverless-tutorial-RC68.zip - URL_MD5 a068f74d4045e257cfa7926fe6e38ad5 + URL http://cdn.highfidelity.com/content-sets/serverless-tutorial-RC68-v2.zip + URL_MD5 f7d290471baf7f5694c147217b8fc548 CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" From c18c2358d672df427d0424f9134dae8b8a32dc09 Mon Sep 17 00:00:00 2001 From: Wayne Chen Date: Thu, 31 May 2018 16:07:52 -0700 Subject: [PATCH 144/300] adding fix for tablet screen y offset --- scripts/system/libraries/utils.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/system/libraries/utils.js b/scripts/system/libraries/utils.js index 7e9e1d7e6a..538850ff42 100644 --- a/scripts/system/libraries/utils.js +++ b/scripts/system/libraries/utils.js @@ -32,7 +32,7 @@ if (!Function.prototype.bind) { if (this.prototype) { // Function.prototype doesn't have a prototype property - fNOP.prototype = this.prototype; + fNOP.prototype = this.prototype; } fBound.prototype = new fNOP(); @@ -381,6 +381,7 @@ resizeTablet = function (width, newParentJointIndex, sensorToWorldScaleOverride) sensorScaleOffsetOverride = 1 / sensorScaleFactor; } + // will need to be recaclulated if dimensions of fbx model change. var TABLET_NATURAL_DIMENSIONS = {x: 32.083, y: 48.553, z: 2.269}; var DEFAULT_DPI = 31; @@ -401,8 +402,7 @@ resizeTablet = function (width, newParentJointIndex, sensorToWorldScaleOverride) // update webOverlay var RAYPICK_OFFSET = 0.0007; // Sufficient for raypick to reliably intersect tablet screen before tablet model. var WEB_ENTITY_Z_OFFSET = (tabletDepth / 2.0) * sensorScaleOffsetOverride + RAYPICK_OFFSET; - var WEB_ENTITY_Y_OFFSET = 1 * tabletScaleFactor; - print(WEB_ENTITY_Y_OFFSET); + var WEB_ENTITY_Y_OFFSET = 1 * tabletScaleFactor * sensorScaleOffsetOverride; var screenWidth = 0.9275 * tabletWidth; var screenHeight = 0.8983 * tabletHeight; var landscape = Tablet.getTablet("com.highfidelity.interface.tablet.system").landscape; From b9604fdb9d7d2df63528e3c3156980ec7ed455fc Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Thu, 31 May 2018 15:13:23 -0700 Subject: [PATCH 145/300] Fix MS14796: Fix position of tablet close button highlight --- scripts/system/libraries/WebTablet.js | 10 ++++++---- scripts/system/libraries/utils.js | 8 +++++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/scripts/system/libraries/WebTablet.js b/scripts/system/libraries/WebTablet.js index 783b91f5f0..31376f57fa 100644 --- a/scripts/system/libraries/WebTablet.js +++ b/scripts/system/libraries/WebTablet.js @@ -153,12 +153,14 @@ WebTablet = function (url, width, dpi, hand, clientOnly, location, visible) { visible: visible }); - var HOME_BUTTON_Y_OFFSET = (tabletHeight / 2) - (tabletHeight / 20) + 0.003 * sensorScaleFactor; + var HOME_BUTTON_X_OFFSET = 0.0005; + var HOME_BUTTON_Y_OFFSET = (tabletHeight / 2) - (tabletHeight / 20) + (HMD.active ? 0.005 : 0.0055) * sensorScaleFactor; + var HOME_BUTTON_Z_OFFSET = -WEB_ENTITY_Z_OFFSET + 0.0040 - (HMD.active ? 0.005 : 0.0018); // FIXME: Circle3D overlays currently at the wrong dimensions, so we need to account for that here var homeButtonDim = 4.0 * tabletScaleFactor / 3.0; this.homeButtonID = Overlays.addOverlay("circle3d", { name: "homeButton", - localPosition: { x: 0.0, y: -HOME_BUTTON_Y_OFFSET, z: -WEB_ENTITY_Z_OFFSET }, + localPosition: { x: HOME_BUTTON_X_OFFSET, y: -HOME_BUTTON_Y_OFFSET, z: -WEB_ENTITY_Z_OFFSET }, localRotation: { x: 0, y: 1, z: 0, w: 0}, dimensions: { x: homeButtonDim, y: homeButtonDim, z: homeButtonDim }, solid: true, @@ -171,7 +173,7 @@ WebTablet = function (url, width, dpi, hand, clientOnly, location, visible) { this.homeButtonHighlightID = Overlays.addOverlay("circle3d", { name: "homeButtonHighlight", - localPosition: { x: 0, y: -HOME_BUTTON_Y_OFFSET, z: -WEB_ENTITY_Z_OFFSET }, + localPosition: { x: HOME_BUTTON_X_OFFSET, y: -HOME_BUTTON_Y_OFFSET, z: -WEB_ENTITY_Z_OFFSET }, localRotation: { x: 0, y: 1, z: 0, w: 0 }, dimensions: { x: homeButtonDim, y: homeButtonDim, z: homeButtonDim }, color: { red: 255, green: 255, blue: 255 }, @@ -180,7 +182,7 @@ WebTablet = function (url, width, dpi, hand, clientOnly, location, visible) { ignoreIntersection: true, alpha: 1.0, visible: visible, - drawInFront: false, + drawInFront: true, parentID: this.tabletEntityID, parentJointIndex: -1 }); diff --git a/scripts/system/libraries/utils.js b/scripts/system/libraries/utils.js index 538850ff42..2732b05269 100644 --- a/scripts/system/libraries/utils.js +++ b/scripts/system/libraries/utils.js @@ -413,17 +413,19 @@ resizeTablet = function (width, newParentJointIndex, sensorToWorldScaleOverride) }); // update homeButton - var HOME_BUTTON_Y_OFFSET = ((tabletHeight / 2) - (tabletHeight / 20) + 0.003 * sensorScaleFactor) * sensorScaleOffsetOverride; + var HOME_BUTTON_X_OFFSET = 0.0005; + var HOME_BUTTON_Y_OFFSET = ((tabletHeight / 2) - (tabletHeight / 20) + (HMD.active ? 0.005 : 0.0055) * sensorScaleFactor) * sensorScaleOffsetOverride; + var HOME_BUTTON_Z_OFFSET = -WEB_ENTITY_Z_OFFSET + 0.0040 - (HMD.active ? 0.005 : 0.0018); // FIXME: Circle3D overlays currently at the wrong dimensions, so we need to account for that here var homeButtonDim = 4.0 * tabletScaleFactor / 3.0; Overlays.editOverlay(HMD.homeButtonID, { - localPosition: { x: 0, y: -HOME_BUTTON_Y_OFFSET, z: -WEB_ENTITY_Z_OFFSET }, + localPosition: { x: HOME_BUTTON_X_OFFSET, y: -HOME_BUTTON_Y_OFFSET, z: HOME_BUTTON_Z_OFFSET }, localRotation: Quat.angleAxis(180, Vec3.UNIT_Y), dimensions: { x: homeButtonDim, y: homeButtonDim, z: homeButtonDim } }); Overlays.editOverlay(HMD.homeButtonHighlightID, { - localPosition: { x: 0, y: -HOME_BUTTON_Y_OFFSET, z: -WEB_ENTITY_Z_OFFSET }, + localPosition: { x: HOME_BUTTON_X_OFFSET, y: -HOME_BUTTON_Y_OFFSET, z: HOME_BUTTON_Z_OFFSET }, localRotation: Quat.angleAxis(180, Vec3.UNIT_Y), dimensions: { x: homeButtonDim, y: homeButtonDim, z: homeButtonDim } }); From 82c438a17410550a95f0760366941171d01b9964 Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Thu, 31 May 2018 16:09:58 -0700 Subject: [PATCH 146/300] CR --- scripts/system/libraries/WebTablet.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/system/libraries/WebTablet.js b/scripts/system/libraries/WebTablet.js index 31376f57fa..311c937272 100644 --- a/scripts/system/libraries/WebTablet.js +++ b/scripts/system/libraries/WebTablet.js @@ -160,7 +160,7 @@ WebTablet = function (url, width, dpi, hand, clientOnly, location, visible) { var homeButtonDim = 4.0 * tabletScaleFactor / 3.0; this.homeButtonID = Overlays.addOverlay("circle3d", { name: "homeButton", - localPosition: { x: HOME_BUTTON_X_OFFSET, y: -HOME_BUTTON_Y_OFFSET, z: -WEB_ENTITY_Z_OFFSET }, + localPosition: { x: HOME_BUTTON_X_OFFSET, y: -HOME_BUTTON_Y_OFFSET, z: -HOME_BUTTON_Z_OFFSET }, localRotation: { x: 0, y: 1, z: 0, w: 0}, dimensions: { x: homeButtonDim, y: homeButtonDim, z: homeButtonDim }, solid: true, @@ -173,7 +173,7 @@ WebTablet = function (url, width, dpi, hand, clientOnly, location, visible) { this.homeButtonHighlightID = Overlays.addOverlay("circle3d", { name: "homeButtonHighlight", - localPosition: { x: HOME_BUTTON_X_OFFSET, y: -HOME_BUTTON_Y_OFFSET, z: -WEB_ENTITY_Z_OFFSET }, + localPosition: { x: HOME_BUTTON_X_OFFSET, y: -HOME_BUTTON_Y_OFFSET, z: -HOME_BUTTON_Z_OFFSET }, localRotation: { x: 0, y: 1, z: 0, w: 0 }, dimensions: { x: homeButtonDim, y: homeButtonDim, z: homeButtonDim }, color: { red: 255, green: 255, blue: 255 }, @@ -182,7 +182,7 @@ WebTablet = function (url, width, dpi, hand, clientOnly, location, visible) { ignoreIntersection: true, alpha: 1.0, visible: visible, - drawInFront: true, + drawInFront: false, parentID: this.tabletEntityID, parentJointIndex: -1 }); From 4ebfca0c57a41addcfcf5b71a8112a4e1c072864 Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Fri, 1 Jun 2018 13:26:05 -0700 Subject: [PATCH 147/300] Really fix it --- scripts/system/libraries/WebTablet.js | 10 +++++----- scripts/system/libraries/utils.js | 14 +++++++------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/scripts/system/libraries/WebTablet.js b/scripts/system/libraries/WebTablet.js index 311c937272..199a4c72b7 100644 --- a/scripts/system/libraries/WebTablet.js +++ b/scripts/system/libraries/WebTablet.js @@ -153,14 +153,14 @@ WebTablet = function (url, width, dpi, hand, clientOnly, location, visible) { visible: visible }); - var HOME_BUTTON_X_OFFSET = 0.0005; - var HOME_BUTTON_Y_OFFSET = (tabletHeight / 2) - (tabletHeight / 20) + (HMD.active ? 0.005 : 0.0055) * sensorScaleFactor; - var HOME_BUTTON_Z_OFFSET = -WEB_ENTITY_Z_OFFSET + 0.0040 - (HMD.active ? 0.005 : 0.0018); // FIXME: Circle3D overlays currently at the wrong dimensions, so we need to account for that here var homeButtonDim = 4.0 * tabletScaleFactor / 3.0; + var HOME_BUTTON_X_OFFSET = 0.00079 * sensorScaleFactor; + var HOME_BUTTON_Y_OFFSET = -1 * ((tabletHeight / 2) - (4.0 * tabletScaleFactor / 2)); + var HOME_BUTTON_Z_OFFSET = -WEB_ENTITY_Z_OFFSET + 0.00284; this.homeButtonID = Overlays.addOverlay("circle3d", { name: "homeButton", - localPosition: { x: HOME_BUTTON_X_OFFSET, y: -HOME_BUTTON_Y_OFFSET, z: -HOME_BUTTON_Z_OFFSET }, + localPosition: { x: HOME_BUTTON_X_OFFSET, y: HOME_BUTTON_Y_OFFSET, z: -WEB_ENTITY_Z_OFFSET }, localRotation: { x: 0, y: 1, z: 0, w: 0}, dimensions: { x: homeButtonDim, y: homeButtonDim, z: homeButtonDim }, solid: true, @@ -173,7 +173,7 @@ WebTablet = function (url, width, dpi, hand, clientOnly, location, visible) { this.homeButtonHighlightID = Overlays.addOverlay("circle3d", { name: "homeButtonHighlight", - localPosition: { x: HOME_BUTTON_X_OFFSET, y: -HOME_BUTTON_Y_OFFSET, z: -HOME_BUTTON_Z_OFFSET }, + localPosition: { x: HOME_BUTTON_X_OFFSET, y: HOME_BUTTON_Y_OFFSET, z: HOME_BUTTON_Z_OFFSET }, localRotation: { x: 0, y: 1, z: 0, w: 0 }, dimensions: { x: homeButtonDim, y: homeButtonDim, z: homeButtonDim }, color: { red: 255, green: 255, blue: 255 }, diff --git a/scripts/system/libraries/utils.js b/scripts/system/libraries/utils.js index 2732b05269..1dc6544621 100644 --- a/scripts/system/libraries/utils.js +++ b/scripts/system/libraries/utils.js @@ -413,20 +413,20 @@ resizeTablet = function (width, newParentJointIndex, sensorToWorldScaleOverride) }); // update homeButton - var HOME_BUTTON_X_OFFSET = 0.0005; - var HOME_BUTTON_Y_OFFSET = ((tabletHeight / 2) - (tabletHeight / 20) + (HMD.active ? 0.005 : 0.0055) * sensorScaleFactor) * sensorScaleOffsetOverride; - var HOME_BUTTON_Z_OFFSET = -WEB_ENTITY_Z_OFFSET + 0.0040 - (HMD.active ? 0.005 : 0.0018); // FIXME: Circle3D overlays currently at the wrong dimensions, so we need to account for that here var homeButtonDim = 4.0 * tabletScaleFactor / 3.0; + var HOME_BUTTON_X_OFFSET = 0.00079 * sensorScaleOffsetOverride * sensorScaleFactor; + var HOME_BUTTON_Y_OFFSET = -1 * ((tabletHeight / 2) - (4.0 * tabletScaleFactor / 2)) * sensorScaleOffsetOverride; + var HOME_BUTTON_Z_OFFSET = (-WEB_ENTITY_Z_OFFSET + 0.00284 * sensorScaleOffsetOverride); Overlays.editOverlay(HMD.homeButtonID, { - localPosition: { x: HOME_BUTTON_X_OFFSET, y: -HOME_BUTTON_Y_OFFSET, z: HOME_BUTTON_Z_OFFSET }, - localRotation: Quat.angleAxis(180, Vec3.UNIT_Y), + localPosition: { x: HOME_BUTTON_X_OFFSET, y: HOME_BUTTON_Y_OFFSET, z: -WEB_ENTITY_Z_OFFSET }, + localRotation: { x: 0, y: 1, z: 0, w: 0 }, dimensions: { x: homeButtonDim, y: homeButtonDim, z: homeButtonDim } }); Overlays.editOverlay(HMD.homeButtonHighlightID, { - localPosition: { x: HOME_BUTTON_X_OFFSET, y: -HOME_BUTTON_Y_OFFSET, z: HOME_BUTTON_Z_OFFSET }, - localRotation: Quat.angleAxis(180, Vec3.UNIT_Y), + localPosition: { x: HOME_BUTTON_X_OFFSET, y: HOME_BUTTON_Y_OFFSET, z: HOME_BUTTON_Z_OFFSET }, + localRotation: { x: 0, y: 1, z: 0, w: 0 }, dimensions: { x: homeButtonDim, y: homeButtonDim, z: homeButtonDim } }); }; From 6a0950126148fbbe063fb76537cb3541057ac59f Mon Sep 17 00:00:00 2001 From: Alexander Ivash Date: Tue, 5 Jun 2018 22:56:07 +0300 Subject: [PATCH 148/300] Revert changes done to 'qmlscratchbox' --- libraries/ui/src/FileDialogHelper.cpp | 2 +- tests-manual/ui/qml/ControlsGalleryWindow.qml | 14 -------------- tests-manual/ui/qmlscratch.pro | 5 +---- tests-manual/ui/src/main.cpp | 18 ++---------------- 4 files changed, 4 insertions(+), 35 deletions(-) delete mode 100644 tests-manual/ui/qml/ControlsGalleryWindow.qml diff --git a/libraries/ui/src/FileDialogHelper.cpp b/libraries/ui/src/FileDialogHelper.cpp index 54eb1fc36b..6d14adf1db 100644 --- a/libraries/ui/src/FileDialogHelper.cpp +++ b/libraries/ui/src/FileDialogHelper.cpp @@ -52,7 +52,7 @@ QUrl FileDialogHelper::pathToUrl(const QString& path) { QUrl FileDialogHelper::saveHelper(const QString& saveText, const QUrl& currentFolder, const QStringList& selectionFilters) { - // qDebug(uiLogging) << "Calling save helper with " << saveText << " " << currentFolder << " " << selectionFilters; + qDebug(uiLogging) << "Calling save helper with " << saveText << " " << currentFolder << " " << selectionFilters; QFileInfo fileInfo(saveText); diff --git a/tests-manual/ui/qml/ControlsGalleryWindow.qml b/tests-manual/ui/qml/ControlsGalleryWindow.qml deleted file mode 100644 index 32fd62da36..0000000000 --- a/tests-manual/ui/qml/ControlsGalleryWindow.qml +++ /dev/null @@ -1,14 +0,0 @@ -import QtQuick 2.0 -import QtQuick.Window 2.3 -import QtQuick.Controls 1.4 -import '../../../scripts/developer/tests' as Tests - -ApplicationWindow { - width: 640 - height: 480 - visible: true - - Tests.ControlsGallery { - anchors.fill: parent - } -} diff --git a/tests-manual/ui/qmlscratch.pro b/tests-manual/ui/qmlscratch.pro index 6b6ec311be..5c9b91ee52 100644 --- a/tests-manual/ui/qmlscratch.pro +++ b/tests-manual/ui/qmlscratch.pro @@ -34,7 +34,4 @@ DISTFILES += \ ../../interface/resources/qml/hifi/toolbars/*.qml \ ../../interface/resources/qml/hifi/dialogs/*.qml \ ../../interface/resources/qml/hifi/dialogs/preferences/*.qml \ - ../../interface/resources/qml/hifi/overlays/*.qml \ - ../../scripts/developer/tests/Introspector.qml \ - ../../scripts/developer/tests/ControlsGallery.qml \ - qml/ControlsGalleryWindow.qml + ../../interface/resources/qml/hifi/overlays/*.qml diff --git a/tests-manual/ui/src/main.cpp b/tests-manual/ui/src/main.cpp index 19002ed499..312b5f3823 100644 --- a/tests-manual/ui/src/main.cpp +++ b/tests-manual/ui/src/main.cpp @@ -95,7 +95,6 @@ int main(int argc, char *argv[]) { app.setApplicationName("Amazing Application"); QDir::setCurrent(getRelativeDir("..")); - /* QtWebEngine::initialize(); qmlRegisterType("Hifi", 1, 0, "Preference"); @@ -118,21 +117,9 @@ int main(int argc, char *argv[]) { setChild(engine, "urlHandler"); engine.rootContext()->setContextProperty("DebugQML", true); engine.rootContext()->setContextProperty("fileDialogHelper", new FileDialogHelper()); - */ - QQmlApplicationEngine engine; - addImportPath(engine, "qml"); - addImportPath(engine, "../../interface/resources/qml"); - addImportPath(engine, "../../interface/resources"); - addImportPath(engine, "../../scripts/developer/tests"); - - QFontDatabase::addApplicationFont("../../interface/resources/fonts/FiraSans-Regular.ttf"); - QFontDatabase::addApplicationFont("../../interface/resources/fonts/FiraSans-SemiBold.ttf"); - QFontDatabase::addApplicationFont("../../interface/resources/fonts/hifi-glyphs.ttf"); - - engine.load(QUrl(QStringLiteral("qml/ControlsGalleryWindow.qml"))); - - /* + //engine.load(QUrl(QStringLiteral("qrc:/qml/gallery/main.qml"))); + engine.load(QUrl(QStringLiteral("qml/main.qml"))); for (QObject* rootObject : engine.rootObjects()) { if (rootObject->objectName() == "MainWindow") { Reticle* reticle = new Reticle(rootObject); @@ -142,7 +129,6 @@ int main(int argc, char *argv[]) { break; } } - */ return app.exec(); } From 5132466ca0c4d3f5ac623643f6ee3b707010167b Mon Sep 17 00:00:00 2001 From: amantley Date: Tue, 5 Jun 2018 13:32:29 -0700 Subject: [PATCH 149/300] kept the transient coeff. and sending the blendshapes accross the network. and removed procedural updates to face from myhead.cpp --- interface/src/avatar/MyHead.cpp | 29 +--- .../src/avatars-renderer/Head.cpp | 160 +++++++++--------- 2 files changed, 81 insertions(+), 108 deletions(-) diff --git a/interface/src/avatar/MyHead.cpp b/interface/src/avatar/MyHead.cpp index 8f53522b5a..55db478d85 100644 --- a/interface/src/avatar/MyHead.cpp +++ b/interface/src/avatar/MyHead.cpp @@ -50,32 +50,11 @@ void MyHead::simulate(float deltaTime) { const bool hasActualFaceTrackerConnected = faceTracker && !faceTracker->isMuted(); _isFaceTrackerConnected = hasActualFaceTrackerConnected || _owningAvatar->getHasScriptedBlendshapes(); if (_isFaceTrackerConnected) { - if (hasActualFaceTrackerConnected) { - _blendshapeCoefficients = faceTracker->getBlendshapeCoefficients(); - } else { - _transientBlendshapeCoefficients.fill(0, _blendshapeCoefficients.size()); - } - - if (_owningAvatar->getHasAudioEnabledFaceMovement() || (faceTracker && (typeid(*faceTracker) == typeid(DdeFaceTracker)) - && Menu::getInstance()->isOptionChecked(MenuOption::UseAudioForMouth))) { - - calculateMouthShapes(deltaTime); - - const int JAW_OPEN_BLENDSHAPE = 21; - const int MMMM_BLENDSHAPE = 34; - const int FUNNEL_BLENDSHAPE = 40; - const int SMILE_LEFT_BLENDSHAPE = 28; - const int SMILE_RIGHT_BLENDSHAPE = 29; - _transientBlendshapeCoefficients[JAW_OPEN_BLENDSHAPE] += _audioJawOpen; - _transientBlendshapeCoefficients[SMILE_LEFT_BLENDSHAPE] += _mouth4; - _transientBlendshapeCoefficients[SMILE_RIGHT_BLENDSHAPE] += _mouth4; - _transientBlendshapeCoefficients[MMMM_BLENDSHAPE] += _mouth2; - _transientBlendshapeCoefficients[FUNNEL_BLENDSHAPE] += _mouth3; - } - if (_owningAvatar->getHasProceduralEyeFaceMovement()) { - applyEyelidOffset(getFinalOrientationInWorldFrame()); - } + _blendshapeCoefficients = faceTracker->getBlendshapeCoefficients(); + } else { + _blendshapeCoefficients.fill(0, _blendshapeCoefficients.size()); } + auto eyeTracker = DependencyManager::get(); _isEyeTrackerConnected = eyeTracker->isTracking(); } diff --git a/libraries/avatars-renderer/src/avatars-renderer/Head.cpp b/libraries/avatars-renderer/src/avatars-renderer/Head.cpp index 06b52c8d44..81b58c7aa1 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Head.cpp +++ b/libraries/avatars-renderer/src/avatars-renderer/Head.cpp @@ -58,24 +58,32 @@ void Head::simulate(float deltaTime) { _longTermAverageLoudness = glm::mix(_longTermAverageLoudness, _averageLoudness, glm::min(deltaTime / AUDIO_LONG_TERM_AVERAGING_SECS, 1.0f)); } - if (!_isFaceTrackerConnected) { - if (!_isEyeTrackerConnected) { - // Update eye saccades - const float AVERAGE_MICROSACCADE_INTERVAL = 1.0f; - const float AVERAGE_SACCADE_INTERVAL = 6.0f; - const float MICROSACCADE_MAGNITUDE = 0.002f; - const float SACCADE_MAGNITUDE = 0.04f; - const float NOMINAL_FRAME_RATE = 60.0f; + //if (!_isFaceTrackerConnected) { + if (!_isEyeTrackerConnected) { + // Update eye saccades + const float AVERAGE_MICROSACCADE_INTERVAL = 1.0f; + const float AVERAGE_SACCADE_INTERVAL = 6.0f; + const float MICROSACCADE_MAGNITUDE = 0.002f; + const float SACCADE_MAGNITUDE = 0.04f; + const float NOMINAL_FRAME_RATE = 60.0f; - if (randFloat() < deltaTime / AVERAGE_MICROSACCADE_INTERVAL) { - _saccadeTarget = MICROSACCADE_MAGNITUDE * randVector(); - } else if (randFloat() < deltaTime / AVERAGE_SACCADE_INTERVAL) { - _saccadeTarget = SACCADE_MAGNITUDE * randVector(); - } - _saccade += (_saccadeTarget - _saccade) * pow(0.5f, NOMINAL_FRAME_RATE * deltaTime); - } else { - _saccade = glm::vec3(); + if (randFloat() < deltaTime / AVERAGE_MICROSACCADE_INTERVAL) { + _saccadeTarget = MICROSACCADE_MAGNITUDE * randVector(); + } else if (randFloat() < deltaTime / AVERAGE_SACCADE_INTERVAL) { + _saccadeTarget = SACCADE_MAGNITUDE * randVector(); } + _saccade += (_saccadeTarget - _saccade) * pow(0.5f, NOMINAL_FRAME_RATE * deltaTime); + } else { + _saccade = glm::vec3(); + } + + + const float BLINK_SPEED = 10.0f; + const float BLINK_SPEED_VARIABILITY = 1.0f; + const float BLINK_START_VARIABILITY = 0.25f; + const float FULLY_OPEN = 0.0f; + const float FULLY_CLOSED = 1.0f; + if (getHasProceduralBlinkFaceMovement()) { // Detect transition from talking to not; force blink after that and a delay bool forceBlink = false; @@ -88,26 +96,7 @@ void Head::simulate(float deltaTime) { forceBlink = true; } - // Update audio attack data for facial animation (eyebrows and mouth) - float audioAttackAveragingRate = (10.0f - deltaTime * NORMAL_HZ) / 10.0f; // --> 0.9 at 60 Hz - _audioAttack = audioAttackAveragingRate * _audioAttack + - (1.0f - audioAttackAveragingRate) * fabs((audioLoudness - _longTermAverageLoudness) - _lastLoudness); - _lastLoudness = (audioLoudness - _longTermAverageLoudness); - - const float BROW_LIFT_THRESHOLD = 100.0f; - if (_audioAttack > BROW_LIFT_THRESHOLD) { - _browAudioLift += sqrtf(_audioAttack) * 0.01f; - } - _browAudioLift = glm::clamp(_browAudioLift *= 0.7f, 0.0f, 1.0f); - - - const float BLINK_SPEED = 10.0f; - const float BLINK_SPEED_VARIABILITY = 1.0f; - const float BLINK_START_VARIABILITY = 0.25f; - const float FULLY_OPEN = 0.0f; - const float FULLY_CLOSED = 1.0f; - if (getHasProceduralBlinkFaceMovement()) { - if (_leftEyeBlinkVelocity == 0.0f && _rightEyeBlinkVelocity == 0.0f) { + if (_leftEyeBlinkVelocity == 0.0f && _rightEyeBlinkVelocity == 0.0f) { // no blinking when brows are raised; blink less with increasing loudness const float BASE_BLINK_RATE = 15.0f / 60.0f; const float ROOT_LOUDNESS_TO_BLINK_INTERVAL = 0.25f; @@ -117,63 +106,68 @@ void Head::simulate(float deltaTime) { _rightEyeBlinkVelocity = BLINK_SPEED + randFloat() * BLINK_SPEED_VARIABILITY; if (randFloat() < 0.5f) { _leftEyeBlink = BLINK_START_VARIABILITY; - } - else { + } else { _rightEyeBlink = BLINK_START_VARIABILITY; } } - } - else { - _leftEyeBlink = glm::clamp(_leftEyeBlink + _leftEyeBlinkVelocity * deltaTime, FULLY_OPEN, FULLY_CLOSED); - _rightEyeBlink = glm::clamp(_rightEyeBlink + _rightEyeBlinkVelocity * deltaTime, FULLY_OPEN, FULLY_CLOSED); - - if (_leftEyeBlink == FULLY_CLOSED) { - _leftEyeBlinkVelocity = -BLINK_SPEED; - - } - else if (_leftEyeBlink == FULLY_OPEN) { - _leftEyeBlinkVelocity = 0.0f; - } - if (_rightEyeBlink == FULLY_CLOSED) { - _rightEyeBlinkVelocity = -BLINK_SPEED; - - } - else if (_rightEyeBlink == FULLY_OPEN) { - _rightEyeBlinkVelocity = 0.0f; - } - } } else { - _rightEyeBlink = FULLY_OPEN; - _leftEyeBlink = FULLY_OPEN; - } + _leftEyeBlink = glm::clamp(_leftEyeBlink + _leftEyeBlinkVelocity * deltaTime, FULLY_OPEN, FULLY_CLOSED); + _rightEyeBlink = glm::clamp(_rightEyeBlink + _rightEyeBlinkVelocity * deltaTime, FULLY_OPEN, FULLY_CLOSED); - // use data to update fake Faceshift blendshape coefficients - if (getHasAudioEnabledFaceMovement()) { - calculateMouthShapes(deltaTime); - } else { - _audioJawOpen = 0.0f; - _browAudioLift = 0.0f; - _mouth2 = 0.0f; - _mouth3 = 0.0f; - _mouth4 = 0.0f; - _mouthTime = 0.0f; - } - FaceTracker::updateFakeCoefficients(_leftEyeBlink, - _rightEyeBlink, - _browAudioLift, - _audioJawOpen, - _mouth2, - _mouth3, - _mouth4, - _transientBlendshapeCoefficients); + if (_leftEyeBlink == FULLY_CLOSED) { + _leftEyeBlinkVelocity = -BLINK_SPEED; - if (getHasProceduralEyeFaceMovement()) { - applyEyelidOffset(getOrientation()); + } else if (_leftEyeBlink == FULLY_OPEN) { + _leftEyeBlinkVelocity = 0.0f; + } + if (_rightEyeBlink == FULLY_CLOSED) { + _rightEyeBlinkVelocity = -BLINK_SPEED; + + } else if (_rightEyeBlink == FULLY_OPEN) { + _rightEyeBlinkVelocity = 0.0f; + } } } else { - _saccade = glm::vec3(); + _rightEyeBlink = FULLY_OPEN; + _leftEyeBlink = FULLY_OPEN; } + // use data to update fake Faceshift blendshape coefficients + if (getHasAudioEnabledFaceMovement()) { + // Update audio attack data for facial animation (eyebrows and mouth) + float audioAttackAveragingRate = (10.0f - deltaTime * NORMAL_HZ) / 10.0f; // --> 0.9 at 60 Hz + _audioAttack = audioAttackAveragingRate * _audioAttack + + (1.0f - audioAttackAveragingRate) * fabs((audioLoudness - _longTermAverageLoudness) - _lastLoudness); + _lastLoudness = (audioLoudness - _longTermAverageLoudness); + const float BROW_LIFT_THRESHOLD = 100.0f; + if (_audioAttack > BROW_LIFT_THRESHOLD) { + _browAudioLift += sqrtf(_audioAttack) * 0.01f; + } + _browAudioLift = glm::clamp(_browAudioLift *= 0.7f, 0.0f, 1.0f); + calculateMouthShapes(deltaTime); + + } else { + _audioJawOpen = 0.0f; + _browAudioLift = 0.0f; + _mouth2 = 0.0f; + _mouth3 = 0.0f; + _mouth4 = 0.0f; + _mouthTime = 0.0f; + } + + FaceTracker::updateFakeCoefficients(_leftEyeBlink, + _rightEyeBlink, + _browAudioLift, + _audioJawOpen, + _mouth2, + _mouth3, + _mouth4, + _transientBlendshapeCoefficients); + + if (getHasProceduralEyeFaceMovement()) { + applyEyelidOffset(getOrientation()); + } + _leftEyePosition = _rightEyePosition = getPosition(); if (_owningAvatar) { auto skeletonModel = static_cast(_owningAvatar)->getSkeletonModel(); From e7e9ca4b2bfa22f496fd68d178bc8eeefdf14de7 Mon Sep 17 00:00:00 2001 From: Bradley Austin Davis Date: Tue, 5 Jun 2018 14:16:03 -0700 Subject: [PATCH 150/300] Disable chromium distance field text rendering on ATI GPUs --- interface/src/Application.cpp | 92 ++++++++++++++++++++--------------- 1 file changed, 54 insertions(+), 38 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index cbe713127d..1a31234100 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -2614,10 +2614,55 @@ void Application::initializeGL() { _isGLInitialized = true; } - _glWidget->makeCurrent(); - glClearColor(0.2f, 0.2f, 0.2f, 1); - glClear(GL_COLOR_BUFFER_BIT); - _glWidget->swapBuffers(); + if (!_glWidget->makeCurrent()) { + qCWarning(interfaceapp, "Unable to make window context current"); + } + +#if !defined(DISABLE_QML) + // Build a shared canvas / context for the Chromium processes + { + // Disable signed distance field font rendering on ATI/AMD GPUs, due to + // https://highfidelity.manuscript.com/f/cases/13677/Text-showing-up-white-on-Marketplace-app + std::string vendor{ (const char*)glGetString(GL_VENDOR) }; + if ((vendor.find("AMD") != std::string::npos) || (vendor.find("ATI") != std::string::npos)) { + qputenv("QTWEBENGINE_CHROMIUM_FLAGS", QByteArray("--disable-distance-field-text")); + } + + // Chromium rendering uses some GL functions that prevent nSight from capturing + // frames, so we only create the shared context if nsight is NOT active. + if (!nsightActive()) { + _chromiumShareContext = new OffscreenGLCanvas(); + _chromiumShareContext->setObjectName("ChromiumShareContext"); + _chromiumShareContext->create(_glWidget->qglContext()); + if (!_chromiumShareContext->makeCurrent()) { + qCWarning(interfaceapp, "Unable to make chromium shared context current"); + } + qt_gl_set_global_share_context(_chromiumShareContext->getContext()); + _chromiumShareContext->doneCurrent(); + // Restore the GL widget context + if (!_glWidget->makeCurrent()) { + qCWarning(interfaceapp, "Unable to make window context current"); + } + } else { + qCWarning(interfaceapp) << "nSight detected, disabling chrome rendering"; + } + } +#endif + + // Build a shared canvas / context for the QML rendering + { + _qmlShareContext = new OffscreenGLCanvas(); + _qmlShareContext->setObjectName("QmlShareContext"); + _qmlShareContext->create(_glWidget->qglContext()); + if (!_qmlShareContext->makeCurrent()) { + qCWarning(interfaceapp, "Unable to make QML shared context current"); + } + OffscreenQmlSurface::setSharedContext(_qmlShareContext->getContext()); + _qmlShareContext->doneCurrent(); + if (!_glWidget->makeCurrent()) { + qCWarning(interfaceapp, "Unable to make window context current"); + } + } // Build an offscreen GL context for the main thread. _offscreenContext = new OffscreenGLCanvas(); @@ -2629,6 +2674,11 @@ void Application::initializeGL() { _offscreenContext->doneCurrent(); _offscreenContext->setThreadContext(); + _glWidget->makeCurrent(); + glClearColor(0.2f, 0.2f, 0.2f, 1); + glClear(GL_COLOR_BUFFER_BIT); + _glWidget->swapBuffers(); + // Move the GL widget context to the render event handler thread _renderEventHandler = new RenderEventHandler(_glWidget->qglContext()); if (!_offscreenContext->makeCurrent()) { @@ -2751,40 +2801,6 @@ extern void setupPreferences(); static void addDisplayPluginToMenu(const DisplayPluginPointer& displayPlugin, int index, bool active = false); void Application::initializeUi() { - // Build a shared canvas / context for the Chromium processes -#if !defined(DISABLE_QML) - // Chromium rendering uses some GL functions that prevent nSight from capturing - // frames, so we only create the shared context if nsight is NOT active. - if (!nsightActive()) { - _chromiumShareContext = new OffscreenGLCanvas(); - _chromiumShareContext->setObjectName("ChromiumShareContext"); - _chromiumShareContext->create(_offscreenContext->getContext()); - if (!_chromiumShareContext->makeCurrent()) { - qCWarning(interfaceapp, "Unable to make chromium shared context current"); - } - qt_gl_set_global_share_context(_chromiumShareContext->getContext()); - _chromiumShareContext->doneCurrent(); - // Restore the GL widget context - _offscreenContext->makeCurrent(); - } else { - qCWarning(interfaceapp) << "nSIGHT detected, disabling chrome rendering"; - } -#endif - - // Build a shared canvas / context for the QML rendering - _qmlShareContext = new OffscreenGLCanvas(); - _qmlShareContext->setObjectName("QmlShareContext"); - _qmlShareContext->create(_offscreenContext->getContext()); - if (!_qmlShareContext->makeCurrent()) { - qCWarning(interfaceapp, "Unable to make QML shared context current"); - } - OffscreenQmlSurface::setSharedContext(_qmlShareContext->getContext()); - _qmlShareContext->doneCurrent(); - // Restore the GL widget context - _offscreenContext->makeCurrent(); - // Make sure all QML surfaces share the main thread GL context - OffscreenQmlSurface::setSharedContext(_offscreenContext->getContext()); - AddressBarDialog::registerType(); ErrorDialog::registerType(); LoginDialog::registerType(); From 94c39bc4af1ac912bba9c2ba6e0b46c5db2db56c Mon Sep 17 00:00:00 2001 From: "Anthony J. Thibault" Date: Tue, 5 Jun 2018 14:43:33 -0700 Subject: [PATCH 151/300] Better fix for looking down at your own body. --- libraries/animation/src/AnimUtil.cpp | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/libraries/animation/src/AnimUtil.cpp b/libraries/animation/src/AnimUtil.cpp index ad11623a25..acb90126fc 100644 --- a/libraries/animation/src/AnimUtil.cpp +++ b/libraries/animation/src/AnimUtil.cpp @@ -120,22 +120,27 @@ glm::quat computeBodyFacingFromHead(const glm::quat& headRot, const glm::vec3& u // initially take the body facing from the head. glm::vec3 headUp = headRot * Vectors::UNIT_Y; glm::vec3 headForward = headRot * Vectors::UNIT_Z; - const float THRESHOLD = cosf(glm::radians(30.0f)); + glm::vec3 headLeft = headRot * Vectors::UNIT_X; + const float NOD_THRESHOLD = cosf(glm::radians(45.0f)); + const float TILT_THRESHOLD = cosf(glm::radians(30.0f)); glm::vec3 bodyForward = headForward; - float dot = glm::dot(headForward, bodyUp); + float nodDot = glm::dot(headForward, bodyUp); + float tiltDot = glm::dot(headLeft, bodyUp); - if (dot < -THRESHOLD) { // head is looking down - // the body should face in the same direction as the top the head. - bodyForward = headUp; - } else if (dot > THRESHOLD) { // head is looking upward - // the body should face away from the top of the head. - bodyForward = -headUp; + if (fabsf(tiltDot) < TILT_THRESHOLD) { // if we are not tilting too much + if (nodDot < -NOD_THRESHOLD) { // head is looking downward + // the body should face in the same direction as the top the head. + bodyForward = headUp; + } else if (nodDot > NOD_THRESHOLD) { // head is looking upward + // the body should face away from the top of the head. + bodyForward = -headUp; + } } // cancel out upward component - bodyForward = glm::normalize(bodyForward - dot * bodyUp); + bodyForward = glm::normalize(bodyForward - nodDot * bodyUp); glm::vec3 u, v, w; generateBasisVectors(bodyForward, bodyUp, u, v, w); From b38eae373187e97f638b21bdf39eec83d9500b45 Mon Sep 17 00:00:00 2001 From: Cristian Luis Duarte Date: Tue, 5 Jun 2018 18:54:48 -0300 Subject: [PATCH 152/300] Only add RenderShadowTask if isDeferred --- libraries/render-utils/src/RenderViewTask.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libraries/render-utils/src/RenderViewTask.cpp b/libraries/render-utils/src/RenderViewTask.cpp index 122fc16e61..82426a3a1f 100644 --- a/libraries/render-utils/src/RenderViewTask.cpp +++ b/libraries/render-utils/src/RenderViewTask.cpp @@ -19,7 +19,9 @@ void RenderViewTask::build(JobModel& task, const render::Varying& input, render: // Warning : the cull functor passed to the shadow pass should only be testing for LOD culling. If frustum culling // is performed, then casters not in the view frustum will be removed, which is not what we wish. - task.addJob("RenderShadowTask", cullFunctor, tagBits, tagMask); + if (isDeferred) { + task.addJob("RenderShadowTask", cullFunctor, tagBits, tagMask); + } const auto items = task.addJob("FetchCullSort", cullFunctor, tagBits, tagMask); assert(items.canCast()); From b275bbe5a7c1b4c98fee646dac7928090c1e7f07 Mon Sep 17 00:00:00 2001 From: Dante Ruiz Date: Tue, 5 Jun 2018 15:44:17 -0700 Subject: [PATCH 153/300] saving changes --- .../tablet-with-home-button-small-bezel.fbx | Bin 190780 -> 243232 bytes scripts/system/libraries/WebTablet.js | 19 ++++++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/interface/resources/meshes/tablet-with-home-button-small-bezel.fbx b/interface/resources/meshes/tablet-with-home-button-small-bezel.fbx index d94ce304298b3f7085b495e5802bc4af613b5ac1..74221a2413457ccf4313e591c79ad4d93123f559 100644 GIT binary patch delta 77395 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 V8kY@h83E=~;ISlg-&02V{{c$f*D3%2 delta 42916 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 Date: Tue, 5 Jun 2018 15:45:19 -0700 Subject: [PATCH 154/300] Smooth out fly to idle transition, to prevent hip thrusting and pops. --- interface/src/avatar/MySkeletonModel.cpp | 23 ++++++++++++++++++++--- interface/src/avatar/MySkeletonModel.h | 2 ++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/interface/src/avatar/MySkeletonModel.cpp b/interface/src/avatar/MySkeletonModel.cpp index d8ceb09b5f..c23c6da8d3 100644 --- a/interface/src/avatar/MySkeletonModel.cpp +++ b/interface/src/avatar/MySkeletonModel.cpp @@ -181,6 +181,15 @@ void MySkeletonModel::updateRig(float deltaTime, glm::mat4 parentTransform) { } } + bool isFlying = (myAvatar->getCharacterController()->getState() == CharacterController::State::Hover || myAvatar->getCharacterController()->computeCollisionGroup() == BULLET_COLLISION_GROUP_COLLISIONLESS); + if (isFlying != _prevIsFlying) { + const float FLY_TO_IDLE_HIPS_TRANSITION_TIME = 0.5f; + _flyIdleTimer = FLY_TO_IDLE_HIPS_TRANSITION_TIME; + } else { + _flyIdleTimer -= deltaTime; + } + _prevIsFlying = isFlying; + // if hips are not under direct control, estimate the hips position. if (avatarHeadPose.isValid() && !(params.primaryControllerFlags[Rig::PrimaryControllerType_Hips] & (uint8_t)Rig::ControllerFlags::Enabled)) { bool isFlying = (myAvatar->getCharacterController()->getState() == CharacterController::State::Hover || myAvatar->getCharacterController()->computeCollisionGroup() == BULLET_COLLISION_GROUP_COLLISIONLESS); @@ -196,10 +205,18 @@ void MySkeletonModel::updateRig(float deltaTime, glm::mat4 parentTransform) { const float TRANS_HORIZ_TIMESCALE = 0.25f; const float TRANS_VERT_TIMESCALE = 0.01f; // We want the vertical component of the hips to follow quickly to prevent spine squash/stretch. const float ROT_TIMESCALE = 0.15f; + const float FLY_IDLE_TRANSITION_TIMESCALE = 0.3f; - float transHorizAlpha = glm::min(deltaTime / TRANS_HORIZ_TIMESCALE, 1.0f); - float transVertAlpha = glm::min(deltaTime / TRANS_VERT_TIMESCALE, 1.0f); - float rotAlpha = glm::min(deltaTime / ROT_TIMESCALE, 1.0f); + float transHorizAlpha, transVertAlpha, rotAlpha; + if (_flyIdleTimer < 0.0f) { + transHorizAlpha = glm::min(deltaTime / TRANS_HORIZ_TIMESCALE, 1.0f); + transVertAlpha = glm::min(deltaTime / TRANS_VERT_TIMESCALE, 1.0f); + rotAlpha = glm::min(deltaTime / ROT_TIMESCALE, 1.0f); + } else { + transHorizAlpha = glm::min(deltaTime / FLY_IDLE_TRANSITION_TIMESCALE, 1.0f); + transVertAlpha = glm::min(deltaTime / FLY_IDLE_TRANSITION_TIMESCALE, 1.0f); + rotAlpha = glm::min(deltaTime / FLY_IDLE_TRANSITION_TIMESCALE, 1.0f); + } // smootly lerp hips, in sensorframe, with different coeff for horiz and vertical translation. float hipsY = hips.trans().y; diff --git a/interface/src/avatar/MySkeletonModel.h b/interface/src/avatar/MySkeletonModel.h index 252b6c293b..ebef9796a4 100644 --- a/interface/src/avatar/MySkeletonModel.h +++ b/interface/src/avatar/MySkeletonModel.h @@ -28,6 +28,8 @@ private: AnimPose _prevHips; // sensor frame bool _prevHipsValid { false }; + bool _prevIsFlying { false }; + float _flyIdleTimer { 0.0f }; std::map _jointRotationFrameOffsetMap; }; From b5a3b25adce366c83788b479eb41df61870cbdf3 Mon Sep 17 00:00:00 2001 From: "Anthony J. Thibault" Date: Tue, 5 Jun 2018 16:07:54 -0700 Subject: [PATCH 155/300] Tuned hip smoothing times. --- interface/src/avatar/MySkeletonModel.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/src/avatar/MySkeletonModel.cpp b/interface/src/avatar/MySkeletonModel.cpp index c23c6da8d3..c15b00ca19 100644 --- a/interface/src/avatar/MySkeletonModel.cpp +++ b/interface/src/avatar/MySkeletonModel.cpp @@ -202,10 +202,10 @@ void MySkeletonModel::updateRig(float deltaTime, glm::mat4 parentTransform) { AnimPose hips = computeHipsInSensorFrame(myAvatar, isFlying); // timescale in seconds - const float TRANS_HORIZ_TIMESCALE = 0.25f; + const float TRANS_HORIZ_TIMESCALE = 0.15f; const float TRANS_VERT_TIMESCALE = 0.01f; // We want the vertical component of the hips to follow quickly to prevent spine squash/stretch. const float ROT_TIMESCALE = 0.15f; - const float FLY_IDLE_TRANSITION_TIMESCALE = 0.3f; + const float FLY_IDLE_TRANSITION_TIMESCALE = 0.25f; float transHorizAlpha, transVertAlpha, rotAlpha; if (_flyIdleTimer < 0.0f) { From f21431ca88c17020f09932e9ee2fb9985029d4b9 Mon Sep 17 00:00:00 2001 From: amantley Date: Tue, 5 Jun 2018 16:33:28 -0700 Subject: [PATCH 156/300] added check for the actual face tracker in MyHead.cpp to prevent crash --- interface/src/avatar/MyHead.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/interface/src/avatar/MyHead.cpp b/interface/src/avatar/MyHead.cpp index 55db478d85..eb365c20fb 100644 --- a/interface/src/avatar/MyHead.cpp +++ b/interface/src/avatar/MyHead.cpp @@ -50,9 +50,9 @@ void MyHead::simulate(float deltaTime) { const bool hasActualFaceTrackerConnected = faceTracker && !faceTracker->isMuted(); _isFaceTrackerConnected = hasActualFaceTrackerConnected || _owningAvatar->getHasScriptedBlendshapes(); if (_isFaceTrackerConnected) { - _blendshapeCoefficients = faceTracker->getBlendshapeCoefficients(); - } else { - _blendshapeCoefficients.fill(0, _blendshapeCoefficients.size()); + if (hasActualFaceTrackerConnected) { + _blendshapeCoefficients = faceTracker->getBlendshapeCoefficients(); + } } auto eyeTracker = DependencyManager::get(); From 6aa551b35c64ea3ace2a39f93af4321e1d2d9b6e Mon Sep 17 00:00:00 2001 From: howard-stearns Date: Tue, 5 Jun 2018 17:04:29 -0700 Subject: [PATCH 157/300] Don't getNextPage when at beginning (even if that is also the end). --- .../resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml | 2 +- interface/resources/qml/hifi/commerce/wallet/WalletHome.qml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml b/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml index 21d803b1ab..a416030711 100644 --- a/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml +++ b/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml @@ -523,7 +523,7 @@ Item { visible: !connectionsLoading.visible; clip: true; model: connectionsModel.model; - onAtYEndChanged: if (connectionsList.atYEnd /*&& !connectionsList.atYBeginning*/) { connectionsModel.getNextPage(); } + onAtYEndChanged: if (connectionsList.atYEnd && !connectionsList.atYBeginning) { connectionsModel.getNextPage(); } snapMode: ListView.SnapToItem; // Anchors anchors.fill: parent; diff --git a/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml b/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml index 1c0debb12b..047dcd70d1 100644 --- a/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml +++ b/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml @@ -239,7 +239,7 @@ Item { // Only auto-refresh if the user hasn't scrolled // and there is more data to grab - if (transactionHistory.atYBeginning && data.history.length && transactionHistoryModel.currentPageToRetrieve >= 0) { + if (transactionHistory.atYBeginning && data.history.length) { refreshTimer.start(); } return result; From 335aeaeb3842c9a4d3b71ea0a0b37396fda0d6ea Mon Sep 17 00:00:00 2001 From: howard-stearns Date: Tue, 5 Jun 2018 17:06:08 -0700 Subject: [PATCH 158/300] purchases cleanup, wearables, and edition numbers when multiples seen. --- .../qml/hifi/commerce/purchases/Purchases.qml | 79 ++++++------------- 1 file changed, 24 insertions(+), 55 deletions(-) diff --git a/interface/resources/qml/hifi/commerce/purchases/Purchases.qml b/interface/resources/qml/hifi/commerce/purchases/Purchases.qml index 795bb2306a..3ef4d84754 100644 --- a/interface/resources/qml/hifi/commerce/purchases/Purchases.qml +++ b/interface/resources/qml/hifi/commerce/purchases/Purchases.qml @@ -39,8 +39,16 @@ Rectangle { property string installedApps; property bool keyboardRaised: false; property int numUpdatesAvailable: 0; + property var itemCountDictionary: ({}); // Style color: hifi.colors.white; + function getPurchases() { + root.activeView = "purchasesMain"; + root.itemCountDictionary = {}; + root.installedApps = Commerce.getInstalledApps(); + purchasesModel.getFirstPage(); + Commerce.getAvailableUpdates(); + } Connections { target: Commerce; @@ -63,10 +71,7 @@ Rectangle { if ((Settings.getValue("isFirstUseOfPurchases", true) || root.isDebuggingFirstUseTutorial) && root.activeView !== "firstUseTutorial") { root.activeView = "firstUseTutorial"; } else if (!Settings.getValue("isFirstUseOfPurchases", true) && root.activeView === "initialize") { - root.activeView = "purchasesMain"; - root.installedApps = Commerce.getInstalledApps(); - purchasesModel.getFirstPage(); - Commerce.getAvailableUpdates(); + getPurchases(); } } else { console.log("ERROR in Purchases.qml: Unknown wallet status: " + walletStatus); @@ -104,8 +109,7 @@ Rectangle { } onIsShowingMyItemsChanged: { - purchasesModel.resetModel(); - + getPurchases(); } Timer { @@ -163,9 +167,7 @@ Rectangle { Connections { onSendSignalToParent: { if (msg.method === 'sendAssetHome_back' || msg.method === 'closeSendAsset') { - root.activeView = "purchasesMain"; - purchasesModel.getFirstPage(); - Commerce.getAvailableUpdates(); + getPurchases(); } else { sendToScript(msg); } @@ -429,10 +431,7 @@ Rectangle { case 'tutorial_skipClicked': case 'tutorial_finished': Settings.setValue("isFirstUseOfPurchases", false); - root.activeView = "purchasesMain"; - root.installedApps = Commerce.getInstalledApps(); - purchasesModel.getFirstPage(); - Commerce.getAvailableUpdates(); + getPurchases(); break; } } @@ -508,7 +507,7 @@ Rectangle { }, { "displayName": "Content Set", - "filterName": "contentSet" + "filterName": "content_set" }, { "displayName": "Entity", @@ -555,9 +554,9 @@ Rectangle { HifiModels.PSFListModel { id: purchasesModel; itemsPerPage: 6; - + listModelName: 'purchases'; getPage: function () { - console.log('HRS FIXME Purchases getPage', root.isShowingMyItems, filterBar.primaryFilter_filterName, purchasesModel.currentPageToRetrieve, purchasesModel.itemsPerPage); + console.debug('getPage', purchasesModel.listModelName, root.isShowingMyItems, filterBar.primaryFilter_filterName, purchasesModel.currentPageToRetrieve, purchasesModel.itemsPerPage); Commerce.inventory( root.isShowingMyItems ? "proofs" : "purchased", filterBar.primaryFilter_filterName.toLowerCase(), @@ -574,11 +573,14 @@ Rectangle { item.cardBackVisible = false; item.isInstalled = root.installedApps.indexOf(item.id) > -1; item.wornEntityID = ''; + item.displayedItemCount = itemCountDictionary[item.id] = (itemCountDictionary[item.id] || 0) + 1; // HRS FIXME updateable }); - // HRS FIXME purchaess_updateWearables - // HRS FIXME populateDisplayedItemCounts - // HRS FIXME sortByDate + sendToScript({ method: 'purchases_updateWearables' }); + for (var i = 0; i < purchasesModel.count; i++) { // Update all the previous counts with possibly new values. + purchasesModel.setProperty(i, "displayedItemCount", itemCountDictionary[purchasesModel.get(i).id]) + } + return data.assets; /* @@ -604,15 +606,6 @@ Rectangle { } } } - - sendToScript({ method: 'purchases_updateWearables' }); - // FIXME: This ALSO *MUST* be serverside (what if we don't have - // all instances of the item on the client yet?) - //populateDisplayedItemCounts(); - - // FIXME: Sorting by date should be done serverside (we should always get - // the most recent purchases on the 1st page) - //sortByDate(); } */ } @@ -807,7 +800,7 @@ Rectangle { onAtYEndChanged: { - if (purchasesContentsList.atYEnd) { + if (purchasesContentsList.atYEnd && !purchasesContentsList.atYBeginning) { console.log("User scrolled to the bottom of 'Purchases'."); purchasesModel.getNextPage(); } @@ -992,7 +985,7 @@ Rectangle { // // FUNCTION DEFINITIONS START // - + /* fixme remove function processInventoryResult(inventory) { // HRS FIXME remove for (var i = 0; i < inventory.length; i++) { if (inventory[i].status.length > 1) { @@ -1002,31 +995,7 @@ Rectangle { inventory[i].categories = inventory[i].categories.join(';'); } return inventory; - } - - function populateDisplayedItemCounts() { - var itemCountDictionary = {}; - var currentItemId; - for (var i = 0; i < purchasesModel.count; i++) { - currentItemId = purchasesModel.get(i).id; - if (itemCountDictionary[currentItemId] === undefined) { - itemCountDictionary[currentItemId] = 1; - } else { - itemCountDictionary[currentItemId]++; - } - } - - for (var i = 0; i < purchasesModel.count; i++) { - purchasesModel.setProperty(i, "displayedItemCount", itemCountDictionary[purchasesModel.get(i).id]); - } - } - - function sortByDate() { - purchasesModel.sortColumnName = "purchase_date"; - purchasesModel.isSortingDescending = true; - purchasesModel.valuesAreNumerical = true; - purchasesModel.quickSort(); - } + } */ function updateCurrentlyWornWearables(wearables) { for (var i = 0; i < purchasesModel.count; i++) { From 0c879d85b5d89b00ff3daf4bbed090e64bd97381 Mon Sep 17 00:00:00 2001 From: amantley Date: Tue, 5 Jun 2018 17:33:32 -0700 Subject: [PATCH 159/300] added print statements and removed summed coeff from avatarData.cpp --- libraries/avatars-renderer/src/avatars-renderer/Head.cpp | 5 ++++- libraries/avatars/src/AvatarData.cpp | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/libraries/avatars-renderer/src/avatars-renderer/Head.cpp b/libraries/avatars-renderer/src/avatars-renderer/Head.cpp index 81b58c7aa1..39b50b9255 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Head.cpp +++ b/libraries/avatars-renderer/src/avatars-renderer/Head.cpp @@ -20,6 +20,7 @@ #include #include #include +#include "Logging.h" #include "Avatar.h" @@ -84,7 +85,7 @@ void Head::simulate(float deltaTime) { const float FULLY_OPEN = 0.0f; const float FULLY_CLOSED = 1.0f; if (getHasProceduralBlinkFaceMovement()) { - + qCDebug(avatars_renderer) << "in the blink code"; // Detect transition from talking to not; force blink after that and a delay bool forceBlink = false; const float TALKING_LOUDNESS = 100.0f; @@ -134,6 +135,7 @@ void Head::simulate(float deltaTime) { // use data to update fake Faceshift blendshape coefficients if (getHasAudioEnabledFaceMovement()) { + qCDebug(avatars_renderer) << "in the audio face code"; // Update audio attack data for facial animation (eyebrows and mouth) float audioAttackAveragingRate = (10.0f - deltaTime * NORMAL_HZ) / 10.0f; // --> 0.9 at 60 Hz _audioAttack = audioAttackAveragingRate * _audioAttack + @@ -165,6 +167,7 @@ void Head::simulate(float deltaTime) { _transientBlendshapeCoefficients); if (getHasProceduralEyeFaceMovement()) { + qCDebug(avatars_renderer) << "in the eye face code"; applyEyelidOffset(getOrientation()); } diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index d72abe592b..7ae9ba1257 100644 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -308,7 +308,7 @@ QByteArray AvatarData::toByteArray(AvatarDataDetail dataDetail, quint64 lastSent const size_t byteArraySize = AvatarDataPacket::MAX_CONSTANT_HEADER_SIZE + - (hasFaceTrackerInfo ? AvatarDataPacket::maxFaceTrackerInfoSize(_headData->getNumSummedBlendshapeCoefficients()) : 0) + + (hasFaceTrackerInfo ? AvatarDataPacket::maxFaceTrackerInfoSize(_headData->getBlendshapeCoefficients().size()) : 0) + (hasJointData ? AvatarDataPacket::maxJointDataSize(_jointData.size()) : 0) + (hasJointDefaultPoseFlags ? AvatarDataPacket::maxJointDefaultPoseFlagsSize(_jointData.size()) : 0); From 59c50b7f267c3b639940440d60019c7e9e2a8270 Mon Sep 17 00:00:00 2001 From: Dante Ruiz Date: Wed, 6 Jun 2018 08:38:58 -0700 Subject: [PATCH 160/300] remove highlight overlay in favor of materialEntity --- interface/resources/images/buttonBezel.png | Bin 0 -> 1529 bytes .../images/buttonBezel_highlight.png | Bin 0 -> 1528 bytes .../tablet-with-home-button-small-bezel.fbx | Bin 243232 -> 271360 bytes .../src/scripting/HMDScriptingInterface.h | 6 -- scripts/system/libraries/WebTablet.js | 69 +++++++++--------- scripts/system/libraries/utils.js | 8 +- scripts/system/marketplaces/marketplaces.js | 1 - scripts/system/tablet-ui/tabletUI.js | 5 -- 8 files changed, 37 insertions(+), 52 deletions(-) create mode 100644 interface/resources/images/buttonBezel.png create mode 100644 interface/resources/images/buttonBezel_highlight.png diff --git a/interface/resources/images/buttonBezel.png b/interface/resources/images/buttonBezel.png new file mode 100644 index 0000000000000000000000000000000000000000..a85b236555ae456432ad236f2676965f6a8ddb7a GIT binary patch literal 1529 zcmeAS@N?(olHy`uVBq!ia0y~yU}6Aa4iHr><-C@GfkCpwHKHUqKdq!Zu_%?nF(p4K zRlzeiF+DXXH8G{K@MNkD0|V=9PZ!6Kid%248Zt64a2z%`uz&8)!_4}fEp~5JSP$4M zGd3_XBrq^YFfgz&ki#TL50X_BYG+`h$nlhGZ(t-p=peyBcF4m+k-Uh5Yok!R1f_9E zVG?Ly^cdhYKuPw2gg%97fI{sFh_pbaNkcpdQC<-C@GfkCpwHKHUqKdq!Zu_%?nF(p4K zRlzeiF+DXXH8G{K@MNkD0|VbkP#_29j^UEeNJ(xd{ z;Q#}J0RsaM0|PTz%z@R;z)X?jDc630f}n$hIN2c&k1+Bg4z7(t?K}gV1P(B$3~(Bt zB>O-@pTaaip>_jAS|HP;A)bUNF9t|X0u8f86BsHJ+5XzR@GxLtU|{fc^>bP0l+XkK DqoAg_ literal 0 HcmV?d00001 diff --git a/interface/resources/meshes/tablet-with-home-button-small-bezel.fbx b/interface/resources/meshes/tablet-with-home-button-small-bezel.fbx index 74221a2413457ccf4313e591c79ad4d93123f559..87445dea10ad92bb97f960296076a47917171cd0 100644 GIT binary patch delta 57331 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

T*cDS2EGf<-E0$YjB%0HE0 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 N9=FI+&+n1{{lCpRb|(M; delta 64426 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 diff --git a/interface/src/scripting/HMDScriptingInterface.h b/interface/src/scripting/HMDScriptingInterface.h index d2a272851f..9139e62fcd 100644 --- a/interface/src/scripting/HMDScriptingInterface.h +++ b/interface/src/scripting/HMDScriptingInterface.h @@ -56,7 +56,6 @@ class QScriptEngine; * @property {Uuid} tabletID - The UUID of the tablet body model overlay. * @property {Uuid} tabletScreenID - The UUID of the tablet's screen overlay. * @property {Uuid} homeButtonID - The UUID of the tablet's "home" button overlay. - * @property {Uuid} homeButtonHighlightID - The UUID of the tablet's "home" button highlight overlay. */ class HMDScriptingInterface : public AbstractHMDScriptingInterface, public Dependency { Q_OBJECT @@ -67,7 +66,6 @@ class HMDScriptingInterface : public AbstractHMDScriptingInterface, public Depen Q_PROPERTY(bool tabletContextualMode READ getTabletContextualMode) Q_PROPERTY(QUuid tabletID READ getCurrentTabletFrameID WRITE setCurrentTabletFrameID) Q_PROPERTY(QUuid homeButtonID READ getCurrentHomeButtonID WRITE setCurrentHomeButtonID) - Q_PROPERTY(QUuid homeButtonHighlightID READ getCurrentHomeButtonHightlightID WRITE setCurrentHomeButtonHightlightID) Q_PROPERTY(QUuid tabletScreenID READ getCurrentTabletScreenID WRITE setCurrentTabletScreenID) public: @@ -372,9 +370,6 @@ public: void setCurrentHomeButtonID(QUuid homeButtonID) { _homeButtonID = homeButtonID; } QUuid getCurrentHomeButtonID() const { return _homeButtonID; } - void setCurrentHomeButtonHightlightID(QUuid homeButtonHightlightID) { _homeButtonHightlightID = homeButtonHightlightID; } - QUuid getCurrentHomeButtonHightlightID() const { return _homeButtonHightlightID; } - void setCurrentTabletScreenID(QUuid tabletID) { _tabletScreenID = tabletID; } QUuid getCurrentTabletScreenID() const { return _tabletScreenID; } @@ -384,7 +379,6 @@ private: QUuid _tabletUIID; // this is the entityID of the tablet frame QUuid _tabletScreenID; // this is the overlayID which is part of (a child of) the tablet-ui. QUuid _homeButtonID; - QUuid _homeButtonHightlightID; QUuid _tabletEntityID; // Get the position of the HMD diff --git a/scripts/system/libraries/WebTablet.js b/scripts/system/libraries/WebTablet.js index 460c667c78..50802357d3 100644 --- a/scripts/system/libraries/WebTablet.js +++ b/scripts/system/libraries/WebTablet.js @@ -37,7 +37,10 @@ var TABLET_NATURAL_DIMENSIONS = {x: 32.083, y: 48.553, z: 2.269}; var HOME_BUTTON_TEXTURE = "http://hifi-content.s3.amazonaws.com/alan/dev/tablet-with-home-button.fbx/tablet-with-home-button.fbm/button-close.png"; // var HOME_BUTTON_TEXTURE = Script.resourcesPath() + "meshes/tablet-with-home-button.fbx/tablet-with-home-button.fbm/button-close.png"; // var TABLET_MODEL_PATH = "http://hifi-content.s3.amazonaws.com/alan/dev/tablet-with-home-button.fbx"; +var LOCAL_BEZEL_HIGHLIGHT = Script.resourcesPath() + "images/buttonBezel_highlight.png"; +var LOCAL_NORMAL_BEZEL = Script.resourcesPath() + "images/buttonBezel.png"; var LOCAL_TABLET_MODEL_PATH = Script.resourcesPath() + "meshes/tablet-with-home-button-small-bezel.fbx"; +var SUBMESH = 0; // returns object with two fields: // * position - position in front of the user @@ -172,38 +175,38 @@ WebTablet = function (url, width, dpi, hand, clientOnly, location, visible) { parentJointIndex: -1 }); - this.homeButtonHighlightID = Overlays.addOverlay("circle3d", { - name: "homeButtonHighlight", - localPosition: { x: HOME_BUTTON_X_OFFSET, y: HOME_BUTTON_Y_OFFSET, z: HOME_BUTTON_Z_OFFSET }, - localRotation: { x: 0, y: 1, z: 0, w: 0 }, - dimensions: { x: homeButtonDim, y: homeButtonDim, z: homeButtonDim }, - color: { red: 255, green: 255, blue: 255 }, - solid: true, - innerRadius: 0.9, - ignoreIntersection: true, - alpha: 1.0, - visible: visible, - drawInFront: false, - parentID: this.tabletEntityID, - parentJointIndex: -1 - }); - - - this.homeButtonMaterial = Entities.addEntity({ + this.homeButtonUnhighlightMaterial = Entities.addEntity({ type: "Material", - materialURL: "", + materialURL: "materialData", priority: 1, - parentID: this.homeButtonHighlightID + materialData: JSON.stringify({ + materials: { + albedoMap: LOCAL_NORMAL_BEZEL + } + + }), + visible: false, + parentMaterialName: SUBMESH, + parentID: this.tabletEntityID }, true); - this.homeButtonHighlight = Entities.addEntity({ + this.homeButtonHighlightMaterial = Entities.addEntity({ type: "Material", - materialURL: "", - priority: 1 + materialURL: "materialData", + priority: 1, + visible: false, + materialData: JSON.stringify({ + materials: { + albedo: LOCAL_BEZEL_HIGHLIGHT + } + + }), + parentMaterialName: SUBMESH, + parentID: null }, true); this.receive = function (channel, senderID, senderUUID, localOnly) { - if (_this.homeButtonID == senderID) { + if (_this.homeButtonID === senderID) { var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system"); var onHomeScreen = tablet.onHomeScreen(); var isMessageOpen; @@ -355,7 +358,6 @@ WebTablet.prototype.destroy = function () { Overlays.deleteOverlay(this.webOverlayID); Overlays.deleteOverlay(this.tabletEntityID); Overlays.deleteOverlay(this.homeButtonID); - Overlays.deleteOverlay(this.homeButtonHighlightID); HMD.displayModeChanged.disconnect(this.myOnHmdChanged); Controller.mousePressEvent.disconnect(this.myMousePressEvent); @@ -449,21 +451,24 @@ WebTablet.prototype.calculateWorldAttitudeRelativeToCamera = function (windowPos WebTablet.prototype.onHoverEnterOverlay = function (overlayID, pointerEvent) { if (overlayID === this.homeButtonID) { - Overlays.editOverlay(this.homeButtonHighlightID, { alpha: 1.0 }); + Entities.editEntity(this.homeButtonUnhighlightMaterial, {parentID: null}); + Entities.editEntity(this.homeButtonHighlightMaterial, {parentID: this.tabletEntityID}); } -} +}; WebTablet.prototype.onHoverOverOverlay = function (overlayID, pointerEvent) { if (overlayID !== this.homeButtonID) { - Overlays.editOverlay(this.homeButtonHighlightID, { alpha: 0.0 }); + Entities.editEntity(this.homeButtonUnhighlightMaterial, {parentID: this.tabletEntityID}); + Entities.editEntity(this.homeButtonHighlightMaterial, {parentID: null}); } -} +}; WebTablet.prototype.onHoverLeaveOverlay = function (overlayID, pointerEvent) { if (overlayID === this.homeButtonID) { - Overlays.editOverlay(this.homeButtonHighlightID, { alpha: 0.0 }); + Entities.editEntity(this.homeButtonUnhighlightMaterial, {parentID: this.tabletEntityID}); + Entities.editEntity(this.homeButtonHighlightMaterial, {parentID: null}); } -} +}; // compute position, rotation & parentJointIndex of the tablet WebTablet.prototype.calculateTabletAttachmentProperties = function (hand, useMouse, tabletProperties) { @@ -603,8 +608,6 @@ WebTablet.prototype.handleHomeButtonHover = function(x, y) { homebuttonHovered = true; } } - - Overlays.editOverlay(this.homeButtonHighlightID, { alpha: homebuttonHovered ? 1.0 : 0.0 }); } WebTablet.prototype.mouseMoveEvent = function (event) { diff --git a/scripts/system/libraries/utils.js b/scripts/system/libraries/utils.js index 1dc6544621..bc062e0dce 100644 --- a/scripts/system/libraries/utils.js +++ b/scripts/system/libraries/utils.js @@ -370,7 +370,7 @@ getTabletWidthFromSettings = function () { resizeTablet = function (width, newParentJointIndex, sensorToWorldScaleOverride) { - if (!HMD.tabletID || !HMD.tabletScreenID || !HMD.homeButtonID || !HMD.homeButtonHighlightID) { + if (!HMD.tabletID || !HMD.tabletScreenID || !HMD.homeButtonID) { return; } var sensorScaleFactor = sensorToWorldScaleOverride || MyAvatar.sensorToWorldScale; @@ -423,12 +423,6 @@ resizeTablet = function (width, newParentJointIndex, sensorToWorldScaleOverride) localRotation: { x: 0, y: 1, z: 0, w: 0 }, dimensions: { x: homeButtonDim, y: homeButtonDim, z: homeButtonDim } }); - - Overlays.editOverlay(HMD.homeButtonHighlightID, { - localPosition: { x: HOME_BUTTON_X_OFFSET, y: HOME_BUTTON_Y_OFFSET, z: HOME_BUTTON_Z_OFFSET }, - localRotation: { x: 0, y: 1, z: 0, w: 0 }, - dimensions: { x: homeButtonDim, y: homeButtonDim, z: homeButtonDim } - }); }; getMainTabletIDs = function () { diff --git a/scripts/system/marketplaces/marketplaces.js b/scripts/system/marketplaces/marketplaces.js index dc4d5aa844..f6e337755b 100644 --- a/scripts/system/marketplaces/marketplaces.js +++ b/scripts/system/marketplaces/marketplaces.js @@ -114,7 +114,6 @@ var selectionDisplay = null; // for gridTool.js to ignore Overlays.editOverlay(HMD.tabletID, { isVisibleInSecondaryCamera : visibleInSecondaryCam }); Overlays.editOverlay(HMD.homeButtonID, { isVisibleInSecondaryCamera : visibleInSecondaryCam }); - Overlays.editOverlay(HMD.homeButtonHighlightIDtabletID, { isVisibleInSecondaryCamera : visibleInSecondaryCam }); Overlays.editOverlay(HMD.tabletScreenID, { isVisibleInSecondaryCamera : visibleInSecondaryCam }); } diff --git a/scripts/system/tablet-ui/tabletUI.js b/scripts/system/tablet-ui/tabletUI.js index ee3dab7308..4ed2f30437 100644 --- a/scripts/system/tablet-ui/tabletUI.js +++ b/scripts/system/tablet-ui/tabletUI.js @@ -103,7 +103,6 @@ UIWebTablet.register(); HMD.tabletID = UIWebTablet.tabletEntityID; HMD.homeButtonID = UIWebTablet.homeButtonID; - HMD.homeButtonHighlightID = UIWebTablet.homeButtonHighlightID; HMD.tabletScreenID = UIWebTablet.webOverlayID; HMD.displayModeChanged.connect(onHmdChanged); MyAvatar.sensorToWorldScaleChanged.connect(onSensorToWorldScaleChanged); @@ -130,7 +129,6 @@ tabletProperties.visible = true; Overlays.editOverlay(HMD.tabletID, tabletProperties); Overlays.editOverlay(HMD.homeButtonID, { visible: true }); - Overlays.editOverlay(HMD.homeButtonHighlightID, { visible: true }); Overlays.editOverlay(HMD.tabletScreenID, { visible: true }); Overlays.editOverlay(HMD.tabletScreenID, { maxFPS: 90 }); updateTabletWidthFromSettings(true); @@ -151,7 +149,6 @@ Overlays.editOverlay(HMD.tabletID, { visible: false }); Overlays.editOverlay(HMD.homeButtonID, { visible: false }); - Overlays.editOverlay(HMD.homeButtonHighlightID, { visible: false }); Overlays.editOverlay(HMD.tabletScreenID, { visible: false }); Overlays.editOverlay(HMD.tabletScreenID, { maxFPS: 1 }); } @@ -172,7 +169,6 @@ UIWebTablet = null; HMD.tabletID = null; HMD.homeButtonID = null; - HMD.homeButtonHighlightID = null; HMD.tabletScreenID = null; } else if (debugTablet) { print("TABLET closeTabletUI, UIWebTablet is null"); @@ -325,7 +321,6 @@ Overlays.deleteOverlay(tabletID); HMD.tabletID = null; HMD.homeButtonID = null; - HMD.homeButtonHighlightID = null; HMD.tabletScreenID = null; }); }()); // END LOCAL_SCOPE From 995cfeb3c5d04cb1c76a208be52d2aa33a79bb0f Mon Sep 17 00:00:00 2001 From: Dante Ruiz Date: Wed, 6 Jun 2018 10:42:12 -0700 Subject: [PATCH 161/300] cleaning code --- interface/resources/images/button-close.png | Bin 0 -> 3397 bytes interface/resources/images/buttonBezel.png | Bin 1529 -> 1530 bytes scripts/system/libraries/WebTablet.js | 22 +++++++++++++++++--- scripts/system/libraries/utils.js | 1 - scripts/system/tablet-ui/tabletUI.js | 2 +- 5 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 interface/resources/images/button-close.png diff --git a/interface/resources/images/button-close.png b/interface/resources/images/button-close.png new file mode 100644 index 0000000000000000000000000000000000000000..e15e6c0f966e1cd1b954c0059e945f7b068ad412 GIT binary patch literal 3397 zcmdT`eNJ`x>uu4RPm{PGS5{CtbLPDDinSiXI*qQ}!ARI-53N{LoTRf{k z@MC3Li=c20-5Z~j_+esv!r}dQ6E^}l^o5Foqvih`?ELG#s3eZ=yMo2vY)&{hr`|53ENaa< zr+uaIUw@e=!&~1e+_b%E*Acs~HXHc|-wF9$Q-Un<`7(KeDt7Z

  • TXZs^PGJL>js zQ{=mhz5=WI;Lb;9J0tq8S5}tU!zN-W69EiBXu}9B02}}q09*h-UX)R@JA& zr!l?GHZxA)&pXynH$i%q&u$Bv=vO-OI@_%JJzEZb3YIYwWv_%!Q}GJ+S>a>>obK{s zB76NFb*MhO9d8&JQ|-GpUSjnv(W{Ip+rssFRpZX@ZvCdTec+D7nUd;J>g{SAR zW7{gJolte|i8Vl=zE8<`y<-L^i_BXpF%2WlPJ%jWiB|vpDnebG!Ae@)!oeW9_^C4mg@N^RQW&LU;c?x?^q+R^d6}m95Jb*i{E48 zfS+mfG8VZg*l}ioGm^E8wls{S%Z`}EIBAtIB%|NV;X=>q2Gzv1U)|wps93WP;gAiu zSDvRSAd9&g&9@%!b-1wrr%iroU;6}!aI!nq84%bJJ+|PI2q$GtA2AT23mG&V&XKa? z%zoXQi$htE`T*g(`aaHJBegnpZjvJdE*fO5PHK#A3Ex=2h2$Y@{R!;O21|Hg0T+Y} zjzS1H#<$=A>^O5U2C$U@4k=~;Y*-$F4jw$ zS*ywzALnT(S-P3H*J!jufJYyI1zc2wlkKrm_S3O+Kl25zUJe8So`$kRZN=$?|5luymXc%puI;#4 z7*-jqjvee?UOz@{Xy~590%11kjBo+}itt8-0HL~A1`hD~Ni_xtcq~(}0fkKg79KF* zbedTV81OAqK}1P09i)wA$oWFRNoNEHAiU8@8=#P{#()7F1>2Uz0~W-Y#lQs(r398O zfon?;0$l_L$aAwAGwUrZ8jy%k$P|i+<+L|ftEiP!2}FPaw~dnJ01JedXU3hcxNi&6 zP@aGra=JCqXWXJ6Q`H73;C>|+@^iTf+dJ5Qj9@QHF!v)EXdFpeO{f5rLblWFS)4zTT1;qDfzrp4sgGdu_>8 z>P6j%T3u(#Z2us*-*R}Y%0w7cPhSjm7<%ljiWkj$7Gxc@{OyR1bXt+kN`3uE2F)lc|C2&_gOt?&r#Jss3HPQn lNRql|l&m<8z=4-BI0BFR*X!3f+z$o-2o*<&s@{*w{x=s;rK$h` literal 0 HcmV?d00001 diff --git a/interface/resources/images/buttonBezel.png b/interface/resources/images/buttonBezel.png index a85b236555ae456432ad236f2676965f6a8ddb7a..fe55855462bbd395ee3cc24095ea772c087dee13 100644 GIT binary patch literal 1530 zcmeAS@N?(olHy`uVBq!ia0y~yU}6Aa4iHr><-C@GfkCpwHKHUqKdq!Zu_%?nF(p4K zRlzeiF+DXXH8G{K@MNkD0|V+ zq9_4Vo(3q%KHzX5Gv;90U^Mv-L5dA>nB?d|bu^`EfC9fm9716nlB|74BqJNcwX-Z5 V--?n-85kHCJYD@<);T3K0RZp1r`iAj literal 1529 zcmeAS@N?(olHy`uVBq!ia0y~yU}6Aa4iHr><-C@GfkCpwHKHUqKdq!Zu_%?nF(p4K zRlzeiF+DXXH8G{K@MNkD0|V=9PZ!6Kid%248Zt64a2z%`uz&8)!_4}fEp~5JSP$4M zGd3_XBrq^YFfgz&ki#TL50X_BYG+`h$nlhGZ(t-p=peyBcF4m+k-Uh5Yok!R1f_9E zVG?Ly^cdhYKuPw2gg%97fI{sFh_pbaNkcpdQC Date: Wed, 6 Jun 2018 11:31:39 -0700 Subject: [PATCH 162/300] updating texture --- interface/resources/images/button-close.png | Bin 3397 -> 3451 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/interface/resources/images/button-close.png b/interface/resources/images/button-close.png index e15e6c0f966e1cd1b954c0059e945f7b068ad412..94513e62d8c4a5b1baaa9d243e2e6fe3bfbc6bfc 100644 GIT binary patch literal 3451 zcmds3Yfw{X8h+17l!GEk8tx!uQiTdCNCv_pN>ETyE{d(7Y)NpyxLP4`K@gC0(6xp; z#ZFxX7j)b0dO@hnE{uQ)CB)iRl;x6DZbIxjfEJG2B8Hru1ZSL%GE(=~_Q(12p67et z=Y5{ov0^$<) z#&d!X#fsx2;$!2EN^i&e0W4V>92oFn>VqdeYZ6Y29d42QRR_*|*AE|93nn+2#0d!r z@@>Q#mXNr2>0@kVJg)%;BfP&|@Z|dEx2?9_U%9&IvlSD45nr~SbX`^;^dF(dKKrxl z4v#|Ji|K53;wS&y<6;R#-}4<&U;+>TKnLIe00Mvk2#l29^6FQ@Uk#a8_gC;&oZeJ3 z$ouvce#Kh99D*t~&U3_@1bkEN?PTfm_u!XgvH3_b2d8&-lhbg}5j}TJ{d8ADOyz-^ zu8z*mPPx7-&hwH=BlU8~zdV>U)VNiYo}QlR?0ddN7gCy>k>TghZt9n0I+x$}_KvP# zGiae1#nd3F8Tz@U1>Zz%Q&qd@8%5h2{QSnj``%1X&*i?6$nz&#sbX1{dh_Nn9!pH4 zgN28VjKgmKiITtNkcg)w{-r919_R&MdDi#Wz6WRJ2YxkC!9Lg_znuU^E zi=HWeC+nAon62)`{JOi?pJEW@LN0UC$Ul)zq>HVrxaIXE&a)pHilMT?yNv-5n^%9L8>ou^uUjy1Sw2Pv_ft=5J1=|OK$WQY;sFa zUXA8ayQSs{DRsRzTfWIKCH6Mg%|ssc8u{*Iaw z(BRYJY@R6!*L)$Z;UCYdWkk0|ULbyt4*4B1e|5=ZiF9f*J~>O8p6M zOZnj8LfAFjs?U_-`}oKmTPor%2ZNlcG;ce11|x_dD}zcKd`@h46`~5Fec6jMG+kGg zJ=9jEq6IDk(ky@3^082YG(mvN*-f{>nZQAdgMKRo!F9|-&jBKiCDH`|+~z8@Cjbol zohp6#(PT6@n~7h7Bx!C&TsF5nQ04SRQ#w2>-kKS1RKs8^`qEYon&*#!z$h1CoB+lF z1U75C3=Hp?$gG@s{v0D#V8jweEP?=6p{2d)&dk-^@C%JPUQtmobf35?e6RG(sRqLq>}??8!o-Pm&?=q?em{LJ*4S_ zuQFGNeb4XWFRsr*`C#D|bIca!BgwhEsDV`$802(}Oy$cliB$j;1=kO`4qpDZmcJGq zSoy^f`voY$ow)I_#vLsUW4Ck zY^M0G_I)UKCKq14Qefb>p0DrKodV)qvpTlY70r`l+HS3y)U%l|dJ?OxsjF+hP|(+= zJ+l<~!C^?dPLpSgpBv~Jxk>583|i>u)G0=XQ)SFY>Pn%!-M%rbFM4!%>~Y7};bneR zCv)(++P@V#wY_Mnh(426y+2Q1$Z-4+Z%BWf_0^gTYsj}i?u|@csjH66dVFl4&`r}Q zdT1H5v8Svdt&k_}^~sCWv6$iJ=Jod(2rM5;uKTD`edR&5i@w=L7I{iT*4hJ`x>uu4RPm{PGS5{CtbLPDDinSiXI*qQ}!ARI-53N{LoTRf{k z@MC3Li=c20-5Z~j_+esv!r}dQ6E^}l^o5Foqvih`?ELG#s3eZ=yMo2vY)&{hr`|53ENaa< zr+uaIUw@e=!&~1e+_b%E*Acs~HXHc|-wF9$Q-Un<`7(KeDt7Z
  • TXZs^PGJL>js zQ{=mhz5=WI;Lb;9J0tq8S5}tU!zN-W69EiBXu}9B02}}q09*h-UX)R@JA& zr!l?GHZxA)&pXynH$i%q&u$Bv=vO-OI@_%JJzEZb3YIYwWv_%!Q}GJ+S>a>>obK{s zB76NFb*MhO9d8&JQ|-GpUSjnv(W{Ip+rssFRpZX@ZvCdTec+D7nUd;J>g{SAR zW7{gJolte|i8Vl=zE8<`y<-L^i_BXpF%2WlPJ%jWiB|vpDnebG!Ae@)!oeW9_^C4mg@N^RQW&LU;c?x?^q+R^d6}m95Jb*i{E48 zfS+mfG8VZg*l}ioGm^E8wls{S%Z`}EIBAtIB%|NV;X=>q2Gzv1U)|wps93WP;gAiu zSDvRSAd9&g&9@%!b-1wrr%iroU;6}!aI!nq84%bJJ+|PI2q$GtA2AT23mG&V&XKa? z%zoXQi$htE`T*g(`aaHJBegnpZjvJdE*fO5PHK#A3Ex=2h2$Y@{R!;O21|Hg0T+Y} zjzS1H#<$=A>^O5U2C$U@4k=~;Y*-$F4jw$ zS*ywzALnT(S-P3H*J!jufJYyI1zc2wlkKrm_S3O+Kl25zUJe8So`$kRZN=$?|5luymXc%puI;#4 z7*-jqjvee?UOz@{Xy~590%11kjBo+}itt8-0HL~A1`hD~Ni_xtcq~(}0fkKg79KF* zbedTV81OAqK}1P09i)wA$oWFRNoNEHAiU8@8=#P{#()7F1>2Uz0~W-Y#lQs(r398O zfon?;0$l_L$aAwAGwUrZ8jy%k$P|i+<+L|ftEiP!2}FPaw~dnJ01JedXU3hcxNi&6 zP@aGra=JCqXWXJ6Q`H73;C>|+@^iTf+dJ5Qj9@QHF!v)EXdFpeO{f5rLblWFS)4zTT1;qDfzrp4sgGdu_>8 z>P6j%T3u(#Z2us*-*R}Y%0w7cPhSjm7<%ljiWkj$7Gxc@{OyR1bXt+kN`3uE2F)lc|C2&_gOt?&r#Jss3HPQn lNRql|l&m<8z=4-BI0BFR*X!3f+z$o-2o*<&s@{*w{x=s;rK$h` From afd4b5a8ab5f52e7dfe5ef287369e0369c4362aa Mon Sep 17 00:00:00 2001 From: David Back Date: Wed, 6 Jun 2018 11:48:04 -0700 Subject: [PATCH 163/300] update default avatar to fix non-flat feet --- .../resources/meshes/defaultAvatar_full.fst | 145 +++++++++--------- .../networking/src/udt/PacketHeaders.cpp | 2 +- libraries/networking/src/udt/PacketHeaders.h | 3 +- 3 files changed, 76 insertions(+), 74 deletions(-) diff --git a/interface/resources/meshes/defaultAvatar_full.fst b/interface/resources/meshes/defaultAvatar_full.fst index aa1c17fc40..3726442dbd 100644 --- a/interface/resources/meshes/defaultAvatar_full.fst +++ b/interface/resources/meshes/defaultAvatar_full.fst @@ -1,89 +1,90 @@ -name = mannequin +name = 201806_jointFix_2 type = body+head scale = 1 -filename = mannequin/mannequin.baked.fbx -joint = jointRoot = Hips +filename = 201806_jointFix_2/201806_jointFix_2.fbx +texdir = 201806_jointFix_2/textures +joint = jointNeck = Neck joint = jointLean = Spine -joint = jointLeftHand = LeftHand -joint = jointHead = Head joint = jointEyeLeft = LeftEye joint = jointEyeRight = RightEye +joint = jointRoot = Hips +joint = jointLeftHand = LeftHand joint = jointRightHand = RightHand -joint = jointNeck = Neck +joint = jointHead = Head freeJoint = LeftArm freeJoint = LeftForeArm freeJoint = RightArm freeJoint = RightForeArm -bs = EyeBlink_L = blink = 1 bs = JawOpen = mouth_Open = 1 bs = LipsFunnel = Oo = 1 bs = BrowsU_L = brow_Up = 1 -jointIndex = RightHandPinky2 = 19 -jointIndex = LeftHandMiddle4 = 61 -jointIndex = LeftHand = 41 -jointIndex = LeftHandRing4 = 49 -jointIndex = RightHandMiddle3 = 36 -jointIndex = LeftHandThumb4 = 57 -jointIndex = RightToe_End = 10 -jointIndex = LeftHandRing1 = 46 -jointIndex = LeftForeArm = 40 -jointIndex = RightHandIndex4 = 29 -jointIndex = LeftShoulder = 38 -jointIndex = RightHandMiddle4 = 37 -jointIndex = RightShoulder = 14 -jointIndex = LeftLeg = 2 -jointIndex = LeftToe_End = 5 -jointIndex = Hips = 0 -jointIndex = RightFoot = 8 -jointIndex = RightHandThumb2 = 31 -jointIndex = LeftHandMiddle3 = 60 -jointIndex = RightHandThumb1 = 30 -jointIndex = Neck = 62 -jointIndex = Spine = 11 -jointIndex = RightHandThumb4 = 33 -jointIndex = RightHandMiddle1 = 34 -jointIndex = LeftHandIndex4 = 53 -jointIndex = face = 68 -jointIndex = RightHandRing3 = 24 -jointIndex = LeftHandPinky4 = 45 -jointIndex = LeftHandMiddle2 = 59 -jointIndex = RightHandThumb3 = 32 +bs = EyeBlink_L = blink = 1 jointIndex = LeftHandPinky3 = 44 -jointIndex = HeadTop_End = 66 -jointIndex = Spine1 = 12 -jointIndex = LeftHandRing3 = 48 -jointIndex = mannequin1 = 67 -jointIndex = RightEye = 65 -jointIndex = RightHandRing4 = 25 -jointIndex = RightHandPinky4 = 21 -jointIndex = LeftHandRing2 = 47 -jointIndex = RightHandIndex3 = 28 -jointIndex = RightUpLeg = 6 -jointIndex = LeftArm = 39 -jointIndex = LeftHandThumb3 = 56 -jointIndex = RightHandIndex2 = 27 -jointIndex = RightForeArm = 16 -jointIndex = RightArm = 15 -jointIndex = RightHandRing2 = 23 -jointIndex = LeftHandMiddle1 = 58 -jointIndex = Spine2 = 13 -jointIndex = LeftHandThumb2 = 55 -jointIndex = RightHandMiddle2 = 35 -jointIndex = RightHandPinky1 = 18 -jointIndex = LeftUpLeg = 1 -jointIndex = RightLeg = 7 -jointIndex = LeftHandIndex2 = 51 +jointIndex = LeftHand = 41 +jointIndex = RightHandMiddle1 = 34 +jointIndex = LeftHandPinky4 = 45 jointIndex = RightHand = 17 -jointIndex = LeftHandIndex3 = 52 -jointIndex = LeftFoot = 3 jointIndex = RightHandPinky3 = 20 -jointIndex = RightHandIndex1 = 26 -jointIndex = LeftHandPinky1 = 42 -jointIndex = RightToeBase = 9 -jointIndex = LeftHandIndex1 = 50 -jointIndex = LeftToeBase = 4 -jointIndex = LeftHandPinky2 = 43 -jointIndex = RightHandRing1 = 22 -jointIndex = LeftHandThumb1 = 54 -jointIndex = LeftEye = 64 +jointIndex = LeftFoot = 3 jointIndex = Head = 63 +jointIndex = Spine1 = 12 +jointIndex = RightHandRing4 = 25 +jointIndex = RightHandPinky1 = 18 +jointIndex = LeftHandIndex1 = 50 +jointIndex = RightHandIndex3 = 28 +jointIndex = LeftHandIndex3 = 52 +jointIndex = LeftToe_End = 5 +jointIndex = RightArm = 15 +jointIndex = RightHandRing3 = 24 +jointIndex = RightHandThumb2 = 31 +jointIndex = Spine2 = 13 +jointIndex = HeadTop_End = 66 +jointIndex = LeftToeBase = 4 +jointIndex = RightUpLeg = 6 +jointIndex = RightForeArm = 16 +jointIndex = LeftHandMiddle1 = 58 +jointIndex = LeftHandRing3 = 48 +jointIndex = RightHandPinky4 = 21 +jointIndex = RightHandIndex1 = 26 +jointIndex = Hips = 0 +jointIndex = RightEye = 65 +jointIndex = RightHandPinky2 = 19 +jointIndex = LeftHandMiddle2 = 59 +jointIndex = LeftHandPinky1 = 42 +jointIndex = LeftHandRing4 = 49 +jointIndex = RightFoot = 8 +jointIndex = RightHandIndex2 = 27 +jointIndex = RightToe_End = 10 +jointIndex = RightHandThumb3 = 32 +jointIndex = LeftHandMiddle3 = 60 +jointIndex = LeftHandThumb4 = 57 +jointIndex = LeftHandMiddle4 = 61 +jointIndex = LeftHandThumb1 = 54 +jointIndex = LeftHandThumb3 = 56 +jointIndex = body = 67 +jointIndex = LeftArm = 39 +jointIndex = RightToeBase = 9 +jointIndex = LeftEye = 64 +jointIndex = RightLeg = 7 +jointIndex = face = 68 +jointIndex = LeftForeArm = 40 +jointIndex = RightHandThumb4 = 33 +jointIndex = RightHandRing1 = 22 +jointIndex = LeftUpLeg = 1 +jointIndex = LeftHandPinky2 = 43 +jointIndex = LeftLeg = 2 +jointIndex = LeftHandIndex4 = 53 +jointIndex = RightHandThumb1 = 30 +jointIndex = LeftHandRing2 = 47 +jointIndex = RightHandMiddle2 = 35 +jointIndex = RightHandMiddle3 = 36 +jointIndex = Spine = 11 +jointIndex = RightHandMiddle4 = 37 +jointIndex = LeftHandIndex2 = 51 +jointIndex = RightHandRing2 = 23 +jointIndex = LeftHandThumb2 = 55 +jointIndex = LeftShoulder = 38 +jointIndex = Neck = 62 +jointIndex = RightHandIndex4 = 29 +jointIndex = LeftHandRing1 = 46 +jointIndex = RightShoulder = 14 diff --git a/libraries/networking/src/udt/PacketHeaders.cpp b/libraries/networking/src/udt/PacketHeaders.cpp index b69733c18d..253a17c6f9 100644 --- a/libraries/networking/src/udt/PacketHeaders.cpp +++ b/libraries/networking/src/udt/PacketHeaders.cpp @@ -40,7 +40,7 @@ PacketVersion versionForPacketType(PacketType packetType) { case PacketType::AvatarData: case PacketType::BulkAvatarData: case PacketType::KillAvatar: - return static_cast(AvatarMixerPacketVersion::FBXReaderNodeReparenting); + return static_cast(AvatarMixerPacketVersion::FixMannequinDefaultAvatarFeet); case PacketType::MessagesData: return static_cast(MessageDataVersion::TextOrBinaryData); // ICE packets diff --git a/libraries/networking/src/udt/PacketHeaders.h b/libraries/networking/src/udt/PacketHeaders.h index 5203a9d178..9faa92725f 100644 --- a/libraries/networking/src/udt/PacketHeaders.h +++ b/libraries/networking/src/udt/PacketHeaders.h @@ -282,7 +282,8 @@ enum class AvatarMixerPacketVersion : PacketVersion { AvatarIdentityLookAtSnapping, UpdatedMannequinDefaultAvatar, AvatarJointDefaultPoseFlags, - FBXReaderNodeReparenting + FBXReaderNodeReparenting, + FixMannequinDefaultAvatarFeet }; enum class DomainConnectRequestVersion : PacketVersion { From c294dd4ac712f51f1e530be9c3bee3bc2527222f Mon Sep 17 00:00:00 2001 From: David Back Date: Wed, 6 Jun 2018 12:32:47 -0700 Subject: [PATCH 164/300] fix path and name --- interface/resources/meshes/defaultAvatar_full.fst | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/interface/resources/meshes/defaultAvatar_full.fst b/interface/resources/meshes/defaultAvatar_full.fst index 3726442dbd..b47faeb8a8 100644 --- a/interface/resources/meshes/defaultAvatar_full.fst +++ b/interface/resources/meshes/defaultAvatar_full.fst @@ -1,8 +1,7 @@ -name = 201806_jointFix_2 +name = mannequin type = body+head scale = 1 -filename = 201806_jointFix_2/201806_jointFix_2.fbx -texdir = 201806_jointFix_2/textures +filename = mannequin/mannequin.baked.fbx joint = jointNeck = Neck joint = jointLean = Spine joint = jointEyeLeft = LeftEye From d57d087752fae62d56cd41e1b1ddd6f6dee9cd16 Mon Sep 17 00:00:00 2001 From: Dante Ruiz Date: Wed, 6 Jun 2018 12:48:20 -0700 Subject: [PATCH 165/300] update tablet model again --- .../tablet-with-home-button-small-bezel.fbx | Bin 271360 -> 318064 bytes scripts/system/libraries/WebTablet.js | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/resources/meshes/tablet-with-home-button-small-bezel.fbx b/interface/resources/meshes/tablet-with-home-button-small-bezel.fbx index 87445dea10ad92bb97f960296076a47917171cd0..b4cef7b4ea9f27c8b74c49fb476589fe0cfc4376 100644 GIT binary patch delta 64282 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 delta 51481 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 ddW_F;` Date: Wed, 6 Jun 2018 03:43:27 +0300 Subject: [PATCH 166/300] FB15569 - Debug default scripts no longer on developer menu --- scripts/defaultScripts.js | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/defaultScripts.js b/scripts/defaultScripts.js index 59a51830be..045dff1295 100644 --- a/scripts/defaultScripts.js +++ b/scripts/defaultScripts.js @@ -57,7 +57,6 @@ if (Menu.menuExists(MENU_CATEGORY) && !Menu.menuItemExists(MENU_CATEGORY, MENU_I menuItemName: MENU_ITEM, isCheckable: true, isChecked: previousSetting, - grouping: "Advanced" }); } From 8185d1b5f5d604f2013885d937ccc36e9f18a1f3 Mon Sep 17 00:00:00 2001 From: howard-stearns Date: Wed, 6 Jun 2018 15:24:54 -0700 Subject: [PATCH 167/300] cleanup and consistently don't getNextPage at beginning --- interface/resources/qml/hifi/Feed.qml | 8 ++------ interface/resources/qml/hifi/Pal.qml | 6 +++++- .../resources/qml/hifi/commerce/wallet/WalletHome.qml | 2 +- interface/resources/qml/hifi/models/PSFListModel.qml | 6 ++---- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/interface/resources/qml/hifi/Feed.qml b/interface/resources/qml/hifi/Feed.qml index fcfb61b1ca..1d28f18f9d 100644 --- a/interface/resources/qml/hifi/Feed.qml +++ b/interface/resources/qml/hifi/Feed.qml @@ -43,7 +43,6 @@ Column { property var http: null; HifiConstants { id: hifi } - //FIXME ListModel { id: suggestions; } Component.onCompleted: suggestions.getFirstPage(); HifiModels.PSFListModel { id: suggestions; @@ -57,7 +56,6 @@ Column { endpoint: '/api/v1/user_stories?' + options.join('&'); itemsPerPage: 3; processPage: function (data) { - console.log('FIXME processPage', suggestions.listModelName, JSON.stringify(data)); return data.user_stories.map(makeModelData); }; listModelName: actions; @@ -85,7 +83,7 @@ Column { data.details.connections = 4; data.action = 'announcement'; } - var fixme = { + return { place_name: name, username: data.username || "", path: data.path || "", @@ -103,8 +101,6 @@ Column { searchText: [name].concat(tags, description || []).join(' ').toUpperCase() }; - console.log('fixme makeModelData', JSON.stringify(fixme)); - return fixme; } function identity(x) { return x; @@ -238,7 +234,7 @@ Column { highlightMoveDuration: -1; highlightMoveVelocity: -1; currentIndex: -1; - onAtXEndChanged: { console.log('FIXME onAtXEndChanged', actions, scroll.atXEnd, scroll.atXBeginning); if (scroll.atXEnd && !scroll.atXBeginning) { suggestions.getNextPage(); } } + onAtXEndChanged: { if (scroll.atXEnd && !scroll.atXBeginning) { suggestions.getNextPage(); } } spacing: 12; width: parent.width; diff --git a/interface/resources/qml/hifi/Pal.qml b/interface/resources/qml/hifi/Pal.qml index 9a818ef4db..fbe34b2ebc 100644 --- a/interface/resources/qml/hifi/Pal.qml +++ b/interface/resources/qml/hifi/Pal.qml @@ -780,7 +780,11 @@ Rectangle { model: connectionsUserModel.model; Connections { target: connectionsTable.flickableItem; - onAtYEndChanged: if (connectionsTable.flickableItem.atYEnd) { connectionsUserModel.getNextPage(); } + onAtYEndChanged: { + if (connectionsTable.flickableItem.atYEnd && !connectionsTable.flickableItem.atYBeginning) { + connectionsUserModel.getNextPage(); + } + } } // This Rectangle refers to each Row in the connectionsTable. diff --git a/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml b/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml index 047dcd70d1..9076f10ebc 100644 --- a/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml +++ b/interface/resources/qml/hifi/commerce/wallet/WalletHome.qml @@ -400,7 +400,7 @@ Item { } } onAtYEndChanged: { - if (transactionHistory.atYEnd) { + if (transactionHistory.atYEnd && !transactionHistory.atYBeginning) { console.log("User scrolled to the bottom of 'Recent Activity'."); transactionHistoryModel.getNextPage(); } diff --git a/interface/resources/qml/hifi/models/PSFListModel.qml b/interface/resources/qml/hifi/models/PSFListModel.qml index 124e08b6cd..5cca73af92 100644 --- a/interface/resources/qml/hifi/models/PSFListModel.qml +++ b/interface/resources/qml/hifi/models/PSFListModel.qml @@ -79,8 +79,7 @@ Item { var processed; console.debug('handlePage', listModelName, error, JSON.stringify(response)); function fail(message) { - console.warn("Warning", listModelName, JSON.stringify(message)); - console.log('FIXME fail setting currentPageToRetrieve to -1', listModelName); + console.warn("Warning page fail", listModelName, JSON.stringify(message)); currentPageToRetrieve = -1; requestPending = false; delayedClear = false; @@ -97,7 +96,6 @@ Item { } processed = processPage(response.data || response); if (response.total_pages && (response.total_pages === currentPageToRetrieve)) { - console.log('fixme hanglePage set currentPageToRetrieve to -1', listModelName, 'response.total_pages:', response.total_pages, 'old currentPageToRetrieve:', currentPageToRetrieve); currentPageToRetrieve = -1; } if (searchItemTest) { @@ -172,7 +170,7 @@ Item { // ListView { // id: theList // model: thisPSFListModelId - // onAtYEndChanged: if (theList.atYEnd) { thisPSFListModelId.getNextPage(); } + // onAtYEndChanged: if (theList.atYEnd && !theList.atYBeginning) { thisPSFListModelId.getNextPage(); } // ...} property var getNextPage: function () { console.log('fixme getNextPage', listModelName, requestPending, currentPageToRetrieve); From 293388ebc2790564d80daf5635ca9e31f8ea089c Mon Sep 17 00:00:00 2001 From: Cristian Luis Duarte Date: Wed, 6 Jun 2018 19:26:13 -0300 Subject: [PATCH 168/300] Android - Allow search among protocol compatible user stories and not only tagged ones --- .../provider/UserStoryDomainProvider.java | 85 +++++++++++-------- .../hifiinterface/view/DomainAdapter.java | 46 +++++----- 2 files changed, 77 insertions(+), 54 deletions(-) diff --git a/android/app/src/main/java/io/highfidelity/hifiinterface/provider/UserStoryDomainProvider.java b/android/app/src/main/java/io/highfidelity/hifiinterface/provider/UserStoryDomainProvider.java index ea03864695..ca5e0c17bd 100644 --- a/android/app/src/main/java/io/highfidelity/hifiinterface/provider/UserStoryDomainProvider.java +++ b/android/app/src/main/java/io/highfidelity/hifiinterface/provider/UserStoryDomainProvider.java @@ -1,10 +1,11 @@ package io.highfidelity.hifiinterface.provider; import android.util.Log; -import android.util.MutableInt; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; import io.highfidelity.hifiinterface.HifiUtils; import io.highfidelity.hifiinterface.view.DomainAdapter; @@ -47,24 +48,42 @@ public class UserStoryDomainProvider implements DomainProvider { suggestions = new ArrayList<>(); } + @Override + public synchronized void retrieve(String filterText, DomainCallback domainCallback) { + if (!startedToGetFromAPI) { + startedToGetFromAPI = true; + fillDestinations(filterText, domainCallback); + } else { + filterChoicesByText(filterText, domainCallback); + } + } + private void fillDestinations(String filterText, DomainCallback domainCallback) { StoriesFilter filter = new StoriesFilter(filterText); - final MutableInt counter = new MutableInt(0); - allStories.clear(); - getUserStoryPage(1, + + List taggedStories = new ArrayList<>(); + Set taggedStoriesIds = new HashSet<>(); + getUserStoryPage(1, taggedStories, TAGS_TO_SEARCH, e -> { - allStories.subList(counter.value, allStories.size()).forEach(userStory -> { - filter.filterOrAdd(userStory); - }); - if (domainCallback != null) { - domainCallback.retrieveOk(suggestions); //ended - } - }, - a -> { - allStories.forEach(userStory -> { - counter.value++; - filter.filterOrAdd(userStory); + taggedStories.forEach(userStory -> { + taggedStoriesIds.add(userStory.id); }); + + allStories.clear(); + getUserStoryPage(1, allStories, null, + ex -> { + allStories.forEach(userStory -> { + if (taggedStoriesIds.contains(userStory.id)) { + userStory.tagFound = true; + } + filter.filterOrAdd(userStory); + }); + if (domainCallback != null) { + domainCallback.retrieveOk(suggestions); //ended + } + } + ); + } ); } @@ -73,25 +92,22 @@ public class UserStoryDomainProvider implements DomainProvider { restOfPagesCallback.callback(new Exception("Error accessing url [" + url + "]", t)); } - private void getUserStoryPage(int pageNumber, Callback restOfPagesCallback, Callback firstPageCallback) { + private void getUserStoryPage(int pageNumber, List userStoriesList, String tagsFilter, Callback restOfPagesCallback) { Call userStories = mUserStoryDomainProviderService.getUserStories( INCLUDE_ACTIONS_FOR_PLACES, "open", true, mProtocol, - TAGS_TO_SEARCH, + tagsFilter, pageNumber); Log.d("API-USER-STORY-DOMAINS", "Protocol [" + mProtocol + "] include_actions [" + INCLUDE_ACTIONS_FOR_PLACES + "]"); userStories.enqueue(new retrofit2.Callback() { @Override public void onResponse(Call call, Response response) { UserStories data = response.body(); - allStories.addAll(data.user_stories); + userStoriesList.addAll(data.user_stories); if (data.current_page < data.total_pages && data.current_page <= MAX_PAGES_TO_GET) { - if (pageNumber == 1 && firstPageCallback != null) { - firstPageCallback.callback(null); - } - getUserStoryPage(pageNumber + 1, restOfPagesCallback, null); + getUserStoryPage(pageNumber + 1, userStoriesList, tagsFilter, restOfPagesCallback); return; } restOfPagesCallback.callback(null); @@ -107,12 +123,16 @@ public class UserStoryDomainProvider implements DomainProvider { private class StoriesFilter { String[] mWords = new String[]{}; public StoriesFilter(String filterText) { - mWords = filterText.toUpperCase().split("\\s+"); + mWords = filterText.trim().toUpperCase().split("\\s+"); + if (mWords.length == 1 && (mWords[0] == null || mWords[0].length() <= 0 ) ) { + mWords = null; + } } private boolean matches(UserStory story) { - if (mWords.length <= 0) { - return true; + if (mWords == null || mWords.length <= 0) { + // No text filter? So filter by tag + return story.tagFound; } for (String word : mWords) { @@ -128,6 +148,9 @@ public class UserStoryDomainProvider implements DomainProvider { suggestions.add(story.toDomain()); } + /** + * if the story matches this filter criteria it's added into suggestions + * */ public void filterOrAdd(UserStory story) { if (matches(story)) { addToSuggestions(story); @@ -144,16 +167,6 @@ public class UserStoryDomainProvider implements DomainProvider { domainCallback.retrieveOk(suggestions); } - @Override - public synchronized void retrieve(String filterText, DomainCallback domainCallback) { - if (!startedToGetFromAPI) { - startedToGetFromAPI = true; - fillDestinations(filterText, domainCallback); - } else { - filterChoicesByText(filterText, domainCallback); - } - } - public interface UserStoryDomainProviderService { @GET("api/v1/user_stories") Call getUserStories(@Query("include_actions") String includeActions, @@ -166,12 +179,14 @@ public class UserStoryDomainProvider implements DomainProvider { class UserStory { public UserStory() {} + String id; String place_name; String path; String thumbnail_url; String place_id; String domain_id; private String searchText; + private boolean tagFound; // Locally used // New fields? tags, description diff --git a/android/app/src/main/java/io/highfidelity/hifiinterface/view/DomainAdapter.java b/android/app/src/main/java/io/highfidelity/hifiinterface/view/DomainAdapter.java index 97558d2681..4f8b33b481 100644 --- a/android/app/src/main/java/io/highfidelity/hifiinterface/view/DomainAdapter.java +++ b/android/app/src/main/java/io/highfidelity/hifiinterface/view/DomainAdapter.java @@ -54,27 +54,10 @@ public class DomainAdapter extends RecyclerView.Adapter domain) { if (filterText.length() == 0) { - Domain lastVisitedDomain = new Domain(mContext.getString(R.string.your_last_location), mLastLocation, DEFAULT_THUMBNAIL_PLACE); - if (!mLastLocation.isEmpty() && mLastLocation.contains("://")) { - int startIndex = mLastLocation.indexOf("://"); - int endIndex = mLastLocation.indexOf("/", startIndex + 3); - String toSearch = mLastLocation.substring(0, endIndex + 1).toLowerCase(); - for (Domain d : domain) { - if (d.url.toLowerCase().startsWith(toSearch)) { - lastVisitedDomain.thumbnail = d.thumbnail; - } - } - } - domain.add(0, lastVisitedDomain); + addLastLocation(domain); } - for (Domain d : domain) { - // we override the default picture added in the server by an android specific version - if (d.thumbnail != null && - d.thumbnail.endsWith("assets/places/thumbnail-default-place-e5a3f33e773ab699495774990a562f9f7693dc48ef90d8be6985c645a0280f75.png")) { - d.thumbnail = DEFAULT_THUMBNAIL_PLACE; - } - } + overrideDefaultThumbnails(domain); mDomains = new Domain[domain.size()]; mDomains = domain.toArray(mDomains); @@ -96,6 +79,31 @@ public class DomainAdapter extends RecyclerView.Adapter domain) { + for (Domain d : domain) { + // we override the default picture added in the server by an android specific version + if (d.thumbnail != null && + d.thumbnail.endsWith("assets/places/thumbnail-default-place-e5a3f33e773ab699495774990a562f9f7693dc48ef90d8be6985c645a0280f75.png")) { + d.thumbnail = DEFAULT_THUMBNAIL_PLACE; + } + } + } + + private void addLastLocation(List domain) { + Domain lastVisitedDomain = new Domain(mContext.getString(R.string.your_last_location), mLastLocation, DEFAULT_THUMBNAIL_PLACE); + if (!mLastLocation.isEmpty() && mLastLocation.contains("://")) { + int startIndex = mLastLocation.indexOf("://"); + int endIndex = mLastLocation.indexOf("/", startIndex + 3); + String toSearch = mLastLocation.substring(0, endIndex + 1).toLowerCase(); + for (Domain d : domain) { + if (d.url.toLowerCase().startsWith(toSearch)) { + lastVisitedDomain.thumbnail = d.thumbnail; + } + } + } + domain.add(0, lastVisitedDomain); + } + @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = mInflater.inflate(R.layout.domain_view, parent, false); From 6ddc768f572db7f69112d93726905faf60fa92e6 Mon Sep 17 00:00:00 2001 From: Dante Ruiz Date: Wed, 6 Jun 2018 15:40:33 -0700 Subject: [PATCH 169/300] making overlays use precisionPicking and adjust tablet screen position --- interface/src/ui/overlays/Base3DOverlay.cpp | 2 +- interface/src/ui/overlays/Base3DOverlay.h | 6 ++-- interface/src/ui/overlays/Circle3DOverlay.cpp | 2 +- interface/src/ui/overlays/Circle3DOverlay.h | 2 +- interface/src/ui/overlays/Grid3DOverlay.h | 2 +- interface/src/ui/overlays/Image3DOverlay.cpp | 2 +- interface/src/ui/overlays/Image3DOverlay.h | 2 +- interface/src/ui/overlays/ModelOverlay.cpp | 8 ++--- interface/src/ui/overlays/ModelOverlay.h | 4 +-- interface/src/ui/overlays/Overlays.cpp | 2 +- interface/src/ui/overlays/Planar3DOverlay.cpp | 2 +- interface/src/ui/overlays/Planar3DOverlay.h | 2 +- interface/src/ui/overlays/Volume3DOverlay.cpp | 2 +- interface/src/ui/overlays/Volume3DOverlay.h | 2 +- interface/src/ui/overlays/Web3DOverlay.cpp | 2 +- interface/src/ui/overlays/Web3DOverlay.h | 2 +- scripts/system/libraries/WebTablet.js | 36 ++++++++++++------- scripts/system/libraries/utils.js | 5 ++- 18 files changed, 48 insertions(+), 37 deletions(-) diff --git a/interface/src/ui/overlays/Base3DOverlay.cpp b/interface/src/ui/overlays/Base3DOverlay.cpp index f4efd1301d..39b98b77eb 100644 --- a/interface/src/ui/overlays/Base3DOverlay.cpp +++ b/interface/src/ui/overlays/Base3DOverlay.cpp @@ -283,7 +283,7 @@ QVariant Base3DOverlay::getProperty(const QString& property) { } bool Base3DOverlay::findRayIntersection(const glm::vec3& origin, const glm::vec3& direction, - float& distance, BoxFace& face, glm::vec3& surfaceNormal) { + float& distance, BoxFace& face, glm::vec3& surfaceNormal, bool precisionPicking) { return false; } diff --git a/interface/src/ui/overlays/Base3DOverlay.h b/interface/src/ui/overlays/Base3DOverlay.h index ab83a64273..7852285271 100644 --- a/interface/src/ui/overlays/Base3DOverlay.h +++ b/interface/src/ui/overlays/Base3DOverlay.h @@ -68,11 +68,11 @@ public: virtual QVariant getProperty(const QString& property) override; virtual bool findRayIntersection(const glm::vec3& origin, const glm::vec3& direction, float& distance, - BoxFace& face, glm::vec3& surfaceNormal); + BoxFace& face, glm::vec3& surfaceNormal, bool precisionPicking = false); virtual bool findRayIntersectionExtraInfo(const glm::vec3& origin, const glm::vec3& direction, - float& distance, BoxFace& face, glm::vec3& surfaceNormal, QVariantMap& extraInfo) { - return findRayIntersection(origin, direction, distance, face, surfaceNormal); + float& distance, BoxFace& face, glm::vec3& surfaceNormal, QVariantMap& extraInfo, bool precisionPicking = false) { + return findRayIntersection(origin, direction, distance, face, surfaceNormal, precisionPicking); } virtual SpatialParentTree* getParentTree() const override; diff --git a/interface/src/ui/overlays/Circle3DOverlay.cpp b/interface/src/ui/overlays/Circle3DOverlay.cpp index 33f40f7c63..ef89213d68 100644 --- a/interface/src/ui/overlays/Circle3DOverlay.cpp +++ b/interface/src/ui/overlays/Circle3DOverlay.cpp @@ -521,7 +521,7 @@ QVariant Circle3DOverlay::getProperty(const QString& property) { } bool Circle3DOverlay::findRayIntersection(const glm::vec3& origin, const glm::vec3& direction, float& distance, - BoxFace& face, glm::vec3& surfaceNormal) { + BoxFace& face, glm::vec3& surfaceNormal, bool precisionPicking) { // Scale the dimensions by the diameter glm::vec2 dimensions = getOuterRadius() * 2.0f * getDimensions(); diff --git a/interface/src/ui/overlays/Circle3DOverlay.h b/interface/src/ui/overlays/Circle3DOverlay.h index ef491b7f46..0dc0f8b138 100644 --- a/interface/src/ui/overlays/Circle3DOverlay.h +++ b/interface/src/ui/overlays/Circle3DOverlay.h @@ -55,7 +55,7 @@ public: void setMinorTickMarksColor(const xColor& value) { _minorTickMarksColor = value; } virtual bool findRayIntersection(const glm::vec3& origin, const glm::vec3& direction, float& distance, - BoxFace& face, glm::vec3& surfaceNormal) override; + BoxFace& face, glm::vec3& surfaceNormal, bool precisionPicking = false) override; virtual Circle3DOverlay* createClone() const override; diff --git a/interface/src/ui/overlays/Grid3DOverlay.h b/interface/src/ui/overlays/Grid3DOverlay.h index 5a67b21e07..34fe4dbbb6 100644 --- a/interface/src/ui/overlays/Grid3DOverlay.h +++ b/interface/src/ui/overlays/Grid3DOverlay.h @@ -35,7 +35,7 @@ public: virtual Grid3DOverlay* createClone() const override; // Grids are UI tools, and may not be intersected (pickable) - virtual bool findRayIntersection(const glm::vec3&, const glm::vec3&, float&, BoxFace&, glm::vec3&) override { return false; } + virtual bool findRayIntersection(const glm::vec3&, const glm::vec3&, float&, BoxFace&, glm::vec3&, bool precisionPicking = false) override { return false; } protected: Transform evalRenderTransform() override; diff --git a/interface/src/ui/overlays/Image3DOverlay.cpp b/interface/src/ui/overlays/Image3DOverlay.cpp index 6e9946e935..a4ce7f9e0d 100644 --- a/interface/src/ui/overlays/Image3DOverlay.cpp +++ b/interface/src/ui/overlays/Image3DOverlay.cpp @@ -258,7 +258,7 @@ void Image3DOverlay::setURL(const QString& url) { } bool Image3DOverlay::findRayIntersection(const glm::vec3& origin, const glm::vec3& direction, - float& distance, BoxFace& face, glm::vec3& surfaceNormal) { + float& distance, BoxFace& face, glm::vec3& surfaceNormal, bool precisionPicking) { if (_texture && _texture->isLoaded()) { // Make sure position and rotation is updated. Transform transform = getTransform(); diff --git a/interface/src/ui/overlays/Image3DOverlay.h b/interface/src/ui/overlays/Image3DOverlay.h index aa802a82a9..4432e3b07c 100644 --- a/interface/src/ui/overlays/Image3DOverlay.h +++ b/interface/src/ui/overlays/Image3DOverlay.h @@ -43,7 +43,7 @@ public: bool isTransparent() override { return Base3DOverlay::isTransparent() || _alphaTexture; } virtual bool findRayIntersection(const glm::vec3& origin, const glm::vec3& direction, float& distance, - BoxFace& face, glm::vec3& surfaceNormal) override; + BoxFace& face, glm::vec3& surfaceNormal, bool precisionPicking = false) override; virtual Image3DOverlay* createClone() const override; diff --git a/interface/src/ui/overlays/ModelOverlay.cpp b/interface/src/ui/overlays/ModelOverlay.cpp index a541b3365f..2678889f49 100644 --- a/interface/src/ui/overlays/ModelOverlay.cpp +++ b/interface/src/ui/overlays/ModelOverlay.cpp @@ -477,16 +477,16 @@ QVariant ModelOverlay::getProperty(const QString& property) { } bool ModelOverlay::findRayIntersection(const glm::vec3& origin, const glm::vec3& direction, - float& distance, BoxFace& face, glm::vec3& surfaceNormal) { + float& distance, BoxFace& face, glm::vec3& surfaceNormal, bool precisionPicking) { QVariantMap extraInfo; - return _model->findRayIntersectionAgainstSubMeshes(origin, direction, distance, face, surfaceNormal, extraInfo); + return _model->findRayIntersectionAgainstSubMeshes(origin, direction, distance, face, surfaceNormal, extraInfo, precisionPicking); } bool ModelOverlay::findRayIntersectionExtraInfo(const glm::vec3& origin, const glm::vec3& direction, - float& distance, BoxFace& face, glm::vec3& surfaceNormal, QVariantMap& extraInfo) { + float& distance, BoxFace& face, glm::vec3& surfaceNormal, QVariantMap& extraInfo, bool precisionPicking) { - return _model->findRayIntersectionAgainstSubMeshes(origin, direction, distance, face, surfaceNormal, extraInfo); + return _model->findRayIntersectionAgainstSubMeshes(origin, direction, distance, face, surfaceNormal, extraInfo, precisionPicking); } ModelOverlay* ModelOverlay::createClone() const { diff --git a/interface/src/ui/overlays/ModelOverlay.h b/interface/src/ui/overlays/ModelOverlay.h index 3ef3f23fec..7de320ec81 100644 --- a/interface/src/ui/overlays/ModelOverlay.h +++ b/interface/src/ui/overlays/ModelOverlay.h @@ -44,9 +44,9 @@ public: void setProperties(const QVariantMap& properties) override; QVariant getProperty(const QString& property) override; virtual bool findRayIntersection(const glm::vec3& origin, const glm::vec3& direction, float& distance, - BoxFace& face, glm::vec3& surfaceNormal) override; + BoxFace& face, glm::vec3& surfaceNormal, bool precisionPicking = false) override; virtual bool findRayIntersectionExtraInfo(const glm::vec3& origin, const glm::vec3& direction, - float& distance, BoxFace& face, glm::vec3& surfaceNormal, QVariantMap& extraInfo) override; + float& distance, BoxFace& face, glm::vec3& surfaceNormal, QVariantMap& extraInfo, bool precisionPicking = false) override; virtual ModelOverlay* createClone() const override; diff --git a/interface/src/ui/overlays/Overlays.cpp b/interface/src/ui/overlays/Overlays.cpp index 85041aad4e..be7b0d42fc 100644 --- a/interface/src/ui/overlays/Overlays.cpp +++ b/interface/src/ui/overlays/Overlays.cpp @@ -554,7 +554,7 @@ RayToOverlayIntersectionResult Overlays::findRayIntersectionVector(const PickRay glm::vec3 thisSurfaceNormal; QVariantMap thisExtraInfo; if (thisOverlay->findRayIntersectionExtraInfo(ray.origin, ray.direction, thisDistance, - thisFace, thisSurfaceNormal, thisExtraInfo)) { + thisFace, thisSurfaceNormal, thisExtraInfo, precisionPicking)) { bool isDrawInFront = thisOverlay->getDrawInFront(); if ((bestIsFront && isDrawInFront && thisDistance < bestDistance) || (!bestIsFront && (isDrawInFront || thisDistance < bestDistance))) { diff --git a/interface/src/ui/overlays/Planar3DOverlay.cpp b/interface/src/ui/overlays/Planar3DOverlay.cpp index f53d06a239..9a436c7564 100644 --- a/interface/src/ui/overlays/Planar3DOverlay.cpp +++ b/interface/src/ui/overlays/Planar3DOverlay.cpp @@ -71,7 +71,7 @@ QVariant Planar3DOverlay::getProperty(const QString& property) { } bool Planar3DOverlay::findRayIntersection(const glm::vec3& origin, const glm::vec3& direction, - float& distance, BoxFace& face, glm::vec3& surfaceNormal) { + float& distance, BoxFace& face, glm::vec3& surfaceNormal, bool precisionPicking) { // FIXME - face and surfaceNormal not being returned return findRayRectangleIntersection(origin, direction, getWorldOrientation(), getWorldPosition(), getDimensions(), distance); } diff --git a/interface/src/ui/overlays/Planar3DOverlay.h b/interface/src/ui/overlays/Planar3DOverlay.h index 0a0e75696e..e2a0e1f896 100644 --- a/interface/src/ui/overlays/Planar3DOverlay.h +++ b/interface/src/ui/overlays/Planar3DOverlay.h @@ -31,7 +31,7 @@ public: virtual QVariant getProperty(const QString& property) override; virtual bool findRayIntersection(const glm::vec3& origin, const glm::vec3& direction, float& distance, - BoxFace& face, glm::vec3& surfaceNormal) override; + BoxFace& face, glm::vec3& surfaceNormal, bool precisionPicking = false) override; protected: glm::vec2 _dimensions; diff --git a/interface/src/ui/overlays/Volume3DOverlay.cpp b/interface/src/ui/overlays/Volume3DOverlay.cpp index 3aed2a5b42..cf1f7f7fcb 100644 --- a/interface/src/ui/overlays/Volume3DOverlay.cpp +++ b/interface/src/ui/overlays/Volume3DOverlay.cpp @@ -76,7 +76,7 @@ QVariant Volume3DOverlay::getProperty(const QString& property) { } bool Volume3DOverlay::findRayIntersection(const glm::vec3& origin, const glm::vec3& direction, - float& distance, BoxFace& face, glm::vec3& surfaceNormal) { + float& distance, BoxFace& face, glm::vec3& surfaceNormal, bool precisionPicking) { // extents is the entity relative, scaled, centered extents of the entity glm::mat4 worldToEntityMatrix; Transform transform = getTransform(); diff --git a/interface/src/ui/overlays/Volume3DOverlay.h b/interface/src/ui/overlays/Volume3DOverlay.h index bde8c71aef..e9b996a6dd 100644 --- a/interface/src/ui/overlays/Volume3DOverlay.h +++ b/interface/src/ui/overlays/Volume3DOverlay.h @@ -31,7 +31,7 @@ public: QVariant getProperty(const QString& property) override; virtual bool findRayIntersection(const glm::vec3& origin, const glm::vec3& direction, float& distance, - BoxFace& face, glm::vec3& surfaceNormal) override; + BoxFace& face, glm::vec3& surfaceNormal, bool precisionPicking = false) override; protected: // Centered local bounding box diff --git a/interface/src/ui/overlays/Web3DOverlay.cpp b/interface/src/ui/overlays/Web3DOverlay.cpp index 8af818edc6..ade478347c 100644 --- a/interface/src/ui/overlays/Web3DOverlay.cpp +++ b/interface/src/ui/overlays/Web3DOverlay.cpp @@ -622,7 +622,7 @@ void Web3DOverlay::setScriptURL(const QString& scriptURL) { } } -bool Web3DOverlay::findRayIntersection(const glm::vec3& origin, const glm::vec3& direction, float& distance, BoxFace& face, glm::vec3& surfaceNormal) { +bool Web3DOverlay::findRayIntersection(const glm::vec3& origin, const glm::vec3& direction, float& distance, BoxFace& face, glm::vec3& surfaceNormal, bool precisionPicking) { glm::vec2 dimensions = getDimensions(); glm::quat rotation = getWorldOrientation(); glm::vec3 position = getWorldPosition(); diff --git a/interface/src/ui/overlays/Web3DOverlay.h b/interface/src/ui/overlays/Web3DOverlay.h index d888424cbc..2cf35c0172 100644 --- a/interface/src/ui/overlays/Web3DOverlay.h +++ b/interface/src/ui/overlays/Web3DOverlay.h @@ -53,7 +53,7 @@ public: QVariant getProperty(const QString& property) override; virtual bool findRayIntersection(const glm::vec3& origin, const glm::vec3& direction, float& distance, - BoxFace& face, glm::vec3& surfaceNormal) override; + BoxFace& face, glm::vec3& surfaceNormal, bool precisionPicking = false) override; virtual Web3DOverlay* createClone() const override; diff --git a/scripts/system/libraries/WebTablet.js b/scripts/system/libraries/WebTablet.js index ffe434e621..ad87dc9f66 100644 --- a/scripts/system/libraries/WebTablet.js +++ b/scripts/system/libraries/WebTablet.js @@ -41,6 +41,8 @@ var LOCAL_BEZEL_HIGHLIGHT = Script.resourcesPath() + "images/buttonBezel_highlig var LOCAL_NORMAL_BEZEL = Script.resourcesPath() + "images/buttonBezel.png"; var LOCAL_TABLET_MODEL_PATH = Script.resourcesPath() + "meshes/tablet-with-home-button-small-bezel.fbx"; +var HIGH_PRIORITY = 1; +var LOW_PRIORITY = 0; var SUBMESH = 3; // returns object with two fields: @@ -138,8 +140,7 @@ WebTablet = function (url, width, dpi, hand, clientOnly, location, visible) { Overlays.deleteOverlay(this.webOverlayID); } - var RAYPICK_OFFSET = 0.0007; // Sufficient for raypick to reliably intersect tablet screen before tablet model. - var WEB_ENTITY_Z_OFFSET = (tabletDepth / 2.0) / sensorScaleFactor + RAYPICK_OFFSET; + var WEB_ENTITY_Z_OFFSET = (tabletDepth / 2.5) / sensorScaleFactor; var WEB_ENTITY_Y_OFFSET = 1 * tabletScaleFactor; var screenWidth = 0.9275 * tabletWidth; var screenHeight = 0.8983 * tabletHeight; @@ -147,7 +148,7 @@ WebTablet = function (url, width, dpi, hand, clientOnly, location, visible) { name: "WebTablet Web", url: url, localPosition: { x: 0, y: WEB_ENTITY_Y_OFFSET, z: -WEB_ENTITY_Z_OFFSET }, - localRotation: Quat.multiply(Quat.angleAxis(-0.25, X_AXIS), Quat.angleAxis(180, Y_AXIS)), + localRotation: Quat.multiply(Quat.angleAxis(-0.5, X_AXIS), Quat.angleAxis(180, Y_AXIS)), dimensions: {x: screenWidth, y: screenHeight, z: 0.1}, dpi: tabletDpi, color: { red: 255, green: 255, blue: 255 }, @@ -184,6 +185,9 @@ WebTablet = function (url, width, dpi, hand, clientOnly, location, visible) { albedoMap: HOME_BUTTON_TEXTURE } }), + userData: JSON.stringify({ + "grabbableKey": {"grabbable": false} + }), parentMaterialName: 4, parentID: this.tabletEntityID }); @@ -191,13 +195,17 @@ WebTablet = function (url, width, dpi, hand, clientOnly, location, visible) { this.homeButtonUnhighlightMaterial = Entities.addEntity({ type: "Material", materialURL: "materialData", - priority: 1, + localPosition: { x: 0.0, y: 0.0, z: 0.0 }, + priority: HIGH_PRIORITY, materialData: JSON.stringify({ materials: { albedoMap: LOCAL_NORMAL_BEZEL } }), + userData: JSON.stringify({ + "grabbableKey": {"grabbable": false} + }), visible: false, parentMaterialName: SUBMESH, parentID: this.tabletEntityID @@ -206,7 +214,8 @@ WebTablet = function (url, width, dpi, hand, clientOnly, location, visible) { this.homeButtonHighlightMaterial = Entities.addEntity({ type: "Material", materialURL: "materialData", - priority: 1, + localPosition: { x: 0.0, y: 0.0, z: 0.0 }, + priority: LOW_PRIORITY, visible: false, materialData: JSON.stringify({ materials: { @@ -214,8 +223,11 @@ WebTablet = function (url, width, dpi, hand, clientOnly, location, visible) { } }), + userData: JSON.stringify({ + "grabbableKey": {"grabbable": false} + }), parentMaterialName: SUBMESH, - parentID: null + parentID: this.tabletEntityID }, true); this.receive = function (channel, senderID, senderUUID, localOnly) { @@ -467,22 +479,22 @@ WebTablet.prototype.calculateWorldAttitudeRelativeToCamera = function (windowPos WebTablet.prototype.onHoverEnterOverlay = function (overlayID, pointerEvent) { if (overlayID === this.homeButtonID) { - Entities.editEntity(this.homeButtonUnhighlightMaterial, {parentID: null}); - Entities.editEntity(this.homeButtonHighlightMaterial, {parentID: this.tabletEntityID}); + Entities.editEntity(this.homeButtonUnhighlightMaterial, {priority: LOW_PRIORITY}); + Entities.editEntity(this.homeButtonHighlightMaterial, {priority: HIGH_PRIORITY}); } }; WebTablet.prototype.onHoverOverOverlay = function (overlayID, pointerEvent) { if (overlayID !== this.homeButtonID) { - Entities.editEntity(this.homeButtonUnhighlightMaterial, {parentID: this.tabletEntityID}); - Entities.editEntity(this.homeButtonHighlightMaterial, {parentID: null}); + Entities.editEntity(this.homeButtonUnhighlightMaterial, {priority: HIGH_PRIORITY}); + Entities.editEntity(this.homeButtonHighlightMaterial, {priority: LOW_PRIORITY}); } }; WebTablet.prototype.onHoverLeaveOverlay = function (overlayID, pointerEvent) { if (overlayID === this.homeButtonID) { - Entities.editEntity(this.homeButtonUnhighlightMaterial, {parentID: this.tabletEntityID}); - Entities.editEntity(this.homeButtonHighlightMaterial, {parentID: null}); + Entities.editEntity(this.homeButtonUnhighlightMaterial, {priority: HIGH_PRIORITY}); + Entities.editEntity(this.homeButtonHighlightMaterial, {priority: LOW_PRIORITY}); } }; diff --git a/scripts/system/libraries/utils.js b/scripts/system/libraries/utils.js index e6db5139aa..3a36461ccf 100644 --- a/scripts/system/libraries/utils.js +++ b/scripts/system/libraries/utils.js @@ -400,14 +400,13 @@ resizeTablet = function (width, newParentJointIndex, sensorToWorldScaleOverride) }); // update webOverlay - var RAYPICK_OFFSET = 0.0007; // Sufficient for raypick to reliably intersect tablet screen before tablet model. - var WEB_ENTITY_Z_OFFSET = (tabletDepth / 2.0) * sensorScaleOffsetOverride + RAYPICK_OFFSET; + var WEB_ENTITY_Z_OFFSET = (tabletDepth / 2.5) * sensorScaleOffsetOverride; var WEB_ENTITY_Y_OFFSET = 1 * tabletScaleFactor * sensorScaleOffsetOverride; var screenWidth = 0.9275 * tabletWidth; var screenHeight = 0.8983 * tabletHeight; var landscape = Tablet.getTablet("com.highfidelity.interface.tablet.system").landscape; Overlays.editOverlay(HMD.tabletScreenID, { - localPosition: { x: 0, y: WEB_ENTITY_Y_OFFSET, z: -WEB_ENTITY_Z_OFFSET }, + localPosition: { x: 0, y: WEB_ENTITY_Y_OFFSET, z: -WEB_ENTITY_Z_OFFSET}, dimensions: {x: landscape ? screenHeight : screenWidth, y: landscape ? screenWidth : screenHeight, z: 0.1}, dpi: tabletDpi }); From a246c9f0d18eedb259e038b196abfec6514e3833 Mon Sep 17 00:00:00 2001 From: David Back Date: Wed, 6 Jun 2018 15:47:29 -0700 Subject: [PATCH 170/300] fix fbx and textures --- interface/resources/meshes/mannequin/Eyes.png | Bin 0 -> 22414 bytes .../mannequin/{Eyes.ktx => Eyes_bcn.ktx} | Bin 349744 -> 349744 bytes .../mannequin/StingrayPBS10_Base_Color.png | Bin 0 -> 1168014 bytes .../StingrayPBS10_Base_Color_bcn.ktx | Bin 0 -> 699260 bytes .../mannequin/StingrayPBS10_Normal_OpenGL.png | Bin 0 -> 1026568 bytes .../StingrayPBS10_Normal_OpenGL_bcn.ktx | Bin 0 -> 1398324 bytes .../meshes/mannequin/lambert1_Base_Color.ktx | Bin 699260 -> 0 bytes .../mannequin/lambert1_Normal_OpenGL.ktx | Bin 1398324 -> 0 bytes .../meshes/mannequin/lambert1_Roughness.png | Bin 0 -> 537177 bytes ...ughness.ktx => lambert1_Roughness_bcn.ktx} | Bin 699260 -> 699260 bytes .../meshes/mannequin/mannequin.baked.fbx | Bin 373285 -> 645145 bytes 11 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 interface/resources/meshes/mannequin/Eyes.png rename interface/resources/meshes/mannequin/{Eyes.ktx => Eyes_bcn.ktx} (99%) create mode 100644 interface/resources/meshes/mannequin/StingrayPBS10_Base_Color.png create mode 100644 interface/resources/meshes/mannequin/StingrayPBS10_Base_Color_bcn.ktx create mode 100644 interface/resources/meshes/mannequin/StingrayPBS10_Normal_OpenGL.png create mode 100644 interface/resources/meshes/mannequin/StingrayPBS10_Normal_OpenGL_bcn.ktx delete mode 100644 interface/resources/meshes/mannequin/lambert1_Base_Color.ktx delete mode 100644 interface/resources/meshes/mannequin/lambert1_Normal_OpenGL.ktx create mode 100644 interface/resources/meshes/mannequin/lambert1_Roughness.png rename interface/resources/meshes/mannequin/{lambert1_Roughness.ktx => lambert1_Roughness_bcn.ktx} (99%) diff --git a/interface/resources/meshes/mannequin/Eyes.png b/interface/resources/meshes/mannequin/Eyes.png new file mode 100644 index 0000000000000000000000000000000000000000..df35dc9fee6f8bba9b8bc9c4722dde440c49c23e GIT binary patch literal 22414 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 literal 0 HcmV?d00001 diff --git a/interface/resources/meshes/mannequin/Eyes.ktx b/interface/resources/meshes/mannequin/Eyes_bcn.ktx similarity index 99% rename from interface/resources/meshes/mannequin/Eyes.ktx rename to interface/resources/meshes/mannequin/Eyes_bcn.ktx index ada45776a0d10cef9f3f8b7f0e96bbf1ad2658ce..934cba31808a6e39170c713c4211c1e7b81eff44 100644 GIT binary patch delta 30 mcmdn6Ms&j((FyrX3=EBht%Z!Og-or5%&mniTMJqDhXMevmJ0U( delta 30 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≈986dsgR?4&#B~glTTH6eX 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

    0>0V9j@$ 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⁣ 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

    LY-vHkTL6l!883$H;3%b%sDT_=-R;u4HBLZ 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 fdC~9fYS{Xyoa&Hs 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�!d@>U9nUKB2X~-9e(7Ipg#XZ&Sx*w@ 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%0DVhtx4X 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 po-Y+JdN;8D_6nVfq$O$DDWFLwoQn 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 z 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

    U(?zo{VOAuy;Q#sWyzv7gJLO3^ zKwTv~gB6uqELf)l8~tan?|0un{5t0EMw5n`ZvDT%re*$jW524>(d_v^YDF9{|EeEv%W&+|AQAV%6i9* z+pleu_;0gO==xe)n-<~!ZHux08r`i6k-yO=ah{l&>6i3A%=gx|KrC^rfT{f$39m^auaQ&VZVPj`c$(P%uh#L@DF#)y#sN8&7dSj z`2VI-d_V9l@PE>Zdbv}c4jHcwdG5Ih`*p~(R)}82Q>qY>m&0Pdh(A&%PDB9#pCUqC z1G~vW&*0pvw8e|l@P56ZaP5%C#%(s64fA&o=M3@DzLpkQ$D6#bMdqikUq5yf=OzV% z!Q)t`M41}@jstZAYYLz@;`e3IF9AIP{-*F3KYm2!8Sh_P0sgQZjyhxfp5NIwfd7rHPgX<6wd~xv6McZm$r%ga-}hd9q8j*b*|us7{Qvy^1MX2~ zlyL%Z|F%2tybb*SIKOZl{*?(`w^)D)ZQGq^y7e4-9 zA3nj1%vY}aqx)*tK0Z^Pn_Nui((&=Ub+AIH>b>;+dPVVzv`ceo@5IDJgfCO~RoRz< z`XVFqnj(D6>c_caMLFALoo7)FPKg+PKPLx$!@zl*#~D zMqNXS%(pG|5+ctF@RQjJ^!rO*5FPI>i5Rptrc{sZ;-y&<>ZAA$4k%=mxa zIin~ej-1iz61y+GQ%oxKwOO;kLL$Lnrum;FTB>c|B4zX+RJVd;cl*1v@_g%fdu za8g;H?^ekr#0iFw5YQbIVf7+js1&Ld@q)>%suqUd4MJaog~cmEwMZW9S8%>Q>f(23 ziO?|x{E6^aRw7=!yW?B(cgWh89D5t*0QiC%u48>n1+C$-34a!Dbq_&bdBx>= zW& z?gQe7QBGM{nF=F6BK}{>-aV|zGu<0ap_W5NnQQiRb?xc?W~>#3AkdjLtsQN}9+--q z>F7)YiWU^B#n>vttX2$~P^?r)l}e%K0&2no+a^7d<94h?S-#uFZ@ðwBMlUa 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