View Single Post
Old 19th January 2004, 02:59 PM   #2
Professional user
Andy's Avatar
Join Date: Jun 2003
Posts: 4,452
Default Re: ac_object_get_triangle_surfaces vs ac_object_get_surface

Hi Jeff,

Sorry about the delay, the office moving is almost complete now.

ac_object_get_triangle_surfaces uses surface_get_triangulations so I can't only think that there may be non-poly or surfaces with < 3 vertices.
Remember that the triangulation of a surface may fail fail (you get an empty list returned).

ac_object_get_triangle_surfaces looks like this:

Prototype List *ac_object_get_triangle_surfaces(ACObject *ob)  // free with ac_surfacelist_free(&result)
List *tri = NULL;
int n = 0;

	for (List *sp = ob->surfacelist; sp != NULL; sp = sp->next, n++)
		Surface *s = (Surface *)sp->data;

		if ((s->numvert < 3) || (s->type != SURFACE_POLYGON) )

		if (s->numvert > 3)
			List *slist = (List *)surface_get_triangulations(s);
			list_prepend_list(&tri, slist);			
			Surface *ns = surface_clone(s, ob);
			list_add_item_head(&tri, (void *)ns);

		} // end for all surfaces in object

Andy is offline   Reply With Quote