# Points not on neighbor polygons edges

• On 16/03/2013 at 15:33, xxxxxxxx wrote:

User Information:
Cinema 4D Version:   R12
Platform:   Windows  ;   Mac OSX  ;
Language(s) :     C++  ;

---------
Let's say that I have two triangles (ta and tb) with a neighboring edge.  Using GetPolyInfo(ta), the point of ta that is not on the edge is trivial (for edge, it would be ta->c since edge represents an edge from points a->b, etc.).  Is there a simple way to get the point not on the edge for tb or do I really need to find out which of the three point indices of tb (tb->a, tb->b, tb->c) don't match ta->a and ta->b?

• On 16/03/2013 at 17:07, xxxxxxxx wrote:

Well, okay.  I went the 'et tu, brute'-force method.  Here is an example for the curious:

``````pinfo =        neighbor.GetPolyInfo(i);
if (!pinfo->mark)
{
s->Init(f->p1, f->p2, ks, kd, 0.0, 1000.0);
++s;
++scnt;
// Diagonal bracing across points not on edge for triangles
ef =    pinfo->face;
if (ef != NOTOK)
{
np =    &polys[ef];
if ((np->a != p->a) && (np->a != p->b))
s->Init(f->p3, &masses[np->a], ks, kd, 0.0, 1000.0);
else if ((np->b != p->a) && (np->b != p->b))
s->Init(f->p3, &masses[np->b], ks, kd, 0.0, 1000.0);
else
s->Init(f->p3, &masses[np->c], ks, kd, 0.0, 1000.0);
++s;
++scnt;
}
}
``````

Note: the number of 'edges' (in this case, the 's' array) total for a triangulated object becomes neighbor->GetEdgeCount() + (polygonCount * 2).