actualisation de la dat.gui avec les nouvelles valeurs
Je voudrais rafraîchir la dat.menu de l'interface graphique avec de nouvelles valeurs. J'ai chargée un modèle et d'affichage dans le répertoire, le nom des objets à l'intérieur d'un gui dossier.
Comment puis-je afficher le nouveau nom de l'objet lorsque j'ajoute un autre modèle ?
Ou il est possible de réinitialiser/effacer l'interface graphique.
Vous devez vous connecter pour publier un commentaire.
Fondamentalement, vous devez définir les contrôleurs à "écouter" pour la saisie lorsque vous les ajoutez, par exemple,
Pour la documentation, voir:
http://workshop.chromeexperiments.com/examples/gui/#9--Updating-the-Display-Automatically
Pour un exemple de cela dans Three.js voir:
http://stemkoski.github.io/Three.js/GUI-Controller.html
'webkitRequestAnimationFrame' is vendor-specific. Please use the standard 'requestAnimationFrame' instead.
dat.l'interface graphique.js:2841, je suis en utilisant google Chrome version 40.0.2214.115options
semble fonctionner. Exemple : stackoverflow.com/a/41382243/1431042Echt Einfach la solution n'a pas fonctionné pour moi, et Stemkoski est un peu large. J'ai finalement réussi avec le
updateDisplay
fonction:http://workshop.chromeexperiments.com/examples/gui/#10--Updating-the-Display-Manually
Notez que si vous avez les valeurs dans un dossier
folder1
l'appel est comme ceci:Si vous ne voulez pas coder en dur
folder1
, ou que vous souhaitez simplement mettre à jour tous les dossiers, vous pouvez procéder comme suit:Écrit une fonction pour mettre à jour dat.gui des listes déroulantes avec un nouvel ensemble de valeurs:
Utilisation:
Lee Stemkoski et Echt Einfach les solutions de l'utilisation de l' .méthode listen() sur un contrôleur sélectionné dans l'interface graphique.
jmmut la solution de l'aide .updateDisplay(), boucle par TOUS les contrôleurs dans l'interface graphique
Il me semble que ces deux types de solution sont CHERS, si vous souhaitez uniquement mettre à jour manuellement la valeur d'un seul contrôleur à un moment donné.
Vous pouvez éviter cela en utilisant la méthode .updateDisplay() pour un SEUL contrôleur.
Une façon pour ce faire est si vous savez à l'avance de l'index[i] du contrôleur unique. Mais c'est assez fastidieux à mettre en œuvre.
Une meilleure façon est de faire référence au contrôleur spécifique par nom
Remarque: je n'ai pas inclus le code supplémentaire nécessaire pour faire ce travail avec les contrôleurs à l'intérieur des dossiers. Vous pouvez obtenir ce à partir de l'autre des réponses.
Il est facile, quand j'ai lu le code source de la dat.gui:
https://github.com/dataarts/dat.gui/blob/master/src/dat/controllers/Controller.js#L36
Comme vous le voyez,
this.object = object
,this
est un contrôleur de vous ajouter, etobject
est ce que vous avez besoin de changer. Voici un exemple de code:Ma réponse ne pas refléter votre question, mais sera utile pour les autres de programme pour changer les valeurs dans la scène 3d et de la nécessité de mettre à jour les contrôles d'interface utilisateur graphique.
Lorsque vous déclarez:
vous avez déclaré que les paramètres à l'avance, par exemple
Maintenant, vous pouvez écouter de la ou des événements clés de l'événement approprié et modifier les valeurs dans l'interface graphique comme ça:
écouter a un bug associés avec elle, si vous utilisez les menus déroulants. Voir ici: https://code.google.com/p/dat-gui/issues/detail?id=59
Voici une petite fonction pour mettre à jour tous les contrôleurs en parcourant tous les dossiers.