# [ODE] Trimesh question

Riley Lark rileylark at gmail.com
Thu Nov 2 11:43:22 MST 2006

```I am trying to get trimeshes to work in my system and I am having
trouble just getting a simple pyramid to work properly.  The top
vertex of the pyramid behaves perfectly, never penetrating any other
objects significantly or anything like that, but the 4 corner vertices
don't act properly at all, and there seems to be a mysterious 6th
vertex out the bottom of the pyramid that will prop the stupid thing
up in an otherwise very unlikely spot.  Screenshot:
screenshot is stable - the object has stopped moving.  As you can see
that one vertex is well into the ground (which is a box, not another
trimesh) and is propped up at a funny angle.

This is another stable view of the pyramid:

In this second screenshot the bottom vertices are behaving properly,
but that mysterious 6th vertex is propping the thing up.  About 9
times out of 10 the green side of the pyramid ends up on top (there is
only 1 green side).  The black and white side is the bottom.

I define my vertices and triangles (somewhat redundantly) as follows:

dReal vertices[6*3*3] =
{
//RED SIDE:
-1, -1, 0,
0, 0, 2,
-1, 1, 0,

//YELLOW SIDE:
-1, 1, 0,
0, 0, 2,
1, 1, 0,

//GREEN SIDE:
1, 1, 0,
0, 0, 2,
1, -1, 0,

//BLUE SIDE:
1, -1, 0,
0, 0, 2,
-1, -1, 0,

//WHITE HALF-SIDE:
-1, 1, 0,
-1, -1, 0,
1, 1, 0,

//BLACK HALF-SIDE:
-1, -1, 0,
1, -1, 0,
1, 1, 0,
};

int indices[6][3] =
{
{0, 1, 2},
{3, 4, 5},
{6, 7, 8},
{9, 10, 11},
{12, 13, 14},
{15, 16, 17},
};

dGeomTriMeshDataBuildSimple(s.tmData, vertices, 18, (const int
*)(&(indices[0])), 18);
//dGeomTriMeshDataBuildSingle(s.tmData, vertices, sizeof(dReal)*3,
18, indices, 9, sizeof(indices[0])*3);

geomID = dCreateTriMesh(spaceID, s.tmData, NULL, NULL, NULL);

I am really stumped... I'm using version 0.7 of ODE with trimesh
support enabled, dReal == float.

Thanks for any help!  And let me know if this is an inappropriate post
for this mailing list.
```