3 Vertices

Blitz3D Forums/Blitz3D Programming/3 Vertices

Eric(Posted 2004) [#1]
When I do a cameraPick To Get Picked Triangle, I can obviously Get The 3 Vertices That Make Up That Triangle, What I can't figure out is, How to get the Whole Square. When looking top down on a Mesh, in wireframe. The Triangles Hypotenuse matches up with another Triangle. I want that Other Triangle 3 Vertices.

Make Sense?

Thanks in Advance for any help,
Eric


John Blackledge(Posted 2004) [#2]
But since you can have a triangle attached to _any_ of the three edges, there seems to be a greater problem - which one?
Sorry.


Shambler(Posted 2004) [#3]
Is the mesh just a grid of squares?

If it is and the triangles are all in sequential order you could just use some arbitrary math to decide which triangle shares this triangles hypot.


Dreamora(Posted 2004) [#4]
If you can decide which 2 vertices form the hypot you could use them to find the triangle that is made of this 2 vertices and a 3rd as only 1 possible triangle can share them normally.


Eric(Posted 2004) [#5]
John, There is one one Hyponeuse of a triangle. So It would be the other triangle that shares the same hypotenuse.

Shambler Any Ideas on how to do that?


DJWoodgate(Posted 2004) [#6]
Maybe he meant something like this.

ThisTri = Pickedtriangle()
If ThisTri And 1 Then OtherTri = ThisTri+1 Else OtherTri = ThisTri-1


Eric(Posted 2004) [#7]
DJ,

Can you please give me just a little more Guidance, Maybe I should have posted in the beginners section.

Regard,
Eric


poopla(Posted 2004) [#8]
DJ, in a grid, that's perfect. He needs to use the pic coords to get the domain of the quad he is in.


Eric(Posted 2004) [#9]
DJ,

I thanks, I got it, But I had to Change it to
ThisTri = PickedTriangle()
If ThisTri And 1 Then OtherTri = ThisTri(-)1 Else OtherTri = ThisTri(+)1

The Signs We backward for my program.

Regards,
Eric


DJWoodgate(Posted 2004) [#10]
Yes, my fault, I forgot the tri index starts at 0.


Eric(Posted 2004) [#11]
So I can Actually Learn something, Can you explain how this works?


Shambler(Posted 2004) [#12]
Basically the first 'square' will be made up of triangle 0 and 1, the second is triangle 2 and 3 and so on.

So, if your pick returns an even number triangle then the other triangle that makes up the square will be the next triangle in the mesh 'ThisTri+1' but if the pick returns an odd number triangle then the other triangle making up the square will be the previous triangle 'ThisTri-1'


DJWoodgate(Posted 2004) [#13]
BTW in case you are not familiar with binary stuff, ThisTri And 1 checks if bit 0 of the index number is set, as it will be for all odd numbers. In Binary, Decimal 1=1, 2=10, 3=11, 4=100, 5=101 and so on. The AND operator in blitz performs a bitwise AND which returns a result that has bits set only if those bits are set in both the operands. The if condition evaluates any non zero Integer result as true.


Eric(Posted 2004) [#14]
Thanks for the explaination.

Regards,
ERic