Geometry Nodes: Add "Corners of Edge" node #107968
|
@ -17,6 +17,8 @@ void BKE_simulation_data_update(struct Depsgraph *depsgraph,
|
||||||
struct Scene *scene,
|
struct Scene *scene,
|
||||||
struct Simulation *simulation);
|
struct Simulation *simulation);
|
||||||
|
|
||||||
|
void BKE_simulation_reset_scene(Scene *scene);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -162,6 +162,8 @@ class ModifierSimulationCache {
|
||||||
CacheState cache_state_ = CacheState::Valid;
|
CacheState cache_state_ = CacheState::Valid;
|
||||||
bool failed_finding_bake_ = false;
|
bool failed_finding_bake_ = false;
|
||||||
|
|
||||||
|
float last_fps_ = 0.0f;
|
||||||
|
|
||||||
void try_discover_bake(StringRefNull absolute_bake_dir);
|
void try_discover_bake(StringRefNull absolute_bake_dir);
|
||||||
|
|
||||||
bool has_state_at_frame(const SubFrame &frame) const;
|
bool has_state_at_frame(const SubFrame &frame) const;
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
|
|
||||||
#include "DNA_ID.h"
|
#include "DNA_ID.h"
|
||||||
#include "DNA_defaults.h"
|
#include "DNA_defaults.h"
|
||||||
|
#include "DNA_modifier_types.h"
|
||||||
#include "DNA_scene_types.h"
|
#include "DNA_scene_types.h"
|
||||||
#include "DNA_simulation_types.h"
|
#include "DNA_simulation_types.h"
|
||||||
|
|
||||||
|
@ -24,15 +25,18 @@
|
||||||
|
|
||||||
#include "BKE_anim_data.h"
|
#include "BKE_anim_data.h"
|
||||||
#include "BKE_animsys.h"
|
#include "BKE_animsys.h"
|
||||||
|
#include "BKE_collection.h"
|
||||||
#include "BKE_customdata.h"
|
#include "BKE_customdata.h"
|
||||||
#include "BKE_idtype.h"
|
#include "BKE_idtype.h"
|
||||||
#include "BKE_lib_id.h"
|
#include "BKE_lib_id.h"
|
||||||
#include "BKE_lib_query.h"
|
#include "BKE_lib_query.h"
|
||||||
#include "BKE_lib_remap.h"
|
#include "BKE_lib_remap.h"
|
||||||
#include "BKE_main.h"
|
#include "BKE_main.h"
|
||||||
|
#include "BKE_modifier.h"
|
||||||
#include "BKE_node.hh"
|
#include "BKE_node.hh"
|
||||||
#include "BKE_pointcache.h"
|
#include "BKE_pointcache.h"
|
||||||
#include "BKE_simulation.h"
|
#include "BKE_simulation.h"
|
||||||
|
#include "BKE_simulation_state.hh"
|
||||||
|
|
||||||
#include "NOD_geometry.h"
|
#include "NOD_geometry.h"
|
||||||
|
|
||||||
|
@ -181,3 +185,17 @@ void BKE_simulation_data_update(Depsgraph * /*depsgraph*/,
|
||||||
Simulation * /*simulation*/)
|
Simulation * /*simulation*/)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BKE_simulation_reset_scene(Scene *scene)
|
||||||
|
{
|
||||||
|
FOREACH_SCENE_OBJECT_BEGIN (scene, ob) {
|
||||||
|
LISTBASE_FOREACH (ModifierData *, md, &ob->modifiers) {
|
||||||
|
if (md->type != eModifierType_Nodes) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
NodesModifierData *nmd = (NodesModifierData *)md;
|
||||||
|
nmd->simulation_cache->reset();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
FOREACH_SCENE_OBJECT_END;
|
||||||
|
}
|
||||||
|
|
|
@ -712,6 +712,7 @@ static const EnumPropertyItem snap_to_items[] = {
|
||||||
# include "BKE_pointcache.h"
|
# include "BKE_pointcache.h"
|
||||||
# include "BKE_scene.h"
|
# include "BKE_scene.h"
|
||||||
# include "BKE_screen.h"
|
# include "BKE_screen.h"
|
||||||
|
# include "BKE_simulation.h"
|
||||||
# include "BKE_unit.h"
|
# include "BKE_unit.h"
|
||||||
|
|
||||||
# include "NOD_composite.h"
|
# include "NOD_composite.h"
|
||||||
|
@ -930,6 +931,8 @@ static void rna_Scene_fps_update(Main *bmain, Scene *UNUSED(active_scene), Point
|
||||||
* however, changes in FPS actually modifies an original skip length,
|
* however, changes in FPS actually modifies an original skip length,
|
||||||
* so this we take care about here. */
|
* so this we take care about here. */
|
||||||
SEQ_sound_update_length(bmain, scene);
|
SEQ_sound_update_length(bmain, scene);
|
||||||
|
/* Reset simulation states because new frame interval doesn't apply anymore. */
|
||||||
|
BKE_simulation_reset_scene(scene);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rna_Scene_listener_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
|
static void rna_Scene_listener_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
|
||||||
|
|
Loading…
Reference in New Issue