vmonahov
July 2nd, 2008, 18:58
Let's suppose I have ccmesh object and
I want to create a copy of it with modified vertex positions.
Knowing it's name, I would do something like this
to access it's geometric data.
//
// Get object
//
char object_name[32] = "|pTorus1|pTorusShape1";
miTag my_obj_tag = mi_api_name_lookup(object_name);
void *my_obj_data = mi_db_access(my_obj_tag);
miObject *object = (miObject *) my_obj_data;
miObject_type type = object -> type;
mi_db_unpin(my_obj_tag);
//
//
// Access geom data
//
if ( type == miOBJECT_SUBDIVSURFS ) {
miSubdivsurf_list subdiv_list = (object -> geo).subdivsurf_list;
} else if ( type == miOBJECT_POLYGONS ) {
}
miSubdivsurf_list is defined in geoshader.h this way:
typedef struct miSubdivsurf_list {
miGeoIndex no_subdivsurfs;
miTag subdivsurfs;
} miSubdivsurf_list;
As I understand from similar miPolygon_list and miFace_list decalarations,
"miTag subdivsurfs" here should be an array of miSubdivsurf,
but miSubdivsurf is missing in geoshader.h
So, how should I access subdiv geometry data in this case?
I want to create a copy of it with modified vertex positions.
Knowing it's name, I would do something like this
to access it's geometric data.
//
// Get object
//
char object_name[32] = "|pTorus1|pTorusShape1";
miTag my_obj_tag = mi_api_name_lookup(object_name);
void *my_obj_data = mi_db_access(my_obj_tag);
miObject *object = (miObject *) my_obj_data;
miObject_type type = object -> type;
mi_db_unpin(my_obj_tag);
//
//
// Access geom data
//
if ( type == miOBJECT_SUBDIVSURFS ) {
miSubdivsurf_list subdiv_list = (object -> geo).subdivsurf_list;
} else if ( type == miOBJECT_POLYGONS ) {
}
miSubdivsurf_list is defined in geoshader.h this way:
typedef struct miSubdivsurf_list {
miGeoIndex no_subdivsurfs;
miTag subdivsurfs;
} miSubdivsurf_list;
As I understand from similar miPolygon_list and miFace_list decalarations,
"miTag subdivsurfs" here should be an array of miSubdivsurf,
but miSubdivsurf is missing in geoshader.h
So, how should I access subdiv geometry data in this case?