quaternion rotation and UI

Hello, I'm trying to create a UI control that (in this case a spinner) rotates geometry that's stored in an array. Converting the angle axis to quat is working really well. However, with the way I have it set up, when you switch between the spinners that control the x, y, and z rotation the geometry will reset the pivot point to work with the corresponding axis. I understand this from me assigning values for x y and z.

Is there a way to put some sort of dynamic variable for x y and z, so it can work with quaternion math, but know that the rotation should be on a local x y or z based on what spinner is being used?

on spn_xSlide changed true do
(
	for i = 1 to myArray.count do
 
	(
		myArray[i].rotation = (angleaxis (spn_xSlide.value)[1, 0, 0]) as quat
	)
)
 
on spn_ySlide changed true do
(
	for i = 1 to myArray.count do
	(
		myArray[i].rotation = (angleaxis (spn_ySlide.value)[0, 1, 0]) as quat
	)
)
 
on spn_zSlide changed true do
(
	for i = 1 to myArray.count do
	(
		myArray[i].rotation = (angleaxis (spn_zSlide.value)[0, 0,1]) as quat
	)
)

This is my first post! Please let me know if i did something stupid while submitting

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
alecb513's picture

Thanks!

Thanks for your hep! It worked perfectly!

pixamoon's picture

`

great :) happy it helped

pixamoon's picture

`

yes, because on every spn_Slide change it reset others angles to 0

maybe you can start from (eulerAngles x y z)

it can look this way:

on spn_xSlide changed val do
(
	for i = 1 to myArray.count do
	(
		myArray[i].rotation = (eulerAngles spn_xSlide.value spn_ySlide.value spn_zSlide.value) as quat
	)
)
 
on spn_ySlide changed val do
(
	for i = 1 to myArray.count do
	(
		myArray[i].rotation = (eulerAngles spn_xSlide.value spn_ySlide.value spn_zSlide.value) as quat
	)
)
 
on spn_zSlide changed val do
(
	for i = 1 to myArray.count do
	(
		myArray[i].rotation = (eulerAngles spn_xSlide.value spn_ySlide.value spn_zSlide.value) as quat
	)
)

Hope it helps,
Pixamoon

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.