Rotate Container COMP?

I guys,
This is the first time I need to rotate a comp by 90 degrees.
Can we do that?

Thanks

look up the Transform TOP and Flip TOP

Thanks FaustoB for your reply. but I was looking a way to keep all my UI in a container and rotate it because of my interactive screen which is flipped.
I think this can’t be done?

I see, sorry, my bad, I misread your post (and title).
I thought you were talking about rotating a comp, intended as composite TOP.

I am not sure if rotating a container with UI is possible or not.

You may have some luck with the geoPanel component in the Palette Techniques section.
It allows you to re-draw UI as interactive textured geometry.

Thank you Rob for this solution!
I will try it this weekend :wink:

Thought this was an interesting problem so I took a stab at it.

Here’s a comp that lets you rotate 90 left or right and even flip 180. Just point the ‘Target’ parameter toward the comp you need to flip.

Seems like it’s working pretty well but I haven’t really tested it much. Let me know if you see any problems and check out the .toe file for a working example.
flipaDeeDooDah.tox (1.2 KB)
flipaDeeDooDah.toe (5.35 KB)

Hey, nice one Matthew! thank you for this!
This is a nice trick to use an opviewer and the panel CHOP for this!
Thanks again!

hi,

no solution here, just following :slight_smile:
could be nice to add this to the wish list…

Nice solution with the opview, but how does it handle the mouse position for mouse clic ?

@Gallow

It uses a Panel Execute DAT that executes every time one of these panel values change:

insideu
insidev
lselect
mselect
rselect

The Panel Execute DAT remaps the u and v coordinates and simulates the interaction on the target COMP using its interactMouse() method. Here’s what’s in the onValueChange() callback:


def onValueChange(panelValue):
	
	p = parent().panel
	
	if parent().par.Rotate == 'right':
		u = 1-p.insidev
		v = p.insideu
	elif parent().par.Rotate == 'left':
		u = p.insidev
		v = 1-p.insideu
	else:
		u = 1-p.insideu
		v = 1-p.insidev
	
	
	left_click = p.lselect
	middle_click = p.mselect
	right_click = p.rselect
	
	
	op(parent().par.Target).interactMouse(
		u, 
		v,
		leftClick=left_click,
		middleClick=middle_click,
		rightClick=right_click,
		#left=False,
		#middle=False,
		#right=False,
		#wheel=0,
		#pixels=False,
		#Screen=False,
		#quiet=True
	)
	return

So there are some things that wouldn’t pass through like mouse-wheel and drag/drop but if you’re just trying to click on buttons and sliders it should work just fine.

Looks like I left a panel chop in there on accident so I updated the TOX file above with a new version.

Nice solution to flip a panel 90 degrees MatthewW !