Geometrize 1.0
C++ library for geometrizing images into geometric primitives
Namespaces | Functions | Variables
commonutil.cpp File Reference
#include "commonutil.h"
#include <algorithm>
#include <cassert>
#include <cstdint>
#include <random>
#include <tuple>
#include <vector>
#include "bitmap/bitmap.h"
#include "bitmap/rgba.h"
#include "rasterizer/scanline.h"
#include "runner/imagerunneroptions.h"

Namespaces

namespace  geometrize
 
namespace  geometrize::commonutil
 

Functions

static thread_local std::mt19937 geometrize::commonutil::mt (std::random_device{}())
 
void geometrize::commonutil::seedRandomGenerator (std::uint32_t seed)
 seedRandomGenerator Seeds the (thread-local) random number generators. More...
 
std::int32_t geometrize::commonutil::randomRange (std::int32_t min, std::int32_t max)
 randomRange Returns a random integer in the range, inclusive. Uses thread-local random number generators under the hood. To ensure deterministic shape generation that can be repeated for different seeds, this should be used for shape mutation, but nothing else. More...
 
geometrize::rgba geometrize::commonutil::getAverageImageColor (const geometrize::Bitmap &image)
 getAverageImageColor Computes the average RGB color of the pixels in the bitmap. More...
 
bool geometrize::commonutil::scanlinesContainTransparentPixels (const std::vector< geometrize::Scanline > &scanlines, const geometrize::Bitmap &image, int minAlpha)
 scanlinesContainTransparentPixels Returns true if the scanlines contain transparent pixels in the given image More...
 
std::tuple< std::int32_t, std::int32_t, std::int32_t, std::int32_t > geometrize::commonutil::mapShapeBoundsToImage (const geometrize::ImageRunnerShapeBoundsOptions &options, const geometrize::Bitmap &image)
 mapShapeBoundsToImage Maps the given shape bound percentages to the given image, returning a bounding rectangle, or the whole image if the bounds were invalid More...
 

Variables

static thread_local std::uniform_int_distribution< std::int32_t > geometrize::commonutil::pick