Blender V4.3
blender Namespace Reference

Namespaces

namespace  animrig
 
namespace  array_utils
 
namespace  asset_system
 
namespace  binary_search
 
namespace  bits
 
namespace  bke
 
namespace  bounds
 
namespace  color
 
namespace  compositor
 
namespace  cpp_type_util
 
namespace  deg
 
namespace  detail
 
namespace  dna
 
namespace  dot
 
namespace  draw
 
namespace  ed
 
namespace  editor
 
namespace  eevee
 
namespace  fftw
 
namespace  fixed_width_int
 
namespace  fn
 
namespace  geometry
 
namespace  gpu
 
namespace  imbuf
 
namespace  implicit_sharing
 
namespace  index_mask
 
namespace  interface
 
namespace  internal
 
namespace  io
 
namespace  iterator
 
namespace  lazy_threading
 
namespace  length_parameterize
 
namespace  linear_allocator
 
namespace  math
 
namespace  memory_cache
 
namespace  memory_counter
 
namespace  meshintersect
 
namespace  modifier
 
namespace  nodes
 
namespace  noise
 
namespace  offset_indices
 
namespace  opensubdiv
 
namespace  parameter_pack_utils_static_tests
 
namespace  realtime_compositor
 
namespace  render
 
namespace  robust_pred
 
namespace  seq
 
namespace  string_search
 
namespace  tests
 
namespace  threading
 
namespace  timeit
 
namespace  ui
 
namespace  unique_sorted_indices
 
namespace  varray_tag
 
namespace  wm
 
namespace  workbench
 

Classes

class  AlignedBuffer
 
struct  AlignedIndexRanges
 
class  Any
 
class  Array
 
class  AtomicDisjointSet
 
struct  AttributeSearchData
 
struct  BakeFrameIndices
 
struct  BasicDevirtualizer
 
struct  Bounds
 
class  CacheMutex
 
class  CoInitializeWrapper
 
class  ColorRGBA
 
class  ColorSceneLinear4f
 
class  ColorSceneLinearByteEncoded4b
 
class  ColorTheme4
 
struct  CommonVArrayInfo
 
class  ComputeContext
 
class  ComputeContextBuilder
 
struct  ComputeContextHash
 
class  ConcurrentMap
 
class  CPPType
 
struct  DefaultEquality
 
struct  DefaultEquality< std::shared_ptr< T > >
 
struct  DefaultEquality< std::unique_ptr< T > >
 
struct  DefaultEquality< Vector< T, InlineBufferCapacity, Allocator > >
 
struct  DefaultHash
 
struct  DefaultHash< AssetLibraryReference >
 
struct  DefaultHash< blender::Set< const BMVert * > >
 
struct  DefaultHash< bool >
 
struct  DefaultHash< const T >
 
struct  DefaultHash< double >
 
struct  DefaultHash< draw::pbvh::AttributeRequest >
 
struct  DefaultHash< float >
 
struct  DefaultHash< gpu::VKComputeInfo >
 
struct  DefaultHash< gpu::VKDescriptorSetLayoutInfo >
 
struct  DefaultHash< pxr::SdfPath >
 
struct  DefaultHash< pxr::SdfValueTypeName >
 
struct  DefaultHash< pxr::TfToken >
 
struct  DefaultHash< SpreadsheetColumnID >
 
struct  DefaultHash< std::pair< T1, T2 > >
 
struct  DefaultHash< std::reference_wrapper< T > >
 
struct  DefaultHash< std::shared_ptr< T > >
 
struct  DefaultHash< std::string >
 
struct  DefaultHash< std::string_view >
 
struct  DefaultHash< std::unique_ptr< T > >
 
struct  DefaultHash< StringRef >
 
struct  DefaultHash< StringRefNull >
 
struct  DefaultHash< T * >
 
struct  DefaultHash< tests::Type1 >
 
struct  DefaultHash< Vector< blender::gpu::shader::SpecializationConstant::Value > >
 
struct  DefaultMapSlot
 
struct  DefaultMapSlot< Key *, Value >
 
struct  DefaultSetSlot
 
struct  DefaultSetSlot< Key * >
 
struct  DefaultSetSlot< std::string >
 
struct  DefaultSetSlot< StringRef >
 
struct  DefaultSetSlot< StringRefNull >
 
struct  DefaultVectorSetSlot
 
struct  DestructValueAtAddress
 
class  DisjointSet
 
class  DynamicStackBuffer
 
struct  EnvelopeInfo
 
struct  FrameRange
 
class  fstream
 
class  FunctionRef
 
class  FunctionRef< Ret(Params...)>
 
class  GArray
 
class  GenericKey
 
class  GMutablePointer
 
class  GMutableSpan
 
class  GMutableVArraySpan
 
class  GPointer
 
struct  GrainSize
 
class  GSpan
 
class  GuardedAlignedAllocator
 
class  GuardedAllocator
 
class  GValueMap
 
class  GVArray
 
class  GVArray_For_GVVectorArrayIndex
 
class  GVArrayCommon
 
struct  GVArrayDevirtualizer
 
class  GVArrayImpl
 
class  GVArrayImpl_For_GArray
 
class  GVArrayImpl_For_GSpan
 
class  GVArrayImpl_For_GSpan_final
 
class  GVArrayImpl_For_SingleValue
 
class  GVArrayImpl_For_SingleValueRef
 
class  GVArrayImpl_For_SingleValueRef_final
 
class  GVArrayImpl_For_SlicedGVArray
 
class  GVArrayImpl_For_SmallTrivialSingleValue
 
class  GVArrayImpl_For_VArray
 
class  GVArraySpan
 
class  GVectorArray
 
class  GVectorArray_TypedMutableRef
 
class  GVMutableArray
 
class  GVMutableArrayImpl
 
class  GVMutableArrayImpl_For_VMutableArray
 
class  GVVectorArray
 
class  GVVectorArray_For_GVectorArray
 
class  GVVectorArray_For_SingleGSpan
 
class  GVVectorArray_For_SingleGVArray
 
class  HashedSetSlot
 
class  HashTableStats
 
class  ImplicitSharedValue
 
class  ImplicitSharingInfo
 
struct  ImplicitSharingInfoAndData
 
class  ImplicitSharingMixin
 
class  ImplicitSharingPtr
 
class  ImplicitSharingPtrAndData
 
class  IndexRange
 
class  IndexRangesBuilder
 
struct  IndexRangesBuilderBuffer
 
class  InplacePriorityQueue
 
class  IntrusiveMapSlot
 
class  IntrusiveSetSlot
 
class  LinearAllocator
 
class  LinearProbingStrategy
 
class  ListBaseWrapperTemplate
 
class  LoadFactor
 
class  Map
 
struct  MapItem
 
struct  MatBase
 
struct  MatView
 
class  MultiValueMap
 
struct  MutableMapItem
 
struct  MutableMatView
 
class  MutableSpan
 
class  MutableVArraySpan
 
struct  NodeIDEquality
 
struct  NodeIDHash
 
class  NodesModifierBakeDataBlockMap
 
class  NodesModifierBakeParams
 
struct  NodesModifierRuntime
 
class  NodesModifierSimulationParams
 
class  NoExceptConstructor
 
class  NoInitialization
 
class  NonCopyable
 
class  NonMovable
 
class  OffsetSpan
 
struct  OrderedEdge
 
struct  PatternInfo
 
struct  PointerComparison
 
struct  PointerHashes
 
struct  PointerKeyInfo
 
class  Pool
 
class  PythonProbingStrategy
 
class  QuadraticProbingStrategy
 
class  RandomNumberGenerator
 
class  RawAllocator
 
class  ResourceScope
 
struct  SequenceComparison
 
class  Set
 
class  SharedCache
 
class  ShuffleProbingStrategy
 
class  SimpleMapSlot
 
class  SimpleSetSlot
 
class  SimpleVectorSetSlot
 
class  SingleAsSpan
 
class  Span
 
class  Stack
 
struct  StackChunk
 
class  StringRef
 
class  StringRefBase
 
class  StringRefNull
 
struct  SubFrame
 
struct  TemplatedKeyInfo
 
struct  TimeMapping
 
class  TypedBuffer
 
struct  TypeForValue
 
struct  TypeSequence
 
struct  TypeTag
 
struct  ValueSequence
 
class  VArray
 
class  VArrayCommon
 
struct  VArrayDevirtualizer
 
class  VArrayImpl
 
class  VArrayImpl_For_ArrayContainer
 
class  VArrayImpl_For_DerivedSpan
 
class  VArrayImpl_For_Func
 
class  VArrayImpl_For_GVArray
 
class  VArrayImpl_For_Single
 
class  VArrayImpl_For_Span
 
class  VArrayImpl_For_Span_final
 
class  VArrayRef
 
class  VArraySpan
 
struct  vec_struct_base
 
struct  vec_struct_base< T, 2 >
 
struct  vec_struct_base< T, 3 >
 
struct  vec_struct_base< T, 4 >
 
struct  VecBase
 
class  Vector
 
class  VectorCPPType
 
class  VectorList
 
class  VectorSet
 
class  VMutableArray
 
class  VMutableArrayImpl
 
class  VMutableArrayImpl_For_GVMutableArray
 
class  VVectorArray
 
class  VVectorArray_For_GVVectorArray
 

Typedefs

using ColorTheme4b = ColorTheme4<uint8_t>
 
using ColorTheme4f = ColorTheme4<float>
 
using ColorGeometry4f = ColorSceneLinear4f<eAlpha::Premultiplied>
 
using ColorGeometry4b = ColorSceneLinearByteEncoded4b<eAlpha::Premultiplied>
 
using ColorPaint4f = ColorSceneLinear4f<eAlpha::Straight>
 
using ColorPaint4b = ColorSceneLinearByteEncoded4b<eAlpha::Straight>
 
using WeakImplicitSharingPtr = ImplicitSharingPtr<ImplicitSharingInfo, false>
 
template<typename T >
using ListBaseWrapper = ListBaseWrapperTemplate<ListBase, T>
 
template<typename T >
using ConstListBaseWrapper = ListBaseWrapperTemplate<const ListBase, const T>
 
template<typename Key , typename Value , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key) + sizeof(Value)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultMapSlot<Key, Value>::type>
using RawMap
 
using float2x2 = MatBase<float, 2, 2>
 
using float2x3 = MatBase<float, 2, 3>
 
using float2x4 = MatBase<float, 2, 4>
 
using float3x2 = MatBase<float, 3, 2>
 
using float3x3 = MatBase<float, 3, 3>
 
using float3x4 = MatBase<float, 3, 4>
 
using float4x2 = MatBase<float, 4, 2>
 
using float4x3 = MatBase<float, 4, 3>
 
using float4x4 = MatBase<float, 4, 4>
 
using float4x4_view = MatView<float, 4, 4, 4, 4, 0, 0, alignof(float)>
 
using float4x4_mutableview = MutableMatView<float, 4, 4, 4, 4, 0, 0, alignof(float)>
 
using double2x2 = MatBase<double, 2, 2>
 
using double2x3 = MatBase<double, 2, 3>
 
using double2x4 = MatBase<double, 2, 4>
 
using double3x2 = MatBase<double, 3, 2>
 
using double3x3 = MatBase<double, 3, 3>
 
using double3x4 = MatBase<double, 3, 4>
 
using double4x2 = MatBase<double, 4, 2>
 
using double4x3 = MatBase<double, 4, 3>
 
using double4x4 = MatBase<double, 4, 4>
 
template<typename T >
using as_uint_type
 
using char2 = blender::VecBase<int8_t, 2>
 
using char3 = blender::VecBase<int8_t, 3>
 
using char4 = blender::VecBase<int8_t, 4>
 
using uchar3 = blender::VecBase<uint8_t, 3>
 
using uchar4 = blender::VecBase<uint8_t, 4>
 
using int2 = VecBase<int32_t, 2>
 
using int3 = VecBase<int32_t, 3>
 
using int4 = VecBase<int32_t, 4>
 
using uint2 = VecBase<uint32_t, 2>
 
using uint3 = VecBase<uint32_t, 3>
 
using uint4 = VecBase<uint32_t, 4>
 
using short2 = blender::VecBase<int16_t, 2>
 
using short3 = blender::VecBase<int16_t, 3>
 
using short4 = blender::VecBase<int16_t, 4>
 
using ushort2 = VecBase<uint16_t, 2>
 
using ushort3 = blender::VecBase<uint16_t, 3>
 
using ushort4 = blender::VecBase<uint16_t, 4>
 
using float1 = VecBase<float, 1>
 
using float2 = VecBase<float, 2>
 
using float3 = VecBase<float, 3>
 
using float4 = VecBase<float, 4>
 
using double2 = VecBase<double, 2>
 
using double3 = VecBase<double, 3>
 
using double4 = VecBase<double, 4>
 
template<typename T >
using destruct_ptr = std::unique_ptr<T, DestructValueAtAddress<T>>
 
template<typename T , T Value, size_t Size>
using make_value_sequence
 
template<typename T , T Value1, T Value2, size_t Size, size_t... Value1Indices>
using make_two_value_sequence
 
using DefaultProbingStrategy = PythonProbingStrategy<>
 
template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type>
using RawSet = Set<Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, RawAllocator>
 
template<typename Int , Int EmptyValue, Int RemovedValue>
using IntegerSetSlot = IntrusiveSetSlot<Int, TemplatedKeyInfo<Int, EmptyValue, RemovedValue>>
 
template<typename T , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(T))>
using RawStack = Stack<T, InlineBufferCapacity, RawAllocator>
 
template<typename T , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(T))>
using RawVector = Vector<T, InlineBufferCapacity, RawAllocator>
 
template<typename Key , typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultVectorSetSlot<Key>::type>
using RawVectorSet = VectorSet<Key, ProbingStrategy, Hash, IsEqual, Slot, RawAllocator>
 

Enumerations

enum class  eAlpha { Straight , Premultiplied }
 
enum class  eSpace { Theme , SceneLinear , SceneLinearByteEncoded }
 

Functions

 TEST_F (TrackingTest, BKE_tracking_marker_get)
 
 TEST_F (TrackingTest, BKE_tracking_marker_get_exact)
 
 TEST_F (TrackingTest, BKE_tracking_marker_get_interpolated)
 
std::ostream & operator<< (std::ostream &stream, const eAlpha &space)
 
std::ostream & operator<< (std::ostream &stream, const eSpace &space)
 
BLI_INLINE ColorTheme4< floatBLI_color_convert_to_theme4f (const ColorTheme4< uint8_t > &theme4b)
 
BLI_INLINE ColorTheme4< uint8_tBLI_color_convert_to_theme4b (const ColorTheme4< float > &theme4f)
 
BLI_INLINE ColorTheme4f BLI_color_convert_to_theme4f (const ColorTheme4b &theme4b)
 
BLI_INLINE ColorSceneLinear4f< eAlpha::StraightBLI_color_convert_to_scene_linear (const ColorTheme4f &theme4f)
 
BLI_INLINE ColorSceneLinear4f< eAlpha::StraightBLI_color_convert_to_scene_linear (const ColorTheme4b &theme4b)
 
BLI_INLINE ColorTheme4f BLI_color_convert_to_theme4f (const ColorSceneLinear4f< eAlpha::Straight > &scene_linear)
 
BLI_INLINE ColorTheme4b BLI_color_convert_to_theme4b (const ColorSceneLinear4f< eAlpha::Straight > &scene_linear)
 
void register_cpp_types ()
 
template<typename Fn , typename... Devirtualizers>
bool call_with_devirtualized_parameters (const std::tuple< Devirtualizers... > &devis, const Fn &fn)
 
 TRIVIAL_DEFAULT_INT_HASH (int8_t)
 
 TRIVIAL_DEFAULT_INT_HASH (uint8_t)
 
 TRIVIAL_DEFAULT_INT_HASH (int16_t)
 
 TRIVIAL_DEFAULT_INT_HASH (uint16_t)
 
 TRIVIAL_DEFAULT_INT_HASH (int32_t)
 
 TRIVIAL_DEFAULT_INT_HASH (uint32_t)
 
 TRIVIAL_DEFAULT_INT_HASH (int64_t)
 
 TRIVIAL_DEFAULT_INT_HASH (uint64_t)
 
uint64_t hash_string (StringRef str)
 
template<typename T >
uint64_t get_default_hash (const T &v)
 
template<typename T1 , typename T2 >
uint64_t get_default_hash (const T1 &v1, const T2 &v2)
 
template<typename T1 , typename T2 , typename T3 >
uint64_t get_default_hash (const T1 &v1, const T2 &v2, const T3 &v3)
 
template<typename T1 , typename T2 , typename T3 , typename T4 >
uint64_t get_default_hash (const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4)
 
AlignedIndexRanges split_index_range_by_alignment (const IndexRange range, const int64_t alignment)
 
template<typename T >
Vector< T * > listbase_to_vector (ListBase &list)
 
template<typename T >
Vector< T * > listbase_to_vector (const ListBase &list)
 
template<typename Src1 , typename Src2 , typename Dst1 , typename Dst2 >
void initialize_pointer_pair (Src1 &&src1, Src2 &&src2, Dst1 *dst1, Dst2 *dst2)
 
int orient2d (const double2 &a, const double2 &b, const double2 &c)
 
int orient2d_fast (const double2 &a, const double2 &b, const double2 &c)
 
int incircle (const double2 &a, const double2 &b, const double2 &c, const double2 &d)
 
int incircle_fast (const double2 &a, const double2 &b, const double2 &c, const double2 &d)
 
int orient3d (const double3 &a, const double3 &b, const double3 &c, const double3 &d)
 
int orient3d_fast (const double3 &a, const double3 &b, const double3 &c, const double3 &d)
 
int insphere (const double3 &a, const double3 &b, const double3 &c, const double3 &d, const double3 &e)
 
int insphere_fast (const double3 &a, const double3 &b, const double3 &c, const double3 &d, const double3 &e)
 
template<typename T , int A_NumCol, int A_NumRow, int B_NumCol, int B_NumRow>
MatBase< T, B_NumCol, A_NumRow > operator* (const MatBase< T, A_NumCol, A_NumRow > &a, const MatBase< T, B_NumCol, B_NumRow > &b)
 
template<typename T , int A_NumCol, int A_NumRow, int A_SrcNumCol, int A_SrcNumRow, int A_SrcStartCol, int A_SrcStartRow, int A_SrcAlignment, int B_NumCol, int B_NumRow, int B_SrcNumCol, int B_SrcNumRow, int B_SrcStartCol, int B_SrcStartRow, int B_SrcAlignment>
MatBase< T, B_NumCol, A_NumRow > operator* (const MatView< T, A_NumCol, A_NumRow, A_SrcNumCol, A_SrcNumRow, A_SrcStartCol, A_SrcStartRow, A_SrcAlignment > &a, const MatView< T, B_NumCol, B_NumRow, B_SrcNumCol, B_SrcNumRow, B_SrcStartCol, B_SrcStartRow, B_SrcAlignment > &b)
 
template<typename T , int A_NumCol, int A_NumRow, int A_SrcNumCol, int A_SrcNumRow, int A_SrcStartCol, int A_SrcStartRow, int A_SrcAlignment, int B_NumCol, int B_NumRow>
MatBase< T, B_NumCol, A_NumRow > operator* (const MatView< T, A_NumCol, A_NumRow, A_SrcNumCol, A_SrcNumRow, A_SrcStartCol, A_SrcStartRow, A_SrcAlignment > &a, const MatBase< T, B_NumCol, B_NumRow > &b)
 
template<typename T , int A_NumCol, int A_NumRow, int B_NumCol, int B_NumRow, int B_SrcNumCol, int B_SrcNumRow, int B_SrcStartCol, int B_SrcStartRow, int B_SrcAlignment>
MatBase< T, B_NumCol, A_NumRow > operator* (const MatBase< T, A_NumCol, A_NumRow > &a, const MatView< T, B_NumCol, B_NumRow, B_SrcNumCol, B_SrcNumRow, B_SrcStartCol, B_SrcStartRow, B_SrcAlignment > &b)
 
template<>
float4x4 operator* (const float4x4 &a, const float4x4 &b)
 
template<>
float3x3 operator* (const float3x3 &a, const float3x3 &b)
 
template float2x2 operator* (const float2x2 &a, const float2x2 &b)
 
template double2x2 operator* (const double2x2 &a, const double2x2 &b)
 
template double3x3 operator* (const double3x3 &a, const double3x3 &b)
 
template double4x4 operator* (const double4x4 &a, const double4x4 &b)
 
template<typename T >
void destruct_n (T *ptr, int64_t n)
 
template<typename T >
void default_construct_n (T *ptr, int64_t n)
 
template<typename T >
void initialized_copy_n (const T *src, int64_t n, T *dst)
 
template<typename T >
void uninitialized_copy_n (const T *src, int64_t n, T *dst)
 
template<typename From , typename To >
void uninitialized_convert_n (const From *src, int64_t n, To *dst)
 
template<typename T >
void initialized_move_n (T *src, int64_t n, T *dst)
 
template<typename T >
void uninitialized_move_n (T *src, int64_t n, T *dst)
 
template<typename T >
void initialized_relocate_n (T *src, int64_t n, T *dst)
 
template<typename T >
void uninitialized_relocate_n (T *src, int64_t n, T *dst)
 
template<typename T >
void initialized_fill_n (T *dst, int64_t n, const T &value)
 
template<typename T >
void uninitialized_fill_n (T *dst, int64_t n, const T &value)
 
constexpr int64_t default_inline_buffer_capacity (size_t element_size)
 
template<typename Container >
Container & copy_assign_container (Container &dst, const Container &src)
 
template<typename Container >
Container & move_assign_container (Container &dst, Container &&src) noexcept(std::is_nothrow_move_constructible_v< Container >)
 
template<typename T >
bool assign_if_different (T &old_value, T new_value)
 
template<typename RandomAccessIterator >
void parallel_sort (RandomAccessIterator begin, RandomAccessIterator end)
 
template<typename RandomAccessIterator , typename Compare >
void parallel_sort (RandomAccessIterator begin, RandomAccessIterator end, const Compare &comp)
 
