diff options
Diffstat (limited to 'Build/source/libs/poppler/poppler-src/poppler/Function.h')
-rw-r--r-- | Build/source/libs/poppler/poppler-src/poppler/Function.h | 261 |
1 files changed, 0 insertions, 261 deletions
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Function.h b/Build/source/libs/poppler/poppler-src/poppler/Function.h deleted file mode 100644 index 10adf7051c9..00000000000 --- a/Build/source/libs/poppler/poppler-src/poppler/Function.h +++ /dev/null @@ -1,261 +0,0 @@ -//======================================================================== -// -// Function.h -// -// Copyright 2001-2003 Glyph & Cog, LLC -// -//======================================================================== - -//======================================================================== -// -// Modified under the Poppler project - http://poppler.freedesktop.org -// -// All changes made under the Poppler project to this file are licensed -// under GPL version 2 or later -// -// Copyright (C) 2009, 2010, 2018 Albert Astals Cid <aacid@kde.org> -// Copyright (C) 2010 Christian Feuersänger <cfeuersaenger@googlemail.com> -// Copyright (C) 2011 Andrea Canciani <ranma42@gmail.com> -// Copyright (C) 2012 Thomas Freitag <Thomas.Freitag@alfa.de> -// Copyright (C) 2012 Adam Reichold <adamreichold@myopera.com> -// -// To see a description of the changes please see the Changelog file that -// came with your tarball or type make ChangeLog if you are building from git -// -//======================================================================== - -#ifndef FUNCTION_H -#define FUNCTION_H - -#ifdef USE_GCC_PRAGMAS -#pragma interface -#endif - -#include "goo/gtypes.h" -#include "Object.h" -#include <set> - -class Dict; -class Stream; -struct PSObject; -class PSStack; -class PopplerCache; - -//------------------------------------------------------------------------ -// Function -//------------------------------------------------------------------------ - -#define funcMaxInputs 32 -#define funcMaxOutputs 32 -#define sampledFuncMaxInputs 16 - -class Function { -public: - - Function(); - - virtual ~Function(); - - Function(const Function &) = delete; - Function& operator=(const Function &other) = delete; - - // Construct a function. Returns NULL if unsuccessful. - static Function *parse(Object *funcObj); - - // Initialize the entries common to all function types. - GBool init(Dict *dict); - - virtual Function *copy() = 0; - - // Return the function type: - // -1 : identity - // 0 : sampled - // 2 : exponential - // 3 : stitching - // 4 : PostScript - virtual int getType() = 0; - - // Return size of input and output tuples. - int getInputSize() { return m; } - int getOutputSize() { return n; } - - double getDomainMin(int i) { return domain[i][0]; } - double getDomainMax(int i) { return domain[i][1]; } - double getRangeMin(int i) { return range[i][0]; } - double getRangeMax(int i) { return range[i][1]; } - GBool getHasRange() { return hasRange; } - virtual GBool hasDifferentResultSet(Function *func) { return gFalse; } - - // Transform an input tuple into an output tuple. - virtual void transform(double *in, double *out) = 0; - - virtual GBool isOk() = 0; - -protected: - static Function *parse(Object *funcObj, std::set<int> *usedParents); - - Function(const Function *func); - - int m, n; // size of input and output tuples - double // min and max values for function domain - domain[funcMaxInputs][2]; - double // min and max values for function range - range[funcMaxOutputs][2]; - GBool hasRange; // set if range is defined -}; - -//------------------------------------------------------------------------ -// IdentityFunction -//------------------------------------------------------------------------ - -class IdentityFunction: public Function { -public: - - IdentityFunction(); - ~IdentityFunction(); - Function *copy() override { return new IdentityFunction(); } - int getType() override { return -1; } - void transform(double *in, double *out) override; - GBool isOk() override { return gTrue; } - -private: -}; - -//------------------------------------------------------------------------ -// SampledFunction -//------------------------------------------------------------------------ - -class SampledFunction: public Function { -public: - - SampledFunction(Object *funcObj, Dict *dict); - ~SampledFunction(); - Function *copy() override { return new SampledFunction(this); } - int getType() override { return 0; } - void transform(double *in, double *out) override; - GBool isOk() override { return ok; } - GBool hasDifferentResultSet(Function *func) override; - - int getSampleSize(int i) { return sampleSize[i]; } - double getEncodeMin(int i) { return encode[i][0]; } - double getEncodeMax(int i) { return encode[i][1]; } - double getDecodeMin(int i) { return decode[i][0]; } - double getDecodeMax(int i) { return decode[i][1]; } - double *getSamples() { return samples; } - int getSampleNumber() { return nSamples; } - -private: - - SampledFunction(const SampledFunction *func); - - int // number of samples for each domain element - sampleSize[funcMaxInputs]; - double // min and max values for domain encoder - encode[funcMaxInputs][2]; - double // min and max values for range decoder - decode[funcMaxOutputs][2]; - double // input multipliers - inputMul[funcMaxInputs]; - int *idxOffset; - double *samples; // the samples - int nSamples; // size of the samples array - double *sBuf; // buffer for the transform function - double cacheIn[funcMaxInputs]; - double cacheOut[funcMaxOutputs]; - GBool ok; -}; - -//------------------------------------------------------------------------ -// ExponentialFunction -//------------------------------------------------------------------------ - -class ExponentialFunction: public Function { -public: - - ExponentialFunction(Object *funcObj, Dict *dict); - ~ExponentialFunction(); - Function *copy() override { return new ExponentialFunction(this); } - int getType() override { return 2; } - void transform(double *in, double *out) override; - GBool isOk() override { return ok; } - - double *getC0() { return c0; } - double *getC1() { return c1; } - double getE() { return e; } - -private: - - ExponentialFunction(const ExponentialFunction *func); - - double c0[funcMaxOutputs]; - double c1[funcMaxOutputs]; - double e; - bool isLinear; - GBool ok; -}; - -//------------------------------------------------------------------------ -// StitchingFunction -//------------------------------------------------------------------------ - -class StitchingFunction: public Function { -public: - - StitchingFunction(Object *funcObj, Dict *dict, std::set<int> *usedParents); - ~StitchingFunction(); - Function *copy() override { return new StitchingFunction(this); } - int getType() override { return 3; } - void transform(double *in, double *out) override; - GBool isOk() override { return ok; } - - int getNumFuncs() { return k; } - Function *getFunc(int i) { return funcs[i]; } - double *getBounds() { return bounds; } - double *getEncode() { return encode; } - double *getScale() { return scale; } - -private: - - StitchingFunction(const StitchingFunction *func); - - int k; - Function **funcs; - double *bounds; - double *encode; - double *scale; - GBool ok; -}; - -//------------------------------------------------------------------------ -// PostScriptFunction -//------------------------------------------------------------------------ - -class PostScriptFunction: public Function { -public: - - PostScriptFunction(Object *funcObj, Dict *dict); - ~PostScriptFunction(); - Function *copy() override { return new PostScriptFunction(this); } - int getType() override { return 4; } - void transform(double *in, double *out) override; - GBool isOk() override { return ok; } - - const GooString *getCodeString() const { return codeString; } - -private: - - PostScriptFunction(const PostScriptFunction *func); - GBool parseCode(Stream *str, int *codePtr); - GooString *getToken(Stream *str); - void resizeCode(int newSize); - void exec(PSStack *stack, int codePtr); - - GooString *codeString; - PSObject *code; - int codeSize; - double cacheIn[funcMaxInputs]; - double cacheOut[funcMaxOutputs]; - GBool ok; -}; - -#endif |