fix problem with uniform color

This commit is contained in:
David Rose 2005-03-24 00:01:21 +00:00
parent 6912d2d48c
commit 8ceea8d5bc
3 changed files with 15 additions and 3 deletions

View File

@ -254,7 +254,8 @@ unify_attributes(EggPrimitive::Shading shading) {
{
iterator pi;
for (pi = begin(); pi != end(); ++pi) {
EggVertex *vertex = (*pi);
EggVertex *orig_vertex = (*pi);
PT(EggVertex) vertex = new EggVertex(*orig_vertex);
if (vertex->has_normal()) {
if (!has_normal()) {
copy_normal(*vertex);
@ -267,6 +268,11 @@ unify_attributes(EggPrimitive::Shading shading) {
}
vertex->clear_color();
}
EggVertexPool *vertex_pool = orig_vertex->get_pool();
nassertv(vertex_pool != (EggVertexPool *)NULL);
vertex = vertex_pool->create_unique_vertex(*vertex);
replace(pi, vertex);
}
Components::iterator ci;
for (ci = _components.begin(); ci != _components.end(); ++ci) {

View File

@ -194,7 +194,7 @@ add_polygon(const EggPolygon *egg_poly, EggMesherStrip::MesherOrigin origin) {
for (ci = temp_group->begin(); ci != temp_group->end(); ++ci) {
add_polygon(DCAST(EggPolygon, *ci), EggMesherStrip::MO_user);
}
return true;
return result;
}
if (_vertex_pool == NULL) {

View File

@ -388,7 +388,8 @@ unify_attributes(EggPrimitive::Shading shading) {
{
iterator pi;
for (pi = begin(); pi != end(); ++pi) {
EggVertex *vertex = (*pi);
EggVertex *orig_vertex = (*pi);
PT(EggVertex) vertex = new EggVertex(*orig_vertex);
if (vertex->has_normal()) {
if (!has_normal()) {
copy_normal(*vertex);
@ -401,6 +402,11 @@ unify_attributes(EggPrimitive::Shading shading) {
}
vertex->clear_color();
}
EggVertexPool *vertex_pool = orig_vertex->get_pool();
nassertv(vertex_pool != (EggVertexPool *)NULL);
vertex = vertex_pool->create_unique_vertex(*vertex);
replace(pi, vertex);
}
}
break;