template<class Fn , size_t... I>
void unroll_impl (Fn fn, std::index_sequence< I... >)
 
template<int N, class Fn >
void unroll (Fn fn)
 
template<typename T , typename Func >
void devirtualize_varray (const VArray< T > &varray, const Func &func, bool enable=true)
 
template<typename T1 , typename T2 , typename Func >
void devirtualize_varray2 (const VArray< T1 > &varray1, const VArray< T2 > &varray2, const Func &func, bool enable=true)
 
static void update_first_occurrence (Map< int, int > &map, const int root, const int index)
 
template<typename ChannelStorageType , eSpace Space, eAlpha Alpha>
std::ostream & operator<< (std::ostream &stream, const ColorRGBA< ChannelStorageType, Space, Alpha > &c)
 
template std::ostream & operator<< (std::ostream &stream, const ColorRGBA< float, eSpace::SceneLinear, eAlpha::Premultiplied > &c)
 
template std::ostream & operator<< (std::ostream &stream, const ColorRGBA< float, eSpace::SceneLinear, eAlpha::Straight > &c)
 
template std::ostream & operator<< (std::ostream &stream, const ColorRGBA< uint8_t, eSpace::SceneLinearByteEncoded, eAlpha::Premultiplied > &c)
 
template std::ostream & operator<< (std::ostream &stream, const ColorRGBA< uint8_t, eSpace::SceneLinearByteEncoded, eAlpha::Straight > &c)
 
std::ostream & operator<< (std::ostream &stream, const ComputeContextHash &hash)
 
std::ostream & operator<< (std::ostream &stream, const ComputeContext &compute_context)
 
static auto & get_vector_from_self_map ()
 
static auto & get_vector_from_value_map ()
 
std::ostream & operator<< (std::ostream &stream, IndexRange range)
 
static int sgn (double x)
 
template<>
float4x4 operator* (const float4x4 &a, const float4x4 &b)
 
template<>
float3x3 operator* (const float3x3 &a, const float3x3 &b)
 
std::ostream & operator<< (std::ostream &stream, const OrderedEdge &e)
 
bool operator== (const bUUID uuid1, const bUUID uuid2)
 
bool operator!= (const bUUID uuid1, const bUUID uuid2)
 
bool operator< (const bUUID uuid1, const bUUID uuid2)
 
static bool unique_check_func (void *arg, const char *name)
 
 TEST (BLI_string_utils, BLI_uniquename_cb)
 
static void bm_vert_table_build (BMesh &bm, MutableSpan< const BMVert * > table, bool &need_select_vert, bool &need_hide_vert)
 
static void bm_edge_table_build (BMesh &bm, MutableSpan< const BMEdge * > table, bool &need_select_edge, bool &need_hide_edge, bool &need_sharp_edge, bool &need_uv_seams)
 
static void bm_face_loop_table_build (BMesh &bm, MutableSpan< const BMFace * > face_table, MutableSpan< const BMLoop * > loop_table, bool &need_select_poly, bool &need_hide_poly, bool &need_sharp_face, bool &need_material_index, Vector< int > &loop_layers_not_to_copy)
 
static void bmesh_block_copy_to_mesh_attributes (const Span< BMeshToMeshLayerInfo > copy_info, const int mesh_index, const void *block)
 
static void bm_to_mesh_verts (const BMesh &bm, const Span< const BMVert * > bm_verts, Mesh &mesh, MutableSpan< bool > select_vert, MutableSpan< bool > hide_vert)
 
static void bm_to_mesh_edges (const BMesh &bm, const Span< const BMEdge * > bm_edges, Mesh &mesh, MutableSpan< bool > select_edge, MutableSpan< bool > hide_edge, MutableSpan< bool > sharp_edge, MutableSpan< bool > uv_seams)
 
static void bm_to_mesh_faces (const BMesh &bm, const Span< const BMFace * > bm_faces, Mesh &mesh, MutableSpan< bool > select_poly, MutableSpan< bool > hide_poly, MutableSpan< bool > sharp_faces, MutableSpan< int > material_indices)
 
static void bm_to_mesh_loops (const BMesh &bm, const Span< const BMLoop * > bm_loops, Mesh &mesh)
 
static void init_data (ModifierData *md)
 
static void copy_data (const ModifierData *md, ModifierData *target, const int flag)
 
static void free_data (ModifierData *md)
 
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
 
static bool is_disabled (const Scene *, ModifierData *md, bool)
 
static void update_depsgraph (ModifierData *md, const ModifierUpdateDepsgraphContext *ctx)
 
static void modify_curves (ModifierData &md, const ModifierEvalContext &ctx, Drawing &drawing)
 
static void modify_geometry_set (ModifierData *md, const ModifierEvalContext *ctx, bke::GeometrySet *geometry_set)
 
static void panel_draw (const bContext *C, Panel *panel)
 
static void panel_register (ARegionType *region_type)
 
static void blend_write (BlendWriter *writer, const ID *, const ModifierData *md)
 
static void blend_read (BlendDataReader *reader, ModifierData *md)
 
static void init_data (ModifierData *md)
 
static void copy_data (const ModifierData *md, ModifierData *target, const int flag)
 
static void free_data (ModifierData *md)
 
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
 
static void update_depsgraph (ModifierData *md, const ModifierUpdateDepsgraphContext *ctx)
 
static float4x4 get_array_matrix (const Object &ob, const GreasePencilArrayModifierData &mmd, const int elem_idx, const bool use_object_offset)
 
static float4x4 get_rand_matrix (const GreasePencilArrayModifierData &mmd, const Object &ob, const int elem_id)
 
static bke::CurvesGeometry create_array_copies (const Object &ob, const GreasePencilArrayModifierData &mmd, const bke::CurvesGeometry &base_curves, bke::CurvesGeometry filtered_curves)
 
static void modify_drawing (const GreasePencilArrayModifierData &mmd, const ModifierEvalContext &ctx, bke::greasepencil::Drawing &drawing)
 
static void modify_geometry_set (ModifierData *md, const ModifierEvalContext *ctx, bke::GeometrySet *geometry_set)
 
static void panel_draw (const bContext *C, Panel *panel)
 
static void panel_register (ARegionType *region_type)
 
static void blend_write (BlendWriter *writer, const ID *, const ModifierData *md)
 
static void blend_read (BlendDataReader *reader, ModifierData *md)
 
static void init_data (ModifierData *md)
 
static void copy_data (const ModifierData *md, ModifierData *target, int flags)
 
static void free_data (ModifierData *md)
 
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
 
static void update_depsgraph (ModifierData *md, const ModifierUpdateDepsgraphContext *ctx)
 
static void blend_write (BlendWriter *writer, const ID *, const ModifierData *md)
 
static void blend_read (BlendDataReader *reader, ModifierData *md)
 
static Array< intpoint_counts_to_keep_concurrent (const bke::CurvesGeometry &curves, const IndexMask &selection, const int time_alignment, const int transition, const float factor, const bool clamp_points, int &r_curves_num, int &r_points_num)
 
static bke::CurvesGeometry build_concurrent (bke::greasepencil::Drawing &drawing, bke::CurvesGeometry &curves, const IndexMask &selection, const int time_alignment, const int transition, const float factor, const float factor_start, const float factor_opacity, const float factor_radii, StringRefNull target_vgname)
 
static void points_info_sequential (const bke::CurvesGeometry &curves, const IndexMask &selection, const int transition, const float factor, const bool clamp_points, int &r_curves_num, int &r_points_num)
 
static bke::CurvesGeometry build_sequential (bke::greasepencil::Drawing &drawing, bke::CurvesGeometry &curves, const IndexMask &selection, const int transition, const float factor, const float factor_start, const float factor_opacity, const float factor_radii, StringRefNull target_vgname)
 
static bke::CurvesGeometry reorder_strokes (const bke::CurvesGeometry &curves, const Span< bool > select, const Object &object, MutableSpan< bool > r_selection)
 
static float get_factor_from_draw_speed (const bke::CurvesGeometry &curves, const float time_elapsed, const float speed_fac, const float max_gap)
 
static float get_build_factor (const GreasePencilBuildTimeMode time_mode, const int current_frame, const int start_frame, const int length, const float percentage, const bke::CurvesGeometry &curves, const float scene_fps, const float speed_fac, const float max_gap, const float fade)
 
static void build_drawing (const GreasePencilBuildModifierData &mmd, const Object &ob, bke::greasepencil::Drawing &drawing, const bke::greasepencil::Drawing *previous_drawing, const int current_time, const float scene_fps)
 
static void modify_geometry_set (ModifierData *md, const ModifierEvalContext *ctx, blender::bke::GeometrySet *geometry_set)
 
static void panel_draw (const bContext *C, Panel *panel)
 
static void panel_register (ARegionType *region_type)
 
static void init_data (ModifierData *md)
 
static void copy_data (const ModifierData *md, ModifierData *target, const int flag)
 
static void free_data (ModifierData *md)
 
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
 
static void apply_color_factor (ColorGeometry4f &color, const ColorGeometry4f &material_color, const float3 factor)
 
static void modify_stroke_color (Object &ob, const GreasePencilColorModifierData &cmd, bke::CurvesGeometry &curves, const IndexMask &curves_mask, const MutableSpan< ColorGeometry4f > vertex_colors)
 
static void modify_fill_color (Object &ob, const GreasePencilColorModifierData &cmd, Drawing &drawing, const IndexMask &curves_mask)
 
static void modify_drawing (ModifierData &md, const ModifierEvalContext &ctx, Drawing &drawing)
 
static void modify_geometry_set (ModifierData *md, const ModifierEvalContext *ctx, bke::GeometrySet *geometry_set)
 
static void panel_draw (const bContext *C, Panel *panel)
 
static void panel_register (ARegionType *region_type)
 
static void blend_write (BlendWriter *writer, const ID *, const ModifierData *md)
 
static void blend_read (BlendDataReader *reader, ModifierData *md)
 
static void init_data (ModifierData *md)
 
static void copy_data (const ModifierData *md, ModifierData *target, const int flag)
 
static void free_data (ModifierData *md)
 
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
 
static bool is_disabled (const Scene *, ModifierData *md, bool)
 
static int floored_modulo (const int a, const int b)
 
static PatternInfo get_pattern_info (const GreasePencilDashModifierData &dmd)
 
static int find_dash_segment (const PatternInfo &pattern_info, const int index)
 
static void foreach_dash (const PatternInfo &pattern_info, const IndexRange src_points, const bool cyclic, FunctionRef< void(IndexRange, bool, int, float, float)> fn)
 
static bke::CurvesGeometry create_dashes (const PatternInfo &pattern_info, const bke::CurvesGeometry &src_curves, const IndexMask &curves_mask)
 
static void modify_drawing (const GreasePencilDashModifierData &dmd, const ModifierEvalContext &ctx, const PatternInfo &pattern_info, bke::greasepencil::Drawing &drawing)
 
static void modify_geometry_set (ModifierData *md, const ModifierEvalContext *ctx, bke::GeometrySet *geometry_set)
 
static void panel_draw (const bContext *C, Panel *panel)
 
static void segment_list_item_draw (uiList *, const bContext *, uiLayout *layout, PointerRNA *, PointerRNA *itemptr, int, PointerRNA *, const char *, int, int)
 
static void panel_register (ARegionType *region_type)
 
static void blend_write (BlendWriter *writer, const ID *, const ModifierData *md)
 
static void blend_read (BlendDataReader *reader, ModifierData *md)
 
static void init_data (ModifierData *md)
 
static void copy_data (const ModifierData *md, ModifierData *target, const int flag)
 
static void free_data (ModifierData *md)
 
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
 
static float3 calculate_plane (const float3 &center, const float3 &prev, const float3 &next)
 
static std::optional< float3find_plane_intersection (const float3 &plane_point, const float3 &plane_normal, const float3 &from, const float3 &to)
 
static float calc_min_radius_v3v3 (const float3 &p1, const float3 &p2, const float3 &dir)
 
static float calc_radius_limit (const Span< float3 > positions, const bool is_cyclic, const int spread, const int point, const float3 &direction)
 
static bool find_envelope (const Span< float3 > positions, const bool is_cyclic, const int spread, const int point, float3 &r_center, float &r_radius)
 
static void deform_drawing_as_envelope (const GreasePencilEnvelopeModifierData &emd, bke::greasepencil::Drawing &drawing, const IndexMask &curves_mask)
 
static EnvelopeInfo get_envelope_info (const GreasePencilEnvelopeModifierData &emd, const ModifierEvalContext &ctx)
 
static int curve_spread (const EnvelopeInfo &info, const int point_num, const bool is_cyclic_curve)
 
static int curve_envelope_strokes_num (const EnvelopeInfo &info, const int point_num, const bool is_cyclic_curve)
 
static void create_envelope_stroke_for_point (const IndexRange src_curve_points, const bool src_curve_cyclic, const int point, const int spread, const int base_length, const MutableSpan< int > point_src_indices)
 
static void create_envelope_strokes_for_curve (const EnvelopeInfo &info, const int src_curve_index, const IndexRange src_curve_points, const bool src_curve_cyclic, const VArray< int > &src_material_indices, const IndexRange dst_points, const MutableSpan< int > curve_offsets, const MutableSpan< int > material_indices, const MutableSpan< int > curve_src_indices, const MutableSpan< int > point_src_indices)
 
static void create_envelope_strokes (const EnvelopeInfo &info, bke::greasepencil::Drawing &drawing, const IndexMask &curves_mask, const bool keep_original)
 
static void modify_drawing (const GreasePencilEnvelopeModifierData &emd, const ModifierEvalContext &ctx, bke::greasepencil::Drawing &drawing)
 
static void modify_geometry_set (ModifierData *md, const ModifierEvalContext *ctx, bke::GeometrySet *geometry_set)
 
static void panel_draw (const bContext *C, Panel *panel)
 
static void panel_register (ARegionType *region_type)
 
static void blend_write (BlendWriter *writer, const ID *, const ModifierData *md)
 
static void blend_read (BlendDataReader *reader, ModifierData *md)
 
static void init_data (ModifierData *md)
 
static void copy_data (const ModifierData *md, ModifierData *target, const int flag)
 
static void free_data (ModifierData *md)
 
static bool is_disabled (const Scene *, ModifierData *md, bool)
 
static void update_depsgraph (ModifierData *md, const ModifierUpdateDepsgraphContext *ctx)
 
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
 
static void blend_write (BlendWriter *writer, const ID *, const ModifierData *md)
 
static void blend_read (BlendDataReader *reader, ModifierData *md)
 
static float hook_falloff (const float falloff, const int falloff_type, const float falloff_sq, const float fac_orig, const CurveMapping *curfalloff, const float len_sq)
 
static void deform_drawing (const ModifierData &md, const Object &ob, bke::greasepencil::Drawing &drawing)
 
static void modify_geometry_set (ModifierData *md, const ModifierEvalContext *ctx, bke::GeometrySet *geometry_set)
 
static void panel_draw (const bContext *C, Panel *panel)
 
static void panel_register (ARegionType *region_type)
 
static void init_data (ModifierData *md)
 
static void copy_data (const ModifierData *md, ModifierData *target, const int flag)
 
static void free_data (ModifierData *md)
 
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
 
static void update_depsgraph (ModifierData *md, const ModifierUpdateDepsgraphContext *ctx)
 
static bool is_disabled (const Scene *, ModifierData *md, bool)
 
static void modify_curves (ModifierData *md, const ModifierEvalContext *ctx, const LatticeDeformData &cache_data, Drawing &drawing)
 
static void modify_geometry_set (ModifierData *md, const ModifierEvalContext *ctx, bke::GeometrySet *geometry_set)
 
static void panel_draw (const bContext *C, Panel *panel)
 
static void panel_register (ARegionType *region_type)
 
static void blend_write (BlendWriter *writer, const ID *, const ModifierData *md)
 
static void blend_read (BlendDataReader *reader, ModifierData *md)
 
static void init_data (ModifierData *md)
 
static void copy_data (const ModifierData *md, ModifierData *target, int flags)
 
static void free_data (ModifierData *md)
 
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
 
static void blend_write (BlendWriter *writer, const ID *, const ModifierData *md)
 
static void blend_read (BlendDataReader *reader, ModifierData *md)
 
static Array< floatnoise_table (int len, int offset, int seed)
 
static float table_sample (MutableSpan< float > table, float x)
 
static void deform_drawing (const ModifierData &md, const Object &ob, bke::greasepencil::Drawing &drawing, const int current_time)
 
static void modify_geometry_set (ModifierData *md, const ModifierEvalContext *ctx, blender::bke::GeometrySet *geometry_set)
 
static void panel_draw (const bContext *C, Panel *panel)
 
static void panel_register (ARegionType *region_type)
 
static void init_data (ModifierData *md)
 
static void copy_data (const ModifierData *md, ModifierData *target, const int flag)
 
static void free_data (ModifierData *md)
 
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
 
static void update_depsgraph (ModifierData *md, const ModifierUpdateDepsgraphContext *ctx)
 
static float4x4 get_mirror_matrix (const Object &ob, const GreasePencilMirrorModifierData &mmd, const bool mirror_x, const bool mirror_y, const bool mirror_z)
 
static bke::CurvesGeometry create_mirror_copies (const Object &ob, const GreasePencilMirrorModifierData &mmd, const bke::CurvesGeometry &base_curves, const bke::CurvesGeometry &mirror_curves)
 
static void modify_drawing (const GreasePencilMirrorModifierData &mmd, const ModifierEvalContext &ctx, bke::greasepencil::Drawing &drawing)
 
static void modify_geometry_set (ModifierData *md, const ModifierEvalContext *ctx, bke::GeometrySet *geometry_set)
 
static void panel_draw (const bContext *C, Panel *panel)
 
static void panel_register (ARegionType *region_type)
 
static void blend_write (BlendWriter *writer, const ID *, const ModifierData *md)
 
static void blend_read (BlendDataReader *reader, ModifierData *md)
 
static void init_data (ModifierData *md)
 
static void copy_data (const ModifierData *md, ModifierData *target, const int flag)
 
static void free_data (ModifierData *md)
 
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
 
static bool is_disabled (const Scene *, ModifierData *md, bool)
 
static bke::CurvesGeometry duplicate_strokes (const bke::CurvesGeometry &curves, const IndexMask curves_mask, const IndexMask unselected_mask, const int count, int &r_original_point_count)
 
static void generate_curves (GreasePencilMultiModifierData &mmd, const ModifierEvalContext &ctx, Drawing &drawing)
 
static void modify_geometry_set (ModifierData *md, const ModifierEvalContext *ctx, bke::GeometrySet *geometry_set)
 
static void panel_draw (const bContext *C, Panel *panel)
 
static void panel_register (ARegionType *region_type)
 
static void blend_write (BlendWriter *writer, const ID *, const ModifierData *md)
 
static void blend_read (BlendDataReader *reader, ModifierData *md)
 
static void init_data (ModifierData *md)
 
static void free_data (ModifierData *md)
 
static void copy_data (const ModifierData *md, ModifierData *target, int flag)
 
static void blend_write (BlendWriter *writer, const ID *, const ModifierData *md)
 
static void blend_read (BlendDataReader *reader, ModifierData *md)
 
static bool depends_on_time (Scene *, ModifierData *md)
 
static Array< floatnoise_table (const int len, const int offset, const int seed)
 
static void deform_drawing (const GreasePencilNoiseModifierData &mmd, const Object &ob, const int ctime, const int start_frame_number, bke::greasepencil::Drawing &drawing)
 
static void modify_geometry_set (ModifierData *md, const ModifierEvalContext *ctx, bke::GeometrySet *geometry_set)
 
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
 
static void panel_draw (const bContext *C, Panel *panel)
 
static void panel_register (ARegionType *region_type)
 
static void init_data (ModifierData *md)
 
static void copy_data (const ModifierData *md, ModifierData *target, const int flag)
 
static void free_data (ModifierData *md)
 
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
 
static void update_depsgraph (ModifierData *, const ModifierUpdateDepsgraphContext *ctx)
 
static void apply_stroke_transform (const GreasePencilOffsetModifierData &omd, const VArray< float > &weights, const IndexRange &points, const float3 &loc_factor, const float3 &rot_factor, const float3 &scale_factor, const MutableSpan< float3 > positions, const MutableSpan< float > radii)
 
static void modify_stroke_random (const Object &ob, const GreasePencilOffsetModifierData &omd, const IndexMask &curves_mask, bke::CurvesGeometry &curves)
 
static float get_factor_from_index (const GreasePencilOffsetModifierData &omd, const int size, const int index)
 
static void modify_stroke_by_index (const GreasePencilOffsetModifierData &omd, const IndexMask &curves_mask, bke::CurvesGeometry &curves)
 
static void modify_stroke_by_material (const Object &ob, const GreasePencilOffsetModifierData &omd, const IndexMask &curves_mask, bke::CurvesGeometry &curves)
 
static void modify_stroke_by_layer (const GreasePencilOffsetModifierData &omd, const int layer_index, const int layers_num, const IndexMask &curves_mask, bke::CurvesGeometry &curves)
 
static void modify_drawing (const ModifierData &md, const ModifierEvalContext &ctx, bke::greasepencil::Drawing &drawing)
 
static void modify_drawing_by_layer (const ModifierData &md, const ModifierEvalContext &ctx, bke::greasepencil::Drawing &drawing, int layer_index, int layers_num)
 
static void modify_geometry_set (ModifierData *md, const ModifierEvalContext *ctx, bke::GeometrySet *geometry_set)
 
static void panel_draw (const bContext *C, Panel *panel)
 
static void panel_register (ARegionType *region_type)
 
static void blend_write (BlendWriter *writer, const ID *, const ModifierData *md)
 
static void blend_read (BlendDataReader *reader, ModifierData *md)
 
static void init_data (ModifierData *md)
 
static void copy_data (const ModifierData *md, ModifierData *target, const int flag)
 
static void free_data (ModifierData *md)
 
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
 
static void modify_stroke_color (const GreasePencilOpacityModifierData &omd, bke::CurvesGeometry &curves, const IndexMask &curves_mask)
 
static void modify_fill_color (const GreasePencilOpacityModifierData &omd, bke::CurvesGeometry &curves, const IndexMask &curves_mask)
 
static void modify_softness (const GreasePencilOpacityModifierData &omd, bke::CurvesGeometry &curves, const IndexMask &curves_mask)
 
static void modify_curves (ModifierData *md, const ModifierEvalContext *ctx, bke::CurvesGeometry &curves)
 
static void modify_geometry_set (ModifierData *md, const ModifierEvalContext *ctx, bke::GeometrySet *geometry_set)
 
static void panel_draw (const bContext *C, Panel *panel)
 
static void panel_register (ARegionType *region_type)
 
static void blend_write (BlendWriter *writer, const ID *, const ModifierData *md)
 
static void blend_read (BlendDataReader *reader, ModifierData *md)
 
static void init_data (ModifierData *md)
 
static void copy_data (const ModifierData *md, ModifierData *target, const int flag)
 
static void free_data (ModifierData *md)
 
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
 
static void update_depsgraph (ModifierData *md, const ModifierUpdateDepsgraphContext *ctx)
 
static bke::CurvesGeometry reorder_cyclic_curve_points (const bke::CurvesGeometry &src_curves, const IndexMask &curve_selection, const Span< int > curve_offsets)
 
static int find_closest_point (const Span< float3 > positions, const float3 &target)
 
static void modify_drawing (const GreasePencilOutlineModifierData &omd, const ModifierEvalContext &ctx, bke::greasepencil::Drawing &drawing, const float4x4 &viewmat)
 
static void modify_geometry_set (ModifierData *md, const ModifierEvalContext *ctx, bke::GeometrySet *geometry_set)
 
static void panel_draw (const bContext *C, Panel *panel)
 
static void panel_register (ARegionType *region_type)
 
static void blend_write (BlendWriter *writer, const ID *, const ModifierData *md)
 
static void blend_read (BlendDataReader *reader, ModifierData *md)
 
static void init_data (ModifierData *md)
 
static void copy_data (const ModifierData *md, ModifierData *target, const int flag)
 
static void free_data (ModifierData *md)
 
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
 
static bool is_disabled (const Scene *, ModifierData *md, bool)
 
static void update_depsgraph (ModifierData *md, const ModifierUpdateDepsgraphContext *ctx)
 
static void modify_drawing (const GreasePencilShrinkwrapModifierData &smd, const ModifierEvalContext &ctx, bke::greasepencil::Drawing &drawing)
 
static void ensure_shrinkwrap_cache_data (GreasePencilShrinkwrapModifierData &smd, const ModifierEvalContext &ctx)
 
static void modify_geometry_set (ModifierData *md, const ModifierEvalContext *ctx, bke::GeometrySet *geometry_set)
 
static void panel_draw (const bContext *C, Panel *panel)
 
static void panel_register (ARegionType *region_type)
 
static void blend_write (BlendWriter *writer, const ID *, const ModifierData *md)
 
static void blend_read (BlendDataReader *reader, ModifierData *md)
 
static void init_data (ModifierData *md)
 
static void free_data (ModifierData *md)
 
static void copy_data (const ModifierData *md, ModifierData *target, int flag)
 
static void blend_write (BlendWriter *writer, const ID *, const ModifierData *md)
 
static void blend_read (BlendDataReader *reader, ModifierData *md)
 
static IndexMask simplify_fixed (const bke::CurvesGeometry &curves, const int step, IndexMaskMemory &memory)
 
static void simplify_drawing (const GreasePencilSimplifyModifierData &mmd, const Object &ob, bke::greasepencil::Drawing &drawing)
 
static void modify_geometry_set (ModifierData *md, const ModifierEvalContext *ctx, bke::GeometrySet *geometry_set)
 
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
 
static void panel_draw (const bContext *C, Panel *panel)
 
static void panel_register (ARegionType *region_type)
 
static void init_data (ModifierData *md)
 
static void copy_data (const ModifierData *md, ModifierData *target, const int flag)
 
static void free_data (ModifierData *md)
 
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
 
static void blend_write (BlendWriter *writer, const ID *, const ModifierData *md)
 
static void blend_read (BlendDataReader *reader, ModifierData *md)
 
static void deform_drawing (const ModifierData &md, const Object &ob, bke::greasepencil::Drawing &drawing)
 
static void modify_geometry_set (ModifierData *md, const ModifierEvalContext *ctx, bke::GeometrySet *geometry_set)
 
static void panel_draw (const bContext *C, Panel *panel)
 
static void panel_register (ARegionType *region_type)
 
static void init_data (ModifierData *md)
 
static void free_data (ModifierData *md)
 
static void copy_data (const ModifierData *md, ModifierData *target, int flag)
 
static void blend_write (BlendWriter *writer, const ID *, const ModifierData *md)
 
static void blend_read (BlendDataReader *reader, ModifierData *md)
 
static void subdivide_drawing (ModifierData &md, Object &ob, bke::greasepencil::Drawing &drawing)
 
static void modify_geometry_set (ModifierData *md, const ModifierEvalContext *ctx, bke::GeometrySet *geometry_set)
 
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
 
static void panel_draw (const bContext *C, Panel *panel)
 
static void panel_register (ARegionType *region_type)
 
static void init_data (ModifierData *md)
 
static void copy_data (const ModifierData *md, ModifierData *target, const int flag)
 
static void free_data (ModifierData *md)
 
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
 
static void write_stroke_transforms (bke::greasepencil::Drawing &drawing, const IndexMask &curves_mask, const float offset, const float rotation, const float scale, const bool normalize_u)
 
static float2 rotate_by_angle (const float2 &p, const float angle)
 
static void get_legacy_stroke_matrix (const Span< float3 > positions, float3x4 &stroke_to_layer, float4x3 &layer_to_stroke)
 
static void write_fill_transforms (bke::greasepencil::Drawing &drawing, const IndexMask &curves_mask, const float2 &offset, const float rotation, const float scale)
 
static void modify_curves (const GreasePencilTextureModifierData &tmd, const ModifierEvalContext &ctx, bke::greasepencil::Drawing &drawing)
 
static void modify_geometry_set (ModifierData *md, const ModifierEvalContext *ctx, bke::GeometrySet *geometry_set)
 
static void panel_draw (const bContext *C, Panel *panel)
 
static void panel_register (ARegionType *region_type)
 
static void blend_write (BlendWriter *writer, const ID *, const ModifierData *md)
 
static void blend_read (BlendDataReader *reader, ModifierData *md)
 
static void init_data (ModifierData *md)
 
static void copy_data (const ModifierData *md, ModifierData *target, const int flag)
 
static void free_data (ModifierData *md)
 
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
 
static void blend_write (BlendWriter *writer, const ID *, const ModifierData *md)
 
static void blend_read (BlendDataReader *reader, ModifierData *md)
 
static void deform_drawing (const ModifierData &md, const Object &ob, bke::greasepencil::Drawing &drawing)
 
static void modify_geometry_set (ModifierData *md, const ModifierEvalContext *ctx, bke::GeometrySet *geometry_set)
 
static void panel_draw (const bContext *C, Panel *panel)
 
static void panel_register (ARegionType *region_type)
 
static void init_data (ModifierData *md)
 
static void copy_data (const ModifierData *md, ModifierData *target, const int flag)
 
static void free_data (ModifierData *md)
 
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
 
static const IndexRange find_key_range (const Span< int > sorted_keys, const FrameRange &frame_range)
 
static void calculate_repetitions (const TimeMapping &mapping, const FrameRange &gp_src, const FrameRange &scene_dst, int &r_start, int &r_count)
 
static void insert_keys_forward (const TimeMapping &mapping, const Map< int, GreasePencilFrame > &frames, const Span< int > sorted_keys, const FrameRange gp_src_range, const FrameRange gp_dst_range, Map< int, GreasePencilFrame > &dst_frames)
 
static void insert_keys_reverse (const TimeMapping &mapping, const Map< int, GreasePencilFrame > &frames, const Span< int > sorted_keys, const FrameRange gp_src_range, const FrameRange gp_dst_range, Map< int, GreasePencilFrame > &dst_frames)
 
static void fill_scene_range_fixed (const TimeMapping &mapping, const Map< int, GreasePencilFrame > &frames, const Span< int > sorted_keys, const int gp_src_frame, const FrameRange scene_dst_range, Map< int, GreasePencilFrame > &dst_frames)
 
static void fill_scene_range_forward (const TimeMapping &mapping, const Map< int, GreasePencilFrame > &frames, const Span< int > sorted_keys, const FrameRange gp_src_range, const FrameRange scene_dst_range, Map< int, GreasePencilFrame > &dst_frames)
 
static void fill_scene_range_reverse (const TimeMapping &mapping, const Map< int, GreasePencilFrame > &frames, const Span< int > sorted_keys, const FrameRange gp_src_range, const FrameRange scene_dst_range, Map< int, GreasePencilFrame > &dst_frames)
 
static void fill_scene_range_ping_pong (const TimeMapping &mapping, const Map< int, GreasePencilFrame > &frames, const Span< int > sorted_keys, const FrameRange gp_src_range, const FrameRange scene_dst_range, Map< int, GreasePencilFrame > &dst_frames)
 
static void fill_scene_range_chain (const TimeMapping &mapping, const Map< int, GreasePencilFrame > &frames, const Span< int > sorted_keys, const Span< GreasePencilTimeModifierSegment > segments, const FrameRange gp_src_range, const FrameRange scene_dst_range, Map< int, GreasePencilFrame > &dst_frames)
 
static void fill_scene_timeline (const GreasePencilTimeModifierData &tmd, const Scene &eval_scene, const Map< int, GreasePencilFrame > &frames, const Span< int > sorted_keys, const FrameRange scene_dst_range, Map< int, GreasePencilFrame > &dst_frames)
 
static void modify_geometry_set (ModifierData *md, const ModifierEvalContext *ctx, bke::GeometrySet *geometry_set)
 
static void panel_draw (const bContext *C, Panel *panel)
 
static void segment_list_item_draw (uiList *, const bContext *, uiLayout *layout, PointerRNA *, PointerRNA *itemptr, int, PointerRNA *, const char *, int, int)
 
static void panel_register (ARegionType *region_type)
 
static void blend_write (BlendWriter *writer, const ID *, const ModifierData *md)
 
static void blend_read (BlendDataReader *reader, ModifierData *md)
 
static void init_data (ModifierData *md)
 
static void copy_data (const ModifierData *md, ModifierData *target, const int flag)
 
static void free_data (ModifierData *md)
 
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
 
static bool is_disabled (const Scene *, ModifierData *md, bool)
 
static void update_depsgraph (ModifierData *md, const ModifierUpdateDepsgraphContext *ctx)
 
static ColorGeometry4f get_base_color (const ColorGeometry4f &input_color, const ColorGeometry4f &material_color)
 
static ColorGeometry4f apply_uniform_tint (const GreasePencilTintModifierData &tmd, const ColorGeometry4f &input_color, const float factor)
 
static ColorGeometry4f apply_gradient_tint (const GreasePencilTintModifierData &tmd, const float4x4 &matrix, const float3 &position, const ColorGeometry4f &input_color, const float factor)
 
static void modify_stroke_color (Object &ob, const GreasePencilTintModifierData &tmd, bke::CurvesGeometry &curves, const IndexMask &curves_mask, const MutableSpan< ColorGeometry4f > vertex_colors)
 
static void modify_fill_color (Object &ob, const GreasePencilTintModifierData &tmd, Drawing &drawing, const IndexMask &curves_mask)
 
static void modify_opacity (const GreasePencilTintModifierData &tmd, bke::CurvesGeometry &curves, const IndexMask &curves_mask)
 
static void modify_curves (ModifierData &md, const ModifierEvalContext &ctx, Drawing &drawing)
 
static void modify_geometry_set (ModifierData *md, const ModifierEvalContext *ctx, bke::GeometrySet *geometry_set)
 
static void panel_draw (const bContext *C, Panel *panel)
 
static void panel_register (ARegionType *region_type)
 
static void blend_write (BlendWriter *writer, const ID *, const ModifierData *md)
 
static void blend_read (BlendDataReader *reader, ModifierData *md)
 
static void init_data (ModifierData *md)
 
static void copy_data (const ModifierData *md, ModifierData *target, const int flag)
 
static void free_data (ModifierData *md)
 
static bool is_disabled (const Scene *, ModifierData *md, bool)
 
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
 
static void blend_write (BlendWriter *writer, const ID *, const ModifierData *md)
 
static void blend_read (BlendDataReader *reader, ModifierData *md)
 
static int ensure_vertex_group (const StringRefNull name, ListBase &vertex_group_names)
 
static bool target_vertex_group_available (const StringRefNull name, const ListBase &vertex_group_names)
 
static void write_weights_for_drawing (const ModifierData &md, const Object &ob, bke::greasepencil::Drawing &drawing)
 
static void modify_geometry_set (ModifierData *md, const ModifierEvalContext *ctx, bke::GeometrySet *geometry_set)
 
static void panel_draw (const bContext *C, Panel *panel)
 
static void panel_register (ARegionType *region_type)
 
static void init_data (ModifierData *md)
 
static void copy_data (const ModifierData *md, ModifierData *target, const int flag)
 
static void free_data (ModifierData *md)
 
static bool is_disabled (const Scene *, ModifierData *md, bool)
 
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
 
static void update_depsgraph (ModifierData *md, const ModifierUpdateDepsgraphContext *ctx)
 
static void blend_write (BlendWriter *writer, const ID *, const ModifierData *md)
 
static void blend_read (BlendDataReader *reader, ModifierData *md)
 
static float get_distance_factor (float3 target_pos, const float4x4 &obmat, float3 pos, const float dist_min, const float dist_max)
 
static int ensure_vertex_group (const StringRefNull name, ListBase &vertex_group_names)
 
static bool target_vertex_group_available (const StringRefNull name, const ListBase &vertex_group_names)
 
static void write_weights_for_drawing (const ModifierData &md, const Object &ob, bke::greasepencil::Drawing &drawing)
 
static void modify_geometry_set (ModifierData *md, const ModifierEvalContext *ctx, bke::GeometrySet *geometry_set)
 
static void panel_draw (const bContext *C, Panel *panel)
 
static void panel_register (ARegionType *region_type)
 
static bool is_first_lineart (const GreasePencilLineartModifierData &md)
 
static bool is_last_line_art (const GreasePencilLineartModifierData &md, const bool use_render)
 
static void init_data (ModifierData *md)
 
static void copy_data (const ModifierData *md, ModifierData *target, const int flag)
 
static void free_data (ModifierData *md)
 
static bool is_disabled (const Scene *, ModifierData *md, bool)
 
static void add_this_collection (Collection &collection, const ModifierUpdateDepsgraphContext *ctx, const int mode, Set< const Object * > &object_dependencies)
 
static void update_depsgraph (ModifierData *md, const ModifierUpdateDepsgraphContext *ctx)
 
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
 
static void panel_draw (const bContext *, Panel *panel)
 
static void edge_types_panel_draw (const bContext *, Panel *panel)
 
static void options_light_reference_draw (const bContext *, Panel *panel)
 
static void options_panel_draw (const bContext *, Panel *panel)
 
static void occlusion_panel_draw (const bContext *, Panel *panel)
 
static bool anything_showing_through (PointerRNA *ptr)
 
static void material_mask_panel_draw_header (const bContext *, Panel *panel)
 
static void material_mask_panel_draw (const bContext *, Panel *panel)
 
static void intersection_panel_draw (const bContext *, Panel *panel)
 
static void face_mark_panel_draw_header (const bContext *, Panel *panel)
 
static void face_mark_panel_draw (const bContext *, Panel *panel)
 
static void chaining_panel_draw (const bContext *, Panel *panel)
 
static void vgroup_panel_draw (const bContext *, Panel *panel)
 
static void bake_panel_draw (const bContext *, Panel *panel)
 
static void composition_panel_draw (const bContext *, Panel *panel)
 
static void panel_register (ARegionType *region_type)
 
static void generate_strokes (ModifierData &md, const ModifierEvalContext &ctx, GreasePencil &grease_pencil, GreasePencilLineartModifierData &first_lineart, const bool force_compute)
 
static void modify_geometry_set (ModifierData *md, const ModifierEvalContext *ctx, bke::GeometrySet *geometry_set)
 
static void blend_write (BlendWriter *writer, const ID *, const ModifierData *md)
 
static void blend_read (BlendDataReader *, ModifierData *md)
 
static void init_data (ModifierData *md)
 
static void find_used_ids_from_settings (const NodesModifierSettings &settings, Set< ID * > &ids)
 
static void add_collection_relation (const ModifierUpdateDepsgraphContext *ctx, Collection &collection)
 
static void add_object_relation (const ModifierUpdateDepsgraphContext *ctx, Object &object)
 
static void update_depsgraph (ModifierData *md, const ModifierUpdateDepsgraphContext *ctx)
 
static bool check_tree_for_time_node (const bNodeTree &tree, Set< const bNodeTree * > &checked_groups)
 
static bool depends_on_time (Scene *, ModifierData *md)
 
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
 
static void foreach_tex_link (ModifierData *md, Object *ob, TexWalkFunc walk, void *user_data)
 
static bool is_disabled (const Scene *, ModifierData *md, bool)
 
static bool logging_enabled (const ModifierEvalContext *ctx)
 
static void update_id_properties_from_node_group (NodesModifierData *nmd)
 
static void remove_outdated_bake_caches (NodesModifierData &nmd)
 
static void update_bakes_from_node_group (NodesModifierData &nmd)
 
static void update_panels_from_node_group (NodesModifierData &nmd)
 
static void try_add_side_effect_node (const ComputeContext &final_compute_context, const int final_node_id, const NodesModifierData &nmd, nodes::GeoNodesSideEffectNodes &r_side_effect_nodes)
 
static void find_side_effect_nodes_for_viewer_path (const ViewerPath &viewer_path, const NodesModifierData &nmd, const ModifierEvalContext &ctx, nodes::GeoNodesSideEffectNodes &r_side_effect_nodes)
 
static void find_side_effect_nodes_for_nested_node (const NodesModifierData &nmd, const int root_nested_node_id, nodes::GeoNodesSideEffectNodes &r_side_effect_nodes)
 
static void find_side_effect_nodes_for_baking (const NodesModifierData &nmd, const ModifierEvalContext &ctx, nodes::GeoNodesSideEffectNodes &r_side_effect_nodes)
 
static void find_side_effect_nodes_for_active_gizmos (const NodesModifierData &nmd, const ModifierEvalContext &ctx, const wmWindowManager &wm, nodes::GeoNodesSideEffectNodes &r_side_effect_nodes, Set< ComputeContextHash > &r_socket_log_contexts)
 
static void find_side_effect_nodes (const NodesModifierData &nmd, const ModifierEvalContext &ctx, nodes::GeoNodesSideEffectNodes &r_side_effect_nodes, Set< ComputeContextHash > &r_socket_log_contexts)
 
static void find_socket_log_contexts (const NodesModifierData &nmd, const ModifierEvalContext &ctx, Set< ComputeContextHash > &r_socket_log_contexts)
 
static void check_property_socket_sync (const Object *ob, ModifierData *md)
 
static BakeFrameIndices get_bake_frame_indices (const Span< std::unique_ptr< bake::FrameCache > > frame_caches, const SubFrame frame)
 
static void ensure_bake_loaded (bake::NodeBakeCache &bake_cache, bake::FrameCache &frame_cache)
 
static bool try_find_baked_data (const NodesModifierBake &bake, bake::NodeBakeCache &bake_cache, const Main &bmain, const Object &object, const NodesModifierData &nmd, const int id)
 
static void add_missing_data_block_mappings (NodesModifierBake &bake, const Span< bake::BakeDataBlockID > missing, FunctionRef< ID *(const bake::BakeDataBlockID &)> get_data_block)
 
void nodes_modifier_data_block_destruct (NodesModifierDataBlock *data_block, const bool do_id_user)
 
static void add_data_block_items_writeback (const ModifierEvalContext &ctx, NodesModifierData &nmd_eval, NodesModifierData &nmd_orig, NodesModifierSimulationParams &simulation_params, NodesModifierBakeParams &bake_params)
 
static void modifyGeometry (ModifierData *md, const ModifierEvalContext *ctx, bke::GeometrySet &geometry_set)
 
static Meshmodify_mesh (ModifierData *md, const ModifierEvalContext *ctx, Mesh *mesh)
 
static void modify_geometry_set (ModifierData *md, const ModifierEvalContext *ctx, bke::GeometrySet *geometry_set)
 
 BLI_STATIC_ASSERT (std::is_trivially_destructible_v< AttributeSearchData >, "")
 
static NodesModifierDataget_modifier_data (Main &bmain, const wmWindowManager &wm, const AttributeSearchData &data)
 
static geo_log::GeoTreeLogget_root_tree_log (const NodesModifierData &nmd)
 
static void attribute_search_update_fn (const bContext *C, void *arg, const char *str, uiSearchItems *items, const bool is_first)
 
static void attribute_search_exec_fn (bContext *C, void *data_v, void *item_v)
 
static void add_attribute_search_button (const bContext &C, uiLayout *layout, const NodesModifierData &nmd, PointerRNA *md_ptr, const StringRefNull rna_path_attribute_name, const bNodeTreeInterfaceSocket &socket, const bool is_output)
 
static void add_attribute_search_or_value_buttons (const bContext &C, uiLayout *layout, const NodesModifierData &nmd, PointerRNA *md_ptr, const bNodeTreeInterfaceSocket &socket)
 
static void draw_property_for_socket (const bContext &C, uiLayout *layout, NodesModifierData *nmd, PointerRNA *bmain_ptr, PointerRNA *md_ptr, const bNodeTreeInterfaceSocket &socket)
 
static void draw_property_for_output_socket (const bContext &C, uiLayout *layout, const NodesModifierData &nmd, PointerRNA *md_ptr, const bNodeTreeInterfaceSocket &socket)
 
static NodesModifierPanelfind_panel_by_id (NodesModifierData &nmd, const int id)
 
static bool interace_panel_has_socket (const bNodeTreeInterfacePanel &interface_panel)
 
static void draw_interface_panel_content (const bContext *C, uiLayout *layout, PointerRNA *modifier_ptr, NodesModifierData &nmd, const bNodeTreeInterfacePanel &interface_panel)
 
static bool has_output_attribute (const NodesModifierData &nmd)
 
static void draw_output_attributes_panel (const bContext *C, uiLayout *layout, const NodesModifierData &nmd, PointerRNA *ptr)
 
static void draw_bake_panel (uiLayout *layout, PointerRNA *modifier_ptr)
 
static void draw_named_attributes_panel (uiLayout *layout, NodesModifierData &nmd)
 
static void draw_manage_panel (const bContext *C, uiLayout *layout, PointerRNA *modifier_ptr, NodesModifierData &nmd)
 
static void draw_warnings (const bContext *C, const NodesModifierData &nmd, uiLayout *layout, PointerRNA *md_ptr)
 
static void panel_draw (const bContext *C, Panel *panel)
 
static void panel_register (ARegionType *region_type)
 
static void blend_write (BlendWriter *writer, const ID *, const ModifierData *md)
 
static void blend_read (BlendDataReader *reader, ModifierData *md)
 
static void copy_data (const ModifierData *md, ModifierData *target, const int flag)
 
void nodes_modifier_packed_bake_free (NodesModifierPackedBake *packed_bake)
 
static void free_data (ModifierData *md)
 
static void required_data_mask (ModifierData *, CustomData_MeshMasks *r_cddata_masks)
 
Constexpr Utility Functions

Those should eventually be de-duplicated with functions in BLI_math_base.h.

template<typename IntT >
constexpr IntT ceil_division (const IntT x, const IntT y)
 
template<typename IntT >
constexpr IntT floor_division (const IntT x, const IntT y)
 
constexpr int64_t ceil_division_by_fraction (const int64_t x, const int64_t numerator, const int64_t denominator)
 
constexpr int64_t floor_multiplication_with_fraction (const int64_t x, const int64_t numerator, const int64_t denominator)
 
constexpr int64_t total_slot_amount_for_usable_slots (const int64_t min_usable_slots, const int64_t max_load_factor_numerator, const int64_t max_load_factor_denominator)
 
#StringRefBase Inline Methods
constexpr int64_t index_or_npos_to_int64 (size_t index)
 
Operator Overloads
std::ostream & operator<< (std::ostream &stream, StringRef ref)
 
std::ostream & operator<< (std::ostream &stream, StringRefNull ref)
 
std::string operator+ (StringRef a, StringRef b)
 
constexpr bool operator== (StringRef a, StringRef b)
 
constexpr bool operator!= (StringRef a, StringRef b)
 
constexpr bool operator< (StringRef a, StringRef b)
 
constexpr bool operator> (StringRef a, StringRef b)
 
constexpr bool operator<= (StringRef a, StringRef b)
 
constexpr bool operator>= (StringRef a, StringRef b)
 
Formatting
std::string_view format_as (StringRef str)
 

Variables

template<typename T >
constexpr bool is_trivial_extended_v = std::is_trivial_v<T>
 
template<typename T >
constexpr bool is_trivially_destructible_extended_v
 
template<typename T >
constexpr bool is_trivially_copy_constructible_extended_v
 
template<typename T >
constexpr bool is_trivially_move_constructible_extended_v
 
template<typename From , typename To >
constexpr bool is_convertible_pointer_v
 
template<typename From , typename To >
constexpr bool is_span_convertible_pointer_v
 
template<typename T , typename... Args>
constexpr bool is_same_any_v = (std::is_same_v<T, Args> || ...)
 
template<typename T >
constexpr bool is_trivial_extended_v< VArrayImpl_For_Span_final< T > > = true
 
template<typename T >
constexpr bool is_trivial_extended_v< VArrayImpl_For_Single< T > > = is_trivial_extended_v<T>
 
template<typename StructT , typename ElemT , ElemT(*)(const StructT &) GetFunc, void(*)(StructT &, ElemT) SetFunc>
constexpr bool is_trivial_extended_v< VArrayImpl_For_DerivedSpan< StructT, ElemT, GetFunc, SetFunc > > = true
 
template<typename T >
static constexpr bool is_VArray_v = false
 
template<typename T >
static constexpr bool is_VArray_v< VArray< T > > = true
 
template<typename T >
static constexpr bool is_VMutableArray_v = false
 
template<typename T >
static constexpr bool is_VMutableArray_v< VMutableArray< T > > = true
 
static const float unlimited_radius = FLT_MAX
 
static const CustomData_MeshMasks dependency_data_mask
 
#GVArrayImpl_For_GSpan.
template<>
constexpr bool is_trivial_extended_v< GVArrayImpl_For_GSpan_final > = true
 
#GVArrayImpl_For_SingleValueRef.
template<>
constexpr bool is_trivial_extended_v< GVArrayImpl_For_SingleValueRef_final > = true
 

Detailed Description

A #CacheMutex is used to protect a lazily computed cache from being computed more than once. Using #CacheMutex instead of a "raw mutex" to protect a cache has some benefits:

  • Avoid common pitfalls like forgetting to use task isolation or a double checked lock.
  • Cleaner and less redundant code because the same locking patterns don't have to be repeated everywhere.
  • One can benefit from potential future improvements to #CacheMutex of which there are a few mentioned below.

The data protected by #CacheMutex is not part of #CacheMutex. Instead, the #CacheMutex and its protected data should generally be placed next to each other.

Each #CacheMutex protects exactly one cache, so multiple cache mutexes have to be used when a class has multiple caches. That is contrary to a "custom" solution using std::mutex where one mutex could protect multiple caches at the cost of higher lock contention.

To make sure the cache is up to date, call CacheMutex::ensure and pass in the function that computes the cache.

To tell the #CacheMutex that the cache is invalidated and to be re-evaluated upon next access use CacheMutex::tag_dirty.

This example shows how one could implement a lazily computed average vertex position in an imaginary Mesh data structure:

class Mesh {
private:
mutable CacheMutex average_position_cache_mutex_;
mutable float3 average_position_cache_;
public:
const float3 &average_position() const
{
average_position_cache_mutex_.ensure([&]() {
average_position_cache_ = actually_compute_average_position();
});
return average_position_cache_;
}
void tag_positions_changed()
{
average_position_cache_mutex_.tag_dirty();
}
};
void ensure(FunctionRef< void()> compute_cache)

Possible future improvements:

  • Avoid task isolation when we know that the cache computation does not use threading.
  • Try to use a smaller mutex. The mutex does not have to be fair for this use case.
  • Try to join the cache computation instead of blocking if another thread is computing the cache already.

Typedef Documentation

◆ as_uint_type

template<typename T >
using blender::as_uint_type
Initial value:
std::conditional_t<sizeof(T) == sizeof(uint8_t), uint8_t,
std::conditional_t<sizeof(T) == sizeof(uint16_t), uint16_t,
std::conditional_t<sizeof(T) == sizeof(uint32_t), uint32_t,
std::conditional_t<sizeof(T) == sizeof(uint64_t), uint64_t, void>>>>
#define T
unsigned short uint16_t
Definition stdint.h:79
unsigned int uint32_t
Definition stdint.h:80
unsigned char uint8_t
Definition stdint.h:78
unsigned __int64 uint64_t
Definition stdint.h:90

Definition at line 24 of file BLI_math_vector_types.hh.

◆ char2

Definition at line 587 of file BLI_math_vector_types.hh.

◆ char3

Definition at line 588 of file BLI_math_vector_types.hh.

◆ char4

Definition at line 589 of file BLI_math_vector_types.hh.

◆ ColorGeometry4b

◆ ColorGeometry4f

◆ ColorPaint4b

◆ ColorPaint4f

◆ ColorTheme4b

Definition at line 286 of file BLI_color.hh.

◆ ColorTheme4f

Definition at line 287 of file BLI_color.hh.

◆ ConstListBaseWrapper

template<typename T >
using blender::ConstListBaseWrapper = ListBaseWrapperTemplate<const ListBase, const T>

Definition at line 100 of file BLI_listbase_wrapper.hh.

◆ DefaultProbingStrategy

Having a specified default is convenient.

Definition at line 203 of file BLI_probing_strategies.hh.

◆ destruct_ptr

template<typename T >
using blender::destruct_ptr = std::unique_ptr<T, DestructValueAtAddress<T>>

A destruct_ptr is like unique_ptr, but it will only call the destructor and will not free the memory. This is useful when using custom allocators.

Definition at line 113 of file BLI_memory_utils.hh.

◆ double2

Definition at line 615 of file BLI_math_vector_types.hh.

◆ double2x2

Definition at line 1019 of file BLI_math_matrix_types.hh.

◆ double2x3

Definition at line 1020 of file BLI_math_matrix_types.hh.

◆ double2x4

Definition at line 1021 of file BLI_math_matrix_types.hh.

◆ double3

Definition at line 616 of file BLI_math_vector_types.hh.

◆ double3x2

Definition at line 1022 of file BLI_math_matrix_types.hh.

◆ double3x3

Definition at line 1023 of file BLI_math_matrix_types.hh.

◆ double3x4

Definition at line 1024 of file BLI_math_matrix_types.hh.

◆ double4

Definition at line 617 of file BLI_math_vector_types.hh.

◆ double4x2

Definition at line 1025 of file BLI_math_matrix_types.hh.

◆ double4x3

Definition at line 1026 of file BLI_math_matrix_types.hh.

◆ double4x4

Definition at line 1027 of file BLI_math_matrix_types.hh.

◆ float1

Definition at line 610 of file BLI_math_vector_types.hh.

◆ float2

Definition at line 611 of file BLI_math_vector_types.hh.

◆ float2x2

Definition at line 1004 of file BLI_math_matrix_types.hh.

◆ float2x3

Definition at line 1005 of file BLI_math_matrix_types.hh.

◆ float2x4

Definition at line 1006 of file BLI_math_matrix_types.hh.

◆ float3

Definition at line 612 of file BLI_math_vector_types.hh.

◆ float3x2

Definition at line 1007 of file BLI_math_matrix_types.hh.

◆ float3x3

Definition at line 1008 of file BLI_math_matrix_types.hh.

◆ float3x4

Definition at line 1009 of file BLI_math_matrix_types.hh.

◆ float4

Definition at line 613 of file BLI_math_vector_types.hh.

◆ float4x2

Definition at line 1010 of file BLI_math_matrix_types.hh.

◆ float4x3

Definition at line 1011 of file BLI_math_matrix_types.hh.

◆ float4x4

◆ float4x4_mutableview

using blender::float4x4_mutableview = MutableMatView<float, 4, 4, 4, 4, 0, 0, alignof(float)>

Definition at line 1017 of file BLI_math_matrix_types.hh.

◆ float4x4_view

using blender::float4x4_view = MatView<float, 4, 4, 4, 4, 0, 0, alignof(float)>

Definition at line 1016 of file BLI_math_matrix_types.hh.

◆ int2

Definition at line 594 of file BLI_math_vector_types.hh.

◆ int3

Definition at line 595 of file BLI_math_vector_types.hh.

◆ int4

Definition at line 596 of file BLI_math_vector_types.hh.

◆ IntegerSetSlot

template<typename Int , Int EmptyValue, Int RemovedValue>
using blender::IntegerSetSlot = IntrusiveSetSlot<Int, TemplatedKeyInfo<Int, EmptyValue, RemovedValue>>

This exists just to make it more convenient to define which special integer values can be used to indicate an empty and removed value.

Definition at line 336 of file BLI_set_slots.hh.

◆ ListBaseWrapper

Definition at line 99 of file BLI_listbase_wrapper.hh.

◆ make_two_value_sequence

template<typename T , T Value1, T Value2, size_t Size, size_t... Value1Indices>
using blender::make_two_value_sequence
Initial value:
decltype(detail::make_two_value_sequence_impl<T, Value1, Value2>(
ValueSequence<size_t, Value1Indices...>(), std::make_index_sequence<Size>()))

Utility to create a #ValueSequence that contains two different values. The indices of where the first value should be used are passed in.

Definition at line 119 of file BLI_parameter_pack_utils.hh.

◆ make_value_sequence

template<typename T , T Value, size_t Size>
using blender::make_value_sequence
Initial value:
decltype(detail::make_value_sequence_impl<T, Value>(
std::make_index_sequence<Size>()))

Utility to create a #ValueSequence that has the same value at every index.

Definition at line 111 of file BLI_parameter_pack_utils.hh.

◆ RawMap

template<typename Key , typename Value , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key) + sizeof(Value)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultMapSlot<Key, Value>::type>
using blender::RawMap
Initial value:
Map<Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, RawAllocator>

Same as a normal Map, but does not use Blender's guarded allocator. This is useful when allocating memory with static storage duration.

Definition at line 1315 of file BLI_map.hh.

◆ RawSet

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type>
using blender::RawSet = Set<Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, RawAllocator>

Same as a normal Set, but does not use Blender's guarded allocator. This is useful when allocating memory with static storage duration.

Definition at line 901 of file BLI_set.hh.

◆ RawStack

template<typename T , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(T))>
using blender::RawStack = Stack<T, InlineBufferCapacity, RawAllocator>

Same as a normal Stack, but does not use Blender's guarded allocator. This is useful when allocating memory with static storage duration.

Definition at line 413 of file BLI_stack.hh.

◆ RawVector

template<typename T , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(T))>
using blender::RawVector = Vector<T, InlineBufferCapacity, RawAllocator>

Same as a normal Vector, but does not use Blender's guarded allocator. This is useful when allocating memory with static storage duration.

Definition at line 1024 of file BLI_vector.hh.

◆ RawVectorSet

template<typename Key , typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultVectorSetSlot<Key>::type>
using blender::RawVectorSet = VectorSet<Key, ProbingStrategy, Hash, IsEqual, Slot, RawAllocator>

Same as a normal VectorSet, but does not use Blender's guarded allocator. This is useful when allocating memory with static storage duration.

Definition at line 896 of file BLI_vector_set.hh.

◆ short2

Definition at line 602 of file BLI_math_vector_types.hh.

◆ short3

Definition at line 603 of file BLI_math_vector_types.hh.

◆ short4

Definition at line 604 of file BLI_math_vector_types.hh.

◆ uchar3

Definition at line 591 of file BLI_math_vector_types.hh.

◆ uchar4

Definition at line 592 of file BLI_math_vector_types.hh.

◆ uint2

Definition at line 598 of file BLI_math_vector_types.hh.

◆ uint3

Definition at line 599 of file BLI_math_vector_types.hh.

◆ uint4

Definition at line 600 of file BLI_math_vector_types.hh.

◆ ushort2

Definition at line 606 of file BLI_math_vector_types.hh.

◆ ushort3

Definition at line 607 of file BLI_math_vector_types.hh.

◆ ushort4

Definition at line 608 of file BLI_math_vector_types.hh.

◆ WeakImplicitSharingPtr

Enumeration Type Documentation

◆ eAlpha

enum class blender::eAlpha
strong

CPP based color structures.

Strongly typed color storage structures with space and alpha association. Will increase readability and visibility of typical mistakes when working with colors.

The storage structs can hold 4 channels (r, g, b and a).

Usage:

Convert a theme byte color to a linearrgb premultiplied.

ColorTheme4b theme_color;
ColorSceneLinear4f< eAlpha::Premultiplied > premultiply_alpha() const
Definition BLI_color.hh:175
BLI_INLINE ColorSceneLinear4f< eAlpha::Straight > BLI_color_convert_to_scene_linear(const ColorTheme4f &theme4f)
Definition BLI_color.hh:303

The API is structured to make most use of inlining. Most notable are space conversions done via BLI_color_convert_to* functions.

  • Conversions between spaces (theme <=> scene linear) should always be done by invoking the BLI_color_convert_to* methods.
  • Encoding colors (compressing to store colors inside a less precision storage) should be done by invoking the encode and decode methods.
  • Changing alpha association should be done by invoking premultiply_alpha or unpremultiply_alpha methods.

Encoding.

Color encoding is used to store colors with less precision as in using uint8_t in stead of float. This encoding is supported for eSpace::SceneLinear. To make this clear to the developer the eSpace::SceneLinearByteEncoded space is added.

Precision

Colors can be stored using uint8_t or float colors. The conversion between the two precisions are available as methods. (to_4b and to_4f).

Alpha conversion

Alpha conversion is only supported in SceneLinear space.

Extending this file:

  • This file can be extended with ColorHex/Hsl/Hsv for different representations of rgb based colors. ColorHsl4f<eSpace::SceneLinear, eAlpha::Premultiplied>
  • Add non RGB spaces/storages ColorXyz. Enumeration containing the different alpha modes.
Enumerator
Straight 

Color and alpha are unassociated.

Premultiplied 

Color and alpha are associated.

Definition at line 66 of file BLI_color.hh.

◆ eSpace

enum class blender::eSpace
strong

Enumeration containing internal spaces.

Enumerator
Theme 

Blender theme color space (sRGB).

SceneLinear 

Blender internal scene linear color space (maps to scene_linear role in OCIO).

SceneLinearByteEncoded 

Blender internal scene linear color space compressed to be stored in 4 uint8_t.

Definition at line 75 of file BLI_color.hh.

Function Documentation

◆ add_attribute_search_button()

◆ add_attribute_search_or_value_buttons()

◆ add_collection_relation()

◆ add_data_block_items_writeback()

static void blender::add_data_block_items_writeback ( const ModifierEvalContext & ctx,
NodesModifierData & nmd_eval,
NodesModifierData & nmd_orig,
NodesModifierSimulationParams & simulation_params,
NodesModifierBakeParams & bake_params )
static

During evaluation we might have baked geometry that contains references to other data-blocks (such as materials). We need to make sure that those data-blocks stay dependencies of the modifier. Otherwise, the data-block references might not work when the baked data is loaded again. Therefor, the dependencies are written back to the original modifier.

Definition at line 1640 of file MOD_nodes.cc.

References blender::deg::sync_writeback::add(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::bke::bake::BakeNodeCache::bake, data, blender::NodesModifierBakeParams::data_by_node_id, blender::NodesModifierSimulationParams::data_by_zone_id, DEG_get_bmain(), depsgraph, ModifierEvalContext::depsgraph, blender::bke::bake::NodeBakeCache::frames, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::is_empty(), ModifierEvalContext::object, and NodesModifierData::runtime.

Referenced by modifyGeometry().

◆ add_missing_data_block_mappings()

◆ add_object_relation()

◆ add_this_collection()

◆ anything_showing_through()

static bool blender::anything_showing_through ( PointerRNA * ptr)
static

Definition at line 475 of file MOD_lineart.cc.

References ptr, RNA_boolean_get(), and RNA_int_get().

Referenced by material_mask_panel_draw(), and material_mask_panel_draw_header().

◆ apply_color_factor()

static void blender::apply_color_factor ( ColorGeometry4f & color,
const ColorGeometry4f & material_color,
const float3 factor )
static

◆ apply_gradient_tint()

◆ apply_stroke_transform()

◆ apply_uniform_tint()

◆ assign_if_different()

◆ attribute_search_exec_fn()

◆ attribute_search_update_fn()

◆ bake_panel_draw()

◆ blend_read() [1/27]

static void blender::blend_read ( BlendDataReader * ,
ModifierData * md )
static

Definition at line 894 of file MOD_lineart.cc.

References GreasePencilLineartModifierData::runtime.

◆ blend_read() [2/27]

static void blender::blend_read ( BlendDataReader * reader,
ModifierData * md )
static

◆ blend_read() [3/27]

static void blender::blend_read ( BlendDataReader * reader,
ModifierData * md )
static

◆ blend_read() [4/27]

static void blender::blend_read ( BlendDataReader * reader,
ModifierData * md )
static

◆ blend_read() [5/27]

static void blender::blend_read ( BlendDataReader * reader,
ModifierData * md )
static

◆ blend_read() [6/27]

static void blender::blend_read ( BlendDataReader * reader,
ModifierData * md )
static

◆ blend_read() [7/27]

static void blender::blend_read ( BlendDataReader * reader,
ModifierData * md )
static

◆ blend_read() [8/27]

static void blender::blend_read ( BlendDataReader * reader,
ModifierData * md )
static

◆ blend_read() [9/27]

static void blender::blend_read ( BlendDataReader * reader,
ModifierData * md )
static

◆ blend_read() [10/27]

static void blender::blend_read ( BlendDataReader * reader,
ModifierData * md )
static

◆ blend_read() [11/27]

static void blender::blend_read ( BlendDataReader * reader,
ModifierData * md )
static

◆ blend_read() [12/27]

static void blender::blend_read ( BlendDataReader * reader,
ModifierData * md )
static

Definition at line 288 of file MOD_grease_pencil_multiply.cc.

◆ blend_read() [13/27]

static void blender::blend_read ( BlendDataReader * reader,
ModifierData * md )
static

◆ blend_read() [14/27]

static void blender::blend_read ( BlendDataReader * reader,
ModifierData * md )
static

◆ blend_read() [15/27]

static void blender::blend_read ( BlendDataReader * reader,
ModifierData * md )
static

◆ blend_read() [16/27]

static void blender::blend_read ( BlendDataReader * reader,
ModifierData * md )
static

◆ blend_read() [17/27]

static void blender::blend_read ( BlendDataReader * reader,
ModifierData * md )
static

◆ blend_read() [18/27]

static void blender::blend_read ( BlendDataReader * reader,
ModifierData * md )
static

◆ blend_read() [19/27]

static void blender::blend_read ( BlendDataReader * reader,
ModifierData * md )
static

◆ blend_read() [20/27]

static void blender::blend_read ( BlendDataReader * reader,
ModifierData * md )
static

◆ blend_read() [21/27]

static void blender::blend_read ( BlendDataReader * reader,
ModifierData * md )
static

◆ blend_read() [22/27]

static void blender::blend_read ( BlendDataReader * reader,
ModifierData * md )
static

◆ blend_read() [23/27]

static void blender::blend_read ( BlendDataReader * reader,
ModifierData * md )
static

◆ blend_read() [24/27]

static void blender::blend_read ( BlendDataReader * reader,
ModifierData * md )
static

◆ blend_read() [25/27]

static void blender::blend_read ( BlendDataReader * reader,
ModifierData * md )
static

◆ blend_read() [26/27]

◆ blend_read() [27/27]

◆ blend_write() [1/27]

static void blender::blend_write ( BlendWriter * writer,
const ID * ,
const ModifierData * md )
static

◆ blend_write() [2/27]

static void blender::blend_write ( BlendWriter * writer,
const ID * ,
const ModifierData * md )
static

◆ blend_write() [3/27]

static void blender::blend_write ( BlendWriter * writer,
const ID * ,
const ModifierData * md )
static

◆ blend_write() [4/27]

static void blender::blend_write ( BlendWriter * writer,
const ID * ,
const ModifierData * md )
static

◆ blend_write() [5/27]

static void blender::blend_write ( BlendWriter * writer,
const ID * ,
const ModifierData * md )
static

◆ blend_write() [6/27]

static void blender::blend_write ( BlendWriter * writer,
const ID * ,
const ModifierData * md )
static

◆ blend_write() [7/27]

static void blender::blend_write ( BlendWriter * writer,
const ID * ,
const ModifierData * md )
static

◆ blend_write() [8/27]

static void blender::blend_write ( BlendWriter * writer,
const ID * ,
const ModifierData * md )
static

◆ blend_write() [9/27]

static void blender::blend_write ( BlendWriter * writer,
const ID * ,
const ModifierData * md )
static

◆ blend_write() [10/27]

static void blender::blend_write ( BlendWriter * writer,
const ID * ,
const ModifierData * md )
static

◆ blend_write() [11/27]

static void blender::blend_write ( BlendWriter * writer,
const ID * ,
const ModifierData * md )
static

Definition at line 280 of file MOD_grease_pencil_multiply.cc.

References BLO_write_struct.

◆ blend_write() [12/27]

static void blender::blend_write ( BlendWriter * writer,
const ID * ,
const ModifierData * md )
static

◆ blend_write() [13/27]

static void blender::blend_write ( BlendWriter * writer,
const ID * ,
const ModifierData * md )
static

◆ blend_write() [14/27]

static void blender::blend_write ( BlendWriter * writer,
const ID * ,
const ModifierData * md )
static

◆ blend_write() [15/27]

static void blender::blend_write ( BlendWriter * writer,
const ID * ,
const ModifierData * md )
static

◆ blend_write() [16/27]

static void blender::blend_write ( BlendWriter * writer,
const ID * ,
const ModifierData * md )
static

◆ blend_write() [17/27]

static void blender::blend_write ( BlendWriter * writer,
const ID * ,
const ModifierData * md )
static

◆ blend_write() [18/27]

static void blender::blend_write ( BlendWriter * writer,
const ID * ,
const ModifierData * md )
static

◆ blend_write() [19/27]

static void blender::blend_write ( BlendWriter * writer,
const ID * ,
const ModifierData * md )
static

◆ blend_write() [20/27]

static void blender::blend_write ( BlendWriter * writer,
const ID * ,
const ModifierData * md )
static

◆ blend_write() [21/27]

static void blender::blend_write ( BlendWriter * writer,
const ID * ,
const ModifierData * md )
static

◆ blend_write() [22/27]

static void blender::blend_write ( BlendWriter * writer,
const ID * ,
const ModifierData * md )
static

◆ blend_write() [23/27]

static void blender::blend_write ( BlendWriter * writer,
const ID * ,
const ModifierData * md )
static

◆ blend_write() [24/27]

static void blender::blend_write ( BlendWriter * writer,
const ID * ,
const ModifierData * md )
static

◆ blend_write() [25/27]

static void blender::blend_write ( BlendWriter * writer,
const ID * ,
const ModifierData * md )
static

◆ blend_write() [26/27]

static void blender::blend_write ( BlendWriter * writer,
const ID * ,
const ModifierData * md )
static

Definition at line 887 of file MOD_lineart.cc.

References BLO_write_struct.

◆ blend_write() [27/27]

◆ BLI_color_convert_to_scene_linear() [1/2]

BLI_INLINE ColorSceneLinear4f< eAlpha::Straight > blender::BLI_color_convert_to_scene_linear ( const ColorTheme4b & theme4b)

Definition at line 311 of file BLI_color.hh.

References srgb_to_linearrgb_uchar4().

◆ BLI_color_convert_to_scene_linear() [2/2]

BLI_INLINE ColorSceneLinear4f< eAlpha::Straight > blender::BLI_color_convert_to_scene_linear ( const ColorTheme4f & theme4f)

Definition at line 303 of file BLI_color.hh.

References srgb_to_linearrgb_v4().

Referenced by blender::tests::TEST().

◆ BLI_color_convert_to_theme4b() [1/2]

BLI_INLINE ColorTheme4b blender::BLI_color_convert_to_theme4b ( const ColorSceneLinear4f< eAlpha::Straight > & scene_linear)

Definition at line 328 of file BLI_color.hh.

References linearrgb_to_srgb_uchar4().

◆ BLI_color_convert_to_theme4b() [2/2]

BLI_INLINE ColorTheme4b blender::BLI_color_convert_to_theme4b ( const ColorTheme4< float > & theme4f)

◆ BLI_color_convert_to_theme4f() [1/3]

BLI_INLINE ColorTheme4f blender::BLI_color_convert_to_theme4f ( const ColorSceneLinear4f< eAlpha::Straight > & scene_linear)

Definition at line 320 of file BLI_color.hh.

References linearrgb_to_srgb_v4().

◆ BLI_color_convert_to_theme4f() [2/3]

BLI_INLINE ColorTheme4< float > blender::BLI_color_convert_to_theme4f ( const ColorTheme4< uint8_t > & theme4b)

◆ BLI_color_convert_to_theme4f() [3/3]

BLI_INLINE ColorTheme4f blender::BLI_color_convert_to_theme4f ( const ColorTheme4b & theme4b)

Definition at line 296 of file BLI_color.hh.

References rgba_uchar_to_float().

◆ BLI_STATIC_ASSERT()

blender::BLI_STATIC_ASSERT ( std::is_trivially_destructible_v< AttributeSearchData > ,
""  )

◆ bm_edge_table_build()

static void blender::bm_edge_table_build ( BMesh & bm,
MutableSpan< const BMEdge * > table,
bool & need_select_edge,
bool & need_hide_edge,
bool & need_sharp_edge,
bool & need_uv_seams )
static

◆ bm_face_loop_table_build()

static void blender::bm_face_loop_table_build ( BMesh & bm,
MutableSpan< const BMFace * > face_table,
MutableSpan< const BMLoop * > loop_table,
bool & need_select_poly,
bool & need_hide_poly,
bool & need_sharp_face,
bool & need_material_index,
Vector< int > & loop_layers_not_to_copy )
static

◆ bm_to_mesh_edges()

static void blender::bm_to_mesh_edges ( const BMesh & bm,
const Span< const BMEdge * > bm_edges,
Mesh & mesh,
MutableSpan< bool > select_edge,
MutableSpan< bool > hide_edge,
MutableSpan< bool > sharp_edge,
MutableSpan< bool > uv_seams )
static

◆ bm_to_mesh_faces()

static void blender::bm_to_mesh_faces ( const BMesh & bm,
const Span< const BMFace * > bm_faces,
Mesh & mesh,
MutableSpan< bool > select_poly,
MutableSpan< bool > hide_poly,
MutableSpan< bool > sharp_faces,
MutableSpan< int > material_indices )
static

◆ bm_to_mesh_loops()

static void blender::bm_to_mesh_loops ( const BMesh & bm,
const Span< const BMLoop * > bm_loops,
Mesh & mesh )
static

◆ bm_to_mesh_verts()

static void blender::bm_to_mesh_verts ( const BMesh & bm,
const Span< const BMVert * > bm_verts,
Mesh & mesh,
MutableSpan< bool > select_vert,
MutableSpan< bool > hide_vert )
static

◆ bm_vert_table_build()

static void blender::bm_vert_table_build ( BMesh & bm,
MutableSpan< const BMVert * > table,
bool & need_select_vert,
bool & need_hide_vert )
static

◆ bmesh_block_copy_to_mesh_attributes()

static void blender::bmesh_block_copy_to_mesh_attributes ( const Span< BMeshToMeshLayerInfo > copy_info,
const int mesh_index,
const void * block )
static

Definition at line 1241 of file bmesh_mesh_convert.cc.

References CustomData_data_copy_value(), and POINTER_OFFSET.

◆ build_concurrent()

◆ build_drawing()

static void blender::build_drawing ( const GreasePencilBuildModifierData & mmd,
const Object & ob,
bke::greasepencil::Drawing & drawing,
const bke::greasepencil::Drawing * previous_drawing,
const int current_time,
const float scene_fps )
static

Definition at line 554 of file MOD_grease_pencil_build.cc.

References blender::Array< T, InlineBufferCapacity, Allocator >::as_mutable_span(), build_concurrent(), build_sequential(), blender::bke::CurvesGeometry::curves_num(), blender::modifier::greasepencil::ensure_no_bezier_curves(), GreasePencilBuildModifierData::fade_fac, GreasePencilBuildModifierData::fade_opacity_strength, GreasePencilBuildModifierData::fade_thickness_strength, GreasePencilBuildModifierData::flag, blender::index_mask::IndexMask::from_bools(), get_build_factor(), blender::modifier::greasepencil::get_filtered_stroke_mask(), GreasePencilBuildModifierData::influence, GreasePencilBuildModifierData::length, MOD_GREASE_PENCIL_BUILD_MODE_ADDITIVE, MOD_GREASE_PENCIL_BUILD_MODE_CONCURRENT, MOD_GREASE_PENCIL_BUILD_MODE_SEQUENTIAL, MOD_GREASE_PENCIL_BUILD_TRANSITION_GROW, MOD_GREASE_PENCIL_BUILD_USE_FADING, GreasePencilBuildModifierData::mode, GreasePencilBuildModifierData::object, GreasePencilBuildModifierData::percentage_fac, reorder_strokes(), select(), GreasePencilBuildModifierData::speed_fac, GreasePencilBuildModifierData::speed_maxgap, GreasePencilBuildModifierData::start_delay, blender::bke::greasepencil::Drawing::strokes(), blender::bke::greasepencil::Drawing::strokes_for_write(), blender::bke::greasepencil::Drawing::tag_topology_changed(), GreasePencilBuildModifierData::target_vgname, GreasePencilBuildModifierData::time_alignment, GreasePencilBuildModifierData::time_mode, and GreasePencilBuildModifierData::transition.

Referenced by modify_geometry_set().

◆ build_sequential()

◆ calc_min_radius_v3v3()

static float blender::calc_min_radius_v3v3 ( const float3 & p1,
const float3 & p2,
const float3 & dir )
static

Compute the minimal radius of a circle centered on the direction vector, going through the origin and touching the line (p1, p2).

Use plane-conic-intersections to choose the minimal radius. The conic is defined in 4D as f({x,y,z,t}) = x*x + y*y + z*z - t*t = 0 Then a plane is defined parametrically as {p}(u, v) = {p1,0}*u + {p2,0}*(1-u) + {dir,1}*v with 0 <= u <= 1 and v >= 0 Now compute the intersection point with the smallest t. To do so, compute the parameters u, v such that f(p(u, v)) = 0 and v is minimal. This can be done analytically and the solution is: u = -dot(p2,dir) / dot(p1-p2, dir) +/- sqrt((dot(p2,dir) / dot(p1-p2, dir))^2 - (2*dot(p1-p2,p2)*dot(p2,dir)-dot(p2,p2)*dot(p1-p2,dir))/(dot(p1-p2,dir)*dot(p1-p2,p1-p2))); v = ({p1}u + {p2}*(1-u))^2 / (2*(dot(p1,dir)*u + dot(p2,dir)*(1-u)));

Definition at line 113 of file MOD_grease_pencil_envelope.cc.

References blender::math::clamp(), diff(), blender::math::dot(), blender::math::interpolate(), blender::math::length_squared(), blender::math::sqrt(), unlimited_radius, and v.

Referenced by calc_radius_limit().

◆ calc_radius_limit()

static float blender::calc_radius_limit ( const Span< float3 > positions,
const bool is_cyclic,
const int spread,
const int point,
const float3 & direction )
static

◆ calculate_plane()

static float3 blender::calculate_plane ( const float3 & center,
const float3 & prev,
const float3 & next )
inlinestatic

Definition at line 76 of file MOD_grease_pencil_envelope.cc.

References next, blender::math::normalize(), and v2.

Referenced by find_envelope().

◆ calculate_repetitions()

static void blender::calculate_repetitions ( const TimeMapping & mapping,
const FrameRange & gp_src,
const FrameRange & scene_dst,
int & r_start,
int & r_count )
static

◆ call_with_devirtualized_parameters()

template<typename Fn , typename... Devirtualizers>
bool blender::call_with_devirtualized_parameters ( const std::tuple< Devirtualizers... > & devis,
const Fn & fn )
inline

Calls the given function with devirtualized parameters if possible. Note that using many non-trivial devirtualizers results in exponential code growth.

Returns
True if the function has been called.

Every devirtualizer is expected to have a devirtualize(auto fn) -> bool method. This method is expected to do one of two things:

  • Call fn with the devirtualized argument and return what fn returns.
  • Don't call fn (because the devirtualization failed) and return false.

Examples for devirtualizers: #BasicDevirtualizer, #VArrayDevirtualizer.

Definition at line 52 of file BLI_devirtualize_parameters.hh.

Referenced by devirtualize_varray(), devirtualize_varray2(), and blender::fn::multi_function::build::detail::execute_element_fn_as_multi_function().

◆ ceil_division()

template<typename IntT >
IntT blender::ceil_division ( const IntT x,
const IntT y )
inlineconstexpr

◆ ceil_division_by_fraction()

int64_t blender::ceil_division_by_fraction ( const int64_t x,
const int64_t numerator,
const int64_t denominator )
inlineconstexpr

Definition at line 41 of file BLI_hash_tables.hh.

References ceil_division().

Referenced by total_slot_amount_for_usable_slots().

◆ chaining_panel_draw()

◆ check_property_socket_sync()

static void blender::check_property_socket_sync ( const Object * ob,
ModifierData * md )
static
Note
This could be done in #initialize_group_input, though that would require adding the the object as a parameter, so it's likely better to this check as a separate step.

Definition at line 859 of file MOD_nodes.cc.

References BKE_modifier_set_error(), ELEM, blender::nodes::id_property_type_matches_socket(), bNodeTreeInterfaceSocket::identifier, IDP_GetPropertyFromGroup(), bNodeTreeInterfaceSocket::name, NodesModifierData::node_group, NodesModifierSettings::properties, NodesModifierData::settings, SOCK_CUSTOM, SOCK_GEOMETRY, SOCK_MATRIX, and blender::bke::bNodeSocketType::type.

Referenced by modifyGeometry().

◆ check_tree_for_time_node()

static bool blender::check_tree_for_time_node ( const bNodeTree & tree,
Set< const bNodeTree * > & checked_groups )
static

◆ composition_panel_draw()

static void blender::composition_panel_draw ( const bContext * ,
Panel * panel )
static

◆ copy_assign_container()

◆ copy_data() [1/27]

◆ copy_data() [2/27]

static void blender::copy_data ( const ModifierData * md,
ModifierData * target,
const int flag )
static

◆ copy_data() [3/27]

static void blender::copy_data ( const ModifierData * md,
ModifierData * target,
const int flag )
static

◆ copy_data() [4/27]

◆ copy_data() [5/27]

◆ copy_data() [6/27]

static void blender::copy_data ( const ModifierData * md,
ModifierData * target,
const int flag )
static

◆ copy_data() [7/27]

◆ copy_data() [8/27]

static void blender::copy_data ( const ModifierData * md,
ModifierData * target,
const int flag )
static

◆ copy_data() [9/27]

static void blender::copy_data ( const ModifierData * md,
ModifierData * target,
const int flag )
static

◆ copy_data() [10/27]

static void blender::copy_data ( const ModifierData * md,
ModifierData * target,
const int flag )
static

◆ copy_data() [11/27]

◆ copy_data() [12/27]

◆ copy_data() [13/27]

◆ copy_data() [14/27]

static void blender::copy_data ( const ModifierData * md,
ModifierData * target,
const int flag )
static

◆ copy_data() [15/27]

◆ copy_data() [16/27]

static void blender::copy_data ( const ModifierData * md,
ModifierData * target,
const int flag )
static

◆ copy_data() [17/27]

◆ copy_data() [18/27]

◆ copy_data() [19/27]

static void blender::copy_data ( const ModifierData * md,
ModifierData * target,
const int flag )
static

◆ copy_data() [20/27]

static void blender::copy_data ( const ModifierData * md,
ModifierData * target,
const int flag )
static

◆ copy_data() [21/27]

static void blender::copy_data ( const ModifierData * md,
ModifierData * target,
const int flag )
static

◆ copy_data() [22/27]

◆ copy_data() [23/27]

static void blender::copy_data ( const ModifierData * md,
ModifierData * target,
int flag )
static

◆ copy_data() [24/27]

static void blender::copy_data ( const ModifierData * md,
ModifierData * target,
int flag )
static

◆ copy_data() [25/27]

static void blender::copy_data ( const ModifierData * md,
ModifierData * target,
int flag )
static

◆ copy_data() [26/27]

◆ copy_data() [27/27]

◆ create_array_copies()

◆ create_dashes()

◆ create_envelope_stroke_for_point()

static void blender::create_envelope_stroke_for_point ( const IndexRange src_curve_points,
const bool src_curve_cyclic,
const int point,
const int spread,
const int base_length,
const MutableSpan< int > point_src_indices )
static

Create a single stroke as part of the envelope.

In the simplest cast creates a single edge. Example for spread 4:

(p-5) (p-4) (p-3) (p-2) (p-1) ( p ) (p+1) (p+2) (p+3) (p+4) (p+5) â””------------------------—┘

If fills is true a closed curve is created that connects contiguous point ranges. Example (skip=0):

(p-5) (p-4) (p-3) (p-2) (p-1) ( p ) (p+1) (p+2) (p+3) (p+4) (p+5) | â””—┘ â””------------------—┘ â””—┘ | | | â””----------------------------------—┘

If skip > 0 more points are included in the range. Example (skip=2):

(p-5) (p-4) (p-3) (p-2) (p-1) ( p ) (p+1) (p+2) (p+3) (p+4) (p+5) | â””—┘ â””—┘ â””—┘ â””------—┘ â””—┘ â””—┘ â””—┘ | | | â””----------------------------------------------—┘

Definition at line 428 of file MOD_grease_pencil_envelope.cc.

References BLI_assert, blender::math::clamp(), blender::IndexRange::size(), and blender::MutableSpan< T >::size().

Referenced by create_envelope_strokes_for_curve().

◆ create_envelope_strokes()

static void blender::create_envelope_strokes ( const EnvelopeInfo & info,
bke::greasepencil::Drawing & drawing,
const IndexMask & curves_mask,
const bool keep_original )
static

Definition at line 502 of file MOD_grease_pencil_envelope.cc.

References blender::offset_indices::accumulate_counts_to_offsets(), blender::Array< T, InlineBufferCapacity, Allocator >::as_mutable_span(), blender::bke::attribute_filter_from_skip_ref(), blender::bke::CurvesGeometry::attributes(), blender::bke::CurvesGeometry::attributes_for_write(), blender::array_utils::copy(), blender::MutableSpan< T >::copy_from(), create_envelope_strokes_for_curve(), blender::bke::Curve, curve_envelope_strokes_num(), blender::bke::CurvesGeometry::curves_num(), blender::bke::CurvesGeometry::curves_range(), blender::Span< T >::drop_back(), blender::array_utils::fill_index_range(), blender::bke::SpanAttributeWriter< T >::finish(), blender::index_mask::IndexMask::foreach_index(), blender::bke::gather_attributes(), blender::MutableSpan< T >::last(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), blender::bke::AttributeAccessor::lookup_or_default(), blender::bke::CurvesGeometry::offsets(), blender::bke::CurvesGeometry::offsets_for_write(), blender::bke::Point, CurvesGeometry::point_num, blender::bke::CurvesGeometry::points_by_curve(), blender::bke::CurvesGeometry::points_num(), blender::EnvelopeInfo::points_per_curve, blender::bke::CurvesGeometry::points_range(), blender::MutableSpan< T >::slice(), blender::bke::SpanAttributeWriter< T >::span, blender::EnvelopeInfo::strength, blender::bke::greasepencil::Drawing::strokes(), blender::bke::greasepencil::Drawing::strokes_for_write(), blender::bke::greasepencil::Drawing::tag_topology_changed(), blender::EnvelopeInfo::thickness, blender::offset_indices::OffsetIndices< T >::total_size(), and blender::bke::CurvesGeometry::update_curve_types().

Referenced by modify_drawing().

◆ create_envelope_strokes_for_curve()

static void blender::create_envelope_strokes_for_curve ( const EnvelopeInfo & info,
const int src_curve_index,
const IndexRange src_curve_points,
const bool src_curve_cyclic,
const VArray< int > & src_material_indices,
const IndexRange dst_points,
const MutableSpan< int > curve_offsets,
const MutableSpan< int > material_indices,
const MutableSpan< int > curve_src_indices,
const MutableSpan< int > point_src_indices )
static

◆ create_mirror_copies()

◆ curve_envelope_strokes_num()

static int blender::curve_envelope_strokes_num ( const EnvelopeInfo & info,
const int point_num,
const bool is_cyclic_curve )
static

◆ curve_spread()

static int blender::curve_spread ( const EnvelopeInfo & info,
const int point_num,
const bool is_cyclic_curve )
static

◆ default_construct_n()

template<typename T >
void blender::default_construct_n ( T * ptr,
int64_t n )

◆ default_inline_buffer_capacity()

int64_t blender::default_inline_buffer_capacity ( size_t element_size)
inlineconstexpr

Inline buffers for small-object-optimization should be disabled by default for large objects. Otherwise we might get large unexpected allocations on the stack.

Definition at line 320 of file BLI_memory_utils.hh.

References default_inline_buffer_capacity().

Referenced by default_inline_buffer_capacity().

◆ deform_drawing() [1/5]

static void blender::deform_drawing ( const GreasePencilNoiseModifierData & mmd,
const Object & ob,
const int ctime,
const int start_frame_number,
bke::greasepencil::Drawing & drawing )
static

Apply noise effect based on stroke direction.

Definition at line 95 of file MOD_grease_pencil_noise.cc.

References blender::bke::CurvesGeometry::attributes_for_write(), BKE_curvemapping_evaluateF(), BLI_hash_string(), blender::math::ceil(), blender::math::clamp(), blender::math::cross(), blender::bke::greasepencil::Drawing::curve_plane_normals(), GreasePencilModifierInfluenceData::custom_curve, blender::modifier::greasepencil::ensure_no_bezier_curves(), blender::bke::CurvesGeometry::evaluated_tangents(), GreasePencilNoiseModifierData::factor, GreasePencilNoiseModifierData::factor_strength, GreasePencilNoiseModifierData::factor_thickness, GreasePencilNoiseModifierData::factor_uvs, blender::bke::SpanAttributeWriter< T >::finish(), GreasePencilModifierInfluenceData::flag, GreasePencilNoiseModifierData::flag, float, blender::math::floor(), blender::index_mask::IndexMask::foreach_index(), blender::math::fract(), blender::modifier::greasepencil::get_filtered_stroke_mask(), blender::modifier::greasepencil::get_influence_vertex_weights(), GP_NOISE_RANDOM_KEYFRAME, GP_NOISE_USE_RANDOM, GREASE_PENCIL_INFLUENCE_USE_CUSTOM_CURVE, Object::id, GreasePencilNoiseModifierData::influence, blender::math::interpolate(), blender::index_mask::IndexMask::is_empty(), M_PI_2, blender::math::max(), GreasePencilNoiseModifierData::modifier, ID::name, ModifierData::name, GreasePencilNoiseModifierData::noise_mode, GreasePencilNoiseModifierData::noise_offset, GreasePencilNoiseModifierData::noise_scale, noise_table(), blender::math::normalize(), blender::bke::greasepencil::Drawing::opacities_for_write(), blender::bke::Point, point, blender::bke::CurvesGeometry::points_by_curve(), blender::bke::CurvesGeometry::points_num(), blender::bke::CurvesGeometry::positions_for_write(), blender::bke::greasepencil::Drawing::radii_for_write(), GreasePencilNoiseModifierData::seed, seed, blender::bke::SpanAttributeWriter< T >::span, GreasePencilNoiseModifierData::step, blender::bke::greasepencil::Drawing::strokes_for_write(), and blender::bke::greasepencil::Drawing::tag_positions_changed().

◆ deform_drawing() [2/5]

◆ deform_drawing() [3/5]

◆ deform_drawing() [4/5]

◆ deform_drawing() [5/5]

static void blender::deform_drawing ( const ModifierData & md,
const Object & ob,
bke::greasepencil::Drawing & drawing,
const int current_time )
static

Definition at line 106 of file MOD_grease_pencil_length.cc.

References blender::math::abs(), blender::Array< T, InlineBufferCapacity, Allocator >::as_mutable_span(), BLI_halton_2d(), BLI_hash_int_01(), BLI_hash_string(), GreasePencilLengthModifierData::end_fac, blender::modifier::greasepencil::ensure_no_bezier_curves(), blender::geometry::extend_curves(), blender::Array< T, InlineBufferCapacity, Allocator >::fill(), GreasePencilLengthModifierData::flag, blender::math::floor(), blender::VArray< T >::ForSingle(), blender::VArray< T >::ForSpan(), blender::math::fract(), blender::index_mask::IndexMask::from_bools(), GEO_NODE_CURVE_SAMPLE_FACTOR, GEO_NODE_CURVE_SAMPLE_LENGTH, blender::modifier::greasepencil::get_filtered_stroke_mask(), GP_LENGTH_ABSOLUTE, GP_LENGTH_INVERT_CURVATURE, GP_LENGTH_USE_CURVATURE, GP_LENGTH_USE_RANDOM, Object::id, GreasePencilLengthModifierData::influence, blender::index_mask::IndexMask::is_empty(), GreasePencilLengthModifierData::max_angle, blender::math::mod(), GreasePencilLengthModifierData::mode, ID::name, ModifierData::name, noise_table(), GreasePencilLengthModifierData::overshoot_fac, blender::threading::parallel_for(), GreasePencilLengthModifierData::point_density, GreasePencilLengthModifierData::rand_end_fac, GreasePencilLengthModifierData::rand_offset, GreasePencilLengthModifierData::rand_start_fac, GreasePencilLengthModifierData::seed, seed, GreasePencilLengthModifierData::segment_influence, GreasePencilLengthModifierData::start_fac, GreasePencilLengthModifierData::step, blender::bke::greasepencil::Drawing::strokes_for_write(), table_sample(), and blender::geometry::trim_curves().

Referenced by modify_geometry_set().

◆ deform_drawing_as_envelope()

◆ depends_on_time() [1/2]

static bool blender::depends_on_time ( Scene * ,
ModifierData * md )
static

◆ depends_on_time() [2/2]

static bool blender::depends_on_time ( Scene * ,
ModifierData * md )
static

◆ destruct_n()

◆ devirtualize_varray()

template<typename T , typename Func >
void blender::devirtualize_varray ( const VArray< T > & varray,
const Func & func,
bool enable = true )
inline

Generate multiple versions of the given function optimized for different virtual arrays. One has to be careful with nesting multiple devirtualizations, because that results in an exponential number of function instantiations (increasing compile time and binary size).

Generally, this function should only be used when the virtual method call overhead to get an element from a virtual array is significant.

Definition at line 1266 of file BLI_virtual_array.hh.

References call_with_devirtualized_parameters().

Referenced by blender::geometry::calculate_result_offsets(), blender::nodes::node_fn_separate_color_cc::SeparateRGBAFunction::call(), blender::nodes::node_shader_sepcomb_xyz_cc::sep::MF_SeparateXYZ::call(), blender::bke::copy_indices_to_offset_ranges(), blender::nodes::node_fn_combine_matrix_cc::copy_with_stride(), blender::array_utils::gather(), and blender::nodes::node_geo_scale_elements_cc::gather_mean().

◆ devirtualize_varray2()

template<typename T1 , typename T2 , typename Func >
void blender::devirtualize_varray2 ( const VArray< T1 > & varray1,
const VArray< T2 > & varray2,
const Func & func,
bool enable = true )
inline

Same as devirtualize_varray, but devirtualizes two virtual arrays at the same time. This is better than nesting two calls to devirtualize_varray, because it instantiates fewer cases.

Definition at line 1284 of file BLI_virtual_array.hh.

References call_with_devirtualized_parameters().

Referenced by blender::bke::copy_with_checked_indices(), blender::nodes::node_geo_sample_index_cc::copy_with_clamped_indices(), and blender::nodes::node_geo_curve_endpoint_selection_cc::EndpointFieldInput::get_varray_for_context().

◆ draw_bake_panel()

static void blender::draw_bake_panel ( uiLayout * layout,
PointerRNA * modifier_ptr )
static

◆ draw_interface_panel_content()

◆ draw_manage_panel()

static void blender::draw_manage_panel ( const bContext * C,
uiLayout * layout,
PointerRNA * modifier_ptr,
NodesModifierData & nmd )
static

◆ draw_named_attributes_panel()

◆ draw_output_attributes_panel()

◆ draw_property_for_output_socket()

◆ draw_property_for_socket()

◆ draw_warnings()

static void blender::draw_warnings ( const bContext * C,
const NodesModifierData & nmd,
uiLayout * layout,
PointerRNA * md_ptr )
static

◆ duplicate_strokes()

◆ edge_types_panel_draw()

◆ ensure_bake_loaded()

◆ ensure_shrinkwrap_cache_data()

◆ ensure_vertex_group() [1/2]

static int blender::ensure_vertex_group ( const StringRefNull name,
ListBase & vertex_group_names )
static

◆ ensure_vertex_group() [2/2]

static int blender::ensure_vertex_group ( const StringRefNull name,
ListBase & vertex_group_names )
static

◆ face_mark_panel_draw()

◆ face_mark_panel_draw_header()

static void blender::face_mark_panel_draw_header ( const bContext * ,
Panel * panel )
static

◆ fill_scene_range_chain()

◆ fill_scene_range_fixed()

static void blender::fill_scene_range_fixed ( const TimeMapping & mapping,
const Map< int, GreasePencilFrame > & frames,
const Span< int > sorted_keys,
const int gp_src_frame,
const FrameRange scene_dst_range,
Map< int, GreasePencilFrame > & dst_frames )
static

◆ fill_scene_range_forward()

static void blender::fill_scene_range_forward ( const TimeMapping & mapping,
const Map< int, GreasePencilFrame > & frames,
const Span< int > sorted_keys,
const FrameRange gp_src_range,
const FrameRange scene_dst_range,
Map< int, GreasePencilFrame > & dst_frames )
static

◆ fill_scene_range_ping_pong()

static void blender::fill_scene_range_ping_pong ( const TimeMapping & mapping,
const Map< int, GreasePencilFrame > & frames,
const Span< int > sorted_keys,
const FrameRange gp_src_range,
const FrameRange scene_dst_range,
Map< int, GreasePencilFrame > & dst_frames )
static

◆ fill_scene_range_reverse()

static void blender::fill_scene_range_reverse ( const TimeMapping & mapping,
const Map< int, GreasePencilFrame > & frames,
const Span< int > sorted_keys,
const FrameRange gp_src_range,
const FrameRange scene_dst_range,
Map< int, GreasePencilFrame > & dst_frames )
static

◆ fill_scene_timeline()

◆ find_closest_point()

static int blender::find_closest_point ( const Span< float3 > positions,
const float3 & target )
static

Definition at line 158 of file MOD_grease_pencil_outline.cc.

References blender::math::distance_squared().

Referenced by modify_drawing().

◆ find_dash_segment()

static int blender::find_dash_segment ( const PatternInfo & pattern_info,
const int index )
static

◆ find_envelope()

static bool blender::find_envelope ( const Span< float3 > positions,
const bool is_cyclic,
const int spread,
const int point,
float3 & r_center,
float & r_radius )
static

◆ find_key_range()

static const IndexRange blender::find_key_range ( const Span< int > sorted_keys,
const FrameRange & frame_range )
static

Find the index range of sorted keys that covers the frame range, including the key right before and after the interval. The extra keys are needed when frames are held at the beginning or when reversing the direction.

Definition at line 137 of file MOD_grease_pencil_time.cc.

References blender::FrameRange::efra, blender::Span< T >::index_range(), result, blender::FrameRange::sfra, and blender::IndexRange::size().

Referenced by fill_scene_range_fixed(), fill_scene_range_forward(), fill_scene_range_ping_pong(), and fill_scene_range_reverse().

◆ find_panel_by_id()

static NodesModifierPanel * blender::find_panel_by_id ( NodesModifierData & nmd,
const int id )
static

◆ find_plane_intersection()

static std::optional< float3 > blender::find_plane_intersection ( const float3 & plane_point,
const float3 & plane_normal,
const float3 & from,
const float3 & to )
inlinestatic

Definition at line 83 of file MOD_grease_pencil_envelope.cc.

References blender::math::interpolate(), and line_plane_factor_v3().

Referenced by find_envelope().

◆ find_side_effect_nodes()

◆ find_side_effect_nodes_for_active_gizmos()

◆ find_side_effect_nodes_for_baking()

static void blender::find_side_effect_nodes_for_baking ( const NodesModifierData & nmd,
const ModifierEvalContext & ctx,
nodes::GeoNodesSideEffectNodes & r_side_effect_nodes )
static

This ensures that nodes that the user wants to bake are actually evaluated. Otherwise they might not be if they are not connected to the output.

Definition at line 742 of file MOD_nodes.cc.

References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), DEG_is_active(), ModifierEvalContext::depsgraph, find_side_effect_nodes_for_nested_node(), NodesModifierData::node_group, blender::bke::bake::ModifierCache::requested_bakes, and NodesModifierData::runtime.

Referenced by find_side_effect_nodes().

◆ find_side_effect_nodes_for_nested_node()

◆ find_side_effect_nodes_for_viewer_path()

◆ find_socket_log_contexts()

◆ find_used_ids_from_settings()

static void blender::find_used_ids_from_settings ( const NodesModifierSettings & settings,
Set< ID * > & ids )
static

Definition at line 122 of file MOD_nodes.cc.

References IDP_foreach_property(), and IDP_TYPE_FILTER_ID.

Referenced by update_depsgraph().

◆ floor_division()

template<typename IntT >
IntT blender::floor_division ( const IntT x,
const IntT y )
inlineconstexpr

Definition at line 34 of file BLI_hash_tables.hh.

References BLI_assert, and y.

◆ floor_multiplication_with_fraction()

int64_t blender::floor_multiplication_with_fraction ( const int64_t x,
const int64_t numerator,
const int64_t denominator )
inlineconstexpr

◆ floored_modulo()

static int blender::floored_modulo ( const int a,
const int b )
static

Definition at line 97 of file MOD_grease_pencil_dash.cc.

References b, and blender::math::floor().

Referenced by get_pattern_info().

◆ foreach_dash()

static void blender::foreach_dash ( const PatternInfo & pattern_info,
const IndexRange src_points,
const bool cyclic,
FunctionRef< void(IndexRange, bool, int, float, float)> fn )
static

Iterate over all dash curves.

Parameters
fnFunction taking an index range of source points describing new curves.
Note
Point range can be larger than the source point range in case of cyclic curves.

Definition at line 165 of file MOD_grease_pencil_dash.cc.

References BLI_assert, blender::PatternInfo::cyclic, find_dash_segment(), blender::IndexRange::last(), blender::PatternInfo::length, blender::PatternInfo::material, blender::PatternInfo::offset, blender::IndexRange::one_after_last(), blender::PatternInfo::opacity, blender::PatternInfo::radius, blender::PatternInfo::segments, blender::IndexRange::size(), and blender::IndexRange::start().

Referenced by create_dashes().

◆ foreach_ID_link() [1/27]

static void blender::foreach_ID_link ( ModifierData * md,
Object * ob,
IDWalkFunc walk,
void * user_data )
static

◆ foreach_ID_link() [2/27]

static void blender::foreach_ID_link ( ModifierData * md,
Object * ob,
IDWalkFunc walk,
void * user_data )
static

◆ foreach_ID_link() [3/27]

static void blender::foreach_ID_link ( ModifierData * md,
Object * ob,
IDWalkFunc walk,
void * user_data )
static

◆ foreach_ID_link() [4/27]

static void blender::foreach_ID_link ( ModifierData * md,
Object * ob,
IDWalkFunc walk,
void * user_data )
static

◆ foreach_ID_link() [5/27]

static void blender::foreach_ID_link ( ModifierData * md,
Object * ob,
IDWalkFunc walk,
void * user_data )
static

◆ foreach_ID_link() [6/27]

static void blender::foreach_ID_link ( ModifierData * md,
Object * ob,
IDWalkFunc walk,
void * user_data )
static

◆ foreach_ID_link() [7/27]

static void blender::foreach_ID_link ( ModifierData * md,
Object * ob,
IDWalkFunc walk,
void * user_data )
static

◆ foreach_ID_link() [8/27]

static void blender::foreach_ID_link ( ModifierData * md,
Object * ob,
IDWalkFunc walk,
void * user_data )
static

◆ foreach_ID_link() [9/27]

static void blender::foreach_ID_link ( ModifierData * md,
Object * ob,
IDWalkFunc walk,
void * user_data )
static

◆ foreach_ID_link() [10/27]

static void blender::foreach_ID_link ( ModifierData * md,
Object * ob,
IDWalkFunc walk,
void * user_data )
static

◆ foreach_ID_link() [11/27]

static void blender::foreach_ID_link ( ModifierData * md,
Object * ob,
IDWalkFunc walk,
void * user_data )
static

◆ foreach_ID_link() [12/27]

static void blender::foreach_ID_link ( ModifierData * md,
Object * ob,
IDWalkFunc walk,
void * user_data )
static

◆ foreach_ID_link() [13/27]

static void blender::foreach_ID_link ( ModifierData * md,
Object * ob,
IDWalkFunc walk,
void * user_data )
static

◆ foreach_ID_link() [14/27]

static void blender::foreach_ID_link ( ModifierData * md,
Object * ob,
IDWalkFunc walk,
void * user_data )
static

◆ foreach_ID_link() [15/27]

static void blender::foreach_ID_link ( ModifierData * md,
Object * ob,
IDWalkFunc walk,
void * user_data )
static

◆ foreach_ID_link() [16/27]

static void blender::foreach_ID_link ( ModifierData * md,
Object * ob,
IDWalkFunc walk,
void * user_data )
static

◆ foreach_ID_link() [17/27]

static void blender::foreach_ID_link ( ModifierData * md,
Object * ob,
IDWalkFunc walk,
void * user_data )
static

◆ foreach_ID_link() [18/27]

static void blender::foreach_ID_link ( ModifierData * md,
Object * ob,
IDWalkFunc walk,
void * user_data )
static

◆ foreach_ID_link() [19/27]

static void blender::foreach_ID_link ( ModifierData * md,
Object * ob,
IDWalkFunc walk,
void * user_data )
static

◆ foreach_ID_link() [20/27]

static void blender::foreach_ID_link ( ModifierData * md,
Object * ob,
IDWalkFunc walk,
void * user_data )
static

◆ foreach_ID_link() [21/27]

static void blender::foreach_ID_link ( ModifierData * md,
Object * ob,
IDWalkFunc walk,
void * user_data )
static

◆ foreach_ID_link() [22/27]

static void blender::foreach_ID_link ( ModifierData * md,
Object * ob,
IDWalkFunc walk,
void * user_data )
static

◆ foreach_ID_link() [23/27]

static void blender::foreach_ID_link ( ModifierData * md,
Object * ob,
IDWalkFunc walk,
void * user_data )
static

◆ foreach_ID_link() [24/27]

static void blender::foreach_ID_link ( ModifierData * md,
Object * ob,
IDWalkFunc walk,
void * user_data )
static

◆ foreach_ID_link() [25/27]

◆ foreach_ID_link() [26/27]

◆ foreach_ID_link() [27/27]

◆ foreach_tex_link()

static void blender::foreach_tex_link ( ModifierData * md,
Object * ob,
TexWalkFunc walk,
void * user_data )
static

Definition at line 280 of file MOD_nodes.cc.

References Object::id, ptr, RNA_pointer_create(), and RNA_struct_find_property().

◆ format_as()

std::string_view blender::format_as ( StringRef str)
inline

Support using the fmt library with #StringRef and implicitly also #StringRefNull.

Definition at line 638 of file BLI_string_ref.hh.

References str.

◆ free_data() [1/27]

◆ free_data() [2/27]

static void blender::free_data ( ModifierData * md)
static

◆ free_data() [3/27]

static void blender::free_data ( ModifierData * md)
static

◆ free_data() [4/27]

static void blender::free_data ( ModifierData * md)
static

◆ free_data() [5/27]

static void blender::free_data ( ModifierData * md)
static

◆ free_data() [6/27]

static void blender::free_data ( ModifierData * md)
static

◆ free_data() [7/27]

static void blender::free_data ( ModifierData * md)
static

◆ free_data() [8/27]

static void blender::free_data ( ModifierData * md)
static

◆ free_data() [9/27]

static void blender::free_data ( ModifierData * md)
static

◆ free_data() [10/27]

static void blender::free_data ( ModifierData * md)
static

◆ free_data() [11/27]

static void blender::free_data ( ModifierData * md)
static

◆ free_data() [12/27]

static void blender::free_data ( ModifierData * md)
static

◆ free_data() [13/27]

static void blender::free_data ( ModifierData * md)
static

◆ free_data() [14/27]

static void blender::free_data ( ModifierData * md)
static

◆ free_data() [15/27]

static void blender::free_data ( ModifierData * md)
static

◆ free_data() [16/27]

static void blender::free_data ( ModifierData * md)
static

◆ free_data() [17/27]

static void blender::free_data ( ModifierData * md)
static

◆ free_data() [18/27]

static void blender::free_data ( ModifierData * md)
static

◆ free_data() [19/27]

static void blender::free_data ( ModifierData * md)
static

◆ free_data() [20/27]

static void blender::free_data ( ModifierData * md)
static

◆ free_data() [21/27]

static void blender::free_data ( ModifierData * md)
static

◆ free_data() [22/27]

static void blender::free_data ( ModifierData * md)
static

◆ free_data() [23/27]

static void blender::free_data ( ModifierData * md)
static

◆ free_data() [24/27]

◆ free_data() [25/27]

static void blender::free_data ( ModifierData * md)
static

◆ free_data() [26/27]

static void blender::free_data ( ModifierData * md)
static

Definition at line 108 of file MOD_lineart.cc.

References GreasePencilLineartModifierData::runtime.

◆ free_data() [27/27]

◆ generate_curves()

◆ generate_strokes()

◆ get_array_matrix()

◆ get_bake_frame_indices()

◆ get_base_color()

static ColorGeometry4f blender::get_base_color ( const ColorGeometry4f & input_color,
const ColorGeometry4f & material_color )
static

◆ get_build_factor()

static float blender::get_build_factor ( const GreasePencilBuildTimeMode time_mode,
const int current_frame,
const int start_frame,
const int length,
const float percentage,
const bke::CurvesGeometry & curves,
const float scene_fps,
const float speed_fac,
const float max_gap,
const float fade )
static

◆ get_default_hash() [1/4]

template<typename T >
uint64_t blender::get_default_hash ( const T & v)

Definition at line 219 of file BLI_hash.hh.

References v.

Referenced by BKE_modifiers_persistent_uid_init(), blender::compositor::NodeOperation::generate_hash(), get_default_hash(), get_default_hash(), get_default_hash(), blender::animrig::BoneColor::hash(), blender::animrig::PropIdentifier::hash(), blender::bke::AttributeFieldInput::hash(), blender::bke::bake::BakeDataBlockID::hash(), blender::bke::GeometrySet::hash(), blender::bke::InstanceReference::hash(), blender::bke::NamedLayerSelectionFieldInput::hash(), blender::bke::NodeGizmoID::hash(), blender::bke::outliner::treehash::TreeStoreElemKey::hash(), blender::bke::ZoneRelation::hash(), blender::CPPType::hash(), blender::deg::light_linking::internal::LightSet::hash(), blender::draw::pbvh::ViewportRequest::hash(), blender::ed::asset::index::AssetLibraryIndex::hash(), blender::ed::view3d::geometry_nodes_gizmos::GeoNodesObjectGizmoID::hash(), blender::fn::FieldNode::hash(), blender::fn::GFieldBase< NodePtr >::hash(), blender::fn::multi_function::CustomMF_Constant< T >::hash(), blender::fn::multi_function::DataType::hash(), blender::fn::multi_function::MultiFunction::hash(), blender::gpu::VKGraphicsInfo::hash(), blender::ImplicitSharingPtr< T, IsStrong >::hash(), blender::io::ply::uv_vertex_key::hash(), blender::memory_cache::tests::GenericIntKey::hash(), blender::nodes::DNode::hash(), blender::nodes::DSocket::hash(), blender::nodes::geo_eval_log::NodeWarning::hash(), blender::nodes::node_geo_accumulate_field_cc::AccumulateFieldInput::hash(), blender::nodes::node_geo_accumulate_field_cc::TotalFieldInput::hash(), blender::nodes::node_geo_blur_attribute_cc::BlurAttributeFieldInput::hash(), blender::nodes::node_geo_curve_endpoint_selection_cc::EndpointFieldInput::hash(), blender::nodes::node_geo_curve_handle_type_selection_cc::HandleTypeFieldInput::hash(), blender::nodes::node_geo_edge_paths_to_selection_cc::PathToEdgeSelectionFieldInput::hash(), blender::nodes::node_geo_index_of_nearest_cc::HasNeighborFieldInput::hash(), blender::nodes::node_geo_index_of_nearest_cc::IndexOfNearestFieldInput::hash(), blender::nodes::node_geo_input_curve_handles_cc::HandlePositionFieldInput::hash(), blender::nodes::node_geo_input_shortest_edge_paths_cc::ShortestEdgePathsCostFieldInput::hash(), blender::nodes::node_geo_input_shortest_edge_paths_cc::ShortestEdgePathsNextVertFieldInput::hash(), blender::nodes::node_geo_material_selection_cc::MaterialSelectionFieldInput::hash(), blender::nodes::node_geo_mesh_topology_offset_corner_in_face_cc::OffsetCornerInFaceFieldInput::hash(), blender::nodes::NodeInContext::hash(), blender::nodes::SocketInContext::hash(), blender::nodes::value_elem::GroupInputElem::hash(), blender::nodes::value_elem::MatrixElem::hash(), blender::nodes::value_elem::PrimitiveValueElem::hash(), blender::nodes::value_elem::RotationElem::hash(), blender::nodes::value_elem::SocketElem::hash(), blender::nodes::value_elem::ValueNodeElem::hash(), blender::nodes::value_elem::VectorElem::hash(), blender::realtime_compositor::BokehKernelKey::hash(), blender::realtime_compositor::CachedImageKey::hash(), blender::realtime_compositor::CachedMaskKey::hash(), blender::realtime_compositor::CachedShaderKey::hash(), blender::realtime_compositor::CachedTextureKey::hash(), blender::realtime_compositor::DericheGaussianCoefficientsKey::hash(), blender::realtime_compositor::DistortionGridKey::hash(), blender::realtime_compositor::FogGlowKernelKey::hash(), blender::realtime_compositor::KeyingScreenKey::hash(), blender::realtime_compositor::MorphologicalDistanceFeatherWeightsKey::hash(), blender::realtime_compositor::OCIOColorSpaceConversionShaderKey::hash(), blender::realtime_compositor::SymmetricBlurWeightsKey::hash(), blender::realtime_compositor::SymmetricSeparableBlurWeightsKey::hash(), blender::realtime_compositor::TexturePoolKey::hash(), blender::realtime_compositor::VanVlietGaussianCoefficientsKey::hash(), blender::seq::ThumbnailCache::Request::hash(), blender::Span< T >::hash(), blender::SubFrame::hash(), GlyphCacheKey::hash(), LibWeakRefKey::hash(), PaintTileKey::hash(), blender::ImplicitSharingPtr< T, IsStrong >::hash_as(), blender::cpp_type_util::hash_cb(), blender::compositor::NodeOperation::hash_param(), blender::compositor::NodeOperation::hash_params(), blender::compositor::NodeOperation::hash_params(), blender::DefaultHash< AssetLibraryReference >::operator()(), blender::DefaultHash< blender::Set< const BMVert * > >::operator()(), blender::DefaultHash< draw::pbvh::AttributeRequest >::operator()(), blender::DefaultHash< gpu::VKComputeInfo >::operator()(), blender::DefaultHash< SpreadsheetColumnID >::operator()(), blender::DefaultHash< std::pair< T1, T2 > >::operator()(), blender::DefaultHash< std::reference_wrapper< T > >::operator()(), blender::ed::object::bake_simulation::PathStringHash::operator()(), blender::PointerHashes< T >::operator()(), blender::ed::greasepencil::select_random_exec(), ui_popup_menu_hash(), and ui_popup_string_hash().

◆ get_default_hash() [2/4]

template<typename T1 , typename T2 >
uint64_t blender::get_default_hash ( const T1 & v1,
const T2 & v2 )

Definition at line 224 of file BLI_hash.hh.

References get_default_hash(), and v2.

◆ get_default_hash() [3/4]

template<typename T1 , typename T2 , typename T3 >
uint64_t blender::get_default_hash ( const T1 & v1,
const T2 & v2,
const T3 & v3 )

Definition at line 232 of file BLI_hash.hh.

References get_default_hash(), and v2.

◆ get_default_hash() [4/4]

template<typename T1 , typename T2 , typename T3 , typename T4 >
uint64_t blender::get_default_hash ( const T1 & v1,
const T2 & v2,
const T3 & v3,
const T4 & v4 )

Definition at line 241 of file BLI_hash.hh.

References get_default_hash(), and v2.

◆ get_distance_factor()

static float blender::get_distance_factor ( float3 target_pos,
const float4x4 & obmat,
float3 pos,
const float dist_min,
const float dist_max )
static

◆ get_envelope_info()

◆ get_factor_from_draw_speed()

static float blender::get_factor_from_draw_speed ( const bke::CurvesGeometry & curves,
const float time_elapsed,
const float speed_fac,
const float max_gap )
static

◆ get_factor_from_index()

static float blender::get_factor_from_index ( const GreasePencilOffsetModifierData & omd,
const int size,
const int index )
static

◆ get_legacy_stroke_matrix()

static void blender::get_legacy_stroke_matrix ( const Span< float3 > positions,
float3x4 & stroke_to_layer,
float4x3 & layer_to_stroke )
static

◆ get_mirror_matrix()

static float4x4 blender::get_mirror_matrix ( const Object & ob,
const GreasePencilMirrorModifierData & mmd,
const bool mirror_x,
const bool mirror_y,
const bool mirror_z )
static

◆ get_modifier_data()

◆ get_pattern_info()

◆ get_rand_matrix()

◆ get_root_tree_log()

◆ get_vector_from_self_map()

static auto & blender::get_vector_from_self_map ( )
static

Definition at line 14 of file blenlib/intern/cpp_types.cc.

Referenced by blender::VectorCPPType::get_from_self().

◆ get_vector_from_value_map()

static auto & blender::get_vector_from_value_map ( )
static

Definition at line 20 of file blenlib/intern/cpp_types.cc.

Referenced by blender::VectorCPPType::get_from_value().

◆ has_output_attribute()

static bool blender::has_output_attribute ( const NodesModifierData & nmd)
static

◆ hash_string()

◆ hook_falloff()

◆ incircle()

int blender::incircle ( const double2 & a,
const double2 & b,
const double2 & c,
const double2 & d )

Definition at line 2478 of file math_boolean.cc.

References b, blender::robust_pred::incircle(), and sgn().

Referenced by filtered_incircle< double >().

◆ incircle_fast()

int blender::incircle_fast ( const double2 & a,
const double2 & b,
const double2 & c,
const double2 & d )

Definition at line 2483 of file math_boolean.cc.

References b, blender::robust_pred::incirclefast(), and sgn().

◆ index_or_npos_to_int64()

◆ init_data() [1/27]

◆ init_data() [2/27]

◆ init_data() [3/27]

◆ init_data() [4/27]

◆ init_data() [5/27]

◆ init_data() [6/27]

◆ init_data() [7/27]

◆ init_data() [8/27]

◆ init_data() [9/27]

◆ init_data() [10/27]

◆ init_data() [11/27]

◆ init_data() [12/27]

◆ init_data() [13/27]

◆ init_data() [14/27]

◆ init_data() [15/27]

◆ init_data() [16/27]

◆ init_data() [17/27]

◆ init_data() [18/27]

◆ init_data() [19/27]

◆ init_data() [20/27]

◆ init_data() [21/27]

◆ init_data() [22/27]

◆ init_data() [23/27]

◆ init_data() [24/27]

◆ init_data() [25/27]

◆ init_data() [26/27]

static void blender::init_data ( ModifierData * md)
static

◆ init_data() [27/27]

◆ initialize_pointer_pair()

template<typename Src1 , typename Src2 , typename Dst1 , typename Dst2 >
void blender::initialize_pointer_pair ( Src1 && src1,
Src2 && src2,
Dst1 * dst1,
Dst2 * dst2 )

◆ initialized_copy_n()

◆ initialized_fill_n()

◆ initialized_move_n()

template<typename T >
void blender::initialized_move_n ( T * src,
int64_t n,
T * dst )

◆ initialized_relocate_n()

template<typename T >
void blender::initialized_relocate_n ( T * src,
int64_t n,
T * dst )

Definition at line 76 of file BLI_memory_utils.hh.

References destruct_n(), and initialized_move_n().

◆ insert_keys_forward()

◆ insert_keys_reverse()

◆ insphere()

int blender::insphere ( const double3 & a,
const double3 & b,
const double3 & c,
const double3 & d,
const double3 & e )

Definition at line 2498 of file math_boolean.cc.

References b, e, blender::robust_pred::insphere(), and sgn().

◆ insphere_fast()

int blender::insphere_fast ( const double3 & a,
const double3 & b,
const double3 & c,
const double3 & d,
const double3 & e )

Definition at line 2504 of file math_boolean.cc.

References b, e, blender::robust_pred::inspherefast(), and sgn().

◆ interace_panel_has_socket()

static bool blender::interace_panel_has_socket ( const bNodeTreeInterfacePanel & interface_panel)
static

◆ intersection_panel_draw()

◆ is_disabled() [1/11]

static bool blender::is_disabled ( const Scene * ,
ModifierData * md,
bool  )
static

◆ is_disabled() [2/11]

static bool blender::is_disabled ( const Scene * ,
ModifierData * md,
bool  )
static

Definition at line 85 of file MOD_grease_pencil_dash.cc.

◆ is_disabled() [3/11]

static bool blender::is_disabled ( const Scene * ,
ModifierData * md,
bool  )
static

Definition at line 69 of file MOD_grease_pencil_hook.cc.

◆ is_disabled() [4/11]

static bool blender::is_disabled ( const Scene * ,
ModifierData * md,
bool  )
static

◆ is_disabled() [5/11]

static bool blender::is_disabled ( const Scene * ,
ModifierData * md,
bool  )
static

Definition at line 84 of file MOD_grease_pencil_multiply.cc.

◆ is_disabled() [6/11]

static bool blender::is_disabled ( const Scene * ,
ModifierData * md,
bool  )
static

Definition at line 89 of file MOD_grease_pencil_shrinkwrap.cc.

References OB_MESH.

◆ is_disabled() [7/11]

static bool blender::is_disabled ( const Scene * ,
ModifierData * md,
bool  )
static

◆ is_disabled() [8/11]

static bool blender::is_disabled ( const Scene * ,
ModifierData * md,
bool  )
static

◆ is_disabled() [9/11]

static bool blender::is_disabled ( const Scene * ,
ModifierData * md,
bool  )
static

Definition at line 68 of file MOD_grease_pencil_weight_proximity.cc.

◆ is_disabled() [10/11]

◆ is_disabled() [11/11]

static bool blender::is_disabled ( const Scene * ,
ModifierData * md,
bool  )
static

Definition at line 287 of file MOD_nodes.cc.

References NodesModifierData::node_group.

◆ is_first_lineart()

◆ is_last_line_art()

static bool blender::is_last_line_art ( const GreasePencilLineartModifierData & md,
const bool use_render )
static

◆ listbase_to_vector() [1/2]

template<typename T >
Vector< T * > blender::listbase_to_vector ( const ListBase & list)

Convert a ListBase to a Vector.

Definition at line 118 of file BLI_listbase_wrapper.hh.

References vector.

◆ listbase_to_vector() [2/2]

template<typename T >
Vector< T * > blender::listbase_to_vector ( ListBase & list)

◆ logging_enabled()

static bool blender::logging_enabled ( const ModifierEvalContext * ctx)
static

◆ material_mask_panel_draw()

◆ material_mask_panel_draw_header()

static void blender::material_mask_panel_draw_header ( const bContext * ,
Panel * panel )
static

◆ modify_curves() [1/5]

◆ modify_curves() [2/5]

◆ modify_curves() [3/5]

◆ modify_curves() [4/5]

◆ modify_curves() [5/5]

◆ modify_drawing() [1/8]

◆ modify_drawing() [2/8]

◆ modify_drawing() [3/8]

◆ modify_drawing() [4/8]

◆ modify_drawing() [5/8]

◆ modify_drawing() [6/8]

static void blender::modify_drawing ( const GreasePencilShrinkwrapModifierData & smd,
const ModifierEvalContext & ctx,
bke::greasepencil::Drawing & drawing )
static

◆ modify_drawing() [7/8]

◆ modify_drawing() [8/8]

◆ modify_drawing_by_layer()

◆ modify_fill_color() [1/3]

◆ modify_fill_color() [2/3]

◆ modify_fill_color() [3/3]

◆ modify_geometry_set() [1/27]

◆ modify_geometry_set() [2/27]

◆ modify_geometry_set() [3/27]

◆ modify_geometry_set() [4/27]

◆ modify_geometry_set() [5/27]

◆ modify_geometry_set() [6/27]

◆ modify_geometry_set() [7/27]

◆ modify_geometry_set() [8/27]

◆ modify_geometry_set() [9/27]

◆ modify_geometry_set() [10/27]

◆ modify_geometry_set() [11/27]

◆ modify_geometry_set() [12/27]

◆ modify_geometry_set() [13/27]

◆ modify_geometry_set() [14/27]

◆ modify_geometry_set() [15/27]

◆ modify_geometry_set() [16/27]

◆ modify_geometry_set() [17/27]

◆ modify_geometry_set() [18/27]

◆ modify_geometry_set() [19/27]

◆ modify_geometry_set() [20/27]

◆ modify_geometry_set() [21/27]

◆ modify_geometry_set() [22/27]

◆ modify_geometry_set() [23/27]

◆ modify_geometry_set() [24/27]

◆ modify_geometry_set() [25/27]

static void blender::modify_geometry_set ( ModifierData * md,
const ModifierEvalContext * ctx,
bke::GeometrySet * geometry_set )
static

Definition at line 1888 of file MOD_nodes.cc.

References modifyGeometry().

◆ modify_geometry_set() [26/27]

◆ modify_geometry_set() [27/27]

◆ modify_mesh()

static Mesh * blender::modify_mesh ( ModifierData * md,
const ModifierEvalContext * ctx,
Mesh * mesh )
static

◆ modify_opacity()

◆ modify_softness()

◆ modify_stroke_by_index()

◆ modify_stroke_by_layer()

static void blender::modify_stroke_by_layer ( const GreasePencilOffsetModifierData & omd,
const int layer_index,
const int layers_num,
const IndexMask & curves_mask,
bke::CurvesGeometry & curves )
static

◆ modify_stroke_by_material()

◆ modify_stroke_color() [1/3]

◆ modify_stroke_color() [2/3]

◆ modify_stroke_color() [3/3]

◆ modify_stroke_random()

◆ modifyGeometry()

◆ move_assign_container()

◆ nodes_modifier_data_block_destruct()

void blender::nodes_modifier_data_block_destruct ( NodesModifierDataBlock * data_block,
const bool do_id_user )

◆ nodes_modifier_packed_bake_free()

◆ noise_table() [1/2]

static Array< float > blender::noise_table ( const int len,
const int offset,
const int seed )
static

Definition at line 83 of file MOD_grease_pencil_noise.cc.

References BLI_hash_int_01(), BLI_hash_int_2d(), len, and seed.

◆ noise_table() [2/2]

static Array< float > blender::noise_table ( int len,
int offset,
int seed )
static

◆ occlusion_panel_draw()

static void blender::occlusion_panel_draw ( const bContext * ,
Panel * panel )
static

◆ operator!=() [1/2]

bool blender::operator!= ( const bUUID uuid1,
const bUUID uuid2 )

Definition at line 190 of file uuid.cc.

◆ operator!=() [2/2]

bool blender::operator!= ( StringRef a,
StringRef b )
constexpr

Definition at line 604 of file BLI_string_ref.hh.

References b.

◆ operator*() [1/12]

template double2x2 blender::operator* ( const double2x2 & a,
const double2x2 & b )
extern

◆ operator*() [2/12]

template double3x3 blender::operator* ( const double3x3 & a,
const double3x3 & b )
extern

◆ operator*() [3/12]

template double4x4 blender::operator* ( const double4x4 & a,
const double4x4 & b )
extern

◆ operator*() [4/12]

template float2x2 blender::operator* ( const float2x2 & a,
const float2x2 & b )
extern

◆ operator*() [5/12]

template<>
float3x3 blender::operator* ( const float3x3 & a,
const float3x3 & b )

Manual unrolling since MSVC doesn't seem to unroll properly.

Definition at line 71 of file math_matrix.cc.

References A0, A1, A2, b, result, and sum().

◆ operator*() [6/12]

template<>
float3x3 blender::operator* ( const float3x3 & a,
const float3x3 & b )

Manual unrolling since MSVC doesn't seem to unroll properly.

Definition at line 71 of file math_matrix.cc.

References A0, A1, A2, b, result, and sum().

◆ operator*() [7/12]

template<>
float4x4 blender::operator* ( const float4x4 & a,
const float4x4 & b )

Definition at line 24 of file math_matrix.cc.

References A0, A1, A2, b, result, and sum().

◆ operator*() [8/12]

template<>
float4x4 blender::operator* ( const float4x4 & a,
const float4x4 & b )

Definition at line 24 of file math_matrix.cc.

References A0, A1, A2, b, result, and sum().

◆ operator*() [9/12]

template<typename T , int A_NumCol, int A_NumRow, int B_NumCol, int B_NumRow>
MatBase< T, B_NumCol, A_NumRow > blender::operator* ( const MatBase< T, A_NumCol, A_NumRow > & a,
const MatBase< T, B_NumCol, B_NumRow > & b )

Definition at line 918 of file BLI_math_matrix_types.hh.

References b.

◆ operator*() [10/12]

template<typename T , int A_NumCol, int A_NumRow, int B_NumCol, int B_NumRow, int B_SrcNumCol, int B_SrcNumRow, int B_SrcStartCol, int B_SrcStartRow, int B_SrcAlignment>
MatBase< T, B_NumCol, A_NumRow > blender::operator* ( const MatBase< T, A_NumCol, A_NumRow > & a,
const MatView< T, B_NumCol, B_NumRow, B_SrcNumCol, B_SrcNumRow, B_SrcStartCol, B_SrcStartRow, B_SrcAlignment > & b )

Definition at line 991 of file BLI_math_matrix_types.hh.

References b.

◆ operator*() [11/12]

template<typename T , int A_NumCol, int A_NumRow, int A_SrcNumCol, int A_SrcNumRow, int A_SrcStartCol, int A_SrcStartRow, int A_SrcAlignment, int B_NumCol, int B_NumRow>
MatBase< T, B_NumCol, A_NumRow > blender::operator* ( const MatView< T, A_NumCol, A_NumRow, A_SrcNumCol, A_SrcNumRow, A_SrcStartCol, A_SrcStartRow, A_SrcAlignment > & a,
const MatBase< T, B_NumCol, B_NumRow > & b )

Definition at line 968 of file BLI_math_matrix_types.hh.

References b.

◆ operator*() [12/12]

template<typename T , int A_NumCol, int A_NumRow, int A_SrcNumCol, int A_SrcNumRow, int A_SrcStartCol, int A_SrcStartRow, int A_SrcAlignment, int B_NumCol, int B_NumRow, int B_SrcNumCol, int B_SrcNumRow, int B_SrcStartCol, int B_SrcStartRow, int B_SrcAlignment>
MatBase< T, B_NumCol, A_NumRow > blender::operator* ( const MatView< T, A_NumCol, A_NumRow, A_SrcNumCol, A_SrcNumRow, A_SrcStartCol, A_SrcStartRow, A_SrcAlignment > & a,
const MatView< T, B_NumCol, B_NumRow, B_SrcNumCol, B_SrcNumRow, B_SrcStartCol, B_SrcStartRow, B_SrcAlignment > & b )

Definition at line 939 of file BLI_math_matrix_types.hh.

References b.

◆ operator+()

std::string blender::operator+ ( StringRef a,
StringRef b )
inline

