Blender V5.0
BKE_bake_geometry_nodes_modifier.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#pragma once
10
11#include "BLI_mutex.hh"
12#include "BLI_sub_frame.hh"
13
14#include "BKE_bake_items.hh"
17
18#include "DNA_modifier_types.h"
19
21struct Main;
22struct Object;
23struct Scene;
24
25namespace blender::bke::bake {
26
38
42struct FrameCache {
49 std::optional<std::variant<std::string, Span<std::byte>>> meta_data_source;
50};
51
60
67
69 std::unique_ptr<MemoryBlobReader> memory_blob_reader;
71 std::optional<std::string> blobs_dir;
72
74 std::unique_ptr<BlobReadSharing> blob_sharing;
76 bool failed_finding_bake = false;
77
79 IndexRange frame_range() const;
80
81 void reset();
82};
83
86
88
90 std::optional<PrevCache> prev_cache;
91
92 void reset();
93};
94
97
98 void reset();
99};
100
117
123
124std::optional<NodesModifierBakeTarget> get_node_bake_target(const Object &object,
125 const NodesModifierData &nmd,
126 int node_id);
127std::optional<BakePath> get_node_bake_path(const Main &bmain,
128 const Object &object,
129 const NodesModifierData &nmd,
130 int node_id);
131std::optional<IndexRange> get_node_bake_frame_range(const Scene &scene,
132 const Object &object,
133 const NodesModifierData &nmd,
134 int node_id);
135std::optional<std::string> get_modifier_bake_path(const Main &bmain,
136 const Object &object,
137 const NodesModifierData &nmd);
138
142std::string get_default_modifier_bake_directory(const Main &bmain,
143 const Object &object,
144 const NodesModifierData &nmd);
145std::string get_default_node_bake_directory(const Main &bmain,
146 const Object &object,
147 const NodesModifierData &nmd,
148 int node_id);
149
150} // namespace blender::bke::bake
std::optional< NodesModifierBakeTarget > get_node_bake_target(const Object &object, const NodesModifierData &nmd, int node_id)
std::string get_default_modifier_bake_directory(const Main &bmain, const Object &object, const NodesModifierData &nmd)
std::optional< BakePath > get_node_bake_path(const Main &bmain, const Object &object, const NodesModifierData &nmd, int node_id)
std::optional< IndexRange > get_node_bake_frame_range(const Scene &scene, const Object &object, const NodesModifierData &nmd, int node_id)
void scene_simulation_states_reset(Scene &scene)
std::optional< std::string > get_modifier_bake_path(const Main &bmain, const Object &object, const NodesModifierData &nmd)
std::string get_default_node_bake_directory(const Main &bmain, const Object &object, const NodesModifierData &nmd, int node_id)
std::mutex Mutex
Definition BLI_mutex.hh:47
std::optional< std::variant< std::string, Span< std::byte > > > meta_data_source
BakeNodeCache * get_bake_node_cache(const int id)
Map< int, std::unique_ptr< SimulationNodeCache > > simulation_cache_by_id
Map< int, std::unique_ptr< BakeNodeCache > > bake_cache_by_id
SimulationNodeCache * get_simulation_node_cache(const int id)
NodeBakeCache * get_node_bake_cache(const int id)
std::unique_ptr< MemoryBlobReader > memory_blob_reader
Vector< std::unique_ptr< FrameCache > > frames
std::unique_ptr< BlobReadSharing > blob_sharing