godot/thirdparty/embree/kernels/subdiv/patch.h

// Copyright 2009-2021 Intel Corporation
// SPDX-License-Identifier: Apache-2.0

#pragma once

#include "catmullclark_patch.h"
#include "bilinear_patch.h"
#include "bspline_patch.h"
#include "bezier_patch.h"
#include "gregory_patch.h"
#include "tessellation_cache.h"

#if 1
#define PATCH_DEBUG_SUBDIVISION(ptr,x,y,z)
#else
#define PATCH_DEBUG_SUBDIVISION               
#endif

#define PATCH_MAX_CACHE_DEPTH
//#define PATCH_MIN_RESOLUTION 1     // FIXME: not yet completely implemented
#define PATCH_MAX_EVAL_DEPTH_IRREGULAR
#define PATCH_MAX_EVAL_DEPTH_CREASE
#define PATCH_USE_GREGORY

#if PATCH_USE_GREGORY==2
#define PATCH_USE_BEZIER_PATCH
#else
#define PATCH_USE_BEZIER_PATCH
#endif

#if PATCH_USE_BEZIER_PATCH
#define RegularPatch
#define RegularPatchT
#else
#define RegularPatch
#define RegularPatchT
#endif

#if PATCH_USE_GREGORY
#define IrregularFillPatch
#define IrregularFillPatchT
#else
#define IrregularFillPatch
#define IrregularFillPatchT
#endif

namespace embree
{
  template<typename Vertex, typename Vertex_t = Vertex>
    struct __aligned(64) PatchT
    {};

  Patch3fa;
}