#include <scan_conversion_fragment_iterator.h>
List of all members.
Public Member Functions |
bool | valid () const |
int | x () const |
int | y () const |
vector3_type | normal () const |
virtual | ~FragmentIterator () |
| FragmentIterator (vector3_type const &v1, vector3_type const &n1, vector3_type const &v2, vector3_type const &n2, vector3_type const &v3, vector3_type const &n3) |
| FragmentIterator (vector3_type const &v1, vector3_type const &v2, vector3_type const &v3) |
| FragmentIterator (FragmentIterator const &iter) |
FragmentIterator const & | operator= (FragmentIterator const &iter) |
bool | operator() () const |
bool | operator++ () |
void | initialize (vector3_type const &v1, vector3_type const &n1, vector3_type const &v2, vector3_type const &n2, vector3_type const &v3, vector3_type const &n3) |
Protected Types |
enum | state_type { find_nonempty_scanline_state,
in_scanline_state,
scanline_found_state,
finished_state
} |
typedef
OpenTissue::scan_conversion::detail::RigdeIterator
< vector3_type > | ridge_iterator |
Protected Member Functions |
int | find_lower_left_vertex_index () |
int | find_upper_left_vertex_index () |
ridge_iterator | get_left_ridge_iterator () const |
ridge_iterator | get_right_ridge_iterator () const |
bool | find_nonempty_scanline () |
Protected Attributes |
vector3_type | m_vertex [3] |
| The 3D Transformed vertices.
|
vector3_type | m_normal [3] |
| The original 3D normals.
|
int | m_lower_left_idx |
int | m_upper_left_idx |
int | m_the_other_idx |
ridge_iterator | m_left_ridge_iterator |
ridge_iterator | m_right_ridge_iterator |
state_type | m_state |
int | m_start_x |
int | m_start_y |
int | m_end_x |
int | m_end_y |
int | m_current_x |
int | m_current_y |
Detailed Description
template<typename vector3_type>
class OpenTissue::scan_conversion::FragmentIterator< vector3_type >
Fragment Iterator. Typical usage is as follows:
typedef FragmentIterator<vector3_type> fragment_iterator;
vector3_type v1; vector3_type v2; vector3_type v3; vector3_type n1; vector3_type n2; vector3_type n3;
pragment_iterator pixel ( v1, n1 , v2 , n2, v3 , n4);
while( pixel() ) { std::cout << "sreen x = " << pixel.x() << "sreen y = " << pixel.y() << "normal = " << pixel.normal() << std::endl; ++pixel; }
Member Typedef Documentation
template<typename vector3_type>
Member Enumeration Documentation
template<typename vector3_type>
- Enumerator:
find_nonempty_scanline_state |
|
in_scanline_state |
|
scanline_found_state |
|
finished_state |
|
Constructor & Destructor Documentation
template<typename vector3_type>
template<typename vector3_type>
vertex coordinates are assumed to be transformed into screen space of the camera. Normals can be given in whatever coordinate frame one wants. Just remember that normals are lineary interpolated in screen space.
template<typename vector3_type>
vertex coordinates are assumed to be transformed into screen space of the camera.
template<typename vector3_type>
Member Function Documentation
template<typename vector3_type>
returns the index of the vertex with the smallest y-coordinate If there is a horizontal edge, the vertex with the smallest x-coordinate is chosen.
template<typename vector3_type>
template<typename vector3_type>
returns the index of the vertex with the greatest y-coordinate If there is a horizontal edge, the vertex with the smallest x-coordinate is chosen.
template<typename vector3_type>
template<typename vector3_type>
template<typename vector3_type>
vertex coordinates are assumed to be transformed into screen space of the camera. Normals can be given in whatever coordinate frame one wants. Just remember that normals are lineary interpolated in screen space.
template<typename vector3_type>
template<typename vector3_type>
- Returns:
- If there are any more fragments left then the return value is true otherwise it is false.
template<typename vector3_type>
Advances the iterator to the next fragment. Initially the fragement iterator points to the first fragment (if any).
template<typename vector3_type>
template<typename vector3_type>
template<typename vector3_type>
template<typename vector3_type>
Member Data Documentation
template<typename vector3_type>
template<typename vector3_type>
template<typename vector3_type>
template<typename vector3_type>
template<typename vector3_type>
template<typename vector3_type>
template<typename vector3_type>
template<typename vector3_type>
template<typename vector3_type>
template<typename vector3_type>
template<typename vector3_type>
template<typename vector3_type>
template<typename vector3_type>
template<typename vector3_type>
The 3D Transformed vertices.
The documentation for this class was generated from the following file: