>DIM RECORD XYZ > DIM x# > DIM y# > DIM z# >DIM END RECORD.XYZ > >DIM RECORD TRIANGLE > DIM p1& > DIM p2& > DIM p3& >DIM END RECORD.TRIANGLE > >DIM RECORD EDGE > DIM p1& > DIM p2& >DIM END RECORD.EDGE > >then you can, for example, DIM ISOSCELES.TRIANGLE > > >Charlie Dickman >charlied@... Thanks Charlie. How do the above relate to the below that were also in that post, seems I am missing a pxyz and v array(s), or am I? What are the below statements doing exactly with regards to the above? "*" has something to do with setting a pointer, correct? But to what, and to how many? :) C is so concise, which is great I think, but it can be hard to follow when porting to FB. 'Takes as input NV vertices in array pxyz 'Returned is a list of ntri triangular faces in the array v XYZ *pxyz; 'this the same as accessing record XYZ? TRIANGLE *v; 'this just allocating a list of Triangle records of number v? long *ntri; 'this looks like a DIM and a pointer all in one. Robert Covington