Changeset 338


Ignore:
Timestamp:
01/14/10 22:41:23 (2 years ago)
Author:
ddangelo
Message:

Fields for setting the texture coordinates of the quad corners added

Location:
trunk/avango-osg
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/avango-osg/include/avango/osg/TexturedQuad.h

    r337 r338  
    8080      SFInt MagFilter; 
    8181      SFFloat MaxAnisotropy; 
     82      SFVec2 TexCoord01; 
     83      SFVec2 TexCoord00; 
     84      SFVec2 TexCoord10; 
     85      SFVec2 TexCoord11; 
    8286 
    8387      /* virtual */ void fieldHasChangedLocalSideEffect(const av::Field& field); 
     
    96100      bool mFilenameChanged; 
    97101      bool mTextureChanged; 
     102      bool mTexCoordsChanged; 
     103 
    98104      ::osg::ref_ptr< ::osg::Vec3Array> mVertexArray; 
    99105      ::osg::ref_ptr< ::osg::Vec3Array> mNormals; 
  • trunk/avango-osg/src/avango/osg/TexturedQuad.cpp

    r337 r338  
    4444  mFilenameChanged(false), 
    4545  mTextureChanged(false), 
     46  mTexCoordsChanged(false), 
    4647  mVertexArray(new ::osg::Vec3Array(4)), 
    4748  mNormals(new ::osg::Vec3Array(1)), 
     
    5859  AV_FC_ADD_FIELD(Filename, ""); 
    5960  AV_FC_ADD_FIELD(Texture, texture); 
    60  
     61  AV_FC_ADD_FIELD(TexCoord01, ::osg::Vec2(0.0f,1.0f)); 
     62  AV_FC_ADD_FIELD(TexCoord00, ::osg::Vec2(0.0f,0.0f)); 
     63  AV_FC_ADD_FIELD(TexCoord10, ::osg::Vec2(1.0f,0.0f)); 
     64  AV_FC_ADD_FIELD(TexCoord11, ::osg::Vec2(1.0f,1.0f)); 
     65 
     66  SFVec3 TexCoord01; 
     67        SFVec3 TexCoord00; 
     68        SFVec3 TexCoord10; 
     69        SFVec3 TexCoord11; 
    6170 
    6271  AV_FC_ADD_ADAPTOR_FIELD(MinFilter, 
     
    136145  if (&field == &Texture) 
    137146  { 
    138         mTextureChanged = true; 
     147    mTextureChanged = true; 
     148  } 
     149 
     150  if (&field == &TexCoord01 || &field == &TexCoord00 || &field == &TexCoord10 || &field == &TexCoord11 ) 
     151  { 
     152    mTexCoordsChanged = true; 
    139153  } 
    140154} 
     
    165179  if (mTextureChanged) 
    166180  { 
    167         if(!UseFilename.getValue()) 
    168         { 
     181    if(!UseFilename.getValue()) 
     182    { 
    169183      getOsgGeometry()->getOrCreateStateSet()->setTextureAttributeAndModes(0,Texture.getValue()->getOsgTexture2D(),::osg::StateAttribute::ON); 
    170184    } 
    171         mTextureChanged = false; 
     185    mTextureChanged = false; 
     186  } 
     187 
     188  if (mTexCoordsChanged) 
     189  { 
     190    (*mTexCoords)[0] = TexCoord01.getValue(); 
     191    (*mTexCoords)[1] = TexCoord00.getValue(); 
     192    (*mTexCoords)[2] = TexCoord10.getValue(); 
     193    (*mTexCoords)[3] = TexCoord11.getValue(); 
     194    getOsgGeometry()->setTexCoordArray(0,mTexCoords.get()); 
     195    mTexCoordsChanged = false; 
    172196  } 
    173197} 
Note: See TracChangeset for help on using the changeset viewer.