• Create Account

## How to find triangle which consists (x,z)

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

No replies to this topic

### #1anders211  Members

250
Like
0Likes
Like

Posted 30 June 2013 - 01:32 PM

As we know terrain might be rendered from heightmap (some raw data prepared with the aid of photoshop) and from mesh which You for example prepare in some 3D tool like Blender. I am actually using the second way of terrain. I have rendered terrain with the aid of mesh. And I have object located at (x,z) and now I have to calculate height of the object location - coordinate y. So I have to find triangle from my terrain mesh which consists (x,z). I have problem with "if" condition. Could You help me to fulfill all the possibilities of "if" condition?

vector< D3DXVECTOR > terrainVerts;  //each entry has 3 floats (x,y,z) of vertex
vector< vector<u32> > terrainFace;   //each entry has 3 DWORD vertex indices

void Object::updateHeightForObject(D3DXVECTOR3& entry);
{
float x = entry.x; //x coordinate of my object
float y = entry.y; //y coordinate of my object which I need update
float z = entry.z; //z coordinate of my object

u32 numFaces = static_cast<u32>(terrainFace.size());

for(u32 i=0; i<numFaces; ++i)
{
float x1 = terrainVerts[ terrainFace[i][0] ].x;
float x2 = terrainVerts[ terrainFace[i][1] ].x;
float x3 = terrainVerts[ terrainFace[i][2] ].x;
float y1 = terrainVerts[ terrainFace[i][0] ].y;
float y2 = terrainVerts[ terrainFace[i][1] ].y;
float y3 = terrainVerts[ terrainFace[i][2] ].y;
float z1 = terrainVerts[ terrainFace[i][0] ].z;
float z2 = terrainVerts[ terrainFace[i][1] ].z;
float z3 = terrainVerts[ terrainFace[i][2] ].z;

if(x > x1 && x < x2 ????   //there must be some complex if
{
//triangle found
//when I find triangle then I have to use some algorithm which I have in my heightmap class in order to get calculate height offset value
, however this is easy for me, because I have implementation}

}
}

Edited by anders211, 30 June 2013 - 01:34 PM.

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.