Blender V4.3
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
5#pragma once
6
7#include "BLI_sub_frame.hh"
8
9#include "BKE_bake_items.hh"
12
13#include "DNA_modifier_types.h"
14
16struct Main;
17struct Object;
18struct Scene;
19
20namespace blender::bke::bake {
21
22enum class CacheStatus {
24 Valid,
29 Invalid,
31 Baked,
32};
33
37struct FrameCache {
44 std::optional<std::variant<std::string, Span<std::byte>>> meta_data_source;
45};
46
55
62
64 std::unique_ptr<MemoryBlobReader> memory_blob_reader;
66 std::optional<std::string> blobs_dir;
67
69 std::unique_ptr<BlobReadSharing> blob_sharing;
71 bool failed_finding_bake = false;
72
74 IndexRange frame_range() const;
75
76 void reset();
77};
78
81
83
85 std::optional<PrevCache> prev_cache;
86
87 void reset();
88};
89
92
93 void reset();
94};
95
112
118
119std::optional<NodesModifierBakeTarget> get_node_bake_target(const Object &object,
120 const NodesModifierData &nmd,
121 int node_id);
122std::optional<BakePath> get_node_bake_path(const Main &bmain,
123 const Object &object,
124 const NodesModifierData &nmd,
125 int node_id);
126std::optional<IndexRange> get_node_bake_frame_range(const Scene &scene,
127 const Object &object,
128 const NodesModifierData &nmd,
129 int node_id);
130std::optional<std::string> get_modifier_bake_path(const Main &bmain,
131 const Object &object,
132 const NodesModifierData &nmd);
133
137std::string get_default_modifier_bake_directory(const Main &bmain,
138 const Object &object,
139 const NodesModifierData &nmd);
140std::string get_default_node_bake_directory(const Main &bmain,
141 const Object &object,
142 const NodesModifierData &nmd,
143 int node_id);
144
145} // 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::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