Changeset 341 for trunk/avango-osg/src/avango/osg/TexturedQuad.cpp
- Timestamp:
- 02/01/10 17:37:44 (2 years ago)
- File:
-
- 1 edited
-
trunk/avango-osg/src/avango/osg/TexturedQuad.cpp (modified) (16 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/avango-osg/src/avango/osg/TexturedQuad.cpp
r338 r341 43 43 mColorChanged(true), 44 44 mFilenameChanged(false), 45 mTextureChanged(false), 45 mTextureChanged1D(false), 46 mTextureChanged2D(false), 46 47 mTexCoordsChanged(false), 47 48 mVertexArray(new ::osg::Vec3Array(4)), … … 50 51 mTexCoords(new ::osg::Vec2Array(4)) 51 52 { 52 av::osg::Texture2D *texture = new av::osg::Texture2D(); 53 av::osg::Texture1D *texture1D = new av::osg::Texture1D(); 54 av::osg::Texture2D *texture2D = new av::osg::Texture2D(); 53 55 54 56 AV_FC_ADD_FIELD(Width, 1.0f); … … 58 60 AV_FC_ADD_FIELD(UseFilename, true); 59 61 AV_FC_ADD_FIELD(Filename, ""); 60 AV_FC_ADD_FIELD(Texture, texture); 62 AV_FC_ADD_FIELD(Texture1D, texture1D); 63 AV_FC_ADD_FIELD(Texture2D, texture2D); 61 64 AV_FC_ADD_FIELD(TexCoord01, ::osg::Vec2(0.0f,1.0f)); 62 65 AV_FC_ADD_FIELD(TexCoord00, ::osg::Vec2(0.0f,0.0f)); … … 65 68 66 69 SFVec3 TexCoord01; 67 SFVec3 TexCoord00;68 SFVec3 TexCoord10;69 SFVec3 TexCoord11;70 SFVec3 TexCoord00; 71 SFVec3 TexCoord10; 72 SFVec3 TexCoord11; 70 73 71 74 AV_FC_ADD_ADAPTOR_FIELD(MinFilter, … … 94 97 (*mTexCoords)[3].set(1.0f,1.0f); 95 98 getOsgGeometry()->setTexCoordArray(0,mTexCoords.get()); 96 getOsgGeometry()->getOrCreateStateSet()->setTextureAttributeAndModes(0,Texture.getValue()->getOsgTexture2D(),::osg::StateAttribute::ON);97 99 98 100 // set up texture 99 Texture .getValue()->getOsgTexture2D()->setWrap(::osg::Texture::WRAP_S, ::osg::Texture::CLAMP_TO_EDGE);100 Texture .getValue()->getOsgTexture2D()->setWrap(::osg::Texture::WRAP_T, ::osg::Texture::CLAMP_TO_EDGE);101 Texture2D.getValue()->getOsgTexture2D()->setWrap(::osg::Texture::WRAP_S, ::osg::Texture::CLAMP_TO_EDGE); 102 Texture2D.getValue()->getOsgTexture2D()->setWrap(::osg::Texture::WRAP_T, ::osg::Texture::CLAMP_TO_EDGE); 101 103 } 102 104 … … 143 145 } 144 146 145 if (&field == &Texture) 146 { 147 mTextureChanged = true; 147 if (&field == &Texture1D) 148 { 149 mTextureChanged1D = true; 150 } 151 152 if (&field == &Texture2D) 153 { 154 mTextureChanged2D = true; 148 155 } 149 156 … … 171 178 } 172 179 173 if (mFilenameChanged )180 if (mFilenameChanged && UseFilename.getValue()) 174 181 { 175 182 updateTexture(); … … 177 184 } 178 185 179 if (mTextureChanged) 180 { 181 if(!UseFilename.getValue()) 182 { 183 getOsgGeometry()->getOrCreateStateSet()->setTextureAttributeAndModes(0,Texture.getValue()->getOsgTexture2D(),::osg::StateAttribute::ON); 184 } 185 mTextureChanged = false; 186 if (mTextureChanged1D && !UseFilename.getValue()) 187 { 188 getOsgGeometry()->getOrCreateStateSet()->setTextureAttributeAndModes(0,Texture1D.getValue()->getOsgTexture1D(),::osg::StateAttribute::ON); 189 mTextureChanged1D = false; 190 } 191 192 if (mTextureChanged2D && !UseFilename.getValue()) 193 { 194 getOsgGeometry()->getOrCreateStateSet()->setTextureAttributeAndModes(0,Texture2D.getValue()->getOsgTexture2D(),::osg::StateAttribute::ON); 195 mTextureChanged2D = false; 186 196 } 187 197 … … 199 209 ::osg::ref_ptr< ::osg::Texture2D> 200 210 av::osg::TexturedQuad::getOsgTexture() const { 201 ::osg::ref_ptr< ::osg::Texture2D> tex = Texture .getValue()->getOsgTexture2D();211 ::osg::ref_ptr< ::osg::Texture2D> tex = Texture2D.getValue()->getOsgTexture2D(); 202 212 return tex; 203 213 } … … 225 235 if(Filename.getValue().size() != 0 && UseFilename.getValue()) 226 236 { 227 Texture.getValue()->getOsgTexture2D()->setImage(::osgDB::readImageFile(Filename.getValue())); 237 Texture2D.getValue()->getOsgTexture2D()->setImage(::osgDB::readImageFile(Filename.getValue())); 238 getOsgGeometry()->getOrCreateStateSet()->setTextureAttributeAndModes(0,Texture2D.getValue()->getOsgTexture2D(),::osg::StateAttribute::ON); 228 239 } 229 240 } … … 240 251 av::osg::TexturedQuad::getMinFilterCB(const av::SFInt::GetValueEvent& event) 241 252 { 242 *(event.getValuePtr()) = Texture .getValue()->getOsgTexture2D()->getFilter(::osg::Texture2D::MIN_FILTER);253 *(event.getValuePtr()) = Texture2D.getValue()->getOsgTexture2D()->getFilter(::osg::Texture2D::MIN_FILTER); 243 254 } 244 255 … … 246 257 av::osg::TexturedQuad::setMinFilterCB(const av::SFInt::SetValueEvent& event) 247 258 { 248 Texture .getValue()->getOsgTexture2D()->setFilter(::osg::Texture2D::MIN_FILTER,(::osg::Texture::FilterMode)(event.getValue()));259 Texture2D.getValue()->getOsgTexture2D()->setFilter(::osg::Texture2D::MIN_FILTER,(::osg::Texture2D::FilterMode)(event.getValue())); 249 260 } 250 261 … … 252 263 av::osg::TexturedQuad::getMagFilterCB(const av::SFInt::GetValueEvent& event) 253 264 { 254 *(event.getValuePtr()) = Texture .getValue()->getOsgTexture2D()->getFilter(::osg::Texture2D::MAG_FILTER);265 *(event.getValuePtr()) = Texture2D.getValue()->getOsgTexture2D()->getFilter(::osg::Texture2D::MAG_FILTER); 255 266 } 256 267 … … 258 269 av::osg::TexturedQuad::setMagFilterCB(const av::SFInt::SetValueEvent& event) 259 270 { 260 Texture .getValue()->getOsgTexture2D()->setFilter(::osg::Texture2D::MAG_FILTER,(::osg::Texture::FilterMode)(event.getValue()));271 Texture2D.getValue()->getOsgTexture2D()->setFilter(::osg::Texture2D::MAG_FILTER,(::osg::Texture2D::FilterMode)(event.getValue())); 261 272 } 262 273 … … 264 275 av::osg::TexturedQuad::getMaxAnisotropyCB(const av::SFFloat::GetValueEvent& event) 265 276 { 266 *(event.getValuePtr()) = Texture .getValue()->getOsgTexture2D()->getMaxAnisotropy();277 *(event.getValuePtr()) = Texture2D.getValue()->getOsgTexture2D()->getMaxAnisotropy(); 267 278 } 268 279 … … 270 281 av::osg::TexturedQuad::setMaxAnisotropyCB(const av::SFFloat::SetValueEvent& event) 271 282 { 272 Texture .getValue()->getOsgTexture2D()->setMaxAnisotropy(event.getValue());273 } 283 Texture2D.getValue()->getOsgTexture2D()->setMaxAnisotropy(event.getValue()); 284 }
Note: See TracChangeset
for help on using the changeset viewer.
