$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
From: Jeffrey Holle (jeff.holle_at_[hidden])
Date: 2004-12-15 18:12:28
Maybe you should be looking at std::advance?
Eli Pulsifer wrote:
> Hello,
> 
>  
> 
> I have a situation which is probably quite common and already addressed 
> by boost.
> 
> So rather than write it my self, maybe someone can point me to the answer.
> 
>  
> 
> I’ve got a geometry class that needs to expose iterators for the 
> underling vertex components.
> 
> Example:
> 
>  
> 
> Class Vertex
> 
> {
> 
>             positions_iterator PositionsBegin();
> 
>             positions_iterator PositionsEnd();
> 
>             normals_iterator NormalsBegin();
> 
>             normals _iterator NormalsEnd();
> 
>             …
> 
> }
> 
>  
> 
> The first problem is depending on the format of the underling vertices, 
> the stride between the data elements will change.
> 
> Is there some easy way to implement this?
> 
>  
> 
> I think writing my own using the boost::iterator_adapter is probably the 
> way to go.  
> 
>  
> 
> Second problem is more involved.
> 
>  
> 
> The texture data not only has a stride but a variable number of elements.
> 
> Some vertices have 2 texture coordinates, some 3, some even more.
> 
>  
> 
> Id love to define this iterator like this:
> 
> stride_iterator< pair<float_iterator, float_iterator> > tex_coord_iterator;
> 
>  
> 
> then create the iterator:
> 
>  
> 
> stride_tupel_iterator< pair<float_iterator, float_iterator> >( 
> pFirstTexCoord, texCoordStride, texCoordCount );
> 
>  
> 
> then use it:
> 
>  
> 
> stride_tupel_iterator< pair<float_iterator, float_iterator> > it;
> 
>  
> 
> for( it = vertex.PositionBegin() ; it != vertex.PositionEnd() ; ++it)
> 
> {
> 
>             pair<float_iterator, float_iterator> coords;
> 
>             float_iterator iCoord;
> 
>  
> 
>             for(iCoord = coords.first ; iCoord != coords.last ; ++iCoord)
> 
> {
> 
> }
> 
> }
> 
>  
> 
> This will probably also require me to create my own highly special 
> iterator class or is there a better way.
> 
>  
> 
>  
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://listarchives.boost.org/mailman/listinfo.cgi/boost-users