15 #pragma warning( disable: 4251 )
24#include <CArcImageDllMain.h>
92 const std::string
toString(
void )
const noexcept;
136 template <
typename T = arc::gen4::image::BPP_16>
148 static auto version(
void )
noexcept ->
const std::string;
158 static auto fill( T* pBuf,
const std::uint32_t uiCols,
const std::uint32_t uiRows,
const T uiValue ) -> void;
167 static auto fill( T* pBuf,
const std::size_t uiBytes,
const T uiValue ) -> void;
175 static auto fillWithGradient( T* pBuf,
const std::uint32_t uiCols,
const std::uint32_t uiRows ) -> void;
183 static auto fillWithSmiley( T* pBuf,
const std::uint32_t uiCols,
const std::uint32_t uiRows ) -> void;
191 static auto fillWithRamp( T* pBuf,
const std::uint32_t uiCols,
const std::uint32_t uiRows ) -> void;
200 static auto containsValidRamp(
const T* pBuf,
const std::uint32_t uiCols,
const std::uint32_t uiRows ) -> void;
210 static auto containsValidArc440Synthetic(
const T* pBuf,
const std::uint32_t uiPixelsPerChannel,
const std::uint32_t uiCols,
const std::uint32_t uiRows ) -> void;
229 static auto countPixels(
const T* pBuf,
const std::uint32_t uiCols,
const std::uint32_t uiRows,
const std::uint16_t uwValue ) -> std::uint32_t;
238 static auto countPixels(
const T* pBuf,
const std::size_t uiBufSize,
const std::uint16_t uwValue ) -> std::uint32_t;
253 static auto getChannel(
const T* pBuf,
const std::uint32_t uiChannel,
const std::uint32_t uiChannelCount,
const std::uint32_t uiStart,
const std::uint32_t uiEnd,
const std::uint32_t uiCols,
const std::uint32_t uiRows, std::uint32_t& uiCount ) -> std::unique_ptr<T[]>;
265 static auto getPixel(
const T* pBuf,
const std::uint32_t uiCol,
const std::uint32_t uiRow,
const std::uint32_t uiCols,
const std::uint32_t uiRows ) -> T;
280 static auto getRegion(
const T* pBuf,
const std::uint32_t uiCol1,
const std::uint32_t uiCol2,
const std::uint32_t uiRow1,
const std::uint32_t uiRow2,
const std::uint32_t uiCols,
const std::uint32_t uiRows, std::uint32_t& uiCount ) -> std::unique_ptr<T[]>;
294 static auto getRow(
const T* pBuf,
const std::uint32_t uiCol1,
const std::uint32_t uiCol2,
const std::uint32_t uiRow,
const std::uint32_t uiCols,
const std::uint32_t uiRows, std::uint32_t& uiCount ) -> std::unique_ptr<T[]>;
307 static auto getCol(
const T* pBuf,
const std::uint32_t uiCol,
const std::uint32_t uiRow1,
const std::uint32_t uiRow2,
const std::uint32_t uiCols, std::uint32_t& uiCount ) -> std::unique_ptr<T[]>;
322 static auto getRowArea(
const T* pBuf,
const std::uint32_t uiCol1,
const std::uint32_t uiCol2,
const std::uint32_t uiRow1,
const std::uint32_t uiRow2,
const std::uint32_t uiCols,
const std::uint32_t uiRows, std::uint32_t& uiCount ) -> std::unique_ptr<double[]>;
337 static auto getColArea(
const T* pBuf,
const std::uint32_t uiCol1,
const std::uint32_t uiCol2,
const std::uint32_t uiRow1,
const std::uint32_t uiRow2,
const std::uint32_t uiCols,
const std::uint32_t uiRows, std::uint32_t& uiCount ) -> std::unique_ptr<double[]>;
353 static auto getStats( std::vector<T*> vBufferList,
const std::uint32_t uiChannelCount,
const std::uint32_t uiCol1,
const std::uint32_t uiCol2,
const std::uint32_t uiRow1,
const std::uint32_t uiRow2,
const std::uint32_t uiCols,
const std::uint32_t uiRows ) -> std::unique_ptr<arc::gen4::image::avgStats_t>;
368 static auto getStats(
const T* pBuf,
const std::uint32_t uiCol1,
const std::uint32_t uiCol2,
const std::uint32_t uiRow1,
const std::uint32_t uiRow2,
const std::uint32_t uiCols,
const std::uint32_t uiRows ) -> std::unique_ptr<arc::gen4::image::stats_t>;
379 static auto getStats(
const T* pBuf,
const std::uint32_t uiCols,
const std::uint32_t uiRows ) -> std::unique_ptr<arc::gen4::image::stats_t>;
397 static auto getDiffStats(
const T* pBuf1,
const T* pBuf2,
const std::uint32_t uiCol1, std::uint32_t uiCol2,
const std::uint32_t uiRow1, std::uint32_t uiRow2,
const std::uint32_t uiCols,
const std::uint32_t uiRows ) -> std::unique_ptr<arc::gen4::image::difStats_t>;
411 static auto getDiffStats(
const T* pBuf1,
const T* pBuf2,
const std::uint32_t uiCols,
const std::uint32_t uiRows ) -> std::unique_ptr<arc::gen4::image::difStats_t>;
426 static auto histogram(
const T* pBuf,
const std::uint32_t uiCol1, std::uint32_t uiCol2,
const std::uint32_t uiRow1, std::uint32_t uiRow2,
const std::uint32_t uiCols,
const std::uint32_t uiRows, std::uint32_t& uiCount ) -> std::unique_ptr<std::uint32_t[]>;
437 static auto histogram(
const T* pBuf,
const std::uint32_t uiCols,
const std::uint32_t uiRows, std::uint32_t& uiCount ) -> std::unique_ptr<std::uint32_t[]>;
448 static auto add(
const T* pBuf1,
const T* pBuf2,
const std::uint32_t uiCols,
const std::uint32_t uiRows ) -> std::unique_ptr<std::uint64_t[]>;
459 static auto subtract(
const T* pBuf1,
const T* pBuf2,
const std::uint32_t uiCols,
const std::uint32_t uiRows ) -> std::unique_ptr<T[]>;
468 static auto subtractHalves( T* pBuf,
const std::uint32_t uiCols,
const std::uint32_t uiRows ) -> void;
479 static auto divide(
const T* pBuf1,
const T* pBuf2,
const std::uint32_t uiCols,
const std::uint32_t uiRows ) -> std::unique_ptr<T[]>;
490 static auto copy( T* pDstBuf,
const T* pSrcBuf,
const std::uint32_t uiCols,
const std::uint32_t uiRows ) -> void;
500 static auto copy( T* pDstBuf,
const T* pSrcBuf,
const std::size_t uiSize ) -> void;
531 static inline auto verifyRow(
const std::uint32_t uiRow,
const std::uint32_t uiRows ) -> void;
537 static inline auto verifyRows(
const std::uint32_t uiRows ) -> void;
543 static inline auto verifyColumns(
const std::uint32_t uiCols ) -> void;
550 static inline auto verifyColumn(
const std::uint32_t uiCol,
const std::uint32_t uiCols ) -> void;
557 static inline auto verifyRangeOrder(
const std::uint32_t uiValue1,
const std::uint32_t uiValue2 ) -> void;
570 static auto drawSemiCircle(
const std::uint32_t uiXCenter,
const std::uint32_t uiYCenter,
const std::uint32_t uiRadius,
const double gStartAngle,
const double gEndAngle,
const std::uint32_t uiCols, T* pBuf,
const T uiColor = 0 ) -> void;
581 static auto drawFillCircle(
const std::uint32_t uiXCenter,
const std::uint32_t uiYCenter,
const std::uint32_t uiRadius,
const std::uint32_t uiCols, T* pBuf,
const T uiColor = 0 ) -> void;
591 static auto drawGradientFillCircle(
const std::uint32_t uiRadius,
const std::uint32_t uiCols,
const std::uint32_t uiRows, T* pBuf ) -> void;
602 static auto drawCircle(
const std::uint32_t uiXCenter,
const std::uint32_t uiYCenter,
const std::uint32_t uiRadius,
const std::uint32_t uiCols, T* pBuf,
const T uiColor = 0 ) -> void;
605 static const std::string m_sVersion;
static auto fillWithRamp(T *pBuf, const std::uint32_t uiCols, const std::uint32_t uiRows) -> void
virtual ~CArcImage(void)=default
static auto getStats(const T *pBuf, const std::uint32_t uiCol1, const std::uint32_t uiCol2, const std::uint32_t uiRow1, const std::uint32_t uiRow2, const std::uint32_t uiCols, const std::uint32_t uiRows) -> std::unique_ptr< arc::gen4::image::stats_t >
static auto getChannel(const T *pBuf, const std::uint32_t uiChannel, const std::uint32_t uiChannelCount, const std::uint32_t uiStart, const std::uint32_t uiEnd, const std::uint32_t uiCols, const std::uint32_t uiRows, std::uint32_t &uiCount) -> std::unique_ptr< T[]>
static auto fillWithGradient(T *pBuf, const std::uint32_t uiCols, const std::uint32_t uiRows) -> void
static auto subtract(const T *pBuf1, const T *pBuf2, const std::uint32_t uiCols, const std::uint32_t uiRows) -> std::unique_ptr< T[]>
static auto getPixel(const T *pBuf, const std::uint32_t uiCol, const std::uint32_t uiRow, const std::uint32_t uiCols, const std::uint32_t uiRows) -> T
static auto getRegion(const T *pBuf, const std::uint32_t uiCol1, const std::uint32_t uiCol2, const std::uint32_t uiRow1, const std::uint32_t uiRow2, const std::uint32_t uiCols, const std::uint32_t uiRows, std::uint32_t &uiCount) -> std::unique_ptr< T[]>
static auto divide(const T *pBuf1, const T *pBuf2, const std::uint32_t uiCols, const std::uint32_t uiRows) -> std::unique_ptr< T[]>
static auto getStats(const T *pBuf, const std::uint32_t uiCols, const std::uint32_t uiRows) -> std::unique_ptr< arc::gen4::image::stats_t >
static auto getRow(const T *pBuf, const std::uint32_t uiCol1, const std::uint32_t uiCol2, const std::uint32_t uiRow, const std::uint32_t uiCols, const std::uint32_t uiRows, std::uint32_t &uiCount) -> std::unique_ptr< T[]>
static auto histogram(const T *pBuf, const std::uint32_t uiCols, const std::uint32_t uiRows, std::uint32_t &uiCount) -> std::unique_ptr< std::uint32_t[]>
static auto countPixels(const T *pBuf, const std::uint32_t uiCols, const std::uint32_t uiRows, const std::uint16_t uwValue) -> std::uint32_t
static auto getColArea(const T *pBuf, const std::uint32_t uiCol1, const std::uint32_t uiCol2, const std::uint32_t uiRow1, const std::uint32_t uiRow2, const std::uint32_t uiCols, const std::uint32_t uiRows, std::uint32_t &uiCount) -> std::unique_ptr< double[]>
static auto containsValidRamp(const T *pBuf, const std::uint32_t uiCols, const std::uint32_t uiRows) -> void
static auto getDiffStats(const T *pBuf1, const T *pBuf2, const std::uint32_t uiCol1, std::uint32_t uiCol2, const std::uint32_t uiRow1, std::uint32_t uiRow2, const std::uint32_t uiCols, const std::uint32_t uiRows) -> std::unique_ptr< arc::gen4::image::difStats_t >
static auto containsValidArc420Synthetic(const T *pBuf, const std::uint16_t uwValue1=0x1234, const std::uint16_t uwValue2=0x6789) -> void
static auto fill(T *pBuf, const std::uint32_t uiCols, const std::uint32_t uiRows, const T uiValue) -> void
static auto fill(T *pBuf, const std::size_t uiBytes, const T uiValue) -> void
static auto add(const T *pBuf1, const T *pBuf2, const std::uint32_t uiCols, const std::uint32_t uiRows) -> std::unique_ptr< std::uint64_t[]>
static auto subtractHalves(T *pBuf, const std::uint32_t uiCols, const std::uint32_t uiRows) -> void
static auto getCol(const T *pBuf, const std::uint32_t uiCol, const std::uint32_t uiRow1, const std::uint32_t uiRow2, const std::uint32_t uiCols, std::uint32_t &uiCount) -> std::unique_ptr< T[]>
static auto getRowArea(const T *pBuf, const std::uint32_t uiCol1, const std::uint32_t uiCol2, const std::uint32_t uiRow1, const std::uint32_t uiRow2, const std::uint32_t uiCols, const std::uint32_t uiRows, std::uint32_t &uiCount) -> std::unique_ptr< double[]>
static auto getDiffStats(const T *pBuf1, const T *pBuf2, const std::uint32_t uiCols, const std::uint32_t uiRows) -> std::unique_ptr< arc::gen4::image::difStats_t >
static auto copy(T *pDstBuf, const T *pSrcBuf, const std::size_t uiSize) -> void
static auto histogram(const T *pBuf, const std::uint32_t uiCol1, std::uint32_t uiCol2, const std::uint32_t uiRow1, std::uint32_t uiRow2, const std::uint32_t uiCols, const std::uint32_t uiRows, std::uint32_t &uiCount) -> std::unique_ptr< std::uint32_t[]>
static auto getStats(std::vector< T * > vBufferList, const std::uint32_t uiChannelCount, const std::uint32_t uiCol1, const std::uint32_t uiCol2, const std::uint32_t uiRow1, const std::uint32_t uiRow2, const std::uint32_t uiCols, const std::uint32_t uiRows) -> std::unique_ptr< arc::gen4::image::avgStats_t >
static auto copy(T *pDstBuf, const T *pSrcBuf, const std::uint32_t uiCols, const std::uint32_t uiRows) -> void
static auto fillWithSmiley(T *pBuf, const std::uint32_t uiCols, const std::uint32_t uiRows) -> void
static auto containsValidArc440Synthetic(const T *pBuf, const std::uint32_t uiPixelsPerChannel, const std::uint32_t uiCols, const std::uint32_t uiRows) -> void
static auto countPixels(const T *pBuf, const std::size_t uiBufSize, const std::uint16_t uwValue) -> std::uint32_t
static auto maxTVal(void) -> std::uint32_t
static auto version(void) noexcept -> const std::string
std::unique_ptr< double[]> pAverageStdDev
std::uint32_t uiImageCount
avgStats_t(const std::uint32_t channelCount)
std::uint32_t uiChannelCount
std::unique_ptr< double[]> pAverageMean
std::unique_ptr< double[]> pAverageMax
std::unique_ptr< double[]> pAverageMin
~avgStats_t(void)=default
~difStats_t(void)=default
const std::string toString(void) const noexcept
const std::string toString(void) const noexcept