c3f tolerance,
c3f normaltolerance)
{
- printf("%s Start geometry has %d vertices and %d indexes\n", __func__,
- g->vertice.count, g->indices.count);
- printf("%s Start geometry has %d normals and %d tex\n", __func__,
- g->normals.count, g->textures.count);
+ printf("%s has %d/%d/%d vertices/normals/tex and %d indexes\n", __func__,
+ g->vertice.count, g->normals.count, g->textures.count,
+ g->indices.count);
c3f tolerance2 = tolerance * tolerance;
g->colorf.count = output;
c3colorf_array_realloc(&g->colorf, output);
}
- g->dirty = 1;
+ c3geometry_set_dirty(g, 1);
- printf("%s end geometry has %d vertices and %d indexes\n", __func__,
+ printf("%s converted to %d vertices and %d indexes\n", __func__,
g->vertice.count, g->indices.count);
}
+
+void
+c3geometry_set_dirty(
+ c3geometry_p g,
+ int dirty )
+{
+ g->dirty = dirty;
+ if (dirty && g->object)
+ c3object_set_dirty(g->object, 1);
+}
typedef struct c3geometry_t {
c3geometry_type_t type; // geometry type
int dirty : 1,
- custom : 1; // has a custom driver
+ custom : 1, // has a custom driver
+ hidden : 8; // hidden from context_view, bitfield
str_p name; // optional
c3apiobject_t bid; // buffer id for opengl
c3geometry_draw(
c3geometry_p g );
+//! Sets or clear geometry dirty bit
+/*
+ * This will dirty parent objects if set to 1
+ */
+void
+c3geometry_set_dirty(
+ c3geometry_p g,
+ int dirty );
+
/*
* if not present, create an index array, and collapses
* the vertex array by removing vertices that are within