Add support for attributes storage in simulation state #107133

Merged

32 Commits

Author SHA1 Message Date
Lukas Tönne df8e9838f0 Merge branch 'geometry-nodes-simulation' into geometry-nodes-simulation-attribute-support 2023-04-24 17:54:31 +02:00
Lukas Tönne c40bfcdead Merge branch 'geometry-nodes-simulation' into geometry-nodes-simulation-attribute-support 2023-04-24 15:20:30 +02:00
Lukas Tönne f8ffd4f5b8 Functional cast for enum class result checks. 2023-04-24 11:04:44 +02:00
Lukas Tönne cfe957c584 Cleanup: Comments and better description of the input/output copy functions. 2023-04-24 11:02:32 +02:00
Lukas Tönne 4f32d1dbc9 Merge branch 'geometry-nodes-simulation' into geometry-nodes-simulation-attribute-support 2023-04-24 10:38:20 +02:00
Lukas Tönne 75eea532d0 Cleanup: const variables and functional-style cast for enums. 2023-04-21 12:20:24 +02:00
Lukas Tönne ce48300fc6 Extend comment for multi-pass field type propagation. 2023-04-21 12:19:35 +02:00
Lukas Tönne 4dea23a734 Cleanup: Use enum class and a NONE item for the eFieldStateSyncResult. 2023-04-21 12:12:19 +02:00
Lukas Tönne d3a8401d7b Only sync field state for the output sockets. 2023-04-21 10:10:22 +02:00
Lukas Tönne 7d7b631863 Fix propagation of the `is_single` field state. 2023-04-20 18:03:33 +02:00
Lukas Tönne 9a4a331df9 Restore default behavior for GeometrySet simulation state items. 2023-04-20 17:47:21 +02:00
Lukas Tönne 5d3fd6bf4b Merge branch 'geometry-nodes-simulation' into geometry-nodes-simulation-attribute-support 2023-04-20 15:44:40 +02:00
Lukas Tönne 38eb1b7a7f Limit the supported socket types to Geometry and basic data (PODs). 2023-04-20 15:39:11 +02:00
Lukas Tönne 9f0267d215 Use direct accessor method to get sockets. 2023-04-20 14:48:52 +02:00
Lukas Tönne 5eeef12f96 Reverted SimulationStateItem changes and templated copy functions. 2023-04-20 14:36:56 +02:00
Lukas Tönne d17ad3f7fb WIP: use templated item class only for simple data types. 2023-04-20 13:04:09 +02:00
Lukas Tönne e904bac1ca Remove unused comparison operators for SocketFieldState. 2023-04-20 12:28:15 +02:00
Lukas Tönne 3184d3499b Use bNodeSocketType to get CPPTypes for simulation items. 2023-04-20 12:13:51 +02:00
Lukas Tönne dd0fc76ba0 Cleanup: Use enum types and const parameters where possible. 2023-04-20 11:54:45 +02:00
Lukas Tönne c528579b34 Comment on index offset in simulation input node output parameters. 2023-04-20 11:37:49 +02:00
Lukas Tönne dfe18c5112 Cleanup: Clang formatting 2023-04-20 11:28:40 +02:00
Lukas Tönne 695258c4d4 ENUM_OPERATORS for eFieldStateSyncResult to use it as a flag instead of int. 2023-04-20 11:27:46 +02:00
Lukas Tönne aa9c2b11f6 Use backslash style of doxygen syntax. 2023-04-20 11:19:39 +02:00
Lukas Tönne fce480ce1e Merge branch 'geometry-nodes-simulation' into geometry-nodes-simulation-attribute-support 2023-04-20 11:00:57 +02:00
Lukas Tönne 60f1e7fe76 Simplified field state syncing.
Only the `requires_single` flag actually needs propagation.
`is_single` flag remains local to either node, depending on whether
a single-value input is connected or not.
`is_always_single` flag is dependent only on the socket type.
`is_field_source` is always false for the simulation zone sockets.
2023-04-20 10:47:16 +02:00
Lukas Tönne 5681327da9 Fix merge error. 2023-04-19 16:27:09 +02:00
Lukas Tönne a0f113a408 Merge branch 'geometry-nodes-simulation' into geometry-nodes-simulation-attribute-support 2023-04-19 16:00:46 +02:00
Lukas Tönne b5c9acf8c7 Forward propagation of field state including special sim zone dependencies. 2023-04-19 15:38:25 +02:00
Lukas Tönne 15b9a3d099 Modified field state propagation function to include simulation zones.
Simulation input/output dependencies can create dependency cycles that
take several passes to resolve. New passes are only scheduled when
the field state actually changes, so once input and output agree on a
minimum viable field state the updates are complete.
2023-04-19 15:08:12 +02:00
Lukas Tönne 057ccfa22a Add nominal field support to the sockets generated by simulation nodes. 2023-04-19 11:42:19 +02:00
Lukas Tönne 9e58eba968 Support state items with non-geometry types. 2023-04-18 18:48:58 +02:00
Lukas Tönne 98e6fe57f1 Support adding non-geometry sockets to simulation zone items. 2023-04-17 14:36:28 +02:00