// Code generated by vipsgen. DO NOT EDIT.
//
// Enum types needed by generated code that are not yet defined in the
// hand-written codebase. These will move to gen_enums.go in Phase 4.

package vips

// #include <vips/vips.h>
import "C"

// Precision represents VipsPrecision for controlling computation precision.
type Precision int

const (
	PrecisionInteger     Precision = C.VIPS_PRECISION_INTEGER
	PrecisionFloat       Precision = C.VIPS_PRECISION_FLOAT
	PrecisionApproximate Precision = C.VIPS_PRECISION_APPROXIMATE
)

// Combine represents VipsCombine for combining operations.
type Combine int

const (
	CombineMax Combine = C.VIPS_COMBINE_MAX
	CombineSum Combine = C.VIPS_COMBINE_SUM
	CombineMin Combine = C.VIPS_COMBINE_MIN
)

// CombineMode represents VipsCombineMode for draw combine operations.
type CombineMode int

const (
	CombineModeSet CombineMode = C.VIPS_COMBINE_MODE_SET
	CombineModeAdd CombineMode = C.VIPS_COMBINE_MODE_ADD
)

// OperationBoolean represents VipsOperationBoolean for boolean operations.
type OperationBoolean int

const (
	OperationBooleanAnd    OperationBoolean = C.VIPS_OPERATION_BOOLEAN_AND
	OperationBooleanOr     OperationBoolean = C.VIPS_OPERATION_BOOLEAN_OR
	OperationBooleanEor    OperationBoolean = C.VIPS_OPERATION_BOOLEAN_EOR
	OperationBooleanLshift OperationBoolean = C.VIPS_OPERATION_BOOLEAN_LSHIFT
	OperationBooleanRshift OperationBoolean = C.VIPS_OPERATION_BOOLEAN_RSHIFT
)

// OperationComplex represents VipsOperationComplex for complex operations.
type OperationComplex int

const (
	OperationComplexPolar OperationComplex = C.VIPS_OPERATION_COMPLEX_POLAR
	OperationComplexRect  OperationComplex = C.VIPS_OPERATION_COMPLEX_RECT
	OperationComplexConj  OperationComplex = C.VIPS_OPERATION_COMPLEX_CONJ
)

// OperationComplex2 represents VipsOperationComplex2 for binary complex operations.
type OperationComplex2 int

const (
	OperationComplex2CrossPhase OperationComplex2 = C.VIPS_OPERATION_COMPLEX2_CROSS_PHASE
)

// OperationComplexget represents VipsOperationComplexget for getting complex components.
type OperationComplexget int

const (
	OperationComplexgetReal OperationComplexget = C.VIPS_OPERATION_COMPLEXGET_REAL
	OperationComplexgetImag OperationComplexget = C.VIPS_OPERATION_COMPLEXGET_IMAG
)

// OperationMath represents VipsOperationMath for math operations.
type OperationMath int

const (
	OperationMathSin   OperationMath = C.VIPS_OPERATION_MATH_SIN
	OperationMathCos   OperationMath = C.VIPS_OPERATION_MATH_COS
	OperationMathTan   OperationMath = C.VIPS_OPERATION_MATH_TAN
	OperationMathAsin  OperationMath = C.VIPS_OPERATION_MATH_ASIN
	OperationMathAcos  OperationMath = C.VIPS_OPERATION_MATH_ACOS
	OperationMathAtan  OperationMath = C.VIPS_OPERATION_MATH_ATAN
	OperationMathLog   OperationMath = C.VIPS_OPERATION_MATH_LOG
	OperationMathLog10 OperationMath = C.VIPS_OPERATION_MATH_LOG10
	OperationMathExp   OperationMath = C.VIPS_OPERATION_MATH_EXP
	OperationMathExp10 OperationMath = C.VIPS_OPERATION_MATH_EXP10
)

// OperationMath2 represents VipsOperationMath2 for binary math operations.
type OperationMath2 int

const (
	OperationMath2Pow   OperationMath2 = C.VIPS_OPERATION_MATH2_POW
	OperationMath2Wop   OperationMath2 = C.VIPS_OPERATION_MATH2_WOP
	OperationMath2Atan2 OperationMath2 = C.VIPS_OPERATION_MATH2_ATAN2
)

// OperationRelational represents VipsOperationRelational for relational operations.
type OperationRelational int

const (
	OperationRelationalEqual  OperationRelational = C.VIPS_OPERATION_RELATIONAL_EQUAL
	OperationRelationalNoteq  OperationRelational = C.VIPS_OPERATION_RELATIONAL_NOTEQ
	OperationRelationalLess   OperationRelational = C.VIPS_OPERATION_RELATIONAL_LESS
	OperationRelationalLesseq OperationRelational = C.VIPS_OPERATION_RELATIONAL_LESSEQ
	OperationRelationalMore   OperationRelational = C.VIPS_OPERATION_RELATIONAL_MORE
	OperationRelationalMoreeq OperationRelational = C.VIPS_OPERATION_RELATIONAL_MOREEQ
)

// OperationRound represents VipsOperationRound for rounding operations.
type OperationRound int

const (
	OperationRoundRint  OperationRound = C.VIPS_OPERATION_ROUND_RINT
	OperationRoundCeil  OperationRound = C.VIPS_OPERATION_ROUND_CEIL
	OperationRoundFloor OperationRound = C.VIPS_OPERATION_ROUND_FLOOR
)

// OperationMorphology represents VipsOperationMorphology for morphological operations.
type OperationMorphology int

const (
	OperationMorphologyErode  OperationMorphology = C.VIPS_OPERATION_MORPHOLOGY_ERODE
	OperationMorphologyDilate OperationMorphology = C.VIPS_OPERATION_MORPHOLOGY_DILATE
)

// FailOn represents VipsFailOn for controlling error handling on load.
type FailOn int

const (
	FailOnNone      FailOn = C.VIPS_FAIL_ON_NONE
	FailOnTruncated FailOn = C.VIPS_FAIL_ON_TRUNCATED
	FailOnError     FailOn = C.VIPS_FAIL_ON_ERROR
	FailOnWarning   FailOn = C.VIPS_FAIL_ON_WARNING
)

// ForeignKeep represents VipsForeignKeep flags for controlling metadata retention.
type ForeignKeep int

// Note: ForeignKeep is a flags (bitmask) type. Values combined with |.
