Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Click event should get Clickd Object Details. #24

Open
GoogleCodeExporter opened this issue Jul 29, 2015 · 2 comments
Open

Click event should get Clickd Object Details. #24

GoogleCodeExporter opened this issue Jul 29, 2015 · 2 comments

Comments

@GoogleCodeExporter
Copy link

What steps will reproduce the problem?
1. Need to make color change in particular area
2. When click on the onject, event should return the details of only clicked 
object from scene
3.

What is the expected output? What do you see instead?


What version of the product are you using? On what operating system?


Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 7 Jun 2013 at 9:52

@GoogleCodeExporter
Copy link
Author

Firstly, you should override viewer's onmousedown/onmouseup callbacks to setup 
your own event handlers. Both these methods have the same signatures as 
viewer.onmousexxx(x, y, button, depth, mesh). The last parameter indicates 
which mesh instance your pointer is currently on or null if none. 

Since you have the right mesh, you can create a new material with a different 
color and attach it to the mesh using mesh.setMaterial() method. This changes 
the looking of the specified mesh.

Finally, the viewer's update() method should be called at least once to apply 
the changes and render a new frame.

The implementation code may look like this:

// create viewer instance and load your models, etc.
...
// override viewer's onmousedown callback to implement selection effect
viewer.onmousedown = function(x, y, button, depth, mesh) {
  if(button == 0/*left button down*/ && mesh != null) {
    // create a new material with a different color (blue for example)
    var newMat = new JSC3D.Material('', 0, 0x000080, 0, true);
    // set the new material to the selected mesh
    mesh.setMaterial(newMat);
    // tell viewer to render a new frame
    viewer.update();
  }
};
...

That's it!

Please note that a material is applied on a whole mesh. There's no way to just 
change color of a particular area of it.

Original comment by [email protected] on 11 Jun 2013 at 2:40

@GoogleCodeExporter
Copy link
Author

Thank You For your Support.

Original comment by [email protected] on 13 Jun 2013 at 6:18

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant