From c292cfc6282cd0491a9d8faf71dd92f34441538b Mon Sep 17 00:00:00 2001 From: David Rose Date: Sun, 12 Dec 2004 13:58:06 +0000 Subject: [PATCH] ignore directories as texture filenames --- pandatool/src/maya/mayaShader.cxx | 4 ++-- pandatool/src/maya/mayaShaderColorDef.cxx | 12 ++++++++++-- pandatool/src/maya/mayaShaderColorDef.h | 3 ++- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/pandatool/src/maya/mayaShader.cxx b/pandatool/src/maya/mayaShader.cxx index 6298aa0ac7..defc1a654b 100644 --- a/pandatool/src/maya/mayaShader.cxx +++ b/pandatool/src/maya/mayaShader.cxx @@ -166,7 +166,7 @@ read_surface_shader(MObject shader) { color_plug.connectedTo(color_pa, true, false); for (size_t i = 0; i < color_pa.length(); i++) { - _color.read_surface_color(color_pa[0].node()); + _color.read_surface_color(this, color_pa[0].node()); } } @@ -181,7 +181,7 @@ read_surface_shader(MObject shader) { trans_plug.connectedTo(trans_pa, true, false); for (size_t i = 0; i < trans_pa.length(); i++) { - _transparency.read_surface_color(trans_pa[0].node()); + _transparency.read_surface_color(this, trans_pa[0].node()); } } diff --git a/pandatool/src/maya/mayaShaderColorDef.cxx b/pandatool/src/maya/mayaShaderColorDef.cxx index 160a75b444..f783e824b2 100644 --- a/pandatool/src/maya/mayaShaderColorDef.cxx +++ b/pandatool/src/maya/mayaShaderColorDef.cxx @@ -17,6 +17,7 @@ //////////////////////////////////////////////////////////////////// #include "mayaShaderColorDef.h" +#include "mayaShader.h" #include "maya_funcs.h" #include "config_maya.h" #include "string_utils.h" @@ -181,7 +182,7 @@ reset_maya_texture(const Filename &texture) { // properties. //////////////////////////////////////////////////////////////////// void MayaShaderColorDef:: -read_surface_color(MObject color) { +read_surface_color(const MayaShader *shader, MObject color) { RGBColorf color_gain; if (get_vec3f_attribute(color, "colorGain", color_gain)) { _color_gain[0] *= color_gain[0]; @@ -199,6 +200,13 @@ read_surface_color(MObject color) { _has_texture = get_string_attribute(color, "fileTextureName", filename); if (_has_texture) { _texture = Filename::from_os_specific(filename); + if (_texture.is_directory()) { + maya_cat.warning() + << "Shader " << shader->get_name() + << " references texture filename " << filename + << " which is a directory; ignoring.\n"; + _has_texture = false; + } } get_vec2f_attribute(color, "coverage", _coverage); @@ -224,7 +232,7 @@ read_surface_color(MObject color) { image_plug.connectedTo(image_pa, true, false); for (size_t i = 0; i < image_pa.length(); i++) { - read_surface_color(image_pa[0].node()); + read_surface_color(shader, image_pa[0].node()); } } diff --git a/pandatool/src/maya/mayaShaderColorDef.h b/pandatool/src/maya/mayaShaderColorDef.h index afe5222f77..71f5ee21c5 100755 --- a/pandatool/src/maya/mayaShaderColorDef.h +++ b/pandatool/src/maya/mayaShaderColorDef.h @@ -25,6 +25,7 @@ #include "lmatrix.h" class MObject; +class MayaShader; //////////////////////////////////////////////////////////////////// // Class : MayaShaderColorDef @@ -82,7 +83,7 @@ public: double _rotate_uv; private: - void read_surface_color(MObject color); + void read_surface_color(const MayaShader *shader, MObject color); void set_projection_type(const string &type); LPoint2d map_planar(const LPoint3d &pos, const LPoint3d ¢roid) const;