MCPcopy Create free account
hub / github.com/MeshInspector/MeshLib / copyFromTiffImpl

Function copyFromTiffImpl

source/MRIOExtras/MRTiff.cpp:125–155  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

123
124template <typename U>
125void copyFromTiffImpl( Color* dst, const U* src, size_t size, const TiffParameters& tp )
126{
127 switch ( tp.valueType )
128 {
129 case TiffParameters::ValueType::RGBA:
130 if constexpr ( std::is_same_v<uint8_t, U> )
131 {
132 std::copy( (Color*)src, (Color*)src + size, dst );
133 }
134 else
135 {
136 for ( auto i = 0u; i < size; ++i )
137 for ( auto j = 0; j < 4; ++j )
138 dst[i][j] = Color::valToUint8( src[i * 4 + j] );
139 }
140 break;
141 case TiffParameters::ValueType::RGB:
142 for ( auto i = 0u; i < size; ++i )
143 for ( auto j = 0; j < 3; ++j )
144 dst[i][j] = Color::valToUint8( src[i * 3 + j] );
145 break;
146 case TiffParameters::ValueType::Scalar:
147 for ( auto i = 0u; i < size; ++i )
148 for ( auto j = 0; j < 3; ++j )
149 dst[i][j] = Color::valToUint8( src[i] );
150 break;
151 case TiffParameters::ValueType::Unknown:
152 MR_UNREACHABLE_NO_RETURN;
153 break;
154 }
155}
156
157template <typename T, typename U, typename = std::enable_if_t<std::is_arithmetic_v<T>>>
158void copyFromTiffImpl( T* dst, const U* src, size_t size, const TiffParameters& tp )

Callers 1

readTiffFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected