| | 875 | struct RecordRowOperator |
| | 876 | { |
| | 877 | RecordRowOperator(unsigned int num):_colours(num),_pos(0) {} |
| | 878 | |
| | 879 | mutable std::vector<osg::Vec4> _colours; |
| | 880 | mutable unsigned int _pos; |
| | 881 | |
| | 882 | inline void luminance(float l) const { rgba(l,l,l,1.0f); } |
| | 883 | inline void alpha(float a) const { rgba(1.0f,1.0f,1.0f,a); } |
| | 884 | inline void luminance_alpha(float l,float a) const { rgba(l,l,l,a); } |
| | 885 | inline void rgb(float r,float g,float b) const { rgba(r,g,b,1.0f); } |
| | 886 | inline void rgba(float r,float g,float b,float a) const { _colours[_pos++].set(r,g,b,a); } |
| | 887 | }; |
| | 888 | |
| | 889 | struct WriteRowOperator |
| | 890 | { |
| | 891 | WriteRowOperator():_pos(0) {} |
| | 892 | WriteRowOperator(unsigned int num):_colours(num),_pos(0) {} |
| | 893 | |
| | 894 | std::vector<osg::Vec4> _colours; |
| | 895 | mutable unsigned int _pos; |
| | 896 | |
| | 897 | inline void luminance(float& l) const { l = _colours[_pos++].red(); } |
| | 898 | inline void alpha(float& a) const { a = _colours[_pos++].alpha(); } |
| | 899 | inline void luminance_alpha(float& l,float& a) const { l = _colours[_pos].red(); a = _colours[_pos++].alpha(); } |
| | 900 | inline void rgb(float& r,float& g,float& b) const { r = _colours[_pos].red(); g = _colours[_pos].green(); b = _colours[_pos].blue(); } |
| | 901 | inline void rgba(float& r,float& g,float& b,float& a) const { r = _colours[_pos].red(); g = _colours[_pos].green(); b = _colours[_pos].blue(); a = _colours[_pos++].alpha(); } |
| | 902 | }; |
| | 903 | |