Changeset 336 for trunk/avango-osg/src/avango/osg/TexturedQuad.cpp
- Timestamp:
- 01/14/10 00:05:49 (2 years ago)
- File:
-
- 1 edited
-
trunk/avango-osg/src/avango/osg/TexturedQuad.cpp (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/avango-osg/src/avango/osg/TexturedQuad.cpp
r1 r336 46 46 mNormals(new ::osg::Vec3Array(1)), 47 47 mColors(new ::osg::Vec4Array(1)), 48 mTexCoords(new ::osg::Vec2Array(4)), 49 mOsgTexture(new ::osg::Texture2D) 50 { 48 mTexCoords(new ::osg::Vec2Array(4)) 49 { 50 av::osg::Texture2D *texture = new av::osg::Texture2D(); 51 51 52 AV_FC_ADD_FIELD(Width, 1.0f); 52 53 AV_FC_ADD_FIELD(Height, 1.0f); 53 54 AV_FC_ADD_FIELD(Color, ::osg::Vec4(1,1,1,1)); 54 55 AV_FC_ADD_FIELD(Position, ::osg::Vec3(0,0,0)); 56 AV_FC_ADD_FIELD(UseFilename, true); 55 57 AV_FC_ADD_FIELD(Filename, ""); 58 AV_FC_ADD_FIELD(Texture, texture); 59 56 60 57 61 AV_FC_ADD_ADAPTOR_FIELD(MinFilter, … … 80 84 (*mTexCoords)[3].set(1.0f,1.0f); 81 85 getOsgGeometry()->setTexCoordArray(0,mTexCoords.get()); 82 getOsgGeometry()->getOrCreateStateSet()->setTextureAttributeAndModes(0, mOsgTexture.get(),::osg::StateAttribute::ON);86 getOsgGeometry()->getOrCreateStateSet()->setTextureAttributeAndModes(0,Texture.getValue()->getOsgTexture2D(),::osg::StateAttribute::ON); 83 87 84 88 // set up texture 85 mOsgTexture->setWrap(::osg::Texture::WRAP_S, ::osg::Texture::CLAMP_TO_EDGE);86 mOsgTexture->setWrap(::osg::Texture::WRAP_T, ::osg::Texture::CLAMP_TO_EDGE);89 Texture.getValue()->getOsgTexture2D()->setWrap(::osg::Texture::WRAP_S, ::osg::Texture::CLAMP_TO_EDGE); 90 Texture.getValue()->getOsgTexture2D()->setWrap(::osg::Texture::WRAP_T, ::osg::Texture::CLAMP_TO_EDGE); 87 91 } 88 92 … … 156 160 ::osg::ref_ptr< ::osg::Texture2D> 157 161 av::osg::TexturedQuad::getOsgTexture() const { 158 return mOsgTexture; 162 ::osg::ref_ptr< ::osg::Texture2D> tex = Texture.getValue()->getOsgTexture2D(); 163 return tex; 159 164 } 160 165 … … 179 184 av::osg::TexturedQuad::updateTexture() 180 185 { 181 if(Filename.getValue().size() != 0 )182 { 183 mOsgTexture->setImage(::osgDB::readImageFile(Filename.getValue()));186 if(Filename.getValue().size() != 0 && UseFilename.getValue()) 187 { 188 Texture.getValue()->getOsgTexture2D()->setImage(::osgDB::readImageFile(Filename.getValue())); 184 189 } 185 190 } … … 196 201 av::osg::TexturedQuad::getMinFilterCB(const av::SFInt::GetValueEvent& event) 197 202 { 198 *(event.getValuePtr()) = mOsgTexture->getFilter(::osg::Texture2D::MIN_FILTER);203 *(event.getValuePtr()) = Texture.getValue()->getOsgTexture2D()->getFilter(::osg::Texture2D::MIN_FILTER); 199 204 } 200 205 … … 202 207 av::osg::TexturedQuad::setMinFilterCB(const av::SFInt::SetValueEvent& event) 203 208 { 204 mOsgTexture->setFilter(::osg::Texture2D::MIN_FILTER,(::osg::Texture::FilterMode)(event.getValue()));209 Texture.getValue()->getOsgTexture2D()->setFilter(::osg::Texture2D::MIN_FILTER,(::osg::Texture::FilterMode)(event.getValue())); 205 210 } 206 211 … … 208 213 av::osg::TexturedQuad::getMagFilterCB(const av::SFInt::GetValueEvent& event) 209 214 { 210 *(event.getValuePtr()) = mOsgTexture->getFilter(::osg::Texture2D::MAG_FILTER);215 *(event.getValuePtr()) = Texture.getValue()->getOsgTexture2D()->getFilter(::osg::Texture2D::MAG_FILTER); 211 216 } 212 217 … … 214 219 av::osg::TexturedQuad::setMagFilterCB(const av::SFInt::SetValueEvent& event) 215 220 { 216 mOsgTexture->setFilter(::osg::Texture2D::MAG_FILTER,(::osg::Texture::FilterMode)(event.getValue()));221 Texture.getValue()->getOsgTexture2D()->setFilter(::osg::Texture2D::MAG_FILTER,(::osg::Texture::FilterMode)(event.getValue())); 217 222 } 218 223 … … 220 225 av::osg::TexturedQuad::getMaxAnisotropyCB(const av::SFFloat::GetValueEvent& event) 221 226 { 222 *(event.getValuePtr()) = mOsgTexture->getMaxAnisotropy();227 *(event.getValuePtr()) = Texture.getValue()->getOsgTexture2D()->getMaxAnisotropy(); 223 228 } 224 229 … … 226 231 av::osg::TexturedQuad::setMaxAnisotropyCB(const av::SFFloat::SetValueEvent& event) 227 232 { 228 mOsgTexture->setMaxAnisotropy(event.getValue());229 } 233 Texture.getValue()->getOsgTexture2D()->setMaxAnisotropy(event.getValue()); 234 }
Note: See TracChangeset
for help on using the changeset viewer.
