简体   繁体   中英

autodesk forge viewer set selection color to default

at object selection I'm using below code to change the selected object color,

viewerApp.getCurrentViewer().impl.setSelectionColor(new THREE.Color(1, 0, 0));

It works fine, but how do I set the selection color to default?

I tried both


  viewerApp.getCurrentViewer().clearSelection();

and

viewerApp.getCurrentViewer().clearThemingColors();

but these methods doesn't seems to work.

Am I doing something wrong? or what is the best practice to change color and revert it back to default?

viewer version: 6*

This selection color is actually hardcoded and not saved in any configuration. You need to reset the color by specifying the original color, like this:

 .impl.setSelectionColor(new THREE.Color(0.4, 0.6, 1));

If the goal is to change the color of a selected element I would highly advice to use setThemingColor instead. This will set a theming color to the defined dbids, this can easily be cleared at any point. You could hook this up to a select event to have automatic clearing and reassigning of colors. You could handle this after initialising the viewer.

In v7:

viewerApp.getCurrentViewer().viewer.addEventListener(Autodesk.Viewing.SELECTION_CHANGED_EVENT, event=>{
    viewerApp.getCurrentViewer().clearThemingColors();
    event.dbIdArray.forEach(id => 
    {
       viewerApp.getCurrentViewer().setThemingColor(id, new THREE.Vector4(1,0,0,1)
    })
}
) 

However if you did want to have this approach you would have to find out what the default color is and use setSelectionColor with this color to overwrite it: Edit Thanks to Cyrille we now know ! so adjusted the color accordingly

viewerApp.getCurrentViewer().impl.setSelectionColor(new THREE.Color(0.4, 0.6, 1));

no clear function is defined.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM