Blender V5.0
blender Namespace Reference

Namespaces

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

Classes

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

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>
using BVHTree_RayCastCallback_CPP
using BVHTree_RangeQuery_CPP = FunctionRef<void(int index, const float3 &co, float dist_sq)>
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 uchar2 = blender::VecBase<uint8_t, 2>
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>>
using Mutex = std::mutex
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, int64_t InlineBufferCapacity = 4, typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultVectorSetSlot<Key>::type>
using RawVectorSet
template<typename T, typename GetIDFn, int64_t InlineBufferCapacity = 4>
using CustomIDVectorSet
using FramesMapKeyT
using FramesMapKeyT

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)
template<typename ChannelStorageType, eSpace Space, eAlpha Alpha>
std::ostream & operator<< (std::ostream &stream, const ColorRGBA< ChannelStorageType, Space, Alpha > &c)
void filter_transpose_delta (const uint8_t *src, uint8_t *dst, size_t items_num, size_t item_size)
void unfilter_transpose_delta (const uint8_t *src, uint8_t *dst, size_t items_num, size_t item_size)
void register_cpp_types ()
bool operator== (const CPPType &a, const CPPType &b)
bool operator!= (const CPPType &a, const CPPType &b)
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, typename... Args>
uint64_t get_default_hash (const T &v, const Args &...args)
AlignedIndexRanges split_index_range_by_alignment (const IndexRange range, const int64_t alignment)
void BLI_bvhtree_ray_cast_all_cpp (const BVHTree &tree, const float3 co, const float3 dir, float radius, float hit_dist, BVHTree_RayCastCallback_CPP fn)
void BLI_bvhtree_range_query_cpp (const BVHTree &tree, const float3 co, float radius, BVHTree_RangeQuery_CPP fn)
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)
float4 calculate_out_variables (bool calculate_r_gon_parameter_field, bool calculate_max_unit_parameter, bool normalize_r_gon_parameter, float r_gon_sides, float r_gon_roundness, float2 coord)
float calculate_out_segment_id (float r_gon_sides, float2 coord)
bool operator== (const SessionUID &lhs, const SessionUID &rhs)
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)
bool operator== (bUUID uuid1, bUUID uuid2)
bool operator!= (bUUID uuid1, bUUID uuid2)
bool operator< (bUUID uuid1, bUUID uuid2)
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 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< float, eSpace::Theme, 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)
template std::ostream & operator<< (std::ostream &stream, const ColorRGBA< uint8_t, eSpace::Theme, 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)
static ccl_device float4 calculate_out_variables_full_roundness_irregular_circular (bool calculate_r_gon_parameter_field, bool normalize_r_gon_parameter, float r_gon_sides, float2 coord, float l_coord)
static ccl_device float4 calculate_out_variables_irregular_circular (bool calculate_r_gon_parameter_field, bool calculate_max_unit_parameter, bool normalize_r_gon_parameter, float r_gon_sides, float r_gon_roundness, float2 coord, float l_coord)
 TEST (compression, filter_transpose_delta)
static uint32_t pcg_rand (uint32_t &rng_state)
 TEST (compression, filter_transpose_delta_stress)
 TEST (BLI_string_utils, BLI_string_replace)
 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< bool > uv_select_face, MutableSpan< int > material_indices)
static void bm_to_mesh_loops (const BMesh &bm, const Span< const BMLoop * > bm_loops, Mesh &mesh, MutableSpan< bool > uv_select_vert, MutableSpan< bool > uv_select_edge)
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 ImplicitSharingPtrAndData save_shared_attribute (const bke::GAttributeReader &attribute)
static void modify_curves (ModifierData &md, const ModifierEvalContext &ctx, Drawing &drawing, bke::GreasePencilDrawingEditHints *edit_hints)
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< int > 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 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, const float frame_duration)
static float get_build_factor (const GreasePencilBuildTimeMode time_mode, const int current_frame, const int start_frame, const int frame_duration, 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 int frame_duration, 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, int &r_original_curve_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 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 void foreach_working_space_color (ModifierData *md, const IDTypeForeachColorFunctionCallback &fn)
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 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 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_dependencies_from_settings (const NodesModifierSettings &settings, nodes::GeometryNodesEvalDependencies &deps)
static void add_collection_relation (const ModifierUpdateDepsgraphContext *ctx, Collection &collection)
static void add_object_relation (const ModifierUpdateDepsgraphContext *ctx, Object &object, const nodes::GeometryNodesEvalDependencies::ObjectDependencyInfo &info)
static void update_depsgraph (ModifierData *md, const ModifierUpdateDepsgraphContext *ctx)
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 ModifierEvalContext &ctx, 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 ModifierEvalContext &ctx, 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, const IDProperty *properties, 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)
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)
void nodes_modifier_bake_destruct (NodesModifierBake *bake, const bool do_id_user)
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>
static constexpr bool is_ImplicitSharingPtr_strong_v = false
template<typename T>
static constexpr bool is_ImplicitSharingPtr_strong_v< ImplicitSharingPtr< T, true > > = true
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>
static constexpr bool is_Vector_v = false
template<typename T, int64_t InlineBufferCapacity, typename Allocator>
static constexpr bool is_Vector_v< Vector< T, InlineBufferCapacity, Allocator > > = true
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
constexpr float GP_BUILD_TIME_DEFAULT_STROKES = 1.0f
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 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(const FunctionRef< void()> compute_cache)
VecBase< float, 3 > float3

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>>>>
unsigned long long int uint64_t
#define T

Definition at line 22 of file BLI_math_vector_types.hh.

◆ BVHTree_RangeQuery_CPP

using blender::BVHTree_RangeQuery_CPP = FunctionRef<void(int index, const float3 &co, float dist_sq)>

Definition at line 336 of file BLI_kdopbvh.hh.

◆ BVHTree_RayCastCallback_CPP

Initial value:

Definition at line 313 of file BLI_kdopbvh.hh.

◆ char2

using blender::char2 = blender::VecBase<int8_t, 2>

Definition at line 593 of file BLI_math_vector_types.hh.

◆ char3

using blender::char3 = blender::VecBase<int8_t, 3>

Definition at line 594 of file BLI_math_vector_types.hh.

◆ char4

using blender::char4 = blender::VecBase<int8_t, 4>

Definition at line 595 of file BLI_math_vector_types.hh.

◆ ColorGeometry4b

◆ ColorGeometry4f

◆ ColorPaint4b

◆ ColorPaint4f

◆ ColorTheme4b

Definition at line 194 of file BLI_color_types.hh.

◆ ColorTheme4f

Definition at line 195 of file BLI_color_types.hh.

◆ ConstListBaseWrapper

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

Definition at line 100 of file BLI_listbase_wrapper.hh.

◆ CustomIDVectorSet

template<typename T, typename GetIDFn, int64_t InlineBufferCapacity = 4>
using blender::CustomIDVectorSet
Initial value:

Used for a set where the key itself isn't used for the hash or equality but some part of the key instead. For example the string identifiers of node types.

#GetIDFn should have an implementation that returns a hashable and equality comparable type, i.e. StringRef operator()(const bNode *value) { return value->idname; }.

Definition at line 1145 of file BLI_vector_set.hh.

◆ DefaultProbingStrategy

Having a specified default is convenient.

Definition at line 198 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

using blender::double2 = VecBase<double, 2>

Definition at line 622 of file BLI_math_vector_types.hh.

◆ double2x2

using blender::double2x2 = MatBase<double, 2, 2>

Definition at line 1019 of file BLI_math_matrix_types.hh.

◆ double2x3

using blender::double2x3 = MatBase<double, 2, 3>

Definition at line 1020 of file BLI_math_matrix_types.hh.

◆ double2x4

using blender::double2x4 = MatBase<double, 2, 4>

Definition at line 1021 of file BLI_math_matrix_types.hh.

◆ double3

using blender::double3 = VecBase<double, 3>

Definition at line 623 of file BLI_math_vector_types.hh.

◆ double3x2

using blender::double3x2 = MatBase<double, 3, 2>

Definition at line 1022 of file BLI_math_matrix_types.hh.

◆ double3x3

using blender::double3x3 = MatBase<double, 3, 3>

Definition at line 1023 of file BLI_math_matrix_types.hh.

◆ double3x4

using blender::double3x4 = MatBase<double, 3, 4>

Definition at line 1024 of file BLI_math_matrix_types.hh.

◆ double4

using blender::double4 = VecBase<double, 4>

Definition at line 624 of file BLI_math_vector_types.hh.

◆ double4x2

using blender::double4x2 = MatBase<double, 4, 2>

Definition at line 1025 of file BLI_math_matrix_types.hh.

◆ double4x3

using blender::double4x3 = MatBase<double, 4, 3>

Definition at line 1026 of file BLI_math_matrix_types.hh.

◆ double4x4

using blender::double4x4 = MatBase<double, 4, 4>

Definition at line 1027 of file BLI_math_matrix_types.hh.

◆ float1

Definition at line 617 of file BLI_math_vector_types.hh.

◆ float2

Definition at line 618 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 619 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 620 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.

◆ FramesMapKeyT [1/2]

◆ FramesMapKeyT [2/2]

◆ int2

Definition at line 601 of file BLI_math_vector_types.hh.

◆ int3

Definition at line 602 of file BLI_math_vector_types.hh.

◆ int4

Definition at line 603 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 337 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:
ValueSequence<size_t, Value1Indices...>(), std::make_index_sequence<Size>()))
ValueSequence< T,(ValueSequence< size_t, Value1Indices... >::template contains< I >() ? Value1 :Value2)... > make_two_value_sequence_impl(ValueSequence< size_t, Value1Indices... >, std::index_sequence< I... >)

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 118 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:
std::make_index_sequence<Size>()))
ValueSequence< T,((I==0) ? Value :Value)... > make_value_sequence_impl(std::index_sequence< I... >)

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

Definition at line 110 of file BLI_parameter_pack_utils.hh.

◆ Mutex

using blender::Mutex = std::mutex

Use std::mutex as a fallback when compiling without TBB.

Definition at line 47 of file BLI_mutex.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:

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 1368 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 945 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 1152 of file BLI_vector.hh.

◆ RawVectorSet

template<typename Key, int64_t InlineBufferCapacity = 4, typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultVectorSetSlot<Key>::type>
using blender::RawVectorSet
Initial value:

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 1104 of file BLI_vector_set.hh.

◆ short2

using blender::short2 = blender::VecBase<int16_t, 2>

Definition at line 609 of file BLI_math_vector_types.hh.

◆ short3

using blender::short3 = blender::VecBase<int16_t, 3>

Definition at line 610 of file BLI_math_vector_types.hh.

◆ short4

using blender::short4 = blender::VecBase<int16_t, 4>

Definition at line 611 of file BLI_math_vector_types.hh.

◆ uchar2

using blender::uchar2 = blender::VecBase<uint8_t, 2>

Definition at line 597 of file BLI_math_vector_types.hh.

◆ uchar3

using blender::uchar3 = blender::VecBase<uint8_t, 3>

Definition at line 598 of file BLI_math_vector_types.hh.

◆ uchar4

using blender::uchar4 = blender::VecBase<uint8_t, 4>

Definition at line 599 of file BLI_math_vector_types.hh.

◆ uint2

using blender::uint2 = VecBase<uint32_t, 2>

Definition at line 605 of file BLI_math_vector_types.hh.

◆ uint3

using blender::uint3 = VecBase<uint32_t, 3>

Definition at line 606 of file BLI_math_vector_types.hh.

◆ uint4

using blender::uint4 = VecBase<uint32_t, 4>

Definition at line 607 of file BLI_math_vector_types.hh.

◆ ushort2

using blender::ushort2 = VecBase<uint16_t, 2>

Definition at line 613 of file BLI_math_vector_types.hh.

◆ ushort3

using blender::ushort3 = blender::VecBase<uint16_t, 3>

Definition at line 614 of file BLI_math_vector_types.hh.

◆ ushort4

using blender::ushort4 = blender::VecBase<uint16_t, 4>

Definition at line 615 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;
BLI_color_convert_to_scene_linear(theme_color).premultiply_alpha();
ColorTheme4< uint8_t > ColorTheme4b

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 69 of file BLI_color_types.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 77 of file BLI_color_types.hh.

Function Documentation

◆ add_collection_relation()

◆ add_data_block_items_writeback()

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 1692 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()

bool blender::anything_showing_through ( PointerRNA * ptr)
static

Definition at line 447 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()

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()

◆ bake_panel_draw()

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

◆ blend_read() [1/27]

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

Definition at line 868 of file MOD_lineart.cc.

References GreasePencilLineartModifierData::runtime.

◆ blend_read() [2/27]

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

◆ blend_read() [3/27]

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

◆ blend_read() [4/27]

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

◆ blend_read() [5/27]

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

◆ blend_read() [6/27]

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

◆ blend_read() [7/27]

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

◆ blend_read() [8/27]

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

◆ blend_read() [9/27]

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

◆ blend_read() [10/27]

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

◆ blend_read() [11/27]

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

◆ blend_read() [12/27]

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

◆ blend_read() [13/27]

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

◆ blend_read() [14/27]

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

◆ blend_read() [15/27]

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

◆ blend_read() [16/27]

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

◆ blend_read() [17/27]

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

◆ blend_read() [18/27]

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

◆ blend_read() [19/27]

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

◆ blend_read() [20/27]

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

◆ blend_read() [21/27]

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

◆ blend_read() [22/27]

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

◆ blend_read() [23/27]

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

◆ blend_read() [24/27]

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

◆ blend_read() [25/27]

◆ blend_read() [26/27]

◆ blend_read() [27/27]

◆ blend_write() [1/27]

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

◆ blend_write() [2/27]

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

◆ blend_write() [3/27]

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

◆ blend_write() [4/27]

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

◆ blend_write() [5/27]

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

◆ blend_write() [6/27]

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

◆ blend_write() [7/27]

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

◆ blend_write() [8/27]

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

◆ blend_write() [9/27]

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

◆ blend_write() [10/27]

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

◆ blend_write() [11/27]

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

◆ blend_write() [12/27]

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

◆ blend_write() [13/27]

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

◆ blend_write() [14/27]

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

◆ blend_write() [15/27]

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

◆ blend_write() [16/27]

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

◆ blend_write() [17/27]

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

◆ blend_write() [18/27]

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

◆ blend_write() [19/27]

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

◆ blend_write() [20/27]

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

◆ blend_write() [21/27]

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

◆ blend_write() [22/27]

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

◆ blend_write() [23/27]

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

◆ blend_write() [24/27]

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

◆ blend_write() [25/27]

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

◆ blend_write() [26/27]

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

Definition at line 861 of file MOD_lineart.cc.

References BLO_write_struct.

◆ blend_write() [27/27]

◆ BLI_bvhtree_range_query_cpp()

void blender::BLI_bvhtree_range_query_cpp ( const BVHTree & tree,
const float3 co,
float radius,
BVHTree_RangeQuery_CPP fn )
inline

◆ BLI_bvhtree_ray_cast_all_cpp()

void blender::BLI_bvhtree_ray_cast_all_cpp ( const BVHTree & tree,
const float3 co,
const float3 dir,
float radius,
float hit_dist,
BVHTree_RayCastCallback_CPP fn )
inline

◆ bm_edge_table_build()

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()

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()

◆ bm_to_mesh_faces()

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< bool > uv_select_face,
MutableSpan< int > material_indices )
static

◆ bm_to_mesh_loops()

◆ bm_to_mesh_verts()

◆ bm_vert_table_build()

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()

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

Definition at line 1224 of file bmesh_mesh_convert.cc.

References CustomData_data_copy_value(), and POINTER_OFFSET.

◆ build_concurrent()

◆ build_drawing()

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 int frame_duration,
const float scene_fps )
static

Definition at line 605 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::IndexMask::from_bools(), get_build_factor(), blender::modifier::greasepencil::get_filtered_stroke_mask(), GreasePencilBuildModifierData::influence, blender::bke::CurvesGeometry::is_empty(), 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, blender::index_mask::IndexMask::to_bools(), and GreasePencilBuildModifierData::transition.

Referenced by modify_geometry_set().

◆ build_sequential()

◆ calc_min_radius_v3v3()

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 111 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()

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

◆ calculate_out_segment_id()

ccl_device float blender::calculate_out_segment_id ( float r_gon_sides,
float2 coord )

◆ calculate_out_variables()

ccl_device float4 blender::calculate_out_variables ( bool calculate_r_gon_parameter_field,
bool calculate_max_unit_parameter,
bool normalize_r_gon_parameter,
float r_gon_sides,
float r_gon_roundness,
float2 coord )

◆ calculate_out_variables_full_roundness_irregular_circular()

ccl_device float4 blender::calculate_out_variables_full_roundness_irregular_circular ( bool calculate_r_gon_parameter_field,
bool normalize_r_gon_parameter,
float r_gon_sides,
float2 coord,
float l_coord )
static

Definition at line 119 of file radial_tiling_shared.cc.

◆ calculate_out_variables_irregular_circular()

ccl_device float4 blender::calculate_out_variables_irregular_circular ( bool calculate_r_gon_parameter_field,
bool calculate_max_unit_parameter,
bool normalize_r_gon_parameter,
float r_gon_sides,
float r_gon_roundness,
float2 coord,
float l_coord )
static

Definition at line 322 of file radial_tiling_shared.cc.

◆ calculate_plane()

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

Definition at line 74 of file MOD_grease_pencil_envelope.cc.

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

Referenced by find_envelope().

◆ calculate_repetitions()

◆ 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 54 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 )
constexpr

◆ ceil_division_by_fraction()

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

Definition at line 40 of file BLI_hash_tables.hh.

References ceil_division(), and x.

Referenced by total_slot_amount_for_usable_slots().

◆ chaining_panel_draw()

◆ check_property_socket_sync()

void blender::check_property_socket_sync ( const Object * ob,
const IDProperty * properties,
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 905 of file MOD_nodes.cc.

References BKE_modifier_set_error(), ELEM, i, blender::nodes::id_property_type_matches_socket(), bNodeTreeInterfaceSocket::identifier, IDP_GetPropertyFromGroup_null(), bNodeTreeInterfaceSocket::name, NodesModifierData::node_group, bNodeTree::runtime, SOCK_BUNDLE, SOCK_CLOSURE, SOCK_CUSTOM, SOCK_GEOMETRY, SOCK_MATRIX, and blender::bke::bNodeSocketType::type.

Referenced by modifyGeometry().

◆ composition_panel_draw()

◆ copy_assign_container()

◆ copy_data() [1/27]

◆ copy_data() [2/27]

◆ copy_data() [3/27]

◆ copy_data() [4/27]

◆ copy_data() [5/27]

◆ copy_data() [6/27]

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

◆ copy_data() [7/27]

◆ copy_data() [8/27]

◆ copy_data() [9/27]

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

◆ copy_data() [10/27]

◆ copy_data() [11/27]

◆ copy_data() [12/27]

◆ copy_data() [13/27]

◆ copy_data() [14/27]

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

◆ copy_data() [15/27]

◆ copy_data() [16/27]

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]

◆ copy_data() [20/27]

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

◆ copy_data() [21/27]

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

◆ copy_data() [22/27]

◆ copy_data() [23/27]

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

◆ copy_data() [24/27]

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

◆ copy_data() [25/27]

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()

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 426 of file MOD_grease_pencil_envelope.cc.

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

Referenced by create_envelope_strokes_for_curve().

◆ create_envelope_strokes()

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

Definition at line 500 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(), Span< T >::drop_back(), blender::array_utils::fill_index_range(), blender::bke::SpanAttributeWriter< T >::finish(), blender::index_mask::IndexMask::foreach_index(), blender::VArray< T >::from_single(), blender::bke::gather_attributes(), i, 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::IndexRange::size(), 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()

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()

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

◆ curve_spread()

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)
constexpr

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]

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 97 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, 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, i, Object::id, blender::IndexRange::index_range(), GreasePencilNoiseModifierData::influence, blender::math::interpolate(), blender::bke::CurvesGeometry::is_empty(), blender::index_mask::IndexMask::is_empty(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), 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, blender::bke::CurvesGeometry::points_by_curve(), blender::bke::CurvesGeometry::positions_for_write(), blender::bke::greasepencil::Drawing::radii_for_write(), GreasePencilNoiseModifierData::seed, seed, blender::IndexRange::size(), 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]

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

Definition at line 105 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(), blender::bke::CurvesGeometry::curves_num(), blender::bke::CurvesGeometry::curves_range(), blender::bke::CurvesGeometry::cyclic(), GreasePencilLengthModifierData::end_fac, blender::bke::CurvesGeometry::ensure_evaluated_lengths(), blender::modifier::greasepencil::ensure_no_bezier_curves(), blender::geometry::extend_curves(), blender::Array< T, InlineBufferCapacity, Allocator >::fill(), GreasePencilLengthModifierData::flag, blender::math::floor(), blender::math::fract(), blender::IndexMask::from_bools(), blender::VArray< T >::from_single(), blender::VArray< T >::from_span(), 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, i, Object::id, GreasePencilLengthModifierData::influence, blender::bke::CurvesGeometry::is_empty(), 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, blender::bke::CurvesGeometry::remove_curves(), GreasePencilLengthModifierData::seed, seed, GreasePencilLengthModifierData::segment_influence, sin, GreasePencilLengthModifierData::start_fac, GreasePencilLengthModifierData::step, blender::bke::greasepencil::Drawing::strokes_for_write(), table_sample(), and blender::geometry::trim_curves().

◆ deform_drawing_as_envelope()

◆ depends_on_time() [1/2]

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

◆ depends_on_time() [2/2]

◆ 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 1344 of file BLI_virtual_array.hh.

References call_with_devirtualized_parameters(), and devirtualize_varray().

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(), devirtualize_varray(), 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

◆ duplicate_strokes()

◆ edge_types_panel_draw()

◆ ensure_bake_loaded()

◆ ensure_shrinkwrap_cache_data()

◆ face_mark_panel_draw()

◆ face_mark_panel_draw_header()

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

◆ fill_scene_range_chain()

◆ fill_scene_range_fixed()

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()

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()

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()

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()

◆ filter_transpose_delta()

void blender::filter_transpose_delta ( const uint8_t * src,
uint8_t * dst,
size_t items_num,
size_t item_size )

Transforms array of data, making it more compressible, especially if data is smoothly varying. Typically you do this before compression with a general purpose compressor.

Transposes input array so that output data is first byte of all items, then 2nd byte of all items, etc. And successive items within each "byte stream" are stored as difference from previous byte.

See https://aras-p.info/blog/2023/03/01/Float-Compression-7-More-Filtering-Optimization/ for details.

Definition at line 13 of file compression.cc.

References v.

Referenced by blender::ed::sculpt_paint::undo::compression::filter_compress(), ptcache_file_compressed_write(), TEST(), and TEST().

◆ find_closest_point()

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

◆ find_dash_segment()

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

◆ find_dependencies_from_settings()

void blender::find_dependencies_from_settings ( const NodesModifierSettings & settings,
nodes::GeometryNodesEvalDependencies & deps )
static

◆ find_envelope()

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()

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 135 of file MOD_grease_pencil_time.cc.

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

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

◆ find_plane_intersection()

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 81 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()

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 783 of file MOD_nodes.cc.

References 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()

◆ floor_division()

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

Definition at line 33 of file BLI_hash_tables.hh.

References BLI_assert, x, 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 )
constexpr

Definition at line 47 of file BLI_hash_tables.hh.

References x.

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

◆ floored_modulo()

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

Definition at line 101 of file MOD_grease_pencil_dash.cc.

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

Referenced by get_pattern_info().

◆ foreach_dash()

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 169 of file MOD_grease_pencil_dash.cc.

References BLI_assert, blender::PatternInfo::cyclic, find_dash_segment(), i, blender::IndexRange::is_empty(), 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]

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

◆ foreach_ID_link() [2/27]

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

◆ foreach_ID_link() [3/27]

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

◆ foreach_ID_link() [4/27]

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

◆ foreach_ID_link() [5/27]

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

◆ foreach_ID_link() [6/27]

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

◆ foreach_ID_link() [7/27]

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

◆ foreach_ID_link() [8/27]

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

◆ foreach_ID_link() [9/27]

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

◆ foreach_ID_link() [10/27]

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

◆ foreach_ID_link() [11/27]

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

◆ foreach_ID_link() [12/27]

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

◆ foreach_ID_link() [13/27]

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

◆ foreach_ID_link() [14/27]

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

◆ foreach_ID_link() [15/27]

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

◆ foreach_ID_link() [16/27]

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

◆ foreach_ID_link() [17/27]

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

◆ foreach_ID_link() [18/27]

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

◆ foreach_ID_link() [19/27]

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

◆ foreach_ID_link() [20/27]

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

◆ foreach_ID_link() [21/27]

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

◆ foreach_ID_link() [22/27]

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

◆ foreach_ID_link() [23/27]

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

◆ foreach_ID_link() [24/27]

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()

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

◆ foreach_working_space_color()

void blender::foreach_working_space_color ( ModifierData * md,
const IDTypeForeachColorFunctionCallback & fn )
static

◆ 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 659 of file BLI_string_ref.hh.

References str.

◆ free_data() [1/27]

◆ free_data() [2/27]

void blender::free_data ( ModifierData * md)
static

◆ free_data() [3/27]

void blender::free_data ( ModifierData * md)
static

◆ free_data() [4/27]

void blender::free_data ( ModifierData * md)
static

◆ free_data() [5/27]

void blender::free_data ( ModifierData * md)
static

◆ free_data() [6/27]

void blender::free_data ( ModifierData * md)
static

◆ free_data() [7/27]

void blender::free_data ( ModifierData * md)
static

◆ free_data() [8/27]

void blender::free_data ( ModifierData * md)
static

◆ free_data() [9/27]

void blender::free_data ( ModifierData * md)
static

◆ free_data() [10/27]

void blender::free_data ( ModifierData * md)
static

◆ free_data() [11/27]

void blender::free_data ( ModifierData * md)
static

◆ free_data() [12/27]

void blender::free_data ( ModifierData * md)
static

◆ free_data() [13/27]

void blender::free_data ( ModifierData * md)
static

◆ free_data() [14/27]

void blender::free_data ( ModifierData * md)
static

◆ free_data() [15/27]

void blender::free_data ( ModifierData * md)
static

◆ free_data() [16/27]

void blender::free_data ( ModifierData * md)
static

◆ free_data() [17/27]

void blender::free_data ( ModifierData * md)
static

◆ free_data() [18/27]

◆ free_data() [19/27]

◆ free_data() [20/27]

void blender::free_data ( ModifierData * md)
static

◆ free_data() [21/27]

◆ free_data() [22/27]

void blender::free_data ( ModifierData * md)
static

◆ free_data() [23/27]

void blender::free_data ( ModifierData * md)
static

◆ free_data() [24/27]

◆ free_data() [25/27]

void blender::free_data ( ModifierData * md)
static

◆ free_data() [26/27]

void blender::free_data ( ModifierData * md)
static

Definition at line 100 of file MOD_lineart.cc.

References GreasePencilLineartModifierData::runtime.

◆ free_data() [27/27]

◆ generate_curves()

void blender::generate_curves ( GreasePencilMultiModifierData & mmd,
const ModifierEvalContext & ctx,
Drawing & drawing )
static

Definition at line 126 of file MOD_grease_pencil_multiply.cc.

References blender::Array< T, InlineBufferCapacity, Allocator >::as_span(), blender::bke::CurvesGeometry::attributes_for_write(), blender::index_mask::IndexMask::complement(), blender::math::cross(), blender::bke::greasepencil::Drawing::curve_plane_normals(), blender::bke::CurvesGeometry::curves_range(), distance(), GreasePencilMultiModifierData::distance, duplicate_strokes(), GreasePencilMultiModifierData::duplications, blender::bke::CurvesGeometry::evaluated_tangents(), fabsf, GreasePencilMultiModifierData::fading_center, GreasePencilMultiModifierData::fading_opacity, GreasePencilMultiModifierData::fading_thickness, GreasePencilMultiModifierData::flag, float, blender::modifier::greasepencil::get_filtered_stroke_mask(), i, blender::MutableSpan< T >::index_range(), GreasePencilMultiModifierData::influence, blender::index_mask::IndexMask::is_empty(), blender::math::length(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), blender::bke::attribute_math::mix2(), MOD_GREASE_PENCIL_MULTIPLY_ENABLE_FADING, normals, ModifierEvalContext::object, GreasePencilMultiModifierData::offset, blender::threading::parallel_for(), blender::bke::Point, blender::bke::CurvesGeometry::points_by_curve(), blender::bke::CurvesGeometry::positions_for_write(), blender::MutableSpan< T >::slice(), blender::bke::SpanAttributeWriter< T >::span, blender::bke::greasepencil::Drawing::strokes_for_write(), and blender::math::to_scale().

Referenced by modify_geometry_set().

◆ generate_strokes()

◆ get_array_matrix()

◆ get_bake_frame_indices()

◆ get_base_color()

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

◆ get_build_factor()

float blender::get_build_factor ( const GreasePencilBuildTimeMode time_mode,
const int current_frame,
const int start_frame,
const int frame_duration,
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()

template<typename T, typename... Args>
uint64_t blender::get_default_hash ( const T & v,
const Args &... args )
inline

Definition at line 233 of file BLI_hash.hh.

References blender::detail::get_default_hash_array(), T, and v.

Referenced by BKE_modifiers_persistent_uid_init(), BKE_tracking_camera_distortion_hash(), BKE_viewer_path_elem_hash(), BKE_viewer_path_hash(), blender::animrig::Channelbag::fcurve_create_many(), 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::NodeLinkKey::hash(), blender::bke::NormalFieldInput::hash(), blender::bke::outliner::treehash::TreeStoreElemKey::hash(), blender::bke::ZoneRelation::hash(), blender::compositor::BokehKernelKey::hash(), blender::compositor::CachedImageKey::hash(), blender::compositor::CachedMaskKey::hash(), blender::compositor::CachedShaderKey::hash(), blender::compositor::DericheGaussianCoefficientsKey::hash(), blender::compositor::DistortionGridKey::hash(), blender::compositor::FogGlowKernelKey::hash(), blender::compositor::ImageCoordinatesKey::hash(), blender::compositor::KeyingScreenKey::hash(), blender::compositor::MorphologicalDistanceFeatherWeightsKey::hash(), blender::compositor::OCIOColorSpaceConversionShaderKey::hash(), blender::compositor::OCIOToDisplayShaderKey::hash(), blender::compositor::SymmetricBlurWeightsKey::hash(), blender::compositor::SymmetricSeparableBlurWeightsKey::hash(), blender::compositor::VanVlietGaussianCoefficientsKey::hash(), blender::CPPType::hash(), blender::deg::ComponentNode::OperationIDKey::hash(), blender::deg::IDNode::ComponentIDKey::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::GenericStringKey::hash(), blender::ImplicitSharingPtr< GeometryComponent >::hash(), blender::io::ObjectIdentifier::hash(), blender::io::ply::uv_vertex_key::hash(), blender::locale::MessageKey::hash(), blender::locale::MessageKeyRef::hash(), blender::memory_cache::LoadFileKey::hash(), blender::memory_cache::tests::GenericIntKey::hash(), blender::nodes::DNode::hash(), blender::nodes::DSocket::hash(), blender::nodes::geo_eval_log::NodeWarning::hash(), blender::nodes::materialx::NodeGraph::NodeKey::hash(), blender::nodes::MenuValue::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_field_average_cc::FieldAverageInput::hash(), blender::nodes::node_geo_field_min_and_max_cc::FieldMinMaxInput::hash(), blender::nodes::node_geo_field_variance_cc::FieldVarianceInput::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_instance_bounds_cc::InstanceBoundsField::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::node_geo_uv_tangent_cc::TangentFieldInput::hash(), blender::nodes::NodeInContext::hash(), blender::nodes::SocketInContext::hash(), blender::nodes::TreeInContext::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::seq::FinalImageCache::Key::hash(), blender::seq::ThumbnailCache::Request::hash(), blender::Span< T >::hash(), blender::SubFrame::hash(), GlyphCacheKey::hash(), LibWeakRefKey::hash(), PaintTileKey::hash(), RNAPath::hash(), Uniqueness_Key::hash(), blender::ImplicitSharingPtr< GeometryComponent >::hash_as(), blender::cpp_type_util::hash_cb(), id_name_final_build(), blender::draw::InstancesKey::InstancesKey(), blender::seq::modifier_persistent_uid_init(), blender::draw::ObjectKey::ObjectKey(), blender::CustomIDHash< T, GetIDFn >::operator()(), blender::CustomIDHash< T, GetIDFn >::operator()(), blender::DefaultHash< AssetLibraryReference >::operator()(), blender::DefaultHash< blender::Set< const BMVert * > >::operator()(), blender::DefaultHash< draw::pbvh::AttributeRequest >::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_distance_factor()

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()

◆ get_factor_from_index()

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

◆ get_legacy_stroke_matrix()

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

◆ get_mirror_matrix()

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_pattern_info()

◆ get_rand_matrix()

◆ get_vector_from_self_map()

auto & blender::get_vector_from_self_map ( )
static

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

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

◆ get_vector_from_value_map()

auto & blender::get_vector_from_value_map ( )
static

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

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

◆ hash_string()

◆ hook_falloff()

◆ incircle()

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

◆ incircle_fast()

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

Definition at line 2482 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]

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 )

Definition at line 66 of file BLI_memory_utils.hh.

References T.

Referenced by initialized_relocate_n(), and blender::cpp_type_util::move_assign_cb().

◆ 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(), initialized_move_n(), and T.

◆ 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 2497 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 2503 of file math_boolean.cc.

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

◆ intersection_panel_draw()

◆ is_disabled() [1/11]

◆ is_disabled() [2/11]

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

Definition at line 89 of file MOD_grease_pencil_dash.cc.

◆ is_disabled() [3/11]

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

Definition at line 68 of file MOD_grease_pencil_hook.cc.

◆ is_disabled() [4/11]

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

◆ is_disabled() [5/11]

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

Definition at line 79 of file MOD_grease_pencil_multiply.cc.

◆ is_disabled() [6/11]

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]

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

Definition at line 116 of file MOD_grease_pencil_tint.cc.

References MOD_GREASE_PENCIL_TINT_GRADIENT.

◆ is_disabled() [8/11]

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

◆ is_disabled() [9/11]

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

Definition at line 69 of file MOD_grease_pencil_weight_proximity.cc.

◆ is_disabled() [10/11]

◆ is_disabled() [11/11]

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

Definition at line 280 of file MOD_nodes.cc.

References NodesModifierData::node_group.

◆ is_first_lineart()

◆ is_last_line_art()

◆ 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 T.

◆ listbase_to_vector() [2/2]

◆ logging_enabled()

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

◆ material_mask_panel_draw()

◆ material_mask_panel_draw_header()

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

◆ modify_curves() [1/5]

◆ modify_curves() [2/5]

◆ modify_curves() [3/5]

void blender::modify_curves ( ModifierData & md,
const ModifierEvalContext & ctx,
Drawing & drawing,
bke::GreasePencilDrawingEditHints * edit_hints )
static

◆ 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]

void blender::modify_drawing ( const GreasePencilOutlineModifierData & omd,
const ModifierEvalContext & ctx,
bke::greasepencil::Drawing & drawing,
const float4x4 & viewmat )
static

◆ modify_drawing() [6/8]

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

Definition at line 133 of file MOD_grease_pencil_shrinkwrap.cc.

References GreasePencilShrinkwrapModifierData::aux_target, BKE_object_defgroup_name_index(), GreasePencilShrinkwrapModifierData::cache_data, blender::bke::CurvesGeometry::cyclic(), blender::bke::CurvesGeometry::deform_verts(), blender::modifier::greasepencil::ensure_no_bezier_curves(), GreasePencilModifierInfluenceData::flag, blender::index_mask::IndexMask::foreach_index(), blender::VArray< T >::from_single(), blender::modifier::greasepencil::get_filtered_stroke_mask(), GREASE_PENCIL_INFLUENCE_INVERT_VERTEX_GROUP, GreasePencilShrinkwrapModifierData::influence, blender::Span< T >::is_empty(), GreasePencilShrinkwrapModifierData::keep_dist, ModifierEvalContext::object, params, blender::bke::CurvesGeometry::points_by_curve(), blender::bke::CurvesGeometry::points_num(), blender::bke::CurvesGeometry::positions_for_write(), GreasePencilShrinkwrapModifierData::proj_axis, GreasePencilShrinkwrapModifierData::proj_limit, GreasePencilShrinkwrapModifierData::shrink_mode, GreasePencilShrinkwrapModifierData::shrink_opts, GreasePencilShrinkwrapModifierData::shrink_type, shrinkwrapParams_deform(), blender::MutableSpan< T >::slice(), blender::Span< T >::slice(), blender::geometry::smooth_curve_attribute(), GreasePencilShrinkwrapModifierData::smooth_factor, GreasePencilShrinkwrapModifierData::smooth_step, blender::bke::greasepencil::Drawing::strokes(), blender::bke::greasepencil::Drawing::strokes_for_write(), GreasePencilShrinkwrapModifierData::subsurf_levels, blender::bke::greasepencil::Drawing::tag_positions_changed(), GreasePencilShrinkwrapModifierData::target, and GreasePencilModifierInfluenceData::vertex_group_name.

◆ 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]

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

Definition at line 1950 of file MOD_nodes.cc.

References modifyGeometry().

◆ modify_geometry_set() [26/27]

◆ modify_geometry_set() [27/27]

◆ modify_mesh()

◆ modify_opacity()

◆ modify_softness()

◆ modify_stroke_by_index()

◆ modify_stroke_by_layer()

◆ modify_stroke_by_material()

◆ modify_stroke_color() [1/3]

◆ modify_stroke_color() [2/3]

◆ modify_stroke_color() [3/3]

◆ modify_stroke_random()

◆ modifyGeometry()

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

◆ move_assign_container()

◆ nodes_modifier_bake_destruct()

void blender::nodes_modifier_bake_destruct ( NodesModifierBake * bake,
const bool do_id_user )

◆ 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]

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

Definition at line 85 of file MOD_grease_pencil_noise.cc.

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

◆ noise_table() [2/2]

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

◆ occlusion_panel_draw()

◆ operator!=() [1/3]

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

Definition at line 190 of file uuid.cc.

◆ operator!=() [2/3]

bool blender::operator!= ( const CPPType & a,
const CPPType & b )
inline

Definition at line 462 of file BLI_cpp_type.hh.

References b.

◆ operator!=() [3/3]

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

Definition at line 625 of file BLI_string_ref.hh.

References b.

◆ operator*() [1/12]

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

References b.

◆ operator*() [2/12]

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

References b.

◆ operator*() [3/12]

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

References b.

◆ operator*() [4/12]

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

References b.

◆ 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 72 of file math_matrix.cc.

References A0, A1, A2, b, i, 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 72 of file math_matrix.cc.

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

◆ operator*() [7/12]

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

Definition at line 25 of file math_matrix.cc.

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

◆ operator*() [8/12]

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

Definition at line 25 of file math_matrix.cc.

References A0, A1, A2, b, i, 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, and blender::detail::matrix_mul_impl().

◆ 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, blender::detail::matrix_mul_impl(), and T.

◆ 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, blender::detail::matrix_mul_impl(), and T.

◆ 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, blender::detail::matrix_mul_impl(), and T.

◆ 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 605 of file BLI_string_ref.hh.

References b.

◆ operator<() [1/2]

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

Lexicographic comparison of the UUIDs. Equivalent to string comparison on the formatted UUIDs.

Definition at line 195 of file uuid.cc.

References bUUID::clock_seq_hi_and_reserved, bUUID::clock_seq_low, bUUID::node, bUUID::time_hi_and_version, bUUID::time_low, and bUUID::time_mid.

◆ operator<() [2/2]

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

Definition at line 630 of file BLI_string_ref.hh.

References b.

◆ operator<<() [1/15]

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

◆ operator<<() [2/15]

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

◆ operator<<() [3/15]

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

◆ operator<<() [4/15]

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

◆ operator<<() [5/15]

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

◆ operator<<() [6/15]

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

◆ operator<<() [7/15]

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

◆ operator<<() [8/15]

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

Definition at line 51 of file compute_context.cc.

◆ operator<<() [9/15]

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

Definition at line 27 of file compute_context.cc.

◆ operator<<() [10/15]

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

Definition at line 15 of file BLI_color.cc.

References Premultiplied, and Straight.

◆ operator<<() [11/15]

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

Definition at line 30 of file BLI_color.cc.

References SceneLinear, SceneLinearByteEncoded, and Theme.

◆ operator<<() [12/15]

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

Definition at line 13 of file ordered_edge.cc.

◆ operator<<() [13/15]

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

Definition at line 46 of file index_range.cc.

◆ operator<<() [14/15]

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

Definition at line 16 of file string_ref.cc.

◆ operator<<() [15/15]

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

Definition at line 22 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 640 of file BLI_string_ref.hh.

References b.

◆ operator==() [1/4]

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

Definition at line 185 of file uuid.cc.

References BLI_uuid_equal().

◆ operator==() [2/4]

bool blender::operator== ( const CPPType & a,
const CPPType & b )
inline

Two types only compare equal when their pointer is equal. No two instances of CPPType for the same C++ type should be created.

Definition at line 457 of file BLI_cpp_type.hh.

References b.

Referenced by blender::render::TilesHighlight::~TilesHighlight().

◆ operator==() [3/4]

bool blender::operator== ( const SessionUID & lhs,
const SessionUID & rhs )
inline

Definition at line 40 of file BLI_session_uid.h.

References BLI_session_uid_is_equal(), and rhs.

◆ operator==() [4/4]

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

This does not compare StringRef and std::string_view, because of ambiguous overloads. This is not a problem when #std::string_view is only used at API boundaries. To compare a StringRef and a #std::string_view, one should convert the #std::string_view to StringRef (which is very cheap). Ideally, we only use StringRef in our code to avoid this problem altogether.

NOTE: these functions are also suitable for StringRefNull comparisons, as these are implicitly converted to StringRef by the compiler.

Definition at line 620 of file BLI_string_ref.hh.

References b.

◆ operator>()

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

Definition at line 635 of file BLI_string_ref.hh.

References b.

◆ operator>=()

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

Definition at line 645 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 2467 of file math_boolean.cc.

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

Referenced by blender::meshintersect::filtered_orient2d< double >().

◆ orient2d_fast()

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

Definition at line 2472 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 2487 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 2492 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]

◆ 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]

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

◆ panel_register() [1/27]

void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [2/27]

void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [3/27]

void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [4/27]

void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [5/27]

◆ panel_register() [6/27]

void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [7/27]

void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [8/27]

void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [9/27]

void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [10/27]

void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [11/27]

void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [12/27]

void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [13/27]

void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [14/27]

void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [15/27]

void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [16/27]

void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [17/27]

void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [18/27]

void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [19/27]

void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [20/27]

void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [21/27]

void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [22/27]

◆ panel_register() [23/27]

void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [24/27]

void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [25/27]

void blender::panel_register ( ARegionType * region_type)
static

◆ panel_register() [26/27]

◆ panel_register() [27/27]

void blender::panel_register ( ARegionType * region_type)
static

Definition at line 2021 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.

References begin().

◆ pcg_rand()

uint32_t blender::pcg_rand ( uint32_t & rng_state)
static

Definition at line 26 of file BLI_compression_test.cc.

References state.

Referenced by TEST().

◆ point_counts_to_keep_concurrent()

◆ points_info_sequential()

◆ 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()

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()

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

Definition at line 2290 of file MOD_nodes.cc.

References CD_MASK_MDEFORMVERT, CD_MASK_PROP_ALL, and CustomData_MeshMasks::vmask.

◆ rotate_by_angle()

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

Definition at line 122 of file MOD_grease_pencil_texture.cc.

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

Referenced by write_fill_transforms().

◆ save_shared_attribute()

◆ segment_list_item_draw() [1/2]

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

Definition at line 464 of file MOD_grease_pencil_dash.cc.

References uiLayout::prop(), uiLayout::row(), and UI_ITEM_R_NO_BG.

Referenced by panel_register().

◆ segment_list_item_draw() [2/2]

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

Definition at line 619 of file MOD_grease_pencil_time.cc.

References uiLayout::prop(), uiLayout::row(), and UI_ITEM_R_NO_BG.

◆ sgn()

int blender::sgn ( double x)
static

◆ simplify_drawing()

void blender::simplify_drawing ( const GreasePencilSimplifyModifierData & mmd,
const Object & ob,
bke::greasepencil::Drawing & drawing )
static

Definition at line 99 of file MOD_grease_pencil_simplify.cc.

References blender::IndexRange::contains(), blender::bke::curves_copy_point_selection(), blender::ed::greasepencil::curves_merge_by_distance(), blender::bke::CurvesGeometry::curves_num(), blender::bke::CurvesGeometry::cyclic(), GreasePencilSimplifyModifierData::distance, blender::IndexRange::drop_back(), blender::IndexRange::drop_front(), blender::modifier::greasepencil::ensure_no_bezier_curves(), GreasePencilSimplifyModifierData::factor, blender::IndexMask::from_predicate(), blender::VArray< T >::from_single(), blender::modifier::greasepencil::get_filtered_stroke_mask(), i, GreasePencilSimplifyModifierData::influence, blender::index_mask::IndexMask::is_empty(), GreasePencilSimplifyModifierData::length, MOD_GREASE_PENCIL_SIMPLIFY_ADAPTIVE, MOD_GREASE_PENCIL_SIMPLIFY_FIXED, MOD_GREASE_PENCIL_SIMPLIFY_MERGE, MOD_GREASE_PENCIL_SIMPLIFY_SAMPLE, GreasePencilSimplifyModifierData::mode, blender::bke::CurvesGeometry::point_to_curve_map(), blender::bke::CurvesGeometry::points_by_curve(), blender::bke::CurvesGeometry::points_num(), blender::bke::CurvesGeometry::points_range(), blender::bke::CurvesGeometry::positions(), blender::bke::CurvesGeometry::remove_points(), blender::geometry::resample_to_length(), blender::geometry::simplify_curve_attribute(), simplify_fixed(), blender::index_mask::IndexMask::size(), GreasePencilSimplifyModifierData::step, blender::bke::greasepencil::Drawing::strokes(), blender::bke::greasepencil::Drawing::strokes_for_write(), and blender::bke::greasepencil::Drawing::tag_topology_changed().

Referenced by modify_geometry_set().

◆ simplify_fixed()

◆ 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 16 of file index_range.cc.

References blender::AlignedIndexRanges::aligned, BLI_assert, mask(), blender::IndexRange::one_after_last(), blender::AlignedIndexRanges::prefix, blender::IndexRange::size(), blender::IndexRange::start(), 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()

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

◆ target_vertex_group_available() [1/2]

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

Definition at line 101 of file MOD_grease_pencil_weight_angle.cc.

References BKE_defgroup_name_index(), and name.

Referenced by modify_geometry_set().

◆ target_vertex_group_available() [2/2]

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

Definition at line 144 of file MOD_grease_pencil_weight_proximity.cc.

References BKE_defgroup_name_index(), and name.

◆ TEST() [1/4]

blender::TEST ( BLI_string_utils ,
BLI_string_replace  )

Definition at line 15 of file BLI_string_utils_test.cc.

References BLI_string_replace(), and EXPECT_EQ().

◆ TEST() [2/4]

◆ TEST() [3/4]

blender::TEST ( compression ,
filter_transpose_delta  )

◆ TEST() [4/4]

blender::TEST ( compression ,
filter_transpose_delta_stress  )

◆ 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 )
constexpr

Definition at line 54 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()

void blender::try_add_side_effect_node ( const ModifierEvalContext & ctx,
const ComputeContext & final_compute_context,
const int final_node_id,
const NodesModifierData & nmd,
nodes::GeoNodesSideEffectNodes & r_side_effect_nodes )
static

◆ try_find_baked_data()

◆ unfilter_transpose_delta()

void blender::unfilter_transpose_delta ( const uint8_t * src,
uint8_t * dst,
size_t items_num,
size_t item_size )

Reverses the data transform done by unfilter_transpose_delta. Typically you do this after decompression with a general purpose compressor.

Definition at line 29 of file compression.cc.

References v.

Referenced by blender::ed::sculpt_paint::undo::compression::filter_decompress(), ptcache_file_compressed_read(), TEST(), and TEST().

◆ 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()

◆ 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 25 of file BLI_unroll.hh.

References unroll_impl().

Referenced by blender::math::adjoint(), blender::MatBase< T, SrcNumCol, SrcNumRow, SrcAlignment >::all(), blender::MatBase< T, SrcNumCol, SrcNumRow, SrcAlignment >::diagonal(), blender::math::from_scale(), blender::fixed_width_int::generic_add(), blender::fixed_width_int::generic_sub(), blender::MatBase< T, SrcNumCol, SrcNumRow, SrcAlignment >::hash(), blender::math::interpolate_linear(), blender::fixed_width_int::is_zero(), blender::fixed_width_int::is_zero(), blender::MatBase< T, SrcNumCol, SrcNumRow, SrcAlignment >::MatBase(), blender::MatBase< T, SrcNumCol, SrcNumRow, SrcAlignment >::MatBase(), blender::MatBase< T, SrcNumCol, SrcNumRow, SrcAlignment >::MatBase(), blender::MatBase< T, SrcNumCol, SrcNumRow, SrcAlignment >::MatBase(), blender::detail::matrix_mul_impl(), blender::math::normalize(), blender::math::normalize(), blender::math::normalize_and_get_size(), blender::math::normalize_and_get_size(), blender::MatView< float, 4, 4, 4, 4, 0, 0, alignof(float)>::operator MatT(), blender::MatBase< T, SrcNumCol, SrcNumRow, SrcAlignment >::operator*, blender::MatBase< T, SrcNumCol, SrcNumRow, SrcAlignment >::operator*, blender::MatBase< T, SrcNumCol, SrcNumRow, SrcAlignment >::operator*, blender::MatView< float, 4, 4, 4, 4, 0, 0, alignof(float)>::operator*, blender::MatView< float, 4, 4, 4, 4, 0, 0, alignof(float)>::operator*, blender::MatView< float, 4, 4, 4, 4, 0, 0, alignof(float)>::operator*, blender::MutableMatView< float, 4, 4, 4, 4, 0, 0, alignof(float)>::operator*, blender::MutableMatView< float, 4, 4, 4, 4, 0, 0, alignof(float)>::operator*, blender::MatBase< T, SrcNumCol, SrcNumRow, SrcAlignment >::operator*=(), blender::MutableMatView< float, 4, 4, 4, 4, 0, 0, alignof(float)>::operator*=(), blender::MatBase< T, SrcNumCol, SrcNumRow, SrcAlignment >::operator+, blender::MatBase< T, SrcNumCol, SrcNumRow, SrcAlignment >::operator+, blender::MatView< float, 4, 4, 4, 4, 0, 0, alignof(float)>::operator+, blender::MatBase< T, SrcNumCol, SrcNumRow, SrcAlignment >::operator+=(), blender::MatBase< T, SrcNumCol, SrcNumRow, SrcAlignment >::operator+=(), blender::MutableMatView< float, 4, 4, 4, 4, 0, 0, alignof(float)>::operator+=(), blender::MutableMatView< float, 4, 4, 4, 4, 0, 0, alignof(float)>::operator+=(), blender::MatBase< T, SrcNumCol, SrcNumRow, SrcAlignment >::operator-, blender::MatBase< T, SrcNumCol, SrcNumRow, SrcAlignment >::operator-, blender::MatBase< T, SrcNumCol, SrcNumRow, SrcAlignment >::operator-, blender::MatBase< T, SrcNumCol, SrcNumRow, SrcAlignment >::operator-, blender::MatView< float, 4, 4, 4, 4, 0, 0, alignof(float)>::operator-, blender::MatView< float, 4, 4, 4, 4, 0, 0, alignof(float)>::operator-, blender::MatView< float, 4, 4, 4, 4, 0, 0, alignof(float)>::operator-, blender::MatView< float, 4, 4, 4, 4, 0, 0, alignof(float)>::operator-, blender::MatView< float, 4, 4, 4, 4, 0, 0, alignof(float)>::operator-, blender::MatBase< T, SrcNumCol, SrcNumRow, SrcAlignment >::operator-=(), blender::MatBase< T, SrcNumCol, SrcNumRow, SrcAlignment >::operator-=(), blender::MutableMatView< float, 4, 4, 4, 4, 0, 0, alignof(float)>::operator-=(), blender::MutableMatView< float, 4, 4, 4, 4, 0, 0, alignof(float)>::operator-=(), blender::MutableMatView< float, 4, 4, 4, 4, 0, 0, alignof(float)>::operator=(), blender::math::pseudo_invert(), 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 15 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()

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

◆ update_id_properties_from_node_group()

◆ 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

◆ GP_BUILD_TIME_DEFAULT_STROKES

float blender::GP_BUILD_TIME_DEFAULT_STROKES = 1.0f
constexpr

Definition at line 44 of file MOD_grease_pencil_build.cc.

Referenced by get_factor_from_draw_speed().

◆ 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_ImplicitSharingPtr_strong_v

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

◆ is_ImplicitSharingPtr_strong_v< ImplicitSharingPtr< T, true > >

template<typename T>
bool blender::is_ImplicitSharingPtr_strong_v< ImplicitSharingPtr< T, true > > = true
staticconstexpr

Definition at line 226 of file BLI_implicit_sharing_ptr.hh.

◆ is_same_any_v

◆ 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<std::remove_pointer_t<From>, std::remove_const_t<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 581 of file BLI_generic_virtual_array.hh.

◆ is_trivial_extended_v< GVArrayImpl_For_SingleValueRef_final >

Definition at line 622 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 505 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 371 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 290 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>
constexpr bool is_trivial_extended_v

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:
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 1091 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 1092 of file BLI_virtual_array.hh.

◆ is_Vector_v

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

Definition at line 1154 of file BLI_vector.hh.

◆ is_Vector_v< Vector< T, InlineBufferCapacity, Allocator > >

template<typename T, int64_t InlineBufferCapacity, typename Allocator>
bool blender::is_Vector_v< Vector< T, InlineBufferCapacity, Allocator > > = true
staticconstexpr

Definition at line 1156 of file BLI_vector.hh.

◆ is_VMutableArray_v

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

Definition at line 1094 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 1095 of file BLI_virtual_array.hh.

◆ unlimited_radius

const float blender::unlimited_radius = FLT_MAX
static

Definition at line 94 of file MOD_grease_pencil_envelope.cc.

Referenced by calc_min_radius_v3v3(), and calc_radius_limit().