Hello @krthk86g ,
The first point is that -
1.)you need to save all locaton e.g. if you explode in y direction
2.) you can use the slider event to calculate explode state e.g. $scope.goSlider() function definition and call the Value Change JS box of the slider widget
3.) you have to define a delta which is specific for each component - defined as extra modelItem widget
4.) calculate and set the y value of the modelItems which have to be exploded
Here is some very simple construct which should demonstrate the principle:
$scope.modelItems=[]
$scope.delta=0.5
$rootScope.$on('modelLoaded', function() {
console.log("modelLoaded event");
const args = Array.from(arguments);
for( let i=0;i< args.length;i++ ) {
console.log("Event args["+i+"]="+args[i])
for(let ii=0; ii <5; ii++) {
$scope.modelItems[ii]={}
let modelItemName='modelItem-'+(ii+1)
$scope.modelItems[ii].name= modelItemName
console.log("ii="+ii+" >> "+modelItemName)
$scope.modelItems[ii].y=$scope.view.wdg[modelItemName]['y']
$scope.modelItems[ii].delta= $scope.delta*2/(ii+1)
// for simplificaton some automatic delta
}
console.log("$scope.modelItems");
console.warn($scope.modelItems);
}
})
//======================
$scope.goSlider= function ()
{
var slidVal=parseFloat($scope.view.wdg['slider-2']['value']/100)
console.log ("slidVal="+slidVal)
for(let ii=0; ii <5; ii++) {
let modelItemName = $scope.modelItems[ii].name
//the sigh will convert the direction if negative
$scope.view.wdg[modelItemName]['y'] = $scope.modelItems[ii].delta*slidVal*Math.sign( $scope.view.wdg[modelItemName]['y']) + parseFloat($scope.modelItems[ii]['y'] )
console.log("$scope.view.wdg["+modelItemName+"][\'y\'] ="+$scope.view.wdg[modelItemName]['y'] )
}
}
The code above will move 5 modelItems in Y dirction where the delta for each component is calculated automatically for simplification reasons.
This code will move all components in the same time. You can make it more complicated where you can check if the value of the slider is in different range (if ... then block) but this will make it more complex.