Adding two #StringRefs will allocate an std::string. This is not efficient, but convenient in most cases.

Definition at line 587 of file BLI_string_ref.hh.

References b.

◆ operator<() [1/2]

bool blender::operator< ( const bUUID uuid1,
const bUUID uuid2 )

◆ operator<() [2/2]

bool blender::operator< ( StringRef a,
StringRef b )
constexpr

Definition at line 609 of file BLI_string_ref.hh.

References b.

◆ operator<<() [1/13]

template<typename ChannelStorageType , eSpace Space, eAlpha Alpha>
std::ostream & blender::operator<< ( std::ostream & stream,
const ColorRGBA< ChannelStorageType, Space, Alpha > & c )

◆ operator<<() [2/13]

template std::ostream & blender::operator<< ( std::ostream & stream,
const ColorRGBA< float, eSpace::SceneLinear, eAlpha::Premultiplied > & c )

◆ operator<<() [3/13]

template std::ostream & blender::operator<< ( std::ostream & stream,
const ColorRGBA< float, eSpace::SceneLinear, eAlpha::Straight > & c )

◆ operator<<() [4/13]

template std::ostream & blender::operator<< ( std::ostream & stream,
const ColorRGBA< uint8_t, eSpace::SceneLinearByteEncoded, eAlpha::Premultiplied > & c )

◆ operator<<() [5/13]

template std::ostream & blender::operator<< ( std::ostream & stream,
const ColorRGBA< uint8_t, eSpace::SceneLinearByteEncoded, eAlpha::Straight > & c )

◆ operator<<() [6/13]

std::ostream & blender::operator<< ( std::ostream & stream,
const ComputeContext & compute_context )

Definition at line 50 of file compute_context.cc.

◆ operator<<() [7/13]

std::ostream & blender::operator<< ( std::ostream & stream,
const ComputeContextHash & hash )

Definition at line 26 of file compute_context.cc.

◆ operator<<() [8/13]

std::ostream & blender::operator<< ( std::ostream & stream,
const eAlpha & space )

Definition at line 11 of file BLI_color.cc.

References Premultiplied, and Straight.

◆ operator<<() [9/13]

std::ostream & blender::operator<< ( std::ostream & stream,
const eSpace & space )

Definition at line 26 of file BLI_color.cc.

References SceneLinear, SceneLinearByteEncoded, and Theme.

◆ operator<<() [10/13]

std::ostream & blender::operator<< ( std::ostream & stream,
const OrderedEdge & e )

Definition at line 9 of file ordered_edge.cc.

◆ operator<<() [11/13]

std::ostream & blender::operator<< ( std::ostream & stream,
IndexRange range )

Definition at line 42 of file index_range.cc.

◆ operator<<() [12/13]

std::ostream & blender::operator<< ( std::ostream & stream,
StringRef ref )

Definition at line 11 of file string_ref.cc.

◆ operator<<() [13/13]

std::ostream & blender::operator<< ( std::ostream & stream,
StringRefNull ref )

Definition at line 17 of file string_ref.cc.

References blender::StringRefBase::data(), and blender::StringRefBase::size().

◆ operator<=()

bool blender::operator<= ( StringRef a,
StringRef b )
constexpr

Definition at line 619 of file BLI_string_ref.hh.

References b.

◆ operator==() [1/2]

bool blender::operator== ( const bUUID uuid1,
const bUUID uuid2 )

Definition at line 185 of file uuid.cc.

References BLI_uuid_equal().

◆ operator==() [2/2]

bool blender::operator== ( StringRef a,
StringRef b )
constexpr

Definition at line 599 of file BLI_string_ref.hh.

References b.

◆ operator>()

bool blender::operator> ( StringRef a,
StringRef b )
constexpr

Definition at line 614 of file BLI_string_ref.hh.

References b.

◆ operator>=()

bool blender::operator>= ( StringRef a,
StringRef b )
constexpr

Definition at line 624 of file BLI_string_ref.hh.

References b.

◆ options_light_reference_draw()

◆ options_panel_draw()

◆ orient2d()

int blender::orient2d ( const double2 & a,
const double2 & b,
const double2 & c )

orient2d gives the exact result, using multi-precision arithmetic when result is close to zero. orient3d_fast just uses double arithmetic, so may be wrong if the answer is very close to zero. Similarly, for incircle and incircle_fast.

Definition at line 2468 of file math_boolean.cc.

References b, blender::robust_pred::orient2d(), and sgn().

Referenced by filtered_orient2d< double >().

◆ orient2d_fast()

int blender::orient2d_fast ( const double2 & a,
const double2 & b,
const double2 & c )

Definition at line 2473 of file math_boolean.cc.

References b, blender::robust_pred::orient2dfast(), and sgn().

◆ orient3d()

int blender::orient3d ( const double3 & a,
const double3 & b,
const double3 & c,
const double3 & d )

orient3d gives the exact result, using multi-precision arithmetic when result is close to zero. orient3d_fast just uses double arithmetic, so may be wrong if the answer is very close to zero. Similarly, for insphere and insphere_fast.

Definition at line 2488 of file math_boolean.cc.

References b, blender::robust_pred::orient3d(), and sgn().

◆ orient3d_fast()

int blender::orient3d_fast ( const double3 & a,
const double3 & b,
const double3 & c,
const double3 & d )

Definition at line 2493 of file math_boolean.cc.

References b, blender::robust_pred::orient3dfast(), and sgn().

◆ panel_draw() [1/27]

◆ panel_draw() [2/27]

◆ panel_draw() [3/27]

◆ panel_draw() [4/27]

◆ panel_draw() [5/27]

◆ panel_draw() [6/27]

◆ panel_draw() [7/27]

◆ panel_draw() [8/27]

◆ panel_draw() [9/27]

◆ panel_draw() [10/27]

◆ panel_draw() [11/27]

◆ panel_draw() [12/27]

◆ panel_draw() [13/27]

◆ panel_draw() [14/27]

◆ panel_draw() [15/27]

◆ panel_draw() [16/27]

◆ panel_draw() [17/27]

◆ panel_draw() [18/27]

◆ panel_draw() [19/27]

◆ panel_draw() [20/27]

static void blender::panel_draw ( const bContext * C,
Panel * panel )
static

◆ panel_draw() [21/27]

◆ panel_draw() [22/27]

◆ panel_draw() [23/27]

◆ panel_draw() [24/27]

◆ panel_draw() [25/27]

◆ panel_draw() [26/27]

◆ panel_draw() [27/27]

◆ panel_register() [1/27]

static void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [2/27]

static void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [3/27]

static void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [4/27]

static void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [5/27]

◆ panel_register() [6/27]

static void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [7/27]

static void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [8/27]

static void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [9/27]

static void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [10/27]

static void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [11/27]

static void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [12/27]

static void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [13/27]

static void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [14/27]

static void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [15/27]

static void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [16/27]

static void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [17/27]

static void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [18/27]

static void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [19/27]

static void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [20/27]

static void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [21/27]

static void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [22/27]

◆ panel_register() [23/27]

static void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [24/27]

static void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [25/27]

static void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [26/27]

◆ panel_register() [27/27]

static void blender::panel_register ( ARegionType * region_type)
static

Definition at line 2514 of file MOD_nodes.cc.

References eModifierType_Nodes, modifier_panel_register(), and panel_draw().

◆ parallel_sort() [1/2]

◆ parallel_sort() [2/2]

template<typename RandomAccessIterator , typename Compare >
void blender::parallel_sort ( RandomAccessIterator begin,
RandomAccessIterator end,
const Compare & comp )

Definition at line 28 of file BLI_sort.hh.

◆ point_counts_to_keep_concurrent()

static Array< int > blender::point_counts_to_keep_concurrent ( const bke::CurvesGeometry & curves,
const IndexMask & selection,
const int time_alignment,
const int transition,
const float factor,
const bool clamp_points,
int & r_curves_num,
int & r_points_num )
static

◆ points_info_sequential()

static void blender::points_info_sequential ( const bke::CurvesGeometry & curves,
const IndexMask & selection,
const int transition,
const float factor,
const bool clamp_points,
int & r_curves_num,
int & r_points_num )
static

◆ register_cpp_types()

void blender::register_cpp_types ( )

Initialize and register basic cpp types.

Referenced by BKE_cpp_types_init().

◆ remove_outdated_bake_caches()

◆ reorder_cyclic_curve_points()

static bke::CurvesGeometry blender::reorder_cyclic_curve_points ( const bke::CurvesGeometry & src_curves,
const IndexMask & curve_selection,
const Span< int > curve_offsets )
static

◆ reorder_strokes()

◆ required_data_mask()

static void blender::required_data_mask ( ModifierData * ,
CustomData_MeshMasks * r_cddata_masks )
static

Definition at line 2778 of file MOD_nodes.cc.

References CD_MASK_MDEFORMVERT, CD_MASK_PROP_ALL, and CustomData_MeshMasks::vmask.

◆ rotate_by_angle()

static float2 blender::rotate_by_angle ( const float2 & p,
const float angle )
static

Definition at line 118 of file MOD_grease_pencil_texture.cc.

References blender::math::cos(), and blender::math::sin().

Referenced by write_fill_transforms().

◆ segment_list_item_draw() [1/2]

static void blender::segment_list_item_draw ( uiList * ,
const bContext * ,
uiLayout * layout,
PointerRNA * ,
PointerRNA * itemptr,
int ,
PointerRNA * ,
const char * ,
int ,
int  )
static

Definition at line 442 of file MOD_grease_pencil_dash.cc.

References UI_ITEM_R_NO_BG, uiItemR(), and uiLayoutRow().

Referenced by panel_register().

◆ segment_list_item_draw() [2/2]

static void blender::segment_list_item_draw ( uiList * ,
const bContext * ,
uiLayout * layout,
PointerRNA * ,
PointerRNA * itemptr,
int ,
PointerRNA * ,
const char * ,
int ,
int  )
static

Definition at line 624 of file MOD_grease_pencil_time.cc.

References UI_ITEM_R_NO_BG, uiItemR(), and uiLayoutRow().

◆ sgn()

static int blender::sgn ( double x)
static

◆ simplify_drawing()

◆ simplify_fixed()

static IndexMask blender::simplify_fixed ( const bke::CurvesGeometry & curves,
const int step,
IndexMaskMemory & memory )
static

◆ split_index_range_by_alignment()

AlignedIndexRanges blender::split_index_range_by_alignment ( const IndexRange range,
const int64_t alignment )

Split a range into three parts so that the boundaries of the middle part are aligned to some power of two.

This can be used when an algorithm can be optimized on aligned indices/memory. The algorithm then needs a slow path for the beginning and end, and a fast path for the aligned elements.

Definition at line 12 of file index_range.cc.

References blender::AlignedIndexRanges::aligned, BLI_assert, mask(), blender::IndexRange::one_after_last(), blender::AlignedIndexRanges::prefix, range, and blender::AlignedIndexRanges::suffix.

Referenced by blender::bits::bits_to_index_ranges(), blender::bits::MutableBitSpan::reset_all(), blender::bits::MutableBitSpan::set_all(), and blender::tests::TEST().

◆ subdivide_drawing()

◆ table_sample()

static float blender::table_sample ( MutableSpan< float > table,
float x )
static

◆ target_vertex_group_available() [1/2]

static bool blender::target_vertex_group_available ( const StringRefNull name,
const ListBase & vertex_group_names )
static

Definition at line 115 of file MOD_grease_pencil_weight_angle.cc.

References BKE_defgroup_name_index().

Referenced by modify_geometry_set().

◆ target_vertex_group_available() [2/2]

static bool blender::target_vertex_group_available ( const StringRefNull name,
const ListBase & vertex_group_names )
static

Definition at line 142 of file MOD_grease_pencil_weight_proximity.cc.

References BKE_defgroup_name_index().

Referenced by modify_geometry_set().

◆ TEST()

blender::TEST ( BLI_string_utils ,
BLI_uniquename_cb  )

Definition at line 21 of file BLI_string_utils_test.cc.

References BLI_uniquename_cb(), EXPECT_EQ(), and unique_check_func().

◆ TEST_F() [1/3]

◆ TEST_F() [2/3]

◆ TEST_F() [3/3]

◆ total_slot_amount_for_usable_slots()

int64_t blender::total_slot_amount_for_usable_slots ( const int64_t min_usable_slots,
const int64_t max_load_factor_numerator,
const int64_t max_load_factor_denominator )
inlineconstexpr

Definition at line 55 of file BLI_hash_tables.hh.

References ceil_division_by_fraction().

Referenced by blender::LoadFactor::compute_total_slots().

◆ TRIVIAL_DEFAULT_INT_HASH() [1/8]

blender::TRIVIAL_DEFAULT_INT_HASH ( int16_t )

◆ TRIVIAL_DEFAULT_INT_HASH() [2/8]

blender::TRIVIAL_DEFAULT_INT_HASH ( int32_t )

◆ TRIVIAL_DEFAULT_INT_HASH() [3/8]

blender::TRIVIAL_DEFAULT_INT_HASH ( int64_t )

◆ TRIVIAL_DEFAULT_INT_HASH() [4/8]

blender::TRIVIAL_DEFAULT_INT_HASH ( int8_t )

We cannot make any assumptions about the distribution of keys, so use a trivial hash function by default. The default probing strategy is designed to take all bits of the hash into account to avoid worst case behavior when the lower bits are all zero. Special hash functions can be implemented when more knowledge about a specific key distribution is available.

◆ TRIVIAL_DEFAULT_INT_HASH() [5/8]

blender::TRIVIAL_DEFAULT_INT_HASH ( uint16_t )

◆ TRIVIAL_DEFAULT_INT_HASH() [6/8]

blender::TRIVIAL_DEFAULT_INT_HASH ( uint32_t )

◆ TRIVIAL_DEFAULT_INT_HASH() [7/8]

blender::TRIVIAL_DEFAULT_INT_HASH ( uint64_t )

◆ TRIVIAL_DEFAULT_INT_HASH() [8/8]

blender::TRIVIAL_DEFAULT_INT_HASH ( uint8_t )

◆ try_add_side_effect_node()

◆ try_find_baked_data()

◆ uninitialized_convert_n()

template<typename From , typename To >
void blender::uninitialized_convert_n ( const From * src,
int64_t n,
To * dst )

Definition at line 61 of file BLI_memory_utils.hh.

◆ uninitialized_copy_n()

◆ uninitialized_fill_n()

◆ uninitialized_move_n()

◆ uninitialized_relocate_n()

◆ unique_check_func()

static bool blender::unique_check_func ( void * arg,
const char * name )
static

◆ unroll()

template<int N, class Fn >
void blender::unroll ( Fn fn)

Variadic templates are used to unroll loops manually. This helps GCC avoid branching during math operations and makes the code generation more explicit and predictable. Unrolling should always be worth it because the vector size is expected to be small.

Definition at line 21 of file BLI_unroll.hh.

References unroll_impl().

Referenced by blender::math::from_scale(), blender::fixed_width_int::generic_add(), blender::fixed_width_int::generic_sub(), blender::math::interpolate_linear(), blender::fixed_width_int::is_zero(), blender::fixed_width_int::is_zero(), blender::math::normalize(), blender::math::normalize(), blender::math::normalize_and_get_size(), blender::math::normalize_and_get_size(), blender::math::rotate(), blender::math::scale(), blender::math::translate(), and blender::math::transpose().

◆ unroll_impl()

template<class Fn , size_t... I>
void blender::unroll_impl ( Fn fn,
std::index_sequence< I... >  )

Definition at line 11 of file BLI_unroll.hh.

References I.

Referenced by unroll().

◆ update_bakes_from_node_group()

◆ update_depsgraph() [1/13]

◆ update_depsgraph() [2/13]

◆ update_depsgraph() [3/13]

◆ update_depsgraph() [4/13]

◆ update_depsgraph() [5/13]

◆ update_depsgraph() [6/13]

◆ update_depsgraph() [7/13]

◆ update_depsgraph() [8/13]

◆ update_depsgraph() [9/13]

◆ update_depsgraph() [10/13]

◆ update_depsgraph() [11/13]

◆ update_depsgraph() [12/13]

◆ update_depsgraph() [13/13]

◆ update_first_occurrence()

static void blender::update_first_occurrence ( Map< int, int > & map,
const int root,
const int index )
static

Definition at line 22 of file atomic_disjoint_set.cc.

Referenced by blender::AtomicDisjointSet::calc_reduced_ids().

◆ update_id_properties_from_node_group()

static void blender::update_id_properties_from_node_group ( NodesModifierData * nmd)
static

◆ update_panels_from_node_group()

◆ vgroup_panel_draw()

◆ write_fill_transforms()

◆ write_stroke_transforms()

◆ write_weights_for_drawing() [1/2]

◆ write_weights_for_drawing() [2/2]

Variable Documentation

◆ dependency_data_mask

const CustomData_MeshMasks blender::dependency_data_mask
static

◆ is_convertible_pointer_v

template<typename From , typename To >
bool blender::is_convertible_pointer_v
inlineconstexpr
Initial value:
= std::is_convertible_v<From, To> &&
std::is_pointer_v<From> && std::is_pointer_v<To>

Helper variable that checks if a pointer type can be converted into another pointer type without issues. Possible issues are casting away const and casting a pointer to a child class. Adding const or casting to a parent class is fine.

Definition at line 288 of file BLI_memory_utils.hh.

◆ is_same_any_v

template<typename T , typename... Args>
bool blender::is_same_any_v = (std::is_same_v<T, Args> || ...)
inlineconstexpr

◆ is_span_convertible_pointer_v

template<typename From , typename To >
bool blender::is_span_convertible_pointer_v
inlineconstexpr
Initial value:
=
std::is_pointer_v<From> && std::is_pointer_v<To> &&
(
std::is_same_v<From, To> ||
std::is_same_v<const std::remove_pointer_t<From>, std::remove_pointer_t<To>> ||
(!std::is_const_v<std::remove_pointer_t<From>> && std::is_same_v<To, void *>) ||
std::is_same_v<To, const void *>)

Helper variable that checks if a Span<From> can be converted to Span<To> safely, whereby From and To are pointers. Adding const and casting to a void pointer is allowed. Casting up and down a class hierarchy generally is not allowed, because this might change the pointer under some circumstances.

Definition at line 298 of file BLI_memory_utils.hh.

◆ is_trivial_extended_v

template<typename T >
bool blender::is_trivial_extended_v = std::is_trivial_v<T>
inlineconstexpr

Under some circumstances #std::is_trivial_v<T> is false even though we know that the type is actually trivial. Using that extra knowledge allows for some optimizations.

Definition at line 25 of file BLI_memory_utils.hh.

◆ is_trivial_extended_v< GVArrayImpl_For_GSpan_final >

template<>
bool blender::is_trivial_extended_v< GVArrayImpl_For_GSpan_final > = true
inlineconstexpr

Definition at line 614 of file BLI_generic_virtual_array.hh.

◆ is_trivial_extended_v< GVArrayImpl_For_SingleValueRef_final >

Definition at line 655 of file BLI_generic_virtual_array.hh.

◆ is_trivial_extended_v< VArrayImpl_For_DerivedSpan< StructT, ElemT, GetFunc, SetFunc > >

template<typename StructT , typename ElemT , ElemT(*)(const StructT &) GetFunc, void(*)(StructT &, ElemT) SetFunc>
bool blender::is_trivial_extended_v< VArrayImpl_For_DerivedSpan< StructT, ElemT, GetFunc, SetFunc > > = true
inlineconstexpr

Definition at line 445 of file BLI_virtual_array.hh.

◆ is_trivial_extended_v< VArrayImpl_For_Single< T > >

template<typename T >
bool blender::is_trivial_extended_v< VArrayImpl_For_Single< T > > = is_trivial_extended_v<T>
inlineconstexpr

Definition at line 339 of file BLI_virtual_array.hh.

◆ is_trivial_extended_v< VArrayImpl_For_Span_final< T > >

template<typename T >
bool blender::is_trivial_extended_v< VArrayImpl_For_Span_final< T > > = true
inlineconstexpr

Definition at line 270 of file BLI_virtual_array.hh.

◆ is_trivially_copy_constructible_extended_v

template<typename T >
bool blender::is_trivially_copy_constructible_extended_v
inlineconstexpr
Initial value:
=
is_trivial_extended_v<T> || std::is_trivially_copy_constructible_v<T>

Definition at line 30 of file BLI_memory_utils.hh.

◆ is_trivially_destructible_extended_v

template<typename T >
bool blender::is_trivially_destructible_extended_v
inlineconstexpr
Initial value:
= is_trivial_extended_v<T> ||
std::is_trivially_destructible_v<T>

Definition at line 27 of file BLI_memory_utils.hh.

Referenced by destruct_n().

◆ is_trivially_move_constructible_extended_v

template<typename T >
bool blender::is_trivially_move_constructible_extended_v
inlineconstexpr
Initial value:
=
is_trivial_extended_v<T> || std::is_trivially_move_constructible_v<T>

Definition at line 33 of file BLI_memory_utils.hh.

◆ is_VArray_v

template<typename T >
bool blender::is_VArray_v = false
staticconstexpr

Definition at line 1013 of file BLI_virtual_array.hh.

◆ is_VArray_v< VArray< T > >

template<typename T >
bool blender::is_VArray_v< VArray< T > > = true
staticconstexpr

Definition at line 1014 of file BLI_virtual_array.hh.

◆ is_VMutableArray_v

template<typename T >
bool blender::is_VMutableArray_v = false
staticconstexpr

Definition at line 1016 of file BLI_virtual_array.hh.

◆ is_VMutableArray_v< VMutableArray< T > >

template<typename T >
bool blender::is_VMutableArray_v< VMutableArray< T > > = true
staticconstexpr

Definition at line 1017 of file BLI_virtual_array.hh.

◆ unlimited_radius

const float blender::unlimited_radius = FLT_MAX
static

Definition at line 96 of file MOD_grease_pencil_envelope.cc.

Referenced by calc_min_radius_v3v3(), and calc_radius_limit().