Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Radio buttons with dat.gui

I am working with the check boxes in three js.I have created a user control panel in which I have added check boxes.What I want to do is when I click on any check box when the other check box is already checked the previous one should be unchecked.So can anyone please tell me how to that.

This is the code that I have written for check boxes.

function addDatGui(){
  var gui = new dat.GUI();
              
  parameters = {
    a:false,
    b:false,
    c:false
  }

  var first = gui.addFolder("Plastic");
    var pos1 = first.add(parameters,'a').name('Possitive Charge');
    var neg1 = first.add(parameters,'b').name('Negative Charge');
    var neu1 = first.add(parameters,'c').name('Neutral');

  var second = gui.addFolder("Glass");
    var pos2 = second.add(parameters,'a').name('Possitive Charge');
    var neg2 = second.add(parameters,'b').name('Negative Charge');
    var neu2 = second.add(parameters,'c').name('Neutral');

  pos1.onChange(PCharge);
  neg1.onChange(Ncharge);
  neu1.onChange(NeCharge);
  var show = gui.add(parameters,'a').name('Show Charge'); 
}

This is what I have now

like image 995
Naren Avatar asked Jun 19 '17 12:06

Naren


People also ask

What are radio buttons in GUI?

Radio buttons are other useful GUI items that offers options to the user. The main difference is you can select multiple radio buttons. It forces you to opt in for only one of the options in the same group. Potentially a user may have to make decision like these with radio buttons on a graphical user interface:

What is a radio button in Python?

And that’s is called a radio button. Here you can see an example of a Python radio button. In this section, we will learn how to get the value stored in the radio button in Python In the below example students have a choice to select a stream (science, commerce, arts). the value of radiobutton comes in an integer or string form.

What is the default radio button on the radio?

A default radio button is selected or accepted when a user either clicks on the reset button or does not provide any input. In this output, user can choose any one option. No matter what ever option is selected but if he clicks on reset then the radiobutton will set to default i.e none.

What is the DAT GUI?

Description The Dat GUI is another very useful tool that we can use to learn about Three.js as it allows us to quickly add a very basic user interface which allows us to interact with our 3d scene and the objects within it.


1 Answers

You can set .listen() to each controller and .onChange() with a function which will set all parameters to false and then the parameter you need to true:

var gui = new dat.GUI();

parameters = {
  a: false,
  b: false,
  c: false
}

var first = gui.addFolder("Plastic");
var pos1 = first.add(parameters, 'a').name('Possitive Charge').listen().onChange(function(){setChecked("a")});
var neg1 = first.add(parameters, 'b').name('Negative Charge').listen().onChange(function(){setChecked("b")});
var neu1 = first.add(parameters, 'c').name('Neutral').listen().onChange(function(){setChecked("c")});

function setChecked( prop ){
  for (let param in parameters){
    parameters[param] = false;
  }
  parameters[prop] = true;
}

jsfiddle example

PS I just didn't get the moment, when you want to use the same object of parameters in two different folders, but it's up to you anyway.

like image 71
prisoner849 Avatar answered Sep 21 '22 00:09

prisoner849