57b2948937
WIP changes
2020-08-03 19:05:46 +02:00
9481e660a5
Fixed crash when creating a new particle system with any colliders
2020-06-25 15:55:44 +02:00
e10c28b25f
update comment
2020-06-25 14:30:58 +02:00
de0983f3c4
Use the triangle normal if the hit point lies inside the triangle
2020-06-25 13:24:53 +02:00
34734aeda3
Deduplicated the "nudge particle out of face" code
2020-06-24 19:07:32 +02:00
2ccdf41da6
Clamp bayu weights to prevent extrapolated velocity values
2020-06-24 18:40:42 +02:00
105d94aa2b
Minor clean up
2020-06-24 09:58:44 +02:00
f9ba4d27d8
Added a variable to keep track of delta time collision for colliders
2020-06-22 18:27:52 +02:00
ed69983ec2
Added friction and fixed some issue that were discovered when doing so.
2020-06-22 13:30:22 +02:00
6f78ad7495
Deflection fixes and cleanup
2020-06-18 22:49:46 +02:00
94871abc17
Update velocity calculation to be better and move the normal constraint check
2020-06-18 20:17:02 +02:00
382b15d445
Make colliders be able to push particles even if dampeing is 1
2020-06-10 03:40:12 +02:00
42c974ee02
Fixed "popping" and some tunneling issues with moving colliders
2020-06-04 19:15:09 +02:00
fb91940884
Calculate normals from collision triangles using the closest point
2020-06-02 16:42:08 +02:00
c4917c8521
Fix particles colliding twice because they didn't have time to move
2020-05-06 17:19:49 +02:00
123aad6a2c
Hooked up perlimenary dampening and multiple collision per time step
2020-05-06 12:34:37 +02:00
8ddef923bc
More experiments
2020-04-30 04:24:07 +02:00
2893c8c218
More tweaking to the collision reponse.
2020-04-29 17:16:58 +02:00
c3ce36fdc4
Simplified the moving triangle collision check algo
2020-04-03 15:16:18 +02:00
2d1a2ac21d
Work on trying to get the collision responses of moving object correct
...
Still broken now though...
2020-04-03 12:59:26 +02:00
81d5a62f73
Fixed radius collision calculation and fixed the collision detection logic
2020-04-01 17:49:32 +02:00
c089d7b4d1
Changed some data types based on feedback
2020-04-01 13:16:15 +02:00
b0241b18c9
Solved a threading issue and made moving object collisions be detected
2020-04-01 12:01:25 +02:00
642c113c7e
Hooked up (non working) moving object collision detection
2020-03-20 15:04:48 +01:00
15d91693e2
Inital work on getting particle collisions with the collision modifier
2020-03-13 12:10:32 +01:00
5f96f79343
store some more information for collision objects
2020-03-10 11:25:16 +01:00
4e6dc02f63
simplify interface for a new solver
2020-03-10 10:37:17 +01:00
10c73f79fa
simple collision object node
2020-03-09 16:05:24 +01:00
78d8e9f962
fix after merge
2020-03-09 15:30:52 +01:00
4f8b24e0c5
Merge branch 'master' into functions
2020-03-09 15:27:27 +01:00
8471b2f22e
Merge branch 'master' into functions
2020-03-05 11:41:38 +01:00
743443ac14
fix after merge
2020-03-02 15:44:31 +01:00
7686f1a8fe
Merge branch 'master' into functions
2020-03-02 15:36:29 +01:00
b350b85aba
Merge branch 'master' into functions
2020-03-02 10:59:03 +01:00
87d20d7c92
remove leftovers from initial simulation node tree
2020-02-28 13:42:46 +01:00
ee292426a7
Merge branch 'master' into functions
2020-02-28 13:31:11 +01:00
4ed7334ef6
Merge branch 'master' into functions
2020-02-28 09:01:15 +01:00
b92b1a4fe5
Use new LinearAllocatedVector in various places
2020-02-23 17:37:15 +01:00
096856a700
new LinearAllocatedVector<T>
...
This is a vector that does not own the memory its elements are stored in.
Instead, a linear allocator is passed to every call to `append`, that will
be used if the vector has to grow. Since a linear allocator does not support
deallocation, no memory is dealloced until the linear allocator is destructed.
This structure can be used when many small vectors of initially unknown
size are required.
2020-02-23 17:35:47 +01:00
beed795e5a
Merge branch 'master' into functions
2020-02-23 15:25:05 +01:00
fcfe9784cb
Merge branch 'master' into functions
2020-02-20 09:27:28 +01:00
3b1c34267b
improve copying StringRef to new buffer
2020-02-19 11:49:03 +01:00
3fe710aeaf
Merge branch 'master' into functions
2020-02-19 10:17:36 +01:00
6399bfcee3
add missing include
2020-02-17 15:32:19 +01:00
7f35aa99c7
Merge branch 'master' into functions
2020-02-17 15:07:46 +01:00
1945a23259
Merge branch 'master' into functions
2020-02-17 10:47:28 +01:00
fad8e475c7
remove UNUSED_FUNCTION_NDEBUG macro again
2020-02-16 12:45:25 +01:00
b80585ba30
remove unused code
2020-02-16 12:41:01 +01:00
ecc78d29d6
bring back more correct duplicate removal
2020-02-16 12:39:16 +01:00
4d74116218
initial MultiFunctionID
2020-02-15 17:55:18 +01:00
bd42f7c275
remove operation hash of functions, a more reliable system is necessary
2020-02-15 17:52:52 +01:00
e543c9ad32
add global sin and cos functions
2020-02-14 11:40:02 +01:00
bdd69570e2
make naming more consistent
2020-02-14 11:31:23 +01:00
3e533af702
make some functions more reusable
2020-02-14 11:29:49 +01:00
8363204347
use faster CPPType access
2020-02-14 11:03:32 +01:00
0e0f6a9216
provide faster access to builtin CPPTypes
2020-02-14 10:59:37 +01:00
2b83d33032
Merge branch 'master' into functions
2020-02-14 10:01:16 +01:00
4526aa70e5
remove unused timers
2020-02-13 19:01:28 +01:00
1df94f6257
remove obselete BLI_math_cxx.h file
2020-02-13 18:58:34 +01:00
9564cd045a
remove lazy init code
2020-02-13 18:44:50 +01:00
de23a2c35b
remove lazy init usage
2020-02-13 18:39:38 +01:00
fd46b5e9fe
remove lazy init usage
2020-02-13 18:33:56 +01:00
10927b6747
fix allocator usage for StringMap
2020-02-13 18:33:42 +01:00
ba1fcdf41a
give test node a poll function
2020-02-13 18:33:29 +01:00
9906e5313b
remove usage of lazy init macro
2020-02-13 18:21:15 +01:00
2e1d18600f
remove unused code
2020-02-13 18:16:31 +01:00
e4343f6aa2
add license headers
2020-02-13 18:08:38 +01:00
953b8d6066
cleanup
2020-02-13 17:59:32 +01:00
f943f4f99c
move rgba_b and rgba_f to separate file
2020-02-13 17:59:05 +01:00
350bc04f56
move float3 -> float2 conversion to different file
2020-02-13 17:55:15 +01:00
9933b5bc27
move float4x4 into separate file
2020-02-13 17:53:03 +01:00
2e950e3b89
move float2 to separate file
2020-02-13 17:47:04 +01:00
bb4b0cc954
move float3 to separate file
2020-02-13 17:45:26 +01:00
1c81255cdb
try socket decl in c++
2020-02-13 15:07:02 +01:00
90b41c7c2f
create socket in new node
2020-02-13 12:52:29 +01:00
2630b4c231
new node type for testing
2020-02-13 12:43:01 +01:00
630da3b5e3
Initial builtin simulation node tree type
2020-02-13 12:04:41 +01:00
a88db0aa7d
fix warning
2020-02-13 11:53:15 +01:00
f72b3f33a0
define UNUSED_FUNCTION_NDEBUG macro
2020-02-13 11:53:05 +01:00
2c077e741d
test commit with different email
2020-02-13 11:12:18 +01:00
94c410a5af
Merge branch 'master' into functions
2020-02-13 11:07:28 +01:00
a2a8932981
cleanup
2020-02-12 20:32:48 +01:00
e4a3186aad
fix after merge
2020-02-12 19:02:03 +01:00
dc89a3ec7c
Merge branch 'master' into functions
2020-02-12 19:00:59 +01:00
b4bf6b9cc9
remove pad_up function
2020-02-10 16:23:14 +01:00
2d36836616
cleanup dot export
2020-02-10 14:46:44 +01:00
0b9888d038
fix after merge
2020-02-10 14:40:04 +01:00
43e2ca8fd1
Merge branch 'master' into functions
2020-02-10 14:23:37 +01:00
8cda8bef1e
Merge branch 'master' into functions
2020-02-10 14:14:16 +01:00
ff21d33bfe
Don't allow getting mutable reference to vector set
2020-02-10 13:32:02 +01:00
bae72c4b8e
remove unused classes
2020-02-10 13:27:30 +01:00
23b52a1958
remove unused class
2020-02-10 13:24:46 +01:00
6218f315bb
remove unused class
2020-02-10 12:58:20 +01:00
3f65050354
remove unused classes
2020-02-10 12:53:44 +01:00
f363ff348c
remove temporary allocator
2020-02-10 12:42:24 +01:00
003dc7ffc9
fix after merge
2020-02-10 12:26:14 +01:00
605928c15b
Merge branch 'master' into functions
2020-02-10 12:01:07 +01:00
9880bebd1a
improve linear allocator
2020-02-10 11:47:17 +01:00
9677fbe029
rename MonotonicAllocator to LinearAllocator
2020-02-10 10:51:18 +01:00
6989f9be3d
add StringRef.substr method
2020-02-10 09:53:33 +01:00
ce14c2c7bd
store default value per CPPType
2020-02-06 16:44:32 +01:00
09149b4f0d
Zero initialize before default construction to make it more deterministic
2020-02-06 15:42:08 +01:00
cb46cc6705
Merge branch 'master' into functions
2020-02-05 17:34:24 +01:00
8fa26bf7e1
disable duplicate removal
2020-02-05 10:26:33 +01:00
cf59daf62f
fix killing particles
2020-02-04 16:48:46 +01:00
601ed4061a
cleanup
2020-02-02 14:17:49 +01:00
6905633e57
fix generating operation hash
...
this needs some more work
2020-02-02 14:17:39 +01:00
79b3de9a63
assert data types when inserting links
2020-02-02 14:16:58 +01:00
975decb5e3
new Vector Length node
2020-02-02 14:16:21 +01:00
58ec7b44fe
fix memory leak
2020-02-02 12:39:13 +01:00
57a063f599
new normalize vector node
2020-02-02 12:37:59 +01:00
d944146ebe
fix stack use out of scope error
2020-02-02 12:26:37 +01:00
2e5ab9640e
vectorize Map Range node
2020-02-02 12:26:11 +01:00
7c06e2e8d2
new ceil and floor float nodes
2020-02-02 11:43:33 +01:00
a20c781343
Merge branch 'master' into functions
2020-02-02 10:40:56 +01:00
599e8f7bb1
cleanup same size asserts
2020-02-01 11:58:50 +01:00
26f4fa9de7
utility to add input/output dummy nodes
2020-02-01 11:37:36 +01:00
e52941fe5b
utility for printing arrays
2020-02-01 11:34:57 +01:00
337b918b92
missing value forwarding
2020-01-29 21:21:10 +01:00
323c20bbb7
remove unused data structure
2020-01-29 21:18:41 +01:00
a11b21f1eb
Merge branch 'master' into functions
2020-01-29 21:14:40 +01:00
2430d76b1e
Write to output buffer directly instead of doing a copy in the end
2020-01-29 21:05:07 +01:00
9e490d7cf5
make naming more specific
2020-01-29 19:07:23 +01:00
2929bc8d7e
cleanup
2020-01-29 18:56:49 +01:00
a5470fe0ca
cleanup
2020-01-29 18:47:51 +01:00
06ddde0daa
new way to construct custom functions at compile time
2020-01-29 18:43:52 +01:00
477d15998c
add utility function
2020-01-27 23:04:02 +01:00
e8ea904cee
fix compile error
2020-01-27 23:03:54 +01:00
d17a352f23
Merge branch 'master' into functions
2020-01-27 22:13:42 +01:00
787f6c8a7e
enable node tree optimizations
2020-01-27 22:05:55 +01:00
f6334efbd8
cleanup naming
2020-01-27 22:05:44 +01:00
3a27fb824e
fix typo
2020-01-27 21:57:50 +01:00
a39dc76dec
pass buffer cache to functions via context
2020-01-27 21:30:59 +01:00
3f29c1dd39
remove array allocator
2020-01-27 21:08:12 +01:00
b4a5df88fa
try using BufferCache instead of ArrayAllocator
2020-01-27 21:07:03 +01:00
9c0cd8d7a3
cleanup
2020-01-27 16:36:26 +01:00
62bc3b2716
cleanup
2020-01-27 16:23:23 +01:00
fb953e0d8d
restructure file
2020-01-27 16:04:48 +01:00
92b5b1fb69
cleanup naming
2020-01-27 15:59:41 +01:00
638a48885a
cleanup
2020-01-27 15:41:10 +01:00
45619f2f2f
cleanup
2020-01-27 15:40:24 +01:00
1824b8fb52
make single element execution work again
2020-01-26 21:56:41 +01:00
cbadf3e29a
cleanup warning
2020-01-26 21:55:32 +01:00
e7a9d2ce96
cleanup
2020-01-26 21:00:34 +01:00
a5b08c1d95
minor improvement
2020-01-26 20:56:05 +01:00
0116cc1f4d
fix
2020-01-26 20:54:09 +01:00
4141c905f3
cleanup
2020-01-26 20:50:02 +01:00
4202a208c2
compute dependency depths in network implementation
2020-01-26 20:39:41 +01:00
8c45804a1c
initial deepest depth first heuristic
2020-01-26 17:26:45 +01:00
97b6d31f41
use new network evaluation storage
2020-01-26 13:16:43 +01:00
24724b70f0
new network evaluation storage (unused so far)
2020-01-26 12:32:11 +01:00
8667a87134
Revert "try storing values per input differently"
...
This reverts commit fee675ffe0
.
2020-01-26 11:06:54 +01:00
fee675ffe0
try storing values per input differently
2020-01-23 16:02:24 +01:00
ce3ec2f172
remove print
2020-01-23 16:01:55 +01:00
3ad9ccaba7
initial array allocator
2020-01-23 15:15:29 +01:00
dae7527f4f
Merge branch 'master' into functions
2020-01-23 14:31:59 +01:00
9f63f863f1
Merge branch 'master' into functions
2020-01-23 12:34:12 +01:00
83d5b3be12
disable optimizations
2020-01-19 12:44:21 +01:00
2e28fc0dd6
cleanup
2020-01-19 12:31:07 +01:00
c5868657aa
support for deduplicating many more functions
2020-01-19 12:24:12 +01:00
04bfe684c9
rename
2020-01-19 12:06:24 +01:00
e1a5d15d95
set more operation hashes
2020-01-19 12:05:54 +01:00
00b1399593
deduplicate Particle Attribute node
2020-01-19 11:47:56 +01:00
85c43fbd2e
store a random hash per type
2020-01-19 11:47:43 +01:00
65237b2346
support deduplicating vectorized nodes
2020-01-19 11:39:00 +01:00
35af9ecd3d
support deduplicating all math nodes
2020-01-19 11:35:22 +01:00
32b02c13d8
operation hash for converters
2020-01-19 11:10:34 +01:00
bf74ef2e40
should not iterate over array that is being changed
2020-01-19 11:10:18 +01:00
b40bdad104
utility to generate constant random numbers per line
2020-01-19 10:57:14 +01:00
ea5fa56ca9
disable optimizations for now
2020-01-18 20:15:20 +01:00
0db9e85a7a
replace Vector.index with Vector.index_try
2020-01-18 20:10:53 +01:00
5697fd53f2
implement initial Remove Duplicates optimization
2020-01-18 20:03:10 +01:00
4afdb40b4e
set operation hash for some functions
2020-01-18 20:00:14 +01:00
296fd08875
support for storing operation hash per function
2020-01-18 19:59:40 +01:00
03f51bf4e1
add utilities to MFNetworkBuilder
2020-01-18 19:59:01 +01:00
a73b17564c
fix Vector.remove_first_occurrence_and_reorder
2020-01-18 19:58:37 +01:00
2b0041e4dd
new Optional.set_new methods
2020-01-18 19:58:28 +01:00
7dad14ae79
simplify constant folding
2020-01-18 18:20:16 +01:00
40bac586dc
improve naming
2020-01-18 17:54:54 +01:00
f439518781
Merge branch 'functions' into network-builder-refactor
2020-01-18 17:24:13 +01:00
ed89a010cb
Merge branch 'master' into functions
2020-01-18 17:23:52 +01:00
0982fdccd9
fix alignment in BLI::Optional
2020-01-16 21:59:00 +01:00
d8ca0ea86d
cleanup dead node elimination
2020-01-11 17:15:52 +01:00
f6c377aa5b
remove unused nodes optimization
2020-01-11 16:35:35 +01:00
4684b69405
give nodes and sockets an id again
2020-01-11 16:09:06 +01:00
d46ac7934a
add utility to debug allocated amount in monotonic allocator
2020-01-11 15:56:37 +01:00
238059ac2a
store network more compactly
2020-01-11 15:51:06 +01:00
41df03637e
store data in network builder more compactly
2020-01-11 15:34:52 +01:00
090ae9aefe
avoid unnecessary type casting
2020-01-11 14:09:09 +01:00
6aa7a269ae
remove nodes after constant folding
2020-01-11 13:21:18 +01:00
8ddf71d880
initial network builder refactor to enable support for removing nodes
2020-01-11 12:59:37 +01:00
2d7fee45d6
add method to access all nodes
2020-01-11 10:40:26 +01:00
d54eebbfa7
support constant folding for vectors
2020-01-09 17:41:10 +01:00
f1fc372df1
move constant functions to separate file
2020-01-09 17:20:33 +01:00
c8afdc93f9
Merge branch 'master' into functions
2020-01-09 17:09:36 +01:00
c2c6d152ad
Merge branch 'master' into functions
2020-01-05 16:37:20 +01:00
66fdcd5f33
minor fixes
2020-01-04 16:38:09 +01:00
e3ee421314
better to string conversion for generic types
2020-01-04 16:21:03 +01:00
83308760a2
initial constant folding of multi function network
2020-01-04 16:07:59 +01:00
f526c8d303
rename Stack.empty to Stack.is_empty
2020-01-04 14:42:39 +01:00
d95b52f1c9
cleanup link insertion
2020-01-04 14:25:53 +01:00
6b9e7dc585
simplify conversion insertion
2020-01-04 13:59:39 +01:00
bc48280fed
refactor: extract methods
2020-01-04 13:42:39 +01:00
7a931deab2
simplify names
2020-01-04 13:37:27 +01:00
b7f6be1b8b
simplify names
2020-01-04 13:27:56 +01:00
9c20241272
simplify names
2020-01-04 13:26:17 +01:00
b2fb025153
rename FunctionNodeTree to FunctionTree
2020-01-04 13:24:29 +01:00
5e49e3df6e
move code into sub namespace
2020-01-04 13:23:35 +01:00
5bbc1b2e16
refactor: initial removal of FunctionTreeMFNetworkBuilder
2020-01-04 13:17:33 +01:00
ea9282cbd6
extract class for managing the socket mapping
2020-01-03 15:02:41 +01:00
2c68bb3e51
cleanup naming
2020-01-03 14:43:00 +01:00
c505fc4d23
cleanup naming
2020-01-03 14:41:18 +01:00
4063e6c058
extract actual build step from builder
2020-01-03 14:30:47 +01:00
be23e6e2f2
extract members from builder
2020-01-03 14:21:17 +01:00
b7a8ef4b9f
replace IdMultiMap with more generic IndexToRefMultiMap
2020-01-03 14:16:58 +01:00
1934749029
cleanup
2020-01-03 13:44:54 +01:00
35aaf2fe51
use IndexToRefMap instead of IndexMap
2020-01-03 13:40:31 +01:00
9c2e7a4e1c
only map dummy sockets when function network has been created
2020-01-03 13:17:37 +01:00
e083ab2d02
remove unused method
2020-01-03 12:51:12 +01:00
2b00e17124
extract IdMultiMap data structure
2020-01-03 12:44:41 +01:00
089ee94b88
add missing hash function
2020-01-03 12:06:22 +01:00
ab3498b057
Merge branch 'master' into functions
2020-01-03 11:39:41 +01:00
7d4fb6880e
use BLI::parallel_for when creating tetrahedons
2020-01-02 17:14:30 +01:00
d238e6410f
improve copying of generic data
2020-01-02 17:09:02 +01:00
187844f712
use StringMultiMap in more places
2020-01-02 16:37:17 +01:00
6732a03531
introduce StringMultiMap
2020-01-02 16:28:55 +01:00
8753f92cb2
utility to iterate over string map in parallel
2020-01-02 16:05:41 +01:00
0ebb98ab3d
cleanup
2020-01-02 15:49:41 +01:00
30b50638a0
rename index_iterator to index_range
2020-01-02 15:22:20 +01:00
25fc970f44
move tbb wrappers to blenlib
2020-01-02 15:20:44 +01:00
1e2401a5ff
more parallelization
2020-01-02 15:12:26 +01:00
2025065931
simulate particles in parallel
2020-01-02 14:58:39 +01:00
169bdd890f
extract method
2020-01-02 14:43:46 +01:00
ecfed4d70f
cleanup parallel for/invoke
2020-01-02 14:39:52 +01:00
8a8223c193
cleanup parallel for
2020-01-02 14:36:07 +01:00
1273af1bdd
simulate particle systems in parallel
2020-01-02 14:31:38 +01:00
3e325b42bb
run emitters in parallel
2020-01-02 14:23:12 +01:00
f12b544515
new multi map implementation that can deal with non trivial types
2020-01-02 14:06:21 +01:00
fb512bfa3d
initial working version with ParticleSet
2020-01-02 13:18:12 +01:00
0099355bc6
continue with ParticleSet
2019-12-31 16:48:01 +01:00
799fb759a7
improve particle set
2019-12-31 15:35:08 +01:00
0cda96f1be
initial particle set
2019-12-31 14:59:58 +01:00
c2d3708224
introduce MutableAttributesRef
2019-12-31 14:59:48 +01:00
36221652a4
rename various types and variables
2019-12-31 14:17:44 +01:00
7ed83e0bee
Move inlined node tree to functions folder
2019-12-31 13:53:48 +01:00
06e7d91f55
Merge branch 'master' into functions
2019-12-31 13:40:45 +01:00
4e0c2a8abd
Merge branch 'master' into functions
2019-12-30 13:35:53 +01:00
04c0c92f87
use less generic tbb include
2019-12-28 13:28:06 +01:00
ad58b620b2
make surface hooks work in function deform/points modifiers
2019-12-28 12:23:17 +01:00
d7f18db74a
fix evaluation of single input math function with constant input
2019-12-28 12:13:09 +01:00
1eca32bb84
improve usage of TBB
2019-12-28 11:29:34 +01:00
4601ea8f82
Merge branch 'master' into functions
2019-12-28 11:13:44 +01:00
bf4f376060
simplify some names
2019-12-22 15:04:13 +01:00
ee8dfc0062
replace time span with float interval
2019-12-22 14:21:25 +01:00
335b5bc540
cleanup influences collector
2019-12-22 13:53:24 +01:00
7250dfeb2e
cleanup
2019-12-22 13:44:27 +01:00
feb938dfb8
remove task c++ wrapper in favor of tbb
2019-12-22 13:42:46 +01:00
4b8cd2cebd
use tbb for parallel code
2019-12-22 13:22:55 +01:00
64b707eb67
use IndexMask in more places
2019-12-22 12:48:55 +01:00
f85c4ca3ae
cleanup
2019-12-22 12:40:44 +01:00
a80ffa4bc5
cleanup usage of IndexMask
2019-12-22 12:37:42 +01:00
866894454f
use IndexMask in more places
2019-12-22 12:32:43 +01:00
717beed8d7
cleanup naming
2019-12-22 12:26:34 +01:00
03dbcd82a4
cleanup naming
2019-12-22 11:10:54 +01:00
9c68e2ecc9
speedup multi function evaluation
2019-12-22 10:58:28 +01:00
b4b25eac9a
access event filter duration in node tree
2019-12-20 17:43:13 +01:00
bed1a7cdb7
change some pointers to references
2019-12-20 17:09:23 +01:00
6600c532c4
change particle function evaluation api
2019-12-20 17:01:14 +01:00
81573c53b6
replace compare node
2019-12-20 16:43:04 +01:00
d00557bd19
use IndexMask in more places
2019-12-20 16:37:50 +01:00
dca21ef42f
start improving custom events
2019-12-20 16:19:38 +01:00
70ada64a98
use index mask in event interface
2019-12-20 15:44:47 +01:00
d40031df15
remove event storage concept
2019-12-20 15:39:17 +01:00
adfd43db6b
new Node Instance Identifier node
2019-12-20 15:22:21 +01:00
aabe38f06c
change names displayed in search
2019-12-20 15:03:10 +01:00
a183cc3c4e
handle not-found linked groups better
2019-12-20 14:59:33 +01:00
3b65445f4e
Merge branch 'master' into functions
2019-12-20 14:21:54 +01:00
a549241728
bring back functionality of old actions
2019-12-19 15:52:10 +01:00
b3c93cfe90
initial ParticleAction class
2019-12-19 14:59:43 +01:00
35ee68ab69
fix when there is no nodelib
2019-12-19 14:58:11 +01:00
6caf9be863
remove variation input of age reached node
2019-12-19 14:35:40 +01:00
1b6e9574a6
leave group when active node is not selected
2019-12-19 14:14:26 +01:00
e8990fd220
cache node group names in .blend file
2019-12-19 13:21:06 +01:00
a1f79adde9
improve debug dot output
2019-12-19 13:17:38 +01:00
6cc8f3cd71
remove builtin group nodes
2019-12-19 13:11:33 +01:00
3c519d4917
new Join Text List node
2019-12-19 12:58:07 +01:00
9d885235eb
better float3 printing
2019-12-19 12:38:37 +01:00
e97a45ef8c
replace Kill Particle node with group
2019-12-19 12:24:51 +01:00
74eeb7a759
improve debug dot output
2019-12-19 12:12:24 +01:00
ed64bcfb71
remove Particle Info node
2019-12-19 11:53:30 +01:00
c78896e675
cleanup
2019-12-19 11:47:43 +01:00
aae54f903c
fix path filter
2019-12-19 11:46:33 +01:00
98376bc8ee
automatically load node groups from nodelib
2019-12-19 11:41:21 +01:00
150d76aa7b
handle unknown node better
2019-12-19 11:24:38 +01:00
3d4f0fe7fe
remove mockup nodes
2019-12-19 11:17:23 +01:00
e733615650
remove actions that can be build as node groups
2019-12-19 10:52:12 +01:00
54fe936849
remove unused action
2019-12-19 10:37:21 +01:00
136ac83c82
change IndexMask constructor
2019-12-19 10:37:13 +01:00
7b0ddb2420
replace MFMask with IndexMask
2019-12-19 10:11:31 +01:00
717283c038
Merge branch 'master' into functions
2019-12-19 09:49:43 +01:00
15c15d95e9
fix missing include
2019-12-18 15:21:26 +01:00
f72a4ab0af
Remove Explode Particle node
2019-12-18 15:03:15 +01:00
a7ce3fc324
use Tab to open/close groups
2019-12-18 14:59:27 +01:00
7329734ec2
fix file load error
2019-12-18 14:59:09 +01:00
545e1b60f1
implement start-stop mode in Float Range node
2019-12-18 13:53:16 +01:00
5c90bec61e
simplify socket identifiers
2019-12-18 13:38:51 +01:00
ec6fc1aaec
support for inserting group nodes from search
2019-12-18 13:34:26 +01:00
17d18351c6
extract method to find callable trees
2019-12-18 13:17:49 +01:00
1c7e0b1755
improve node layout of group nodes
2019-12-18 13:11:48 +01:00
9fa91b8719
support for sampling random vectors in a sphere
2019-12-18 13:04:45 +01:00
c6cf1082cb
new Multiply Vector with Float node
2019-12-18 12:53:02 +01:00
68b8979137
new Vector from Value node
2019-12-18 12:39:02 +01:00
4c5332cae7
new Random Vectors node
2019-12-18 12:31:19 +01:00
ceb5471884
improve Random Vector node
2019-12-18 12:11:02 +01:00
375ac4f37a
new Random Vector node
2019-12-18 11:42:42 +01:00
06adff95b4
cleanup Spawn Particles node
2019-12-18 11:18:55 +01:00
6bb09a50fb
support for computing vectors per particle
2019-12-18 11:06:55 +01:00
298b0cd863
Remove Action Context concept for now
2019-12-18 10:04:53 +01:00
e810f4dd7b
Merge branch 'master' into functions
2019-12-18 09:54:06 +01:00
2d1cd3076f
fix missing update
2019-12-17 15:05:39 +01:00
ced689a43a
new Random Floats node
2019-12-17 14:48:05 +01:00
d16d58e6f9
show position attribute by default
2019-12-17 13:52:45 +01:00
79c5b4d4af
fix socket drawing
2019-12-17 13:36:53 +01:00
ccc8d664fc
initial Spawn Action node
2019-12-17 13:28:38 +01:00
71124e192f
minor changes
2019-12-17 13:27:49 +01:00
e1e1069b45
initial spawn node ui
2019-12-17 12:04:09 +01:00
57ab7cefdd
introduce ScopedVector
2019-12-17 11:48:33 +01:00
bd5be7c70a
Rename TemporaryVector/Array to LargeScopedVector/Array
2019-12-17 11:40:26 +01:00
0144b11673
Support inline storage in BLI::Array
2019-12-17 11:35:13 +01:00
ae44dad2e1
cleanup
2019-12-17 11:18:25 +01:00
c03bb9db0d
store name of node and sockets in dummy node
2019-12-17 11:13:00 +01:00
1fd9485a51
set dot background color utility
2019-12-17 11:12:19 +01:00
54229b8e82
support for removing execute sockets
2019-12-17 10:39:32 +01:00
eba730f986
Simplify execute socket naming
2019-12-17 10:09:25 +01:00
fba5b503f5
fix after merge
2019-12-17 09:46:17 +01:00
9a3b370061
Merge branch 'master' into functions
2019-12-17 09:34:13 +01:00
2b84a7d5b0
fix wrong comparison
2019-12-14 18:33:39 +01:00
f31dc22ebb
fix some warnings
2019-12-14 18:25:42 +01:00
34d06de0dc
remove some old tests
2019-12-14 18:07:18 +01:00
b6945930e8
remove unused functionality
2019-12-14 17:57:19 +01:00
67724f884a
use new indices functions
2019-12-14 17:50:33 +01:00
b52c4ddfb9
more low level generic CPPType functions
2019-12-14 17:44:56 +01:00
617ab7847f
add more functions to CPPType
2019-12-14 17:16:05 +01:00
2225dab801
optimize fill operation
2019-12-14 17:06:07 +01:00
e1a662ee3a
optimize float range
2019-12-14 16:53:51 +01:00
f0cb97c9a3
cleanup
2019-12-14 16:49:21 +01:00
5419ae4d83
optimize generic extend operation
2019-12-14 16:19:16 +01:00
fc30d4e272
support for removing sockets in Select node
2019-12-14 15:36:00 +01:00
21ebaf9bc6
initial Select node
2019-12-14 15:28:13 +01:00
a1b0d7e982
print warning when inputs incorrectly depend on particles
2019-12-14 14:46:40 +01:00
510da24778
keep track of contexts used by function network
2019-12-14 14:46:21 +01:00
2646b9016f
more utility functions for vector and stack
2019-12-14 14:45:37 +01:00
cd2385f608
refactor signature builder
2019-12-14 14:02:33 +01:00
5381fbc1a3
turn attribute name into an input socket
2019-12-14 13:15:28 +01:00
d720463300
support nicer drawing of sockets
2019-12-14 12:18:17 +01:00
776562623c
new Multi Execute node
2019-12-14 11:35:27 +01:00
8a41c15bf9
prevent trails and explosion in a the same particle system
2019-12-14 11:29:49 +01:00
46b29a75a0
remove unused code
2019-12-14 11:10:55 +01:00
984ba7e943
Merge branch 'master' into functions
2019-12-14 11:02:49 +01:00
764857eb37
fix: find IDs used by output sockets as well
2019-12-13 19:42:49 +01:00
dc0d0d3936
Merge branch 'master' into functions
2019-12-13 19:40:19 +01:00
5c83319029
new Find Non Close Points node
2019-12-12 18:28:14 +01:00
d7d365f6eb
new Get List Elements node
2019-12-12 15:34:53 +01:00
b716661366
support for vertex weights in Sample Object Surface node
2019-12-12 14:59:39 +01:00
4de6eafba3
sample hooks on surface
2019-12-12 13:05:08 +01:00
ee52b2f7d8
Merge branch 'master' into functions
2019-12-12 11:17:04 +01:00
6d3cd34bd5
fix compile error
2019-12-11 17:13:16 +01:00
df783a4ee1
access emitter time info in node tree
2019-12-11 16:32:48 +01:00
4d72f25e9a
make vertex group name an input socket
2019-12-11 16:05:47 +01:00
5d8036c675
access position and normal directly in Closest surface hook node
2019-12-11 15:50:06 +01:00
03bde25be9
fix context in vectorized functions
2019-12-11 15:27:53 +01:00
3a1aec54a7
cleanup
2019-12-11 15:20:21 +01:00
2a25a0bd60
cleanup
2019-12-11 15:08:54 +01:00
a080464e31
extract function vectorizer to separate file
2019-12-11 15:03:19 +01:00
95e0ea69a2
extract customizable functions into separate file
2019-12-11 14:59:14 +01:00
a678e0df39
remove unused code
2019-12-11 14:55:32 +01:00
5d686b19a5
extract particle input functions from others
2019-12-11 14:52:48 +01:00
a908d95d9f
extract surface hook functions to separate file
2019-12-11 14:48:40 +01:00
423060ac2f
optimize closest surface hook on object node
2019-12-11 14:37:36 +01:00
fa942b5e6f
optimize get weight on surface
2019-12-11 14:24:32 +01:00
f4a9e125bf
optimize get normal on surface node
2019-12-11 14:16:10 +01:00
642fa43b13
optimize get position on surface node
2019-12-11 14:10:55 +01:00
e60516bdee
cleanup
2019-12-11 14:03:13 +01:00
980b128b37
cleanup
2019-12-11 14:00:39 +01:00
bd92ed7e11
optimize single value case
2019-12-11 13:58:08 +01:00
bf85e6a637
improve grouping of similar indices
2019-12-11 13:53:53 +01:00
35989c6715
convert image to socket
2019-12-11 13:01:55 +01:00
aa10876c62
vectorize surface hook nodes
2019-12-11 12:18:56 +01:00
6dd8723620
fix memory leak
2019-12-11 11:42:30 +01:00
e985b20a77
more generic way to add per element and global contexts
2019-12-11 11:36:40 +01:00
d6f8ebf1f0
Merge branch 'master' into functions
2019-12-11 10:52:23 +01:00
28c554ec27
initial static class id system
2019-12-11 10:50:08 +01:00
eaa0c567fc
make element contexts non virtual
2019-12-11 10:21:44 +01:00
9e056e8fd4
Merge branch 'master' into functions
2019-12-11 09:10:17 +01:00
73ed33953a
don't register keymap in background mode
2019-12-11 00:10:44 +01:00
032c685472
fix endless recursion
2019-12-10 23:42:03 +01:00
a7d26bdc33
add external data cache to emitter function
2019-12-10 23:32:18 +01:00
5685b0a72a
support for accessing id data blocks from emitter function
2019-12-10 23:26:45 +01:00
5dada6b465
new birth time modes for custom emitter
2019-12-10 23:20:50 +01:00
b93d0f8975
support for removing sockets in custom emitter
2019-12-10 22:59:47 +01:00
60b3fc8239
better handling of attribute name collisions
2019-12-10 22:53:32 +01:00
f961ef3e6b
improve ui of Custom Emitter node
2019-12-10 22:52:54 +01:00
d91b7625cf
fix warning
2019-12-10 18:19:23 +01:00
4df45d1c4c
initial Custom Emitter node
2019-12-10 18:12:51 +01:00
826a132791
support nested properties in inferencer
2019-12-10 16:46:31 +01:00
24a7851fbe
new Value node
2019-12-10 16:06:32 +01:00
daf119f2a7
initial support for custom particle attributes
2019-12-10 15:30:42 +01:00
4dccb3767a
optimize some math nodes
2019-12-10 14:30:07 +01:00
ea5f871d29
deduplicate code
2019-12-10 14:17:55 +01:00
4755ab5b50
optimize variadic math functions
2019-12-10 14:05:31 +01:00
6d05b0910a
optimize math functions a bit
2019-12-10 13:15:01 +01:00
e5f9640223
remove some timers
2019-12-10 11:47:05 +01:00
32c25e8c89
Merge branch 'master' into functions
2019-12-10 11:29:00 +01:00
4e4d350967
remove timer
2019-12-08 23:01:28 +01:00
2ce315c588
avoid computing the computing the same things many times
2019-12-08 23:01:21 +01:00
34d68139ac
extend single elements when necessary
2019-12-08 22:01:31 +01:00
b09c2c7d00
Merge branch 'master' into functions
2019-12-08 21:31:53 +01:00
a382054837
Merge branch 'master' into functions
2019-12-07 11:01:54 +01:00
56dce4ae43
initital check for whether a function can be called once only
2019-12-06 13:55:03 +01:00
2390af8430
move class from header to cc
2019-12-06 13:34:52 +01:00
7c03565594
add utility to check if an input is only a single value
2019-12-06 13:30:10 +01:00
e93fe105d1
cleanup
2019-12-06 13:01:11 +01:00
de56346eee
extract methods
2019-12-06 12:58:01 +01:00
a5790756e0
extract methods
2019-12-06 12:50:54 +01:00
94a280cb99
cleanup
2019-12-06 12:42:58 +01:00
039a1134cd
cleanup data copying in network evaluation
2019-12-06 12:39:03 +01:00
ce35f42c0a
simplify forwarding in network evaluation
2019-12-06 12:27:41 +01:00
6ec5ece968
cleanup naming
2019-12-06 11:50:10 +01:00
29106bdaee
simplify allocation in multi function network evaluation
2019-12-06 11:48:40 +01:00
98d9f2bdfa
store whether function depends on per element context
2019-12-06 11:35:34 +01:00
1996429dc6
Merge branch 'master' into functions
2019-12-06 11:25:26 +01:00
e1e1dad668
Merge branch 'master' into functions
2019-12-05 20:00:52 +01:00
d3dbacea08
open group interface panel from V pie menu
2019-12-05 14:14:36 +01:00
293c476822
initial support for reordering group inputs
2019-12-05 13:58:38 +01:00
e57a0ec211
handle other socket types in operator
2019-12-05 13:14:23 +01:00
95b2871550
make it easier to create group outputs
2019-12-05 13:10:35 +01:00
d4d0360604
better default value initialization
2019-12-05 12:47:58 +01:00
eb9f980912
initial V shortcut to create group inputs
2019-12-05 12:43:41 +01:00
dd452a314a
improve group node ui
2019-12-05 11:21:24 +01:00
ab678735ab
Merge branch 'master' into functions
2019-12-05 09:55:13 +01:00
c44fdcfab2
fix node identifier when node is in a group
2019-12-04 17:10:31 +01:00
d5ec476e36
simplify influence generation from xnodes
2019-12-04 16:42:04 +01:00
985e3e8ddc
simplify action building code
2019-12-04 16:03:15 +01:00
f101aa6c4b
fix naming after recent refactor
2019-12-04 15:32:30 +01:00
ee58e62f23
rename Surface Location to Surface Hook
2019-12-04 15:04:10 +01:00
db26a32601
store emit location in particles
2019-12-04 14:27:11 +01:00
2012ea2e9d
add id handle lookups to function modifiers
2019-12-04 13:49:24 +01:00
c6a00f46ad
pass around Object handles instead of pointers
2019-12-04 13:33:49 +01:00
907f72d4bc
initial IDHandle implementation
2019-12-04 13:21:05 +01:00
182a56e3b0
improve SurfaceLocations members
2019-12-04 12:17:22 +01:00
e5e295beed
fix when having emitter in node group
2019-12-04 11:53:15 +01:00
672b085264
Merge branch 'master' into functions
2019-12-04 11:33:48 +01:00
d709399b64
new Get Normal on Surface node
2019-12-03 16:00:02 +01:00
7fb768e2c4
cleanup: remove unused class
2019-12-03 15:17:38 +01:00
f6e39cc95d
add StringMap.add method
2019-12-03 15:11:46 +01:00
4127c7ff87
make execute and influence sockets work in groups
2019-12-03 15:07:40 +01:00
90529a8d4d
Merge branch 'master' into functions
2019-12-03 11:55:39 +01:00
9c102058e1
new Get Image Color on Surface node
2019-12-03 11:51:47 +01:00
9e8f68f4fa
remove concept of particle function inputs from code
2019-11-30 15:34:38 +01:00
f9f6ab0251
remove remaining particle input nodes
2019-11-30 15:17:59 +01:00
a4cc5f1cbb
make Is In Group a normal multi-function
2019-11-30 15:14:10 +01:00
d7b991aeb7
remove Particle Randomness node
2019-11-30 14:40:07 +01:00
f71eec7604
remove Surface Weight node
2019-11-30 14:38:01 +01:00
710c3b8312
new Get Weight on Surface node
2019-11-30 14:36:19 +01:00
a561a457dc
initial Get Position on Surface node
2019-11-30 13:30:34 +01:00
945a752902
update closest location on object node
2019-11-27 18:15:48 +01:00
28a70ff15c
new surface location data type
2019-11-27 17:06:58 +01:00
98a4a08fce
various automated variable renamings
2019-11-27 16:06:55 +01:00
ea0b7dc6d1
make multifunction generation work with inlined node trees
2019-11-27 15:47:40 +01:00
a57e050f43
cleanup creation of group input nodes
2019-11-27 15:46:10 +01:00
49c3eb8478
replace virtual with inlined tree
2019-11-27 14:42:15 +01:00
529987089d
Merge branch 'master' into functions
2019-11-27 10:19:26 +01:00
ceca20b798
color exported dot clusters randomly
2019-11-26 17:52:29 +01:00
02aef365ba
add some noinline attributes
2019-11-26 17:26:53 +01:00
0a667c6614
cleanup
2019-11-26 17:12:06 +01:00
cfac0f5914
refactor: extract method
2019-11-26 17:10:46 +01:00
d33d8f5b20
refactor: extract methods
2019-11-26 17:01:39 +01:00
70fe3d8dea
extract functions
2019-11-26 16:52:58 +01:00
288b562e46
cleanup
2019-11-26 16:41:31 +01:00
021650c4c0
cleanup
2019-11-26 16:34:28 +01:00
352afcd0b3
use array instead of map
2019-11-26 16:14:34 +01:00
413af94fd2
deduplicate node creation
2019-11-26 16:03:25 +01:00
4ade6cdfc0
initialize ids of xnodes
2019-11-26 15:33:38 +01:00
d148d2a447
free memory of inlined node tree
2019-11-26 15:27:27 +01:00
5d42b6a204
add accessor functions for inlined node tree
2019-11-26 13:30:10 +01:00
97a5f427d0
add clusters to inlined node tree dot export
2019-11-26 13:13:46 +01:00
48f2f3cea6
change cluster usage in dot exporter
2019-11-26 12:57:47 +01:00
abe3c18cf6
Merge branch 'master' into functions
2019-11-26 10:40:54 +01:00
0e1a4f39ac
use generic dot export to export function networks
2019-11-24 15:24:46 +01:00
a4cf1eb035
export inlined node tree as dot graph
2019-11-24 14:58:43 +01:00
c0d0aff4da
import dot export
2019-11-24 13:56:34 +01:00
8ae3debad0
node shape utility
2019-11-24 13:30:28 +01:00
0fea5c5d59
dot file export
2019-11-24 12:55:58 +01:00
afe4577256
initial InlinedNodeTree structure
2019-11-23 18:04:56 +01:00
1f52afb3fd
new Vector.remove_first_occurence_and_reorder method
2019-11-23 17:25:41 +01:00
f63d9357bf
new Vector.append_and_get_index function
2019-11-23 14:57:27 +01:00
2780bb1000
Merge branch 'master' into functions
2019-11-23 13:55:40 +01:00
0a7e29739d
Merge branch 'master' into functions
2019-11-21 15:55:44 +01:00
89335330fa
simplify some code
2019-11-21 15:42:06 +01:00
5c316f0910
remove unused code
2019-11-21 15:12:27 +01:00
47e7a8966e
cleanup nodes mapping
2019-11-21 15:10:26 +01:00
d81273eaed
cleanup
2019-11-21 14:46:26 +01:00
e36da5e16e
cleanup
2019-11-21 14:38:14 +01:00
2335aaf58b
improve naming
2019-11-21 14:29:03 +01:00
7f9e7c23e0
improve naming
2019-11-21 14:20:14 +01:00
7de6eb1b49
define multi function to node mapping
2019-11-21 14:08:54 +01:00
3ca095f1eb
simplify vsocket to multi function mapping
2019-11-21 13:44:56 +01:00
92130916d5
fix network evaluation
2019-11-21 12:48:13 +01:00
92d4376c8e
make VirtualNodeTree specific to one bNodeTree
2019-11-20 18:20:16 +01:00
00b4b90361
new try_lookup method for StringMap
2019-11-20 18:11:12 +01:00
6d71136e4a
new vnode to multifunction mapping
2019-11-20 17:37:28 +01:00
2c83e550c4
change the node mapping a bit
2019-11-20 17:08:47 +01:00
0cf8799ef7
more utility functions
2019-11-19 14:34:03 +01:00
046204e7b2
extract preprocessed vtree data from builder
2019-11-19 13:38:25 +01:00
3d16a8193f
improved debug error checking
2019-11-19 10:49:34 +01:00
1aef4b1298
cleanup parameter checks
2019-11-19 10:17:33 +01:00
ca19757aec
refactor MFParamType
2019-11-17 12:10:48 +01:00
e81dbbaa2e
add missing static keywords
2019-11-15 16:09:50 +01:00
2d4f8209a7
optimize Get Nearest Point when the object is the same for every element
2019-11-15 16:03:54 +01:00
3ecb692b43
fix task scheduling
2019-11-15 16:03:19 +01:00
ca1de7fe4c
use more global external data cache
2019-11-15 15:30:12 +01:00
be57a27d6d
fix Map Range clamping
2019-11-15 15:28:49 +01:00
459b54b45c
remove unused code
2019-11-15 15:06:36 +01:00
9843ca071c
prevent recursive node groups
2019-11-14 16:31:24 +01:00
5e72329889
make group defaults work
2019-11-14 15:39:00 +01:00
2423f1c531
add Random Float node
2019-11-14 15:20:07 +01:00
44320e9e08
remove unnecessarily complex code
2019-11-14 14:43:16 +01:00
057ec4bc97
remove unused nodes
2019-11-14 13:40:10 +01:00
4e61bfbb15
initial working function groups
2019-11-14 13:38:39 +01:00
758a751fb2
new group nodes
2019-11-13 15:29:00 +01:00
7398acb56d
initial group input node
2019-11-13 14:55:42 +01:00
16f7804d5f
bring back Clamp and Map Range nodes
2019-11-13 14:23:21 +01:00
ccfe2a2db1
initial Closest Point on Object node
2019-11-13 13:48:03 +01:00
03d7ba7055
Make Particle Info node a normal function
2019-11-13 12:40:12 +01:00
3235d6cd41
pass MFContext directly
2019-11-13 12:02:16 +01:00
4dfc1e9026
pass MFParams directly
2019-11-13 11:53:28 +01:00
ce59ef0ea9
pass MFMask directly
2019-11-13 11:29:31 +01:00
d5e9fa61d9
testing another way to use multi function contexts
2019-11-12 15:53:00 +01:00
112ffb49d1
fix default node tree
2019-11-12 14:26:21 +01:00
1ac1081953
remove other forces, they should be build using Particle functions
2019-11-12 14:16:36 +01:00
54b40587e4
output vector from Perlin Noise node
2019-11-12 14:15:59 +01:00
ad96830a4b
support mapping input vsockets to multiple new sockets
2019-11-12 14:15:08 +01:00
1d69abe558
new Custom Force and Perlin Noise node
2019-11-12 11:00:19 +01:00
a924c1a401
Merge branch 'master' into functions
2019-11-12 10:08:57 +01:00
bb15b89375
Merge branch 'functions' into functions-experimental-refactor
2019-11-08 20:46:56 +01:00
ef2b03e317
Merge branch 'master' into functions
2019-11-08 20:46:43 +01:00
b6027a2f15
fix Is In Group input
2019-11-08 20:34:01 +01:00
a74a2882ed
bring back compare node
2019-11-08 20:33:44 +01:00
3a3970c2e0
change uint8_t to bool
2019-11-08 19:50:23 +01:00
a708562177
move attribute defaults back into AttributesInfo
2019-11-08 19:48:04 +01:00
b9d42020be
make function name more precise
2019-11-08 19:19:54 +01:00
fea9c7c1a3
cleanup
2019-11-08 19:15:21 +01:00
9cc27bd6ff
remove a node
2019-11-08 18:49:49 +01:00
5f8bd0fa71
make switch node work again
2019-11-08 18:21:26 +01:00
de3d75110c
bring back object mesh info node
2019-11-08 17:50:19 +01:00
2bae4dd503
remove some nodes for now
2019-11-08 17:33:29 +01:00
8e1ced7596
bring back color nodes
2019-11-08 17:32:20 +01:00
d47962f7a9
boolean math nodes
2019-11-08 17:11:29 +01:00
366a427f04
more vector math
2019-11-08 16:56:06 +01:00
fa7c300edc
more vector math
2019-11-08 16:27:58 +01:00
e390a51cc7
bring back some vector math nodes
2019-11-08 16:12:43 +01:00
470a2ce330
fix compile error
2019-11-07 15:17:44 +01:00
4e0b5fd215
cleanup
2019-11-07 14:03:46 +01:00
eada832040
make AttributesInfo non copy and non movable
2019-11-07 13:59:47 +01:00
9116016f93
rename GET_TYPE to CPP_TYPE
2019-11-07 13:48:30 +01:00
bef3e0022c
use monotonic allocator for network builder
2019-11-07 13:38:51 +01:00
a4a46d8a97
use monotonic allocator for vtree generation
2019-11-07 13:21:39 +01:00
1fb8e34c9c
rename functions2 to functions
2019-11-07 11:57:35 +01:00
ae862db1f4
remove old function system
2019-11-07 11:54:00 +01:00
7884ae9bc3
port particle system to new functions system
2019-11-07 11:44:08 +01:00
856049d771
merge bparticles node tree into functions node tree
2019-11-06 16:08:20 +01:00
cccaca258b
simplify naming
2019-11-06 13:05:26 +01:00
6e135618be
use monotonic allocator to allocate functions
2019-11-05 15:54:44 +01:00
06e398f427
rename OwnedResources to ResourceCollector
2019-11-05 15:40:03 +01:00
2ae8040373
improve aligned allocation in monotonic allocator
2019-11-05 15:32:53 +01:00
7317074eb3
bring back some more math operations
2019-11-05 14:36:45 +01:00
ab2625529c
bring back more math nodes
2019-11-05 14:17:35 +01:00
a35f5ff3c8
improve add/mul/min/max math nodes
2019-11-05 13:47:57 +01:00
3a4d9fa228
remove unused code
2019-11-05 11:56:37 +01:00
720edd0c30
cleanup
2019-11-05 11:53:24 +01:00
e0554f7f31
access time from node tree
2019-11-05 11:48:29 +01:00
55ecd940ac
initial more generic context handling
2019-11-05 11:19:57 +01:00
07ac997f1c
make Float Range node work again
2019-11-04 23:17:01 +01:00
09862e2b2f
assert earlier when nodes were not inserted correctly
2019-11-04 23:16:46 +01:00
62cd4cca56
Merge branch 'functions' into functions-experimental-refactor
2019-11-04 22:09:23 +01:00
a63b896055
Merge branch 'master' into functions
2019-11-04 22:09:06 +01:00
f52e43554f
simplify interface for generating functions from node trees
2019-11-03 16:32:23 +01:00
b1bee3ffc5
update Function Points modifier to use new system
2019-11-03 16:06:25 +01:00
d5bcdeef9f
rename pack list socket declaration to something more generic
2019-11-03 15:31:30 +01:00
9fdef6ae5b
attributes block container compression and utilities
2019-11-03 15:09:21 +01:00
5e20def930
cleanup function allocation
2019-11-03 14:30:45 +01:00
1a90ef6e58
cleanup builder
2019-11-03 14:19:05 +01:00
f1dfadb3cb
initial MFContext usage
2019-11-03 14:12:34 +01:00
fa18a28277
move multi function context to separate file
2019-11-03 13:55:49 +01:00
30a1a0bf58
separate some files
2019-11-03 13:44:31 +01:00
146f6a827b
add utility to destruct and reorder attribute arrays
2019-11-03 13:08:35 +01:00
da0169bca4
simplify CPPType construction
2019-11-03 12:08:34 +01:00
dafbb5daf7
properly align inline storage in vector and map
2019-11-03 11:37:10 +01:00
5a6da2c1b1
update attribute blocks
2019-11-02 21:31:56 +01:00
45fd15f824
initial attributes block container in functions2
2019-11-02 20:48:35 +01:00
61609e90d5
initial AttributesRef in functions2
2019-11-02 20:19:49 +01:00
8523b03473
cleanup
2019-11-02 19:22:05 +01:00
4a0b22d449
cleanup
2019-11-02 19:12:46 +01:00
2c8ad4ef0b
cleanup
2019-11-02 19:07:37 +01:00
4b1532b064
move file
2019-11-02 18:53:29 +01:00
74e7816a22
move node inserters to separate file
2019-11-02 13:45:22 +01:00
8ed320be86
fix memory leak
2019-11-02 13:29:06 +01:00
ed727f3c0f
refactor mapping from vtree to multi functions
2019-11-02 13:26:02 +01:00
100ff71944
New VirtualNodeTree implementation
2019-11-02 12:34:39 +01:00
ef636af49e
move network generation to separate file
2019-11-01 20:31:13 +01:00
fcfa225e5d
move multi function network evaluation to functions2
2019-11-01 20:14:01 +01:00
e778aba584
move VTreeMFNetworkBuilder to functions2
2019-11-01 20:02:51 +01:00
ed47df29e3
move VTreeMFNetwork to functions2
2019-11-01 19:56:11 +01:00
f91bd73986
remove code from blenkernel (now lives in functions2)
2019-11-01 19:51:34 +01:00
11808ee3c2
update functiondeform modifier to using functions2
2019-11-01 19:46:54 +01:00
e9fd7c335f
move tuple to functions2
2019-11-01 19:37:25 +01:00
617d8ab8dc
move multi function network to functions2
2019-11-01 19:32:52 +01:00
2b805f0ae8
move multi functions to functions2
2019-11-01 19:30:31 +01:00
72eb10b467
copy generic data structures to functions2
2019-11-01 19:11:53 +01:00
324537287f
initial functions2 folder
2019-11-01 19:05:09 +01:00
6379f1d035
improve performance when iterating over mask indices
2019-11-01 14:37:58 +01:00
f354aebc6f
cleanup name access
2019-11-01 14:35:44 +01:00
ae8332f7c6
introduce MFMask
2019-11-01 14:17:09 +01:00
3ba1c11f3b
fix memory leak
2019-10-31 15:01:53 +01:00
5b60e21f1b
make text socket work again
2019-10-31 14:57:40 +01:00
badad91ac3
make Object socket work again
2019-10-31 14:39:16 +01:00
92e04dcd15
rename placeholder to dummy
2019-10-31 14:15:27 +01:00
d218811e85
access function and parameter names
2019-10-31 14:11:11 +01:00
db0ee0fe36
further improve MultiFunction API
2019-10-31 13:51:05 +01:00
e09e429f57
cleanup MultiFunction API
2019-10-31 13:43:44 +01:00
cdd69f8e6d
dot export
2019-10-31 13:32:53 +01:00
53d345a897
add missing implicit conversions
2019-10-31 13:15:33 +01:00
b7c516a121
add more primitive conversions
2019-10-31 12:55:23 +01:00
16150b75ac
cleanup network generation code
2019-10-31 12:27:35 +01:00
5816f75544
initial automatic node vectorization
2019-10-31 11:44:01 +01:00
0ceef31d99
support for full pointer array in virtual list
2019-10-31 10:59:46 +01:00
568315b0b8
make Get List Element node work again
2019-10-30 16:39:33 +01:00
3baf1f7ffa
remove unused code
2019-10-30 16:31:23 +01:00
be738fa181
make Pack List node work again
2019-10-30 16:27:53 +01:00
cdeb4ecf8e
make some list nodes work again
2019-10-30 15:32:33 +01:00
98577ce2b2
initial non recursive multi-function evaluator
2019-10-30 14:01:00 +01:00
aec147ec74
new ArrayRef.first_index method
2019-10-29 16:52:38 +01:00
cdb7f3c192
change GenericVectorArray
2019-10-29 16:31:36 +01:00
269488d1c3
use virtual list list ref in multi functions
2019-10-29 15:46:25 +01:00
c6ebe25337
initial VirtualListListRef
2019-10-29 15:00:47 +01:00
353af1c51a
Support for implicit conversions, float math node and int type
2019-10-29 13:32:22 +01:00
e1ca6c4129
Merge branch 'functions' into functions-experimental-refactor
2019-10-29 11:21:58 +01:00
cacbe466b2
Merge branch 'master' into functions
2019-10-29 11:15:49 +01:00
7bef9b83fb
initial MultiFunction generation from node tree
2019-10-22 13:54:55 +02:00
dfa3ed8761
insert links function
2019-10-22 13:04:54 +02:00
73a709844b
make VirtualNodeTree const in many places
2019-10-22 12:51:46 +02:00
bc8d442717
initial new node inserters
2019-10-22 11:47:29 +02:00
4adbf49d83
improve ArrayRef
2019-10-22 11:47:00 +02:00
59df914983
replace ArrayOrSingleRef with VirtualListRef
2019-10-20 15:55:33 +02:00
b04aed8db6
experimental VirtualListRef
2019-10-20 15:11:52 +02:00
fc1ca9a2e2
fixes
2019-10-20 14:53:17 +02:00
f6f4f2914c
utility functions
2019-10-20 14:27:54 +02:00
4d61b8b1f9
initial VTreeMFNetwork and VTreeMFNetworkBuilder
2019-10-20 13:29:38 +02:00
31ecaf4a8a
make MultiFunction const in more places
2019-10-18 17:49:12 +02:00
ff29177a4c
make CPPType const everywhere
2019-10-18 17:47:02 +02:00
84baab05b2
remove unused code
2019-10-18 17:46:51 +02:00
838ac481f2
cleanup
2019-10-18 17:40:18 +02:00
5151d05625
cleanup
2019-10-18 17:37:33 +02:00
53d3d32992
use MF prefix in more places
2019-10-18 17:31:22 +02:00
9dbe43f044
start using MF prefix for some classes
2019-10-18 17:23:35 +02:00
36310012ff
allow passing destruct_ptr to OwnedResources
2019-10-18 17:08:55 +02:00
2f6ea75758
move destruct_ptr to BLI
2019-10-18 16:46:15 +02:00
d0dd083cbb
multi function with constant output
2019-10-18 15:08:20 +02:00
416d6a17dc
first created and executed multi function graph
2019-10-17 17:53:04 +02:00
59dc9f1f1a
implement initial conversion from builder to network
2019-10-17 16:35:09 +02:00
c2aea94511
give nodes and sockets ids
2019-10-17 15:21:10 +02:00
94d06d7094
initial network structure
2019-10-17 15:08:00 +02:00
2f02949798
initial multi function network builder
2019-10-17 14:19:21 +02:00
0d4a90000d
Merge branch 'functions' into functions-experimental-refactor
2019-10-17 10:49:29 +02:00
b660768ae0
Merge branch 'master' into functions
2019-10-17 10:49:00 +02:00
586a9c14ad
pass context into multi functions
2019-10-16 13:05:57 +02:00
376f4813dd
experiment with an interface to specify external data dependencies
2019-10-16 12:57:21 +02:00
b08bcb1ef4
remove unused code
2019-10-16 12:37:30 +02:00
c1d570ebb1
separate concept of data types from parameter types
2019-10-16 12:19:38 +02:00
76655021c2
remove unused code
2019-10-16 12:19:22 +02:00
2b781131ed
experimental AnyAllocator
2019-10-16 11:39:27 +02:00
4d08c352c3
cleanup
2019-10-16 11:39:16 +02:00
f4455b442c
separate vector function
2019-10-15 15:52:53 +02:00
34a66dea4e
Combine Vector multi function
2019-10-15 15:32:06 +02:00
9952cbc715
initial multi function node tree evaluation
2019-10-15 15:12:48 +02:00
0cc550108a
new add vectors multi function
2019-10-15 12:32:05 +02:00
2c06ccec82
initial params builder
2019-10-15 12:05:43 +02:00
56ab056637
test function call
2019-10-13 22:04:01 +02:00
78aa2d5f02
further implement signature builder
2019-10-13 18:32:47 +02:00
a9a8741270
further develop Signature
2019-10-13 18:32:47 +02:00
f0b62c43ef
start implementing Params
2019-10-13 18:32:47 +02:00
a1308c1f98
init stuff
2019-10-13 18:32:47 +02:00
42894aa3df
don't use old function system for function deform modifier
2019-10-13 18:32:47 +02:00
8a3ce65044
fix
2019-10-13 18:32:47 +02:00
630d32b159
new socket type mapping
2019-10-13 18:32:47 +02:00
7588b4e493
separate declaration and implementation
2019-10-13 18:32:47 +02:00
745c6dec4d
move functions to other file
2019-10-13 18:32:47 +02:00
59b077c020
fix test
2019-10-13 18:32:47 +02:00
cad83fee9f
move multi function to separate header
2019-10-13 18:32:47 +02:00
9cd357768d
fix
2019-10-13 18:32:47 +02:00
029e63093d
fix
2019-10-13 18:32:47 +02:00
f84f8b2a02
combine lists
2019-10-13 18:32:47 +02:00
c696a29058
list lengths
2019-10-13 18:32:47 +02:00
2ef5959f8a
GenericVectorArrayOrSingleRef
2019-10-13 18:32:47 +02:00
b38ee6daab
generic array or single ref
2019-10-13 18:32:47 +02:00
b4130c3d2a
more generic vector array functionality
2019-10-13 18:32:47 +02:00
1ee3c53ed2
prototyping vector array usage
2019-10-13 18:32:47 +02:00
c365ec7c61
initial GenericVectorArray
2019-10-13 18:32:47 +02:00
2efdb20b0b
use allocator in MonotonicAllocator and use minimum allocation size
2019-10-13 18:32:47 +02:00
0627a6b2d5
cleanup
2019-10-13 18:32:47 +02:00
375a600b8b
initial ArrayOrSingleRef implementation
2019-10-13 18:32:47 +02:00
909dc85f2f
node functions
2019-10-13 18:32:47 +02:00
2892434cdf
improve naming
2019-10-13 18:32:47 +02:00
5ab8cc2eaf
add generic mutable array ref
2019-10-13 18:32:47 +02:00
2cfb80f68c
cleanup
2019-10-13 18:32:47 +02:00
ffad150868
rename
2019-10-13 18:32:47 +02:00
cfaa0e566a
rename TypeCPP to CPPType
2019-10-13 18:32:47 +02:00
326878d82c
initial new function type
2019-10-13 18:32:47 +02:00
bdfc3e9a6b
GenericArrayRef type
2019-10-13 18:32:47 +02:00
b75cdf36a8
new tuple implementation
2019-10-13 18:32:47 +02:00
55d0c80611
add more type attributes
2019-10-13 18:32:47 +02:00
302e1e9a86
initial cpp type
2019-10-13 18:32:47 +02:00
faf2184f52
Merge branch 'master' into functions
2019-10-13 18:12:07 +02:00
65e6598e7e
avoid ambiguous call to make_unique
2019-09-27 16:59:04 +02:00
503fadaeb9
cleanup Tuple class
2019-09-27 15:40:40 +02:00
37bc9ffc53
remove using namespace BLI
2019-09-27 15:27:33 +02:00
123d945027
function is noncopyable and nonmovable
2019-09-27 15:17:53 +02:00
254b69417b
remove refcounter from Function class
2019-09-27 15:15:10 +02:00
0102c06cb2
remove Falloff implementation
...
The plan is to achieve the same functionality in a different way
that allows more customization.
2019-09-27 14:14:39 +02:00
4086bf9823
make particle colors work again
...
This broke in rBa168c3d282083bb4.
2019-09-27 12:35:02 +02:00
d724444dba
remove some debug prints
2019-09-27 12:33:26 +02:00
033924c630
Merge branch 'master' into functions
2019-09-27 10:58:21 +02:00
ab9a01313f
add resources to data graph instead of function
2019-09-26 18:15:55 +02:00
ea6db832a0
utility to print resource names
2019-09-26 18:07:59 +02:00
2263656526
add resource via VTreeDataGraphBuilder
2019-09-26 17:57:02 +02:00
d31da8e870
data graph can own arbitrary resources now
2019-09-26 17:42:52 +02:00
727a8da77f
make Function class a bit smaller
2019-09-26 17:35:59 +02:00
3bca19b38a
separate owned resources container from function
2019-09-26 17:23:16 +02:00
387a97ae42
experimental lazy init for unique pointers
2019-09-26 16:46:52 +02:00
b65a28b9d7
use make_unique in some places
2019-09-26 16:18:53 +02:00
f2b2279c1a
Remove owns_mem attribute from Tuple
2019-09-26 15:41:19 +02:00
cdcae9d22e
remove run_destructors member from Tuple
2019-09-26 15:21:17 +02:00
5b0d883e50
remove refcount from TupleMeta
2019-09-26 15:02:07 +02:00
be2358fe61
remove refcounter from data graph
2019-09-26 14:35:42 +02:00
802c820334
improved static and dynamic type checking for function bodies
2019-09-26 14:05:16 +02:00
abed72f22c
store tuple as resource in function
2019-09-26 13:49:11 +02:00
74fba99cc6
initial resource storage for functions
2019-09-26 13:35:06 +02:00
5460fa6efc
store StringRef directly in function
...
That increases the size slightly, but is easier to debug
2019-09-26 12:46:51 +02:00
353d6112d2
use header guards
2019-09-26 12:06:20 +02:00
d942d6daa7
rename file
2019-09-26 12:03:29 +02:00
7ba7667d8e
reduce error handling complexity
2019-09-26 11:04:27 +02:00
b34c174dfb
Merge branch 'master' into functions
2019-09-26 10:43:33 +02:00
c3d30f2992
cleanup
2019-09-26 10:43:14 +02:00
6cdc6ce355
Merge branch 'master' into functions
2019-09-25 16:02:22 +02:00
d4e58e630c
Replace Falloff with weight input
2019-09-23 12:08:36 +02:00
31a3dc769d
start using monotonic allocator when parsing bparticles tree
2019-09-23 11:42:04 +02:00
89db5e8946
Merge branch 'master' into functions
2019-09-23 11:01:22 +02:00
e64fa963de
initial particle group implementation
2019-09-22 15:05:45 +02:00
e0b82c6616
access influences collector from action parsers
2019-09-22 14:37:20 +02:00
5c733ab445
move responsibility of registering attributes to node frontend
2019-09-22 14:14:03 +02:00
fcd6a9ddcb
allow only one collision per time step
2019-09-22 13:54:48 +02:00
93c0fdcd45
pass simulation state to interfaces
2019-09-22 13:54:30 +02:00
5eecfaf824
better distinction between particle simulation and system
2019-09-22 12:59:13 +02:00
63116f2c8c
improved handling of moving colliders
2019-09-22 12:44:07 +02:00
ad8733038e
Merge branch 'master' into functions
2019-09-22 12:01:54 +02:00
e397b67946
cleanup
2019-09-20 16:37:41 +02:00
97da5f31d4
move responsibility to ensure that attributes exist out of simulator
2019-09-20 16:32:59 +02:00
9c46c784d5
move attributes declaration out of simulate code
2019-09-20 16:21:02 +02:00
cdfb3d3a28
move responsibility of keeping track of particle ids
2019-09-20 16:09:01 +02:00
8d860d4a9b
use shared particle allocator instead of one per thread
2019-09-20 16:00:26 +02:00
f1a7d102dc
don't access particles state through allocator
2019-09-20 15:09:45 +02:00
cab2f0f6bd
declare more attributes in same place
2019-09-20 15:04:00 +02:00
cb974c4c66
Merge branch 'master' into functions
2019-09-20 14:38:43 +02:00
691f2d449a
Merge branch 'master' into functions
2019-09-19 10:34:45 +02:00
d2bd35eab4
fix usage of frame nodes
2019-09-19 10:34:13 +02:00
21889a5475
fix crash with negative emitter rate
2019-09-19 10:30:24 +02:00
c3e289440d
Merge branch 'master' into functions
2019-09-18 17:42:59 +02:00
16d5919206
copy color to new particles in trails node
2019-09-17 15:27:24 +02:00
5b1d7afb9c
new particle randomness input
2019-09-17 15:04:23 +02:00
df47dd16ce
reorder menu entries
2019-09-17 14:02:27 +02:00
561450715b
add missing nodes to menu
2019-09-17 13:49:38 +02:00
4d4eeedfa0
rename file
2019-09-17 13:49:24 +02:00
9fecdb3a45
use reference to indicate that action cannot be null
2019-09-17 12:43:59 +02:00
872ee8bbe0
add some node mockups
2019-09-17 12:32:44 +02:00
8d285ee398
Merge branch 'master' into functions
2019-09-17 09:56:59 +02:00
e6ef82180f
add execute input to point emitter
2019-09-16 17:00:37 +02:00
d51f6b010d
add execute input to initial grid emitter
2019-09-16 16:56:00 +02:00
afada870e7
rename to Influences
2019-09-16 16:43:21 +02:00
8a3348d49b
make it easier to add a new particle system
2019-09-16 16:40:57 +02:00
b5d2265b60
remove unused functions
2019-09-16 11:57:59 +02:00
7e3e301bb1
more centralized ownership of actions
2019-09-16 11:39:43 +02:00
a3080c2bc3
don't crash when connecting certain sockets
2019-09-16 11:15:23 +02:00
609147a4d9
improve error handling of various nodes
2019-09-16 11:04:25 +02:00
6384a61a99
Add arrow and star operator to BLI::Optional
2019-09-16 11:04:05 +02:00
4a9bfa95ed
centralize function evaluation a bit more
2019-09-16 10:51:08 +02:00
881b5377cf
change ownership of name vectors
2019-09-16 10:41:37 +02:00
a5e1f95467
move system discovery to vtreedata
2019-09-16 10:33:13 +02:00
f54bf13cc1
missing file in cmakelists
2019-09-16 10:26:49 +02:00
f45badafd5
Merge branch 'master' into functions
2019-09-16 10:10:22 +02:00
5f5a7fcd62
fixes after merge
2019-09-15 12:46:14 +02:00
35de65ec81
Merge branch 'master' into functions
2019-09-15 12:42:24 +02:00
0d81bf5cb0
fixes after merge
2019-09-14 12:48:25 +02:00
345b86ca4e
Merge branch 'master' into functions
2019-09-14 12:44:31 +02:00
4de668c30c
Merge branch 'master' into functions
2019-09-14 12:41:02 +02:00
214964b2a0
Merge branch 'master' into functions
2019-09-13 17:08:02 +02:00
f21586cfa1
fix after rename
2019-09-13 16:32:28 +02:00
5b9ee5a55e
use NamedTupleRef in more places
2019-09-13 15:47:35 +02:00
c5c05aa40b
improve NameTupleRef abstraction
2019-09-13 14:55:48 +02:00
71184d2bc8
fix overflow in color conversion
2019-09-13 14:24:47 +02:00
e26301b30a
Rename Particle Type to Particle System and Behaviors to Influences
2019-09-13 14:09:32 +02:00
2232300639
Merge branch 'master' into functions
2019-09-13 12:28:43 +02:00
a86dda2a80
fix cmake after merge
2019-09-13 12:27:35 +02:00
ef7f059216
Merge branch 'master' into functions
2019-09-13 12:16:59 +02:00
3c4d8b1f59
rename BLI_hash.hpp to BLI_hash_cxx.h
2019-09-12 17:13:10 +02:00
d24380dd43
remove unused function
2019-09-12 16:31:02 +02:00
3cdc35dfc4
test OutputTupleRef abstraction
2019-09-12 16:29:40 +02:00
9e9e150b74
size parameter in turbulence force node
2019-09-12 15:55:47 +02:00
592470b07b
simplify code by changing ownership of particle functions
2019-09-12 15:45:55 +02:00
971ad95f2b
solve merge conflicts
2019-09-12 14:59:16 +02:00
cabc40db81
Merge branch 'master' into functions
2019-09-12 14:49:38 +02:00
e23abea88d
add license header to memory utils
2019-09-12 12:49:18 +02:00
7b4a2d578f
rename BLI_memory.h to BLI_memory_utils_cxx.h
2019-09-12 12:48:36 +02:00
e7aa06520a
change .cpp to .cc in blenlib
2019-09-12 12:45:55 +02:00
2e21ec0d88
change .hpp to .h in blenlib
2019-09-12 12:41:14 +02:00
54350b7db2
change .hpp to .h
2019-09-12 12:23:42 +02:00
590b231124
reflow comment
2019-09-12 12:21:40 +02:00
7825047f47
Merge branch 'master' into functions
2019-09-12 10:09:01 +02:00
1f957995f6
Fix birth moments of emitted particles
2019-09-11 17:59:45 +02:00
1b9cc8bfb1
Merge branch 'master' into functions
2019-09-11 17:46:43 +02:00
09ffcc5de1
initial Always Execute node
2019-09-11 17:24:47 +02:00
23de6e6960
new Falloff input for Turbulence Force
2019-09-11 16:05:51 +02:00
f082115395
Merge branch 'master' into functions
2019-09-11 15:17:11 +02:00
0f47a7d0d7
use Array instead of Vector
2019-09-11 13:29:17 +02:00
8d31f929db
fix Array and add tests
2019-09-11 13:28:40 +02:00
a988a16e3d
new Change Particle Position node
2019-09-11 11:36:52 +02:00
5743c0eab6
new Custom Event node
2019-09-11 11:24:45 +02:00
3f28239efe
move events ui to same file
2019-09-11 10:55:37 +02:00
ef8775b676
allocate VTreeDataGraph on heap
2019-09-11 10:41:47 +02:00
880c5a4360
store size of vector in debug builds to ease debugging
2019-09-11 10:18:34 +02:00
cd48588cf6
Merge branch 'master' into functions
2019-09-11 09:50:12 +02:00
972760397f
fix keymap registration
2019-09-10 17:41:32 +02:00
8024da670c
testing initial bit array ref implementation
2019-09-10 17:02:23 +02:00
72a05f9f4f
remove unnecessary inline keywords
2019-09-10 16:14:48 +02:00
29c7232f4f
comments
2019-09-10 16:11:18 +02:00
bfdf90e68c
quiet warning
2019-09-10 16:05:38 +02:00
ff3f7c5291
invert Mesh Distance Falloff
2019-09-10 15:59:20 +02:00
a9112c4932
do not register keymap in background mode
2019-09-10 15:46:53 +02:00
b928050af3
initial Mesh Distance Falloff node
2019-09-10 15:44:58 +02:00
01e97d117f
initial experimental Mesh Force node
2019-09-10 14:23:52 +02:00
2c0397edfb
Merge branch 'master' into functions
2019-09-10 13:26:17 +02:00
a911775cbe
store attributes info directly instead of unique pointer
2019-09-10 13:02:12 +02:00
c339917d7f
don't store attributes info ref directly in block
2019-09-10 12:56:54 +02:00
1b3ee092db
move attributes block container stuff to same file again
2019-09-10 12:39:18 +02:00
b22dc19ce7
new Dot Production operation in vector math node
2019-09-10 12:18:58 +02:00
844c2c8a79
new Project operation in vector math node
2019-09-10 12:10:40 +02:00
147863ac7c
Improve copy and move constructor of Vector
2019-09-10 11:54:03 +02:00
dcd84a1051
remove limit for index range arrays
2019-09-09 17:58:43 +02:00
cfb50f6581
implement multiple density modes in Mesh Emitter node
2019-09-09 17:22:54 +02:00
cdc432429f
Falloff input in Drag Force node
2019-09-09 16:23:38 +02:00
5d319ba8ff
new Drag Force node
2019-09-09 16:17:32 +02:00
706bd95ae8
Merge branch 'master' into functions
2019-09-09 15:45:19 +02:00
40e9cf9df8
initial new attributes block storage
2019-09-09 15:43:23 +02:00
c541e31931
cleanup some nonmovable and noncopyable functions
2019-09-09 12:17:28 +02:00
b2a449e783
test if it builds on buildbot without alembic tests
2019-09-09 11:51:35 +02:00
11d61f3d00
test moving functions to bf_functions
2019-09-09 11:41:07 +02:00
dc02a49fb7
test adding a virtual destructor to solve a linker issue
2019-09-09 11:33:54 +02:00
63133ee688
Merge branch 'master' into functions
2019-09-09 10:55:21 +02:00
da598e31eb
support for outputting None/Points/Tetrahedons
2019-09-06 17:44:25 +02:00
e876360aaa
Merge branch 'master' into functions
2019-09-06 17:07:59 +02:00
aa5ea9f0fe
New UInt32 attribute type
2019-09-06 16:51:32 +02:00
5045219ca9
separate BParticles Output modifier
2019-09-06 16:34:21 +02:00
d30979dddb
new Constant Falloff node
2019-09-06 15:51:03 +02:00
57ceacf8b4
move falloff implementations out of header
2019-09-06 15:42:54 +02:00
12663d2e21
cleanup boolean math
2019-09-06 15:34:03 +02:00
0b8514a99c
fix memory leak
2019-09-06 15:32:04 +02:00
264719c0b4
simplify string type
2019-09-06 14:50:13 +02:00
213d807a08
deduplicate some code
2019-09-06 14:14:33 +02:00
524df333bc
use correct wrapper for Object pointers
2019-09-06 12:49:42 +02:00
3d85989efa
rename
2019-09-06 12:26:36 +02:00
199d201cce
rename
2019-09-06 12:21:32 +02:00
f45791f436
remove unused class
2019-09-06 12:18:53 +02:00
a22b7177d2
improve llvm type info for shared immutable types
2019-09-06 12:17:16 +02:00
9ba1fce608
use specialized llvm type info for pointer references
2019-09-06 11:37:25 +02:00
4e2ee7e962
remove unused code
2019-09-06 11:27:58 +02:00
d0eafffed4
Initial Falloff implementation
2019-09-06 11:21:53 +02:00
6163ce3dee
Merge branch 'master' into functions
2019-09-06 09:21:28 +02:00
02cdf856f6
fix attribute initialization
2019-09-05 19:07:08 +02:00
d226d46144
Merge branch 'master' into functions
2019-09-05 18:30:52 +02:00
58997f47af
initial passive modifier mode
...
This allows creating separate meshes for the different particle types.
2019-09-05 18:30:36 +02:00
66c07705f9
Initial Size Over Time node
2019-09-05 16:58:35 +02:00
bc654dd3dd
support for choosing uv layer by name
2019-09-05 16:21:32 +02:00
882e7e4903
cleanup usage of temporary allocator
2019-09-05 15:17:43 +02:00
f541e79196
add comments
2019-09-05 14:27:02 +02:00
942cf217c5
add some comments
2019-09-05 14:18:48 +02:00
02f4bf505a
more comments
2019-09-05 12:53:58 +02:00
b39ddcd628
add some comments
2019-09-05 12:43:53 +02:00
5420375d4a
return StringRef from virtual node/socket
2019-09-05 12:36:45 +02:00
f59ea9a10f
support not-equal operator for StringRef
2019-09-05 12:35:27 +02:00
242e027dea
cleanup Vector Adaptor
2019-09-05 12:27:13 +02:00
ded8e6f0af
rename test files
2019-09-05 12:17:47 +02:00
d6ac3fd2f2
rename file
2019-09-05 12:14:57 +02:00
a61852a5e2
store size in IndexRange
2019-09-05 12:12:08 +02:00
1ed83f1004
use another constructor for IndexRange
2019-09-05 11:51:54 +02:00
d22cf2fd77
replace generic Range with IndexRange
2019-09-05 11:46:55 +02:00
3a17600bed
move ChunkedRange to separate file
2019-09-05 11:30:48 +02:00
3939274a46
cleanup names
2019-09-05 11:20:22 +02:00
964ee85777
access surface color from chained action context
2019-09-05 11:15:40 +02:00
f58f26a35d
cleanup vertex weight input provider
2019-09-05 11:00:50 +02:00
fd8244fb26
new Combine Behaviors node
2019-09-05 10:38:03 +02:00
a6d08dfccb
Merge branch 'master' into functions
2019-09-05 10:05:08 +02:00
b14e8f35f7
vertices should have a unit length normal
2019-09-04 18:05:06 +02:00
1c8f6d8807
cleanup
2019-09-04 16:27:13 +02:00
5f91002b51
better time sampling in mesh emitter
2019-09-04 16:27:13 +02:00
0e528d5361
improve spacing of trail particles
2019-09-04 16:27:13 +02:00
30185113fd
take triangle areas into account
2019-09-04 16:27:13 +02:00
f0c354c97a
refactor triangle weight computation
2019-09-04 16:27:13 +02:00
6e828316b3
compute barycentric weights more centrally
2019-09-04 16:27:13 +02:00
d979cd2690
use Surface Info node instead of Collision Info
2019-09-04 16:27:13 +02:00
c665ef49ad
store surface velocities in surface context
2019-09-04 16:27:13 +02:00
c718c9e6c5
refactor usage of MeshSurfaceContext
2019-09-04 16:27:13 +02:00
1b1292b7b1
assert that the number of temporary buffers does not grow unbounded
2019-09-04 16:27:13 +02:00
560b55c4c8
cleanup
2019-09-04 16:27:13 +02:00
22624ad774
cleanup handling of emitter action contexts
2019-09-04 16:27:13 +02:00
cb35556472
support slicing ArrayRef with range
2019-09-04 16:27:13 +02:00
185ef25243
temporarily remove unnecessary emitter sockets
2019-09-04 16:27:13 +02:00
848603d032
Merge branch 'master' into functions
2019-09-04 16:27:02 +02:00
db230d4833
skip matrix interpolation when not necessary
2019-09-04 11:33:56 +02:00
716cc34a87
move AttributesRef to BKE namespace
2019-09-04 11:09:36 +02:00
fbe0a3950f
more accurate runtime type checking in debug builds
2019-09-04 10:51:06 +02:00
90aaf67e5a
Merge branch 'master' into functions
2019-09-04 09:45:37 +02:00
0edb87c629
Merge branch 'master' into functions
2019-09-03 18:12:57 +02:00
4dd3773283
Merge branch 'master' into functions
2019-09-03 16:30:22 +02:00
8443f319e3
quiet warning
2019-09-03 16:22:55 +02:00
d3210c2547
deduplicate vertex weights input code
2019-09-03 16:17:22 +02:00
24a02ee51b
initial action context chaining
2019-09-03 16:07:31 +02:00
fc0a7648b5
fix finding execute sockets
2019-09-03 16:07:03 +02:00
a72bcf11e0
new Surface Weights input node
2019-09-03 15:13:27 +02:00
3398112573
refactor how input providers are parsed
2019-09-03 14:06:57 +02:00
f7206f9910
cleanup iterating over AttributeRefs
2019-09-03 13:50:22 +02:00
b245562d0e
better error handling when expected action context is not given
2019-09-03 12:34:45 +02:00
2491dc812f
rename stride to size
2019-09-03 11:58:45 +02:00
ee8f58eb66
move particle function input providers to separate file
2019-09-03 11:56:49 +02:00
e3454c0708
new Change Particle Size node
2019-09-03 11:39:11 +02:00
61ec4a3d89
move change color/velocity node to same file
2019-09-03 11:20:04 +02:00
370a506ad0
refactor age reached event
2019-09-03 11:16:17 +02:00
c78acc85f3
initial variation input for age reached event
2019-09-03 11:07:17 +02:00
b9a2dc60e1
rename attribute reference classes
...
AttributeArrays -> AttributesRef
NewParticles -> AttributesRefGroup
2019-09-03 10:53:07 +02:00
b513079ee2
Merge branch 'master' into functions
2019-09-03 10:30:32 +02:00
410599dca2
reorganize where interfaces are declared
2019-09-02 19:01:33 +02:00
551ca28108
remove unused parameter
2019-09-02 18:13:24 +02:00
147d2dfac5
don't pass particle allocator using BlockStepData
2019-09-02 18:08:44 +02:00
1d15c51bf9
use annotation for properties
2019-09-02 17:58:19 +02:00
0d700d201a
remove ParticleSet and ParticleSets abstraction
2019-09-02 17:56:14 +02:00
d2fe280a6e
improved Change Particle Velocity node
2019-09-02 16:09:52 +02:00
fce176dbd0
fix mesh emitter action context
2019-09-02 15:40:13 +02:00
49b6e1dccf
abstract mesh surface action context
2019-09-02 15:13:49 +02:00
27081694f9
rename
2019-09-02 15:07:24 +02:00
4d46c481ac
Merge branch 'master' into functions
2019-09-02 14:42:45 +02:00
06565e21ea
use action context in mesh emitter
2019-09-02 12:31:49 +02:00
e45fb9e735
use more generic mesh surface action context
2019-09-02 12:11:58 +02:00
e485f030e8
fix temporary deallocation
2019-09-02 12:05:16 +02:00
2412efdf89
simplify mesh emitter more
2019-09-02 11:33:20 +02:00
9ff4828501
cleanup mesh emitter
2019-09-02 11:20:22 +02:00
bde76782eb
sample varying float4x4
2019-09-02 11:13:19 +02:00
36016e2960
extract triangle sampling
2019-09-02 11:02:24 +02:00
381ece9410
extract birth moment computation
2019-09-02 10:48:21 +02:00
5f31282c46
Merge branch 'master' into functions
2019-09-02 09:59:03 +02:00
acd7915371
fix computing cumulative distribution
2019-08-28 18:05:39 +02:00
a55745ba7f
sample weighted triangles differently
2019-08-28 18:01:10 +02:00
42c58fe840
support allocating larger buffers with temporary allocator
2019-08-28 16:29:30 +02:00
ea068aeb22
start implementing vertex group support in emitter
2019-08-28 14:23:38 +02:00
bc218feff1
append n times function for vector adaptor
2019-08-28 14:23:10 +02:00
fac51ca754
store attribute indices in string map
2019-08-28 12:16:51 +02:00
6e5e1e7ee7
store Range in AttributeArrays
2019-08-28 10:50:55 +02:00
c238c179d7
Merge branch 'master' into functions
2019-08-28 10:25:02 +02:00
25e5488594
don't store particle name in particle sets structure
2019-08-27 17:40:20 +02:00
b52c3b3fc7
Initial string socket type
...
The internal implementation is working, but not very efficient yet (every string
is allocated separately without any cache). I'm still thinking about a better
solution, but for now having any working text socket is more important.
2019-08-27 17:22:47 +02:00
7ca34c3838
Merge branch 'master' into functions
2019-08-27 14:23:35 +02:00
0ee75f415a
bring back transform interpolation for mesh emitter
2019-08-27 13:54:03 +02:00
d95073c9c7
roll back some changes regarding world transition handling
2019-08-27 13:48:51 +02:00
5a7dfe59da
fix some more warnings
2019-08-27 12:24:25 +02:00
c5449eb30f
avoid some warnings
2019-08-27 12:20:54 +02:00
e12b1cf8ce
fix some warnings
2019-08-27 12:17:56 +02:00
a32472bd31
remove unnecessary semicolon
2019-08-27 11:55:47 +02:00
955c931b45
Merge branch 'master' into functions
2019-08-27 11:19:58 +02:00
5ef500c27b
cleanup arrayref and stringref
2019-08-26 15:48:26 +02:00
645a54107c
add missing include
2019-08-26 15:37:16 +02:00
cd0f866aef
move time from ParticlesState to SimulationState
2019-08-26 15:21:10 +02:00
2cf9e5070a
start updating how the world state is used
2019-08-26 14:54:20 +02:00
357be047aa
build virtual node tree in constructor
2019-08-26 12:17:51 +02:00
bccd47ab4f
remove particle block from interfaces
2019-08-26 11:58:01 +02:00
5a3a155438
remove StepDescription and ParticleType entirely
2019-08-26 11:33:50 +02:00
3f01ddd5d2
don't use ParticleType abstraction in simulation code
2019-08-26 11:09:31 +02:00
0c98f500e2
don't use StepDescription abstraction in simulation code
2019-08-26 10:49:47 +02:00
3c541ff26c
initial step simulator abstraction
2019-08-26 10:27:20 +02:00
7b08fe78e5
move simulation state to separate file
2019-08-26 10:05:08 +02:00
9efc8d1d9f
combine particle and world state in c api
2019-08-26 09:57:40 +02:00
a5260c143c
implicitely convert StringRef to std::string
2019-08-26 09:37:04 +02:00
43b449fc18
add missing const
2019-08-26 09:27:49 +02:00
08f0727864
add missing const
2019-08-26 09:25:42 +02:00
f4e3d5f30e
Merge branch 'master' into functions
2019-08-26 09:18:17 +02:00
23c31ec27d
add float hash
2019-08-25 14:34:10 +02:00
2e712d4eec
add test
2019-08-25 14:30:36 +02:00
7e4715a534
remove unused macro
2019-08-25 14:23:32 +02:00
58754850ca
remove unused mempool
2019-08-25 14:19:31 +02:00
dbdd6b88ef
unify hash tables a bit
2019-08-25 14:07:56 +02:00
c52a4316d0
update the hashing template
2019-08-25 13:58:01 +02:00
bb81caeb1e
Fix build error
2019-08-24 21:28:36 +02:00
6d0dad6290
Update Vector implementation
2019-08-23 17:35:19 +02:00
1e74b276c4
don't inline grow for other data structures
2019-08-23 16:57:24 +02:00
d49f1f8772
don't inline grow functions
2019-08-23 16:52:24 +02:00
f35171a9a8
add some comments
2019-08-23 16:32:49 +02:00
a3d9fc20cf
store usable slots in open addressing array
2019-08-23 16:25:43 +02:00
c52e381c8b
Add license header
2019-08-23 16:06:07 +02:00
af89849067
replace magic number
2019-08-23 16:04:21 +02:00
4d2dcb6a5f
Initial implementation of updated ui proposal
2019-08-23 15:41:33 +02:00
9c05112910
fix after merge
2019-08-23 10:12:22 +02:00
dc383b2bfd
Merge branch 'master' into functions
2019-08-23 10:01:55 +02:00
c20301adf1
fix build error
2019-08-22 14:19:30 +02:00
ac4c2b3a48
Merge branch 'master' into functions
2019-08-22 12:14:56 +02:00
Eitan
9644f7c8c7
New boolean math node with And, Or and Not operation
2019-08-22 11:47:30 +02:00
1a0a642063
fix boolean c++/llvm conversion
2019-08-22 11:44:56 +02:00
b0034fd7a2
more comments
2019-08-21 18:24:05 +02:00
33949188a7
add some comments
2019-08-21 17:57:42 +02:00
fda6430d6a
improve const correctness in many places
2019-08-21 17:38:54 +02:00
700ff7b073
Merge branch 'master' into functions
2019-08-21 17:29:22 +02:00
6f511f6722
Fix raw allocator
...
This allocator is necessary because sometimes we don't want to use
Blenders guarded allocator. Especially when an object lives longer
than the guarded allocator.
2019-08-21 14:44:09 +02:00
7f79bc3054
Merge branch 'master' into functions
2019-08-21 09:27:24 +02:00
8c95d02504
more tests
2019-08-20 18:45:26 +02:00
6c78f41a2f
add StringMap tests
2019-08-20 18:31:19 +02:00
0b2164c5ed
remove unused MappedArrayRef class
2019-08-20 18:12:20 +02:00
b45cd6b8bd
implement an actual string map that does not rely on std::string
2019-08-20 18:08:17 +02:00
dc01c108d4
improve ArrayRef and StringRef
2019-08-20 18:07:31 +02:00
075a36ae95
Merge branch 'master' into functions
2019-08-20 18:05:44 +02:00
c26a23f245
fix set vector remove
2019-08-20 12:34:39 +02:00
f591503f32
Merge branch 'master' into functions
2019-08-20 09:57:12 +02:00
206495642f
Merge branch 'master' into functions
2019-08-19 18:42:56 +02:00
a6b66db204
cleanup Map
2019-08-19 18:34:26 +02:00
ecb8d0bdae
cleanup Set
2019-08-19 18:30:16 +02:00
a00101ae5d
move hash table slot iterators out of class
2019-08-19 18:24:16 +02:00
6f79e52665
Initial support for custom allocators for containers
2019-08-19 18:18:20 +02:00
607942330c
Merge branch 'master' into functions
2019-08-19 10:39:12 +02:00
38b973a679
New Map, Set and SetVector implementation
...
All tests are runnings still, but I need to do more testing in the upcoming days.
This implementation uses a different approach for sharing code between
the different structures. I tried different abstractions in the last weeks
and this is the best one I found so far.
2019-08-18 16:31:48 +02:00
de8a52dcee
low level memory utilities in blenlib
2019-08-18 12:12:39 +02:00
b0ca3469ed
Merge branch 'master' into functions
2019-08-18 12:05:11 +02:00
25ab857e4d
Fix particle tetrahedon mesh generation
2019-08-18 12:05:00 +02:00
a8eb9448e7
Merge branch 'master' into functions
2019-08-16 15:03:06 +02:00
f52b66c7ec
cleanup type usage
2019-08-14 15:32:26 +02:00
a0d9f387bb
free types when Blender exits
2019-08-14 15:20:33 +02:00
e16afbe4f5
use guarded allocator for some core types
2019-08-14 14:59:24 +02:00
7921c6cb7e
store types in global variables
2019-08-14 14:39:39 +02:00
def527c9b0
Do not use a reference counter for Types
...
Types can be expected to stay alive until Blender exists.
This also works well with the fact that they are identified
by their pointer.
Furthermore, the number of types is fairly low, but they
are passed around a lot. Maintaining a thread-safe reference
count seems to be unnecessary overhead.
2019-08-14 13:59:05 +02:00
f073f232cf
improve map method names
2019-08-14 11:53:08 +02:00
b7bc639d00
add more license headers
2019-08-14 11:46:29 +02:00
d39f5109cc
add license header to blenlib files
2019-08-14 11:44:11 +02:00
1ca951cb6f
Merge branch 'master' into functions
2019-08-14 09:57:15 +02:00
8b0706a6c1
fix compile error
2019-08-13 13:27:43 +02:00
180d46c76e
remove copy to clipboard
2019-08-13 11:43:20 +02:00
a1fef73075
Merge branch 'master' into functions
2019-08-13 11:28:49 +02:00
1ebfffa310
fix compile error on windows
2019-08-12 17:55:52 +02:00
artem ivanov
0b15817ad2
More Float Math operations
...
Differential Revision: https://developer.blender.org/D5433
2019-08-12 16:36:31 +02:00
Eitan
e0ebaf8f3c
Add multiply and divide to vector math node
...
Differential Revision: https://developer.blender.org/D5430
2019-08-12 16:24:58 +02:00
8aa6ff8ec9
Reimplement the way many arrays are allocated
...
This new implementation is more generic and easier to use.
2019-08-12 15:50:08 +02:00
52578524bd
remove AttributeArrayCore class
...
It worked well, but having it does not provide enough value
to justify the additional complexity.
2019-08-12 10:30:51 +02:00
00d456761f
Merge branch 'master' into functions
2019-08-12 09:23:25 +02:00
8ef0c6b0df
Merge branch 'master' into functions
2019-08-07 12:02:06 +02:00
b277709d53
comment some library functions
2019-08-07 12:00:23 +02:00
f8909cfab7
only wrap intrusive listbases for now
2019-08-07 11:40:16 +02:00
4457268059
add some comments
2019-08-07 11:14:14 +02:00
b429156131
experimental reloadable function inputs
2019-08-07 11:04:30 +02:00
2428486775
allocate aligned from monotonic allocator
2019-08-07 10:54:01 +02:00
468be50313
remove unnecessary small object optimization for monotonic allocator
2019-08-07 09:33:37 +02:00
e231654e24
cleanup llvm function type creation
2019-08-06 17:40:25 +02:00
b0585aa4d4
rename element_amount to size
2019-08-06 17:23:00 +02:00
b04ec4faa5
move function to correct file
2019-08-06 17:17:34 +02:00
b46e26cd34
Fix exception when using the node search
2019-08-06 16:17:35 +02:00
71ec8895b7
rename tuple folder to cpp
2019-08-06 11:59:36 +02:00
4022d8784c
New list implementation
...
Instead of using a templated list, it is easier to use a "generic" list, that can
handle every type with a CPPTypeInfo extension. This simplifies the code quite
a bit, because templates can be avoided in many places.
This also makes it easier to add new types.
The list will still be refcounted and still have the shared immutability semantic.
So when a list has more than one user, it is immutable.
2019-08-06 11:54:49 +02:00
a0364a6227
rename files for consistency
2019-08-05 18:18:59 +02:00
2a7b684a8a
Merge branch 'master' into functions
2019-08-05 17:17:16 +02:00
b3d5ef9971
remove unused function
2019-08-05 16:35:27 +02:00
bd56ee7a78
cleanup cpp type extension
2019-08-05 15:51:05 +02:00
18820b10fd
rename file
2019-08-05 14:59:34 +02:00
39989cb106
rename multimap to multi_map
2019-08-05 13:43:00 +02:00
4f282b4216
Allow passing unlinked input handlers to graph generation
2019-08-05 13:13:09 +02:00
3ea03318bb
fix compile error and warning on macos
2019-08-05 13:07:40 +02:00
d5546057f2
rename classes
2019-08-05 12:58:31 +02:00
31c6db7d2a
separate unlinked input grouper from inserter
2019-08-05 12:51:32 +02:00
5b8feb038d
simple multivector data structure
2019-08-05 12:49:21 +02:00
80ce0cd20f
join map.lookup and map.lookup_ref
2019-08-05 12:10:00 +02:00
artem ivanov
d0cdadc81e
More vector math operations: Subtract, Cross Product, Reflect
2019-08-05 11:50:00 +02:00
db88d6e1a5
fix auto vectorization when function does not have certain bodies
2019-08-05 11:49:15 +02:00
6b1e4f51c0
Merge branch 'master' into functions
2019-08-05 10:39:52 +02:00
05d85c52a2
rename
2019-08-02 19:18:13 +02:00
8e9323cafa
experiment with different ways to group unlinked inputs
2019-08-02 19:12:13 +02:00
afe19d51e3
remember placeholder nodes after they are created
2019-08-02 18:57:19 +02:00
f149445d38
vector.fill_indices
2019-08-02 18:51:02 +02:00
c21f39578f
easily create dot graph from vtree data graph builder
2019-08-02 17:42:45 +02:00
d51db9a526
don't create array ref from single value
2019-08-02 17:42:15 +02:00
fb034c8e14
fix dot export after recent changes
2019-08-02 17:41:45 +02:00
5176484fbc
rename UnlinkedInputsHandler to InputInserter
2019-08-02 16:22:06 +02:00
71d8ebd201
refactor how information about the node tree is stored
2019-08-02 16:11:25 +02:00
375577cfb9
improve file names
2019-08-02 14:10:39 +02:00
92319905a0
unify mapping names
2019-08-02 14:07:14 +02:00
2f3ccb7e90
move all tree mappings into folder
2019-08-02 14:00:46 +02:00
d537af9303
execute action for new particles after explosion
2019-08-02 13:43:56 +02:00
2be7226e86
new rgba_b attribute type
2019-08-02 13:21:12 +02:00
d022328974
new float2 particle attribute type
2019-08-02 13:18:57 +02:00
7f802fb750
initial texture color access after collision
2019-08-02 12:56:10 +02:00
3411511499
new float2 and rgba_b types
2019-08-02 12:52:40 +02:00
645293e2d9
remove redundant values
2019-08-02 10:08:51 +02:00
c5caaafd7f
move collision info and particle info node in same file
2019-08-02 09:37:37 +02:00
363ba2ee7a
Merge branch 'master' into functions
2019-08-02 09:27:17 +02:00
219573de22
Fix: Build error with MSVC
...
Zero sized arrays not being at the end of struct/class makes MSVC sad
2019-08-01 15:25:07 -06:00
480e284250
Merge branch 'master' into functions
2019-08-01 18:24:20 +02:00
f0b7499750
support for default values for vectorized inputs
2019-08-01 18:19:58 +02:00
d63f673e05
move input handlers to separate file
2019-08-01 17:55:47 +02:00
b07626e48b
fix use after free in python
2019-08-01 17:25:54 +02:00
79b85c1426
add ability to store socket values as constants in IR
2019-08-01 17:18:34 +02:00
787e97057a
return function body instead of bool
2019-08-01 17:18:07 +02:00
eb403083c6
support that tuples own their meta data
2019-08-01 17:17:36 +02:00
d3763513ff
remove timer
2019-08-01 16:35:23 +02:00
f9a555a60a
don't load socket values dynamically
2019-08-01 16:35:06 +02:00
d91a5b69d9
cleanup socket loaders
2019-08-01 16:06:25 +02:00
46bd09b789
cleanup
2019-08-01 15:56:00 +02:00
faeb98b48e
compute type of every socket only once
2019-08-01 15:36:37 +02:00
0b970bc160
fix fill constructor of vector
2019-08-01 15:36:16 +02:00
795bae3410
cleanup type mappings
2019-08-01 15:07:04 +02:00
e606316ed6
rename refresh to sync_tree
2019-08-01 14:55:55 +02:00
13dce85083
fix float math node inputs
2019-08-01 14:55:20 +02:00
0ef25d8001
cleanup
2019-08-01 14:36:52 +02:00
104df5f5f2
support color in Custom Emitter node
2019-08-01 14:16:12 +02:00
69a8699b54
fix use-after-free crash from python
2019-08-01 14:15:56 +02:00
3d1de1e44e
cache enum items in python
2019-08-01 14:15:28 +02:00
ffbe506a55
rename DFGraphSocket to DataSocket
2019-08-01 13:33:40 +02:00
3d2e279b3d
rename DataFlowGraph to just DataGraph
2019-08-01 13:30:13 +02:00
6dc48fd18d
replace DataFlowGraphBuilder implementation
2019-08-01 13:26:34 +02:00
218fcf4473
replace another map with a vector
2019-08-01 10:28:30 +02:00
1fd26737b5
use virtual socket index to replace a map with a vector
2019-08-01 10:16:56 +02:00
2f948952b5
store an index per virtual socket
2019-08-01 10:16:36 +02:00
f6ef23ebe7
remove IndexedNodeTree data structure in favor of VirtualNodeTree
2019-08-01 09:59:55 +02:00
fe5356bf25
Merge branch 'master' into functions
2019-08-01 09:52:03 +02:00
4c8746a965
Merge branch 'master' into functions
2019-07-31 18:41:50 +02:00
28ba204e17
easy access to identifier of socket
2019-07-31 18:41:06 +02:00
56e541dba6
identify types with idname
2019-07-31 18:35:24 +02:00
27b365058e
remove last remainings of GraphInserters
2019-07-31 18:28:14 +02:00
22bd4ad4fb
move more code out of GraphInserters
2019-07-31 17:53:37 +02:00
7ffa849297
start removing graph inserters
2019-07-31 17:43:46 +02:00
385e61a122
cleanup VTreeDataGraph creation
2019-07-31 17:28:48 +02:00
a5bc1b002f
rename file
2019-07-31 17:21:43 +02:00
8e8049fa28
move VTreeDataGraph to separate file
2019-07-31 17:18:29 +02:00
b1fb402e1b
cleanup VTreeDataGraph
2019-07-31 17:11:26 +02:00
69b0da1987
rename BTreeGraphBuilder to VTreeDataGraphBuilder
2019-07-31 17:01:33 +02:00
ed4db612f8
new Combine Color node
2019-07-31 16:57:04 +02:00
3e406633f7
only compile when there are outputs
2019-07-31 16:49:12 +02:00
529b78160c
move ui code of multiple nodes in the same file
2019-07-31 16:29:14 +02:00
38463de2d9
extract some methods from llvm array execution
2019-07-31 16:09:20 +02:00
b6e533a0d9
don't expose different array execution functions
2019-07-31 15:48:50 +02:00
0f80acd54b
don't prepare execution stack when not necessary
2019-07-31 15:40:11 +02:00
0f3b50329c
cleanup llvm ir when stack info is maintained
2019-07-31 15:18:36 +02:00
14bb065f13
support for compiling particle functions down to machine code
2019-07-31 14:54:28 +02:00
eaaa8610fa
some llvm usage improvements
2019-07-31 14:27:30 +02:00
36f0132394
llvm does not permit void*, so replace all uses with i8*
2019-07-31 14:24:44 +02:00
670537ed8a
initial tuple call array execution
2019-07-31 11:23:13 +02:00
bff87f3a9a
fix merge conflict
2019-07-31 10:35:33 +02:00
5878add697
Merge branch 'master' into functions
2019-07-31 10:30:30 +02:00
3e0fd90605
use another strategy to create functions for unlinked inputs
2019-07-30 16:13:44 +02:00
042cc17bab
clang-format
2019-07-30 15:06:22 +02:00
760e084791
show node search in menu
2019-07-30 14:59:28 +02:00
9d3a92d3e3
use background color for particle type node
2019-07-30 14:59:28 +02:00
e54acfa2ff
rename
2019-07-30 14:59:28 +02:00
5841005187
add buttons to create particle type nodes
2019-07-30 14:59:28 +02:00
4f5093f403
renamed particle_modifier_output to particle_effector_output
2019-07-30 14:55:15 +02:00
26d0bbffa8
added point force node for particle nodes
2019-07-30 14:41:28 +02:00
773b6bbd42
rename modifier to effector in some places
...
That was missing in a previous commit.
2019-07-30 13:58:17 +02:00
c2e63d660b
add color attribute type
2019-07-30 13:44:39 +02:00
33c29f35b8
simplify the way attribute information is stored
2019-07-30 13:27:37 +02:00
4bbee4acf2
new Change Particle Color node
2019-07-30 12:14:42 +02:00
99e5f16d4a
new Separate Color node
2019-07-30 12:01:33 +02:00
093583620c
new color socket type
2019-07-30 12:01:00 +02:00
d29052a514
make object an input in mesh collision event
2019-07-30 10:59:51 +02:00
937dde6060
fix wrong element size due to alignment
2019-07-30 10:59:34 +02:00
e41084f94a
cleanup style
2019-07-30 10:20:40 +02:00
40b3c50837
Merge branch 'master' into functions
2019-07-30 10:08:15 +02:00
9fb73c42fd
windows compile fixes - missing includes
2019-07-29 20:28:30 +02:00
c62b1850e3
rename "size_of_type" to just "size"
2019-07-29 17:55:52 +02:00
910431e382
start taking alignment of types into account when constructing tuples
2019-07-29 17:53:12 +02:00
bd514d20e0
remove more redundant code
2019-07-29 17:21:21 +02:00
e38e761ba6
remove more redundant code
2019-07-29 17:17:38 +02:00
b645fa8d12
remove more redundant code
2019-07-29 17:13:42 +02:00
0bf70bde16
rename try_get_T to try_get<T>
2019-07-29 17:07:03 +02:00
f78e2837ff
change get_T to get<T> when accessing attributes
2019-07-29 17:03:32 +02:00
deecc8c6f8
fix error when using Call node
2019-07-29 16:43:11 +02:00
555d29a0fe
initialize particles with IDs
2019-07-29 16:39:35 +02:00
c28a441a9d
fix coyp paste error
2019-07-29 16:05:08 +02:00
74bdbb94e5
add integer attribute type
2019-07-29 15:48:59 +02:00
d2c1f7b9ca
initial particles block id
2019-07-29 15:16:21 +02:00
aa1c4663a1
remove lots of redundant code
2019-07-29 15:08:05 +02:00
ac5bf8e4f9
initial age output in particle info node
2019-07-29 14:50:19 +02:00
e87cd0c807
introduce input provider interface
2019-07-29 14:02:04 +02:00
e2a6763be3
support for freeing particle function input arrays
2019-07-29 13:51:41 +02:00
c2461a8b87
extract method to create particle function input provider
2019-07-29 13:39:17 +02:00
f2d3539cb5
new particle function input providers abstraction
2019-07-29 13:30:55 +02:00
dbc453f414
extract methods from particle function evaluation
2019-07-29 12:30:59 +02:00
58c67cdde4
remove unnecessary typedef
2019-07-29 12:19:01 +02:00
4ed19b6b1e
cleanup particle function builder
2019-07-29 12:16:55 +02:00
888aec8234
move particle function building to separate file
2019-07-29 12:07:08 +02:00
5a1a8fa917
handle inputs with no dependencies separately
2019-07-29 11:55:25 +02:00
ed2180832e
use debug name checking again
2019-07-29 11:20:42 +02:00
904966b3ef
particle function contains two functions: with/without dependencies
2019-07-29 11:14:38 +02:00
6e83213a5f
utility to iterate over trivial particle indices
2019-07-29 10:06:48 +02:00
41f83ef571
scoped timer per element
2019-07-29 10:03:27 +02:00
a8c46c4bf0
fix after merge
2019-07-29 09:13:38 +02:00
1b274efd7c
Merge branch 'master' into functions
2019-07-29 09:09:33 +02:00
248ee40712
Cleanup: Fix build error with msvc.
2019-07-25 15:18:33 -06:00
7db0b9c265
add utility to combine strings on the stack
2019-07-25 15:09:57 +02:00
7a3e5c1dad
simplify creating particle function
2019-07-25 14:31:25 +02:00
9b3e1859ef
simplify action builders
2019-07-25 14:20:36 +02:00
63a9949c27
compute particle functions more centrally for events
2019-07-25 10:18:22 +02:00
6c3afa7801
create particle function for force inputs more centrally
2019-07-25 10:06:03 +02:00
7e4c489778
use particle function for gravity force
2019-07-25 10:01:10 +02:00
c92dd7bed6
create particle function more centrally for offset handlers
2019-07-25 09:54:46 +02:00
7de561f930
Merge branch 'master' into functions
2019-07-25 09:42:45 +02:00
03f4489e4d
Merge branch 'master' into functions
2019-07-24 19:19:46 +02:00
93b01da75e
use threading again
2019-07-24 19:10:55 +02:00
3976570539
use particle function in Age Reached event
2019-07-24 19:07:55 +02:00
2d925db8b0
fix double free and optimize when particle function inputs have no dependencies
2019-07-24 19:07:38 +02:00
fd0226f614
handle type extensions as references instead of pointers by default
2019-07-24 17:52:22 +02:00
85536c5e75
use function bodies as references instead of pointers by default
2019-07-24 17:43:00 +02:00
f54507724f
rename
2019-07-24 17:13:33 +02:00
54724cc5b3
simplify usage of particle functions
2019-07-24 17:12:13 +02:00
b60b193384
do more checks when debugging
2019-07-24 16:27:07 +02:00
299ba77cc9
fix false positive memory leak
2019-07-24 16:15:06 +02:00
c0fd3b6962
remove tests because their are more trouble than they are worth currently
2019-07-24 16:14:50 +02:00
dec218643e
use particle function in turbulence node
2019-07-24 15:54:16 +02:00
1cc5f83442
introduce force interface
2019-07-24 15:46:30 +02:00
e468ca977e
use particle function in trails node
2019-07-24 15:25:43 +02:00
d9f02f209b
further simplify usage of particle function
2019-07-24 15:09:55 +02:00
f169a5eeb7
improve particle function
2019-07-24 15:06:07 +02:00
bdcca74b23
rename
2019-07-24 14:47:05 +02:00
1f79a069d3
move particle function to separate file
2019-07-24 14:44:36 +02:00
d4f57524be
rename
2019-07-24 13:58:04 +02:00
89001688d6
rename EventInfo to ActionContext
2019-07-24 13:56:07 +02:00
2859cf6902
cleanup executing actions
2019-07-24 13:50:36 +02:00
bc9d51d048
expose collision normal in new Collision Info node
2019-07-24 13:33:12 +02:00
712701a4ef
remember socket that triggered an action
2019-07-24 12:52:35 +02:00
f777ac8a52
use new function creation method for action and offset handlers
2019-07-24 12:36:13 +02:00
efa9b1cc41
use error handling for event nodes
2019-07-24 11:47:37 +02:00
5de6dca2f5
create function to compute force inputs
2019-07-24 11:43:28 +02:00
cb091c196f
use better error handling for other emitters
2019-07-24 11:37:30 +02:00
d9348adb33
better error handling when creating function for emitter inputs
2019-07-24 11:33:15 +02:00
f1c69c71c6
move FunctionBuilder to separate file and add more methods
2019-07-24 11:32:40 +02:00
b1425fc68b
namespace fix
2019-07-24 11:31:53 +02:00
556691b19a
Improve error handling with ValueOrError class
...
We might want to use exceptions instead of this.
I'm not sure yet.
2019-07-24 10:58:11 +02:00
a0f9564d1b
cleanup finding placeholder dependencies
2019-07-24 10:14:51 +02:00
c21d8bd0d9
cleanup finding node inputs
2019-07-23 19:03:49 +02:00
a18d338d3f
minor improvements
2019-07-23 19:02:39 +02:00
a781b6fc3a
rename BTreeDataGraph to VTreeDataGraph
2019-07-23 18:06:41 +02:00
17dd4e03b8
move function generation file to correct file
2019-07-23 18:04:27 +02:00
fa26630d87
fix uninitialized memory
2019-07-23 18:00:24 +02:00
937a448de2
Remove Composition data structure
...
This simplifies the code and speeds up accessing function
bodies and type extensions. Now, a lock is only necessary
when create new bodies or extensions.
This is achieved at the cost of having a slighly less generic
system, because we have to give e.g. different function body
types different IDs. Since the number of different types
is expected to be fairly low, this trade off is worth it.
2019-07-23 16:54:40 +02:00
d6a7832f6d
simplify virtual node tree usage
2019-07-23 14:59:18 +02:00
9869bc3bc4
Merge branch 'master' into functions
2019-07-23 09:46:00 +02:00
d6b7aecbbc
reorder lines
2019-07-22 17:58:31 +02:00
5bcc78ada9
remove builders that are not necessary for now
2019-07-22 17:57:20 +02:00
c900098170
remove unnecessary usings
2019-07-22 17:34:03 +02:00
51fb6b5098
remove unnecessary type definitions
2019-07-22 17:31:20 +02:00
5a269bfb57
remove "small" from test names
2019-07-22 17:19:35 +02:00
f0c164b861
rename SmallVector to Vector
2019-07-22 17:17:47 +02:00
a1ba33090b
rename SmallMap to Map
2019-07-22 17:10:42 +02:00
6a63774f43
rename SmallMultiMap to MultiMap
2019-07-22 17:07:58 +02:00
d0d6f38754
rename SmallStack to Stack
2019-07-22 17:05:37 +02:00
f179b2dd30
rename SmallSetVector to SetVector
2019-07-22 16:59:52 +02:00
f9caf48eab
Rename SmallSet to just Set
...
The fact that the data structure has small object optimization
is not important enough to justify a more complex name.
Following commits will rename other data structures.
2019-07-22 16:57:59 +02:00
f039c43f95
cleanup
2019-07-22 16:47:32 +02:00
4b42c112fd
cleanup accessing rna of virtual node
2019-07-22 16:46:11 +02:00
3dfbbf606e
cleanup accessing node names
2019-07-22 16:40:29 +02:00
9a4d125533
use virtual node tree for parsing particle system node trees
2019-07-22 16:35:49 +02:00
7d5ee7c689
start using virtual node tree to generate functions
2019-07-22 15:49:13 +02:00
c71997dd67
initial virtual node tree
2019-07-22 14:19:12 +02:00
fb26304aa2
ArrayRef.contains_ptr
2019-07-22 14:18:43 +02:00
8a69395d6a
rename SocketBuilder to NodeBuilder
2019-07-22 12:41:02 +02:00
86fb4243d1
cleanup
2019-07-22 12:37:31 +02:00
ddf0b72870
make socket.data_type a class property
2019-07-22 12:32:51 +02:00
b7efaadb8e
get socket data type from idname
2019-07-22 12:04:42 +02:00
227a28e9e5
remove dead code
2019-07-22 10:49:46 +02:00
b1d21db61b
remove colored socket builder
2019-07-22 10:48:34 +02:00
6356f27a87
Merge branch 'master' into functions
2019-07-22 10:24:28 +02:00
fa9f34c056
show particle type names in nodes
2019-07-20 14:21:22 +02:00
1180996832
add ability to select output mesh type in modifier settings
2019-07-20 14:06:51 +02:00
dd47cbf3b7
use constant velocity integrator when there are no forces
2019-07-20 13:40:00 +02:00
0767dad328
rename function
2019-07-20 13:39:17 +02:00
9fa5d75d80
Fix moving sets and maps
2019-07-20 12:57:12 +02:00
ff398d29a6
Merge branch 'master' into functions
2019-07-20 11:53:07 +02:00
9a965af529
move offset handlers to separate file
2019-07-18 17:34:40 +02:00
49d2d8b47e
add timer
2019-07-18 17:18:52 +02:00
10c81747fe
splitup remainings of core.hpp
2019-07-18 17:16:40 +02:00
c23ccfc0ac
separate files for particle state and allocator
2019-07-18 16:59:31 +02:00
0645752ab7
cleanup
2019-07-18 16:59:08 +02:00
bd49708841
rename target to new_particles
2019-07-18 16:49:20 +02:00
c67953c53e
move particle set to separate file
2019-07-18 16:47:10 +02:00
182cc12015
fix trail creation for partial time steps
2019-07-18 16:39:28 +02:00
83e75345a2
simple rate input for Trail node
2019-07-18 16:19:31 +02:00
e29914292a
missing destructor
2019-07-18 15:57:34 +02:00
6793bab243
use proper constructors for step description and particle type
2019-07-18 15:39:05 +02:00
2c0c758d72
make StepDescription class non-virtual
2019-07-18 15:30:48 +02:00
234f5d9407
make ParticleType class non-virtual
2019-07-18 15:28:08 +02:00
d0eed2a7ac
change how particle types declare which attributes they need
2019-07-18 15:23:45 +02:00
023f477bdd
rename AttributesInfoBuilder to AttributesDeclaration
2019-07-18 15:04:23 +02:00
8dd5be76c0
initial step desription builder
2019-07-18 14:59:07 +02:00
24c5a21977
remove redundant particle type name storage
2019-07-18 14:30:53 +02:00
f2737b927d
rename ForwardListener to OffsetHandler
2019-07-18 14:04:38 +02:00
1272208b2b
remove redundant information
2019-07-18 13:52:58 +02:00
d908edbc8a
cleanup
2019-07-18 13:47:13 +02:00
9fd56bed3f
cleanup
2019-07-18 13:44:29 +02:00
e47c49c872
remove redundant information
2019-07-18 13:40:36 +02:00
168f5964b6
remove redundant information
2019-07-18 13:37:04 +02:00
fe8cace993
use block step data in more places
2019-07-18 12:56:22 +02:00
ea6bbc1aec
use step block data in more functions
2019-07-18 12:39:02 +02:00
d1f05d2415
use step block data in more functions
2019-07-18 12:22:47 +02:00
a6914c973f
introduce BlockStepData as container for data that would have to be passed into many functions
2019-07-18 12:16:10 +02:00
7aa22a24a7
initial forwarding listeners + particle trail node
...
Still looking for a better name instead of Forwarding Listeners
2019-07-18 12:08:36 +02:00
4672d7aa83
Merge branch 'master' into functions
2019-07-18 10:37:40 +02:00
d6230d1563
don't always use cache for now since it makes testing more annoying
2019-07-17 18:01:25 +02:00
e800a2d5fa
experimental initial grid emitter
2019-07-17 17:45:44 +02:00
0df9c55578
pass time step in from the modifier
2019-07-17 17:11:05 +02:00
a2b128a451
experimental Close By Points event
2019-07-17 16:46:13 +02:00
54f7163310
minor changes
2019-07-17 15:57:17 +02:00
09bc3a0aac
Revert "use evaluated node tree"
...
This reverts commit eddb4d0af4
.
Sometimes the evaluated node trees are not updated when the real
node tree changes. Use original trees until this is fixed.
2019-07-17 11:20:47 +02:00
da04c045fe
velocity and size input for point emitter
2019-07-16 18:18:53 +02:00
ce2081e5b3
support for interpolated float values
2019-07-16 18:18:09 +02:00
06d8ed1a8a
store color per particle
2019-07-16 17:59:20 +02:00
ec7054772b
utility operators to create emitter and particle system trees
2019-07-16 17:33:13 +02:00
bd573cf2d7
use vector adaptor instead of pointer+length in fgraph tuple call
2019-07-16 16:29:13 +02:00
667b56f87b
use "ifdef DEBUG" instead of "if DEBUG"
2019-07-16 16:28:49 +02:00
eddb4d0af4
use evaluated node tree
2019-07-16 16:12:56 +02:00
c41a9d0e88
fix fgraph tuple call
2019-07-16 16:12:06 +02:00
55a74c35dd
fix vector math node
2019-07-16 15:59:42 +02:00
c35feef507
new node to get the vertices of a mesh
2019-07-16 15:36:22 +02:00
9a02226aa2
support for geometry dependencies of functions
2019-07-16 15:35:50 +02:00
f4dac36c05
extract another function for linking
2019-07-16 14:52:06 +02:00
a5b90dc661
extract method that links functions
2019-07-16 14:43:47 +02:00
70f8f3231b
Custom Emitter functions can have inputs now
2019-07-16 14:33:08 +02:00
6a8985dfa5
utility to map multiple sockets
2019-07-16 13:22:58 +02:00
f0cc032f83
construct SmallVector from arbitrary containers
2019-07-16 13:04:26 +02:00
39ebd2fd1f
more general function tree dependency discovery
2019-07-16 12:57:30 +02:00
8fec347121
more powerful custom emitter
2019-07-16 11:37:43 +02:00
f058e7b11a
remove unnecessary check
2019-07-16 11:32:12 +02:00
8ba1856a13
fix bug in fgraph tuple call
2019-07-16 11:32:01 +02:00
38e223e392
initialize attributes by repeating a given array
2019-07-16 10:00:57 +02:00
f388fdc4f1
Merge branch 'master' into functions
2019-07-16 09:37:19 +02:00
36bd4e1225
get rid of static block size
2019-07-15 18:09:07 +02:00
e95c0078a2
initial custom function emitter
2019-07-15 17:56:02 +02:00
94d2a11636
more debug time checks
2019-07-15 17:25:19 +02:00
ad6fa16304
use more debug time checks
2019-07-15 17:19:02 +02:00
c5d18a0a8a
check that indices correspond to correct outputs in debug build
2019-07-15 17:09:32 +02:00
6d208e3183
remove indirection
2019-07-15 16:54:47 +02:00
89a8b1f4f5
cleanup events
2019-07-15 16:51:23 +02:00
aefdc1807a
cleanup emitters
2019-07-15 16:43:27 +02:00
b5a74ae166
remove a level of indirection
2019-07-15 16:23:42 +02:00
034956978e
more boilerplate code removal
2019-07-15 16:18:59 +02:00
fa9bf0c5b1
cleanup
2019-07-15 16:15:06 +02:00
719357ffda
revisit autorefcount
2019-07-15 16:07:24 +02:00
f2421c042e
abstract interpolated vectors and matrices
2019-07-15 15:35:45 +02:00
0b3ff01ba4
bring back some emitter settings
2019-07-15 15:23:20 +02:00
39476c5ce3
remove boilerplate code for emitters
2019-07-15 15:18:35 +02:00
419f0de8d3
initialize emitter differently
2019-07-15 15:11:36 +02:00
25b3b122e6
experiment with remembering last point emitter position
2019-07-15 14:39:59 +02:00
2e1ba1c02a
interpolate vectors
2019-07-15 14:37:37 +02:00
65f2000075
cleanup variable shadowing
2019-07-15 13:49:29 +02:00
3c979ed37e
delete particles in same taskpool as simulation
2019-07-15 12:08:23 +02:00
89b625a0ce
Merge branch 'master' into functions
2019-07-15 11:47:47 +02:00
b6b26efb9f
Merge branch 'master' into functions
2019-07-12 15:06:01 +02:00
a84fcf8cde
actually use threading...
2019-07-12 14:49:30 +02:00
60a2d39782
remove temporary code
2019-07-12 14:08:34 +02:00
45b4704df6
use function to compute point input of point emitter
2019-07-12 14:05:33 +02:00
3915ca912a
remove unused code
2019-07-12 13:58:11 +02:00
82844c5f11
cleanup dependency builder
2019-07-12 13:51:20 +02:00
b6c1d3e1bd
make updating depsgraph work again
2019-07-12 12:39:57 +02:00
fe4c294656
improve fgraph dependencies
2019-07-12 12:24:43 +02:00
b6820e4a87
fixes
2019-07-12 12:17:43 +02:00
da34e3476e
cleanup
2019-07-12 12:02:26 +02:00
b0015fc7cd
multimap fix
2019-07-12 12:00:39 +02:00
c77abe1e8d
initial revised function dependency handling
2019-07-12 10:33:22 +02:00
5366c5c827
utility functions to access data flow graph
2019-07-12 10:27:52 +02:00
53d00eb08b
simplify array printing
2019-07-12 10:14:27 +02:00
b124984220
fix when there are no triangles in mesh
2019-07-12 10:14:12 +02:00
3708e233b5
add multiple in multimap
2019-07-12 09:16:44 +02:00
5b7f49edc4
comment in stringmap
2019-07-11 16:34:53 +02:00
800a578ed7
use StringMap everywhere
2019-07-11 16:30:46 +02:00
12149d8e1b
initial string map
2019-07-11 15:50:46 +02:00
05d742427f
cleanup action builders
2019-07-11 15:39:06 +02:00
d8719603f8
pass build context instead of separate parameters
2019-07-11 15:30:13 +02:00
db6a45ce1f
reorder functions
2019-07-11 15:21:11 +02:00
e0a7c11dd0
cleanup simple emitter builders
2019-07-11 15:14:12 +02:00
32e435bbc3
simplify event inserters
2019-07-11 14:44:01 +02:00
9f1c625056
cleanup force node handling
2019-07-11 14:29:17 +02:00
abb76708d1
simplify create function for node inputs
2019-07-11 13:47:53 +02:00
79ec9180e6
rename GeneratedGraph to BTreeDataGraph
2019-07-11 13:37:43 +02:00
57f7d83def
cleanup executing actions for a subset
2019-07-11 12:47:05 +02:00
8eb57698c4
cleanup running action from event
2019-07-11 12:36:09 +02:00
401ff628bd
settings size in point emitter is not necessary anymore
2019-07-11 12:28:31 +02:00
75cc874922
introduce attributes info builder
2019-07-11 12:24:06 +02:00
7a62e775bb
simplify calling action from emitter
2019-07-11 11:46:10 +02:00
615269b749
rename modifiers to effectors
2019-07-11 11:20:15 +02:00
202708eeae
run action on particle birth
2019-07-11 11:17:53 +02:00
5114a48fd7
correct usage of attribute offsets that are not available
2019-07-11 10:15:56 +02:00
35dcbf506d
fill an array partially
2019-07-11 09:53:39 +02:00
ed9bc5f5c0
Merge branch 'master' into functions
2019-07-11 09:37:08 +02:00
5f02cc2d3a
simple clear cache operator
2019-07-10 17:17:26 +02:00
5216bf6014
get rid of particles.range()
2019-07-10 16:53:39 +02:00
dee695f2da
cleanup usage of particle indices
2019-07-10 16:45:05 +02:00
4d6b6ab7e3
fix wrong index access
2019-07-10 16:34:07 +02:00
d7fd4ed39c
rename particle_indices to pindices
2019-07-10 16:30:45 +02:00
b5af31fb57
use particle indices to trigger particles
2019-07-10 16:28:43 +02:00
157f0aedcb
remove unused code
2019-07-10 16:23:16 +02:00
37a3a41de8
cleanup
2019-07-10 16:21:28 +02:00
8e2ae56b25
access time factors to next event with particle indices
2019-07-10 16:19:31 +02:00
25e7319488
access next event indices with particle indices
2019-07-10 16:11:31 +02:00
18e8a12ef1
use particle indices to access remaining durations
2019-07-10 15:58:53 +02:00
9386bcb29a
rename durations to remaining_durations
2019-07-10 15:45:28 +02:00
0135d47a06
compute remaining durations in every thread again
2019-07-10 15:43:10 +02:00
1f9186c270
store remaining durations instead of end times
2019-07-10 15:17:56 +02:00
85b8376829
pass array allocator to emitter and execute event interface
2019-07-10 14:56:44 +02:00
3d93967292
take event execute interface out of action interface
2019-07-10 14:35:57 +02:00
8b13cd86ec
more centralized solution to getting an array ref for a range
2019-07-10 14:21:53 +02:00
ab0f8b46a6
use ParticleSets abstraction instead of emitter targets
2019-07-10 13:54:33 +02:00
8ea9f57601
simplify event execute interface
2019-07-10 12:59:20 +02:00
d00457ba64
cleanup ParticleAllocators class
2019-07-10 12:39:15 +02:00
ee70791626
rename BlockAllocator to ParticleAllocator
2019-07-10 12:35:20 +02:00
1104d30f9e
remove intermediate class
2019-07-10 12:32:18 +02:00
d191a1cee7
start simplifying the emitter interface
2019-07-10 12:27:18 +02:00
d58a5ac3aa
Merge branch 'master' into functions
2019-07-10 11:58:14 +02:00
f09794f280
size input for mesh emitter
2019-07-10 11:36:04 +02:00
b197bf5903
sync node trees when file is loaded
2019-07-10 11:33:33 +02:00
317a2ff1e9
unify float and float3 caching
2019-07-10 11:22:27 +02:00
d34c240ebf
Cache particle blocks in container for reuse
2019-07-10 11:05:46 +02:00
804ea8fe82
store and cache size per particle
2019-07-10 10:26:48 +02:00
5e22b41ce1
normal and emitter velocity inputs
2019-07-09 17:07:56 +02:00
ab6106149f
move world state to mesh emitter
2019-07-09 17:01:58 +02:00
7b674cc684
pass emitter object and rate into mesh emitter node
2019-07-09 16:56:19 +02:00
fa483d50d1
pass object into object transforms node
2019-07-09 16:23:57 +02:00
7c10fa0ac3
object list type
2019-07-09 16:20:40 +02:00
761090b9d4
object type in function system
2019-07-09 16:09:22 +02:00
0a07de8839
object data type in ui
2019-07-09 16:02:30 +02:00
1b1fcd79da
basic caching system so that particles can be rendered
2019-07-09 15:56:38 +02:00
52040433a1
rename modifier
2019-07-09 13:48:00 +02:00
a9c1831b07
remove unused code
2019-07-09 13:33:06 +02:00
d2e4f94205
move action builders to separate functions
2019-07-09 13:32:20 +02:00
4b9b9c7813
simplify inserters
2019-07-09 13:24:16 +02:00
72913dbafc
initial process node interface
2019-07-09 12:55:15 +02:00
6ab1d300d6
fix variable names
2019-07-09 12:29:30 +02:00
1bfe567129
new node_frontend interface
2019-07-09 12:27:26 +02:00
fb1fdbd217
remove unnecessary includes
2019-07-09 12:16:54 +02:00
43d037b086
move inserters to separate file
2019-07-09 12:13:34 +02:00
d845e15750
move integrator to seprate file
2019-07-09 12:02:11 +02:00
8364c3aafc
move step description to separate file
2019-07-09 11:53:36 +02:00
81795f30b4
move world state to separate file
2019-07-09 11:44:37 +02:00
f3b06e8b15
taking emitter velocity into account
2019-07-09 11:23:06 +02:00
3d919e445a
add ability to cache the world state to avoid stepping effects
2019-07-09 10:53:56 +02:00
9863f2bfec
new map.add_override method
2019-07-09 10:53:14 +02:00
438aae9d0f
remove Function from displace modifier (was only for testing)
2019-07-09 09:58:12 +02:00
30dee2dbd2
specify default inputs for some nodes
2019-07-09 09:50:07 +02:00
d94c249194
add ability to specify default values for data sockets
2019-07-09 09:49:55 +02:00
0d28e20bc3
move possibly empty arrays to end of struct for msvc compatibility
2019-07-09 09:32:35 +02:00
b01071a4f3
Merge branch 'master' into functions
2019-07-08 17:55:29 +02:00
435698e219
rename insert to add
2019-07-08 17:55:07 +02:00
ad7c91b346
new compare function
2019-07-08 17:34:48 +02:00
fed773cec6
random number node should have float instead of int input
2019-07-08 17:14:02 +02:00
9d79363098
move functions to correct file
2019-07-08 17:09:29 +02:00
317158e106
reintroduce unique_ptr for actions and events
2019-07-08 17:08:31 +02:00
6e86e314ef
move action interface to separate file
2019-07-08 16:56:27 +02:00
65292981a4
improve ActionInterface
2019-07-08 16:50:28 +02:00
6dd1e480b5
initial Action interface
2019-07-08 16:21:44 +02:00
2a0abf0adf
initial condition action
2019-07-08 16:09:32 +02:00
f7e7335123
improved event info usage
2019-07-08 15:39:54 +02:00
49e5434e94
initial collision event info
2019-07-08 15:13:57 +02:00
b293739f1f
initial event info
2019-07-08 14:23:08 +02:00
c8816dbd31
StringRef.drop_prefix
2019-07-08 14:14:45 +02:00
6bfa473b60
simplify StringRef operator overloads
2019-07-08 14:02:19 +02:00
cba2b0367c
stringref: iterate, startswith and endswith
2019-07-08 13:57:25 +02:00
1251ef30aa
gather required attributes from particle type and events
2019-07-08 13:30:58 +02:00
fe697e5c1f
SmallSet.add_multiple_new
2019-07-08 13:30:08 +02:00
db89c65746
remove separate EventFilter class
2019-07-08 12:57:39 +02:00
03e95e569b
distribute tetrahedons in parallel
2019-07-08 12:43:39 +02:00
d71543bf60
new utility to process a range with multiple threads
2019-07-08 12:42:35 +02:00
fce3694f0d
new ChunkedRange
2019-07-08 12:42:13 +02:00
d824cb4a7f
allow using array allocator in integrator
2019-07-08 11:53:38 +02:00
16a23f4195
rename FixedArrayAllocator to just ArrayAllocator
2019-07-08 11:44:21 +02:00
7387e36267
simplify allocating arrays and vectors from fixed array allocator
2019-07-08 11:41:38 +02:00
fc412c78b4
comment on fixed array allocator
2019-07-08 11:08:23 +02:00
ef8cbccd54
simplify method names
2019-07-08 11:03:26 +02:00
5503207730
use scoped array allocations to simplify memory management
2019-07-08 11:00:41 +02:00
fff24d71f7
cleanup multimap
2019-07-08 10:37:28 +02:00
3c67bda1d2
Merge branch 'master' into functions
2019-07-08 09:56:40 +02:00
2e701cbaaf
rename file to BLI_small_multimap
2019-07-06 18:01:23 +02:00
20bd3b5ed1
add vertex colors to tetrahedons for visualization
2019-07-06 17:30:00 +02:00
e852f7d356
create SmallVector from MappedArrayRef
2019-07-06 17:12:11 +02:00
6715600796
flatten float3 attribute of container
2019-07-06 16:49:12 +02:00
b832be6206
improved particle to tetrahedon conversion
2019-07-06 16:38:26 +02:00
b2188f052b
initial particle info node
2019-07-06 15:36:02 +02:00
f204ea5624
Fix append_n_time reallocating every time
2019-07-06 15:14:51 +02:00
1d2adb08f8
Fix ArrayLookup for the case when all slots are used or dummies
2019-07-06 14:43:31 +02:00
f7e0f429e2
remove unused modifier properties
2019-07-05 18:07:12 +02:00
2746f423bd
initial turbulence node
2019-07-05 17:38:29 +02:00
f67431d729
use gravity node in simulation
2019-07-05 16:56:40 +02:00
30c6880fe0
initial gravity force node ui
2019-07-05 16:39:29 +02:00
fa79121db2
initial mesh collision event node
2019-07-05 15:40:58 +02:00
d5f21d2aac
cleanup age reached event inserter
2019-07-05 15:19:33 +02:00
7beef61562
get node of socket from indexed tree
2019-07-05 15:13:28 +02:00
57cb7849fa
construct SmallStack from array
2019-07-05 15:03:48 +02:00
cc8ff01d8e
deduplicate function create code
2019-07-05 14:49:18 +02:00
2c8e8d547f
add speed input to explode node
2019-07-05 14:42:54 +02:00
681ae8d03c
initial explode particle node
2019-07-05 14:38:35 +02:00
0380b22606
better handling of zero duration
2019-07-05 13:42:52 +02:00
452369f1b7
simulate more events per step, again
2019-07-05 12:57:03 +02:00
278dc870c0
allow event filters to add attributes to a particle type
2019-07-05 12:53:37 +02:00
f9edcf46b3
improved change direction action
2019-07-05 12:23:45 +02:00
873f483836
new change direction action
2019-07-05 11:15:57 +02:00
7de0213588
access element at index in listbase
2019-07-05 11:15:31 +02:00
821b7e5360
initial build action from nodes
2019-07-05 10:48:44 +02:00
fc490e4236
new action that does nothing
2019-07-05 10:38:58 +02:00
b71291c96d
cleanup
2019-07-05 10:38:44 +02:00
e02befdd2c
remove unnecessary IndexedBParticlesTree
2019-07-05 10:28:43 +02:00
5e7dc72f11
better function signature for inserters
2019-07-05 10:24:38 +02:00
057455726c
new kill particle node ui
2019-07-05 10:14:01 +02:00
c5330b6d94
new control flow socket
2019-07-05 10:11:40 +02:00
9328e6f0bf
Merge branch 'master' into functions
2019-07-05 09:53:41 +02:00
d3c5e882b0
Use monotonic allocator instead of more complex ones
2019-07-04 18:04:58 +02:00
16c92706d8
some comments for allocators
2019-07-04 17:33:46 +02:00
7f410f0655
initial replaceable unlinked inputs handler
...
Depending the use case, unlinked node inputs should be handled differently.
Sometimes, it is okay to load them from RNA on every call, but
sometimes they should also be hardcoded into the generated assembly.
2019-07-04 16:30:31 +02:00
cdd5d41e6e
fix memory leak
2019-07-04 16:08:07 +02:00
3a0cfed4aa
first time using the function nodes within bparticle nodes
2019-07-04 15:57:38 +02:00
82ae82488e
cleanup data flow graph generation
2019-07-04 15:31:09 +02:00
e7ff5b1470
don't use output parameter when building data flow graph
2019-07-04 15:02:10 +02:00
7a6ab07e9e
make it possible to build data flow graphs for any node tree
2019-07-04 14:49:53 +02:00
bee737bbad
store list with non-reroute and non-frame nodes explicitely
2019-07-04 14:03:06 +02:00
d66644dd87
cleanup finding input and output nodes of function
2019-07-04 13:57:05 +02:00
be0ed93f99
use indexed node tree in more places
2019-07-04 13:44:33 +02:00
b06ed62500
initial age reached event node
2019-07-04 13:29:49 +02:00
8628f329e8
cleanup rna access
2019-07-04 11:34:49 +02:00
4ae4d125cd
simple point emitter node for testing
2019-07-04 11:30:49 +02:00
c44a8e5ede
initial emitter inserter
2019-07-04 11:17:21 +02:00
4cb0cb6a06
improve indexed node tree
2019-07-04 10:54:17 +02:00
96f4921704
refactor IndexedBParticlesTree
2019-07-04 10:32:57 +02:00
a6b5767d27
rename NodeTreeQuery to IndexedNodeTree
2019-07-04 10:29:35 +02:00
28c4b3e6f8
identify particle types with name instead of integer
...
While this might be less efficient, it is much more comfortable to work with.
Also it might be possible to make it a bit more efficient again in the future.
2019-07-04 10:20:32 +02:00
fefeaec48d
Merge branch 'master' into functions
2019-07-03 19:11:23 +02:00
5aa6c03fbc
use BLI_STATIC_ASSERT
2019-07-03 19:10:07 +02:00
f16c8eec40
optimize adding multiple new values to multimap
2019-07-03 19:02:49 +02:00
10437bba07
only use new multimap implementation
2019-07-03 19:01:14 +02:00
2df06e3172
fix issue with multiple links at same socket
2019-07-03 18:49:57 +02:00
d14073a5fc
better multimap implementation for a specific use case
2019-07-03 18:42:29 +02:00
918cdba723
missing from last commit
2019-07-03 18:42:01 +02:00
33dda8463d
improved lookup or insert functions for map
2019-07-03 18:41:16 +02:00
b9fee1a5d7
return index when value was inserted before
2019-07-03 17:09:33 +02:00
9af1aa48ab
remove unnecessary template parameter
2019-07-03 16:56:01 +02:00
d9277bf1c4
support storing multiple connected sockets per socket
2019-07-03 16:35:36 +02:00
5db4d8269e
add multiple new elements to multimap
2019-07-03 16:33:53 +02:00
d037390cd2
iterate keys of multimap
2019-07-03 16:13:35 +02:00
011e88d03c
convert linked list to array for further processing
2019-07-03 15:57:56 +02:00
29413c894b
class to simplify querying bparticle node tree
2019-07-03 15:51:39 +02:00
b80000f073
rename BNodeTreeLookup to NodeTreeQuery
2019-07-03 15:36:32 +02:00
9c7ef45214
Use float3 instead of custom vector type in function system
2019-07-03 15:34:47 +02:00
bf55ab38d8
comment on llvm builder and types
2019-07-03 15:16:22 +02:00
2448312278
comment on tuple-call
2019-07-03 15:01:54 +02:00
8840be2fb9
Merge branch 'master' into functions
2019-07-03 11:19:24 +02:00
aaef6e6e3a
comment on tuple
2019-07-02 18:38:06 +02:00
7a7592e615
comment on CPPTypeInfo
2019-07-02 18:01:06 +02:00
c347373fc6
Comment on SourceInfo, FunctionGraph and DataFlowGraphBuilder
2019-07-02 17:51:10 +02:00
32fdee4444
comment on data flow graph
2019-07-02 17:41:56 +02:00
f5358bc122
comment on Function class
2019-07-02 17:27:00 +02:00
9a9b1e1595
separate declaration from implementation for Function type
2019-07-02 17:11:20 +02:00
6e786c85ea
comment on type system
2019-07-02 17:01:14 +02:00
49804947e9
separate declaration and implementation of methods of type
2019-07-02 16:42:20 +02:00
b22a82869c
get rid of using TypeVector
2019-07-02 16:33:12 +02:00
4fcd92f624
Tuple now has a weak reference to its metadata to prevent synchronization overhead
2019-07-02 16:31:34 +02:00
d94d68afde
parse very simple bparticles node tree
2019-07-02 16:09:56 +02:00
5481e5119b
use multimap to more generally store socket origins
2019-07-02 15:31:01 +02:00
1a7507709f
get number of values stored per key in multimap
2019-07-02 15:30:32 +02:00
a0cff9838a
utility to get nodes with idname
2019-07-02 15:05:38 +02:00
deb642d2ec
disable bmesh unit test due to linker errors that I cannot fix now
2019-07-02 15:01:22 +02:00
e0af39a0dc
construct SmallVector from ListBase
2019-07-02 15:00:38 +02:00
7db1888bf2
move node tree lookup utilities to BKE
2019-07-02 14:15:20 +02:00
a4fd3f7cc4
store pointer to node tree in modifier data
2019-07-02 12:51:32 +02:00
33e09fe233
initial particle type and mesh emitter node
2019-07-02 12:40:01 +02:00
d41e65e44c
rename function_nodes folder to nodes and add bparticles tree type
2019-07-02 12:13:16 +02:00
d5b0df396a
various small improvements
2019-07-02 12:02:54 +02:00
940776370c
Merge branch 'master' into functions
2019-07-02 09:13:37 +02:00
59d9310b28
initial point randomization accross surface
2019-07-01 17:45:21 +02:00
77d8f118ef
avoid stepping when the emitter is moving quickly
2019-07-01 17:29:14 +02:00
2e2fab2f3b
cleanup
2019-07-01 17:12:10 +02:00
145e061bce
minor cleanup
2019-07-01 17:02:26 +02:00
05027c4d41
cleanup bounce code a little
2019-07-01 16:57:43 +02:00
d7e2e5f99d
remove comments that are more confusing than helpful
2019-07-01 15:53:46 +02:00
ad516eda2f
cleanup event handling code
2019-07-01 15:47:56 +02:00
6ae9324ada
comment on time span
2019-07-01 15:40:22 +02:00
8a6a59d99e
comment on particle block
2019-07-01 15:36:15 +02:00
7e2418a877
rename block.size() to block.capacity()
2019-07-01 15:26:28 +02:00
7afeb9775a
rename inactive to unused to avoid confusion
2019-07-01 15:25:09 +02:00
f52ff92cc3
rename block.slice() to block.attributes_slice()
2019-07-01 15:21:01 +02:00
ab0c7b8485
rename block.slice_all() to block.attributes_all()
2019-07-01 15:19:24 +02:00
f67bb0ad35
rename block.slice_active() to block.attributes()
2019-07-01 15:16:12 +02:00
c74de0c2e9
comment on particles container
2019-07-01 15:14:39 +02:00
b9baffc59d
Comment on AttributeArraysCore and AttributeArrays
2019-07-01 15:02:39 +02:00
eb3fc2c23a
comments for AttributeInfo
2019-07-01 14:48:27 +02:00
468e2b8e66
cleanup extracting all particle positions
2019-07-01 14:14:02 +02:00
0de90d6f88
make sure event data is not overwritten by later events
2019-07-01 14:01:06 +02:00
50802c0e6c
comment remaining api functions
2019-07-01 13:43:27 +02:00
00bde8527d
more comments on api
2019-07-01 12:59:59 +02:00
ac57332ddf
access current simulation time through accessor
2019-07-01 12:42:08 +02:00
eb2da8bc5a
improve attribute interface
2019-07-01 12:39:02 +02:00
6f069a03d1
new integrator interface
2019-07-01 12:20:55 +02:00
4bdc04e8fb
comment particle system api
2019-07-01 12:12:05 +02:00
37c0e0e6e9
cleanup: separate declarations from implementations
2019-07-01 11:42:15 +02:00
a8eb1d28db
start cleaning up core.hpp
2019-07-01 11:24:22 +02:00
585d6a51c0
initial api for threading with thread local data
...
This does look quite ugly so far, but it is still better than doing it manually every time.
2019-07-01 11:08:00 +02:00
6335c3dee8
change threading api
2019-07-01 10:16:29 +02:00
6289393f7b
initial c++ api for parallel processing on top of BLI_task
2019-07-01 09:57:34 +02:00
d65427ca94
Merge branch 'master' into functions
2019-07-01 09:37:12 +02:00
2c3d53cf7f
minor changes
2019-06-30 15:59:47 +02:00
3c5f321639
fix indices errors
2019-06-30 15:51:18 +02:00
af46f07ef5
initial bounce test
2019-06-30 15:21:43 +02:00
b7b2849c82
initial event storage
2019-06-30 14:34:31 +02:00
ae346fb579
bring back old test setup
2019-06-30 14:07:58 +02:00
4fb660d036
rename run_actions to execute_events
2019-06-30 13:55:20 +02:00
27149c94ee
rename EventAction to Event + interface name changes
2019-06-30 13:54:22 +02:00
2618c497c5
rename old Event to EventFilter
2019-06-30 13:49:18 +02:00
3c80e4bc92
code for testing
2019-06-30 13:47:20 +02:00
59e58328ec
multithread deletion of tagged particles
2019-06-30 13:42:31 +02:00
c839b2b7b5
use Vector Adapator to simulate to next event
2019-06-30 13:29:01 +02:00
ea5a9c8ec0
use array allocator in simulate_with_max_n_events function
2019-06-30 13:11:26 +02:00
88f5ba087a
remove last event times for now
2019-06-30 12:17:23 +02:00
749af6d36c
enable threading again
2019-06-30 12:10:40 +02:00
b60dcf9765
store fixed array allocator per thread
2019-06-30 11:51:03 +02:00
8e6bdabb00
always display nanoseconds for now
2019-06-30 11:27:18 +02:00
eb78369271
initial usage of fixed array allocator in simulation
2019-06-30 11:16:14 +02:00
686fa5ca84
utility to allocate attributes from array allocator
2019-06-30 11:12:02 +02:00
0fd83de6c3
new fixed array allocator
2019-06-30 11:11:34 +02:00
80a84f7c11
remove some timers
2019-06-30 11:00:48 +02:00
aaf4b00ba1
test impact of manual vectorization (2x speedup)
2019-06-30 10:40:31 +02:00
2ec577c75e
separate methods of integrator
2019-06-30 10:40:08 +02:00
2f91feeb03
allocate attributes at 64 byte aligned addresses
2019-06-30 10:37:49 +02:00
78362edb49
optimization when indices are trivial
2019-06-30 09:55:54 +02:00
1e45e1b6b2
don't check for events when there are none
2019-06-30 09:53:24 +02:00
0bbf940965
better timing statistics
2019-06-30 09:49:10 +02:00
d183496162
cleanup: pass events instead of particle type
2019-06-30 09:26:04 +02:00
b6e0a11e41
prepare simulation for optimizations
2019-06-30 09:22:28 +02:00
a8473ead9e
new emitter for testing
2019-06-30 09:21:56 +02:00
ffb79ef037
support printing timings in nanoseconds
2019-06-30 09:04:54 +02:00
e9b83d74d2
cleanup
2019-06-29 16:19:12 +02:00
d53b5af637
refactor high level simulation code
2019-06-29 16:17:01 +02:00
5f7e8e6670
refactor simulation main entry point
2019-06-29 16:04:42 +02:00
ee16f26610
remove unnecessary use of smart pointers
2019-06-29 15:56:25 +02:00
c2e13a2f94
combine event and action
2019-06-29 15:51:38 +02:00
19dda33497
optimization for the case when particle indices are trivial
2019-06-29 15:36:51 +02:00
8dd4082b27
easy access of first and last element in array ref
2019-06-29 15:36:13 +02:00
d206062e10
implicitely convert SmallSetVector to ArrayRef
2019-06-29 15:11:22 +02:00
1d031a92a5
define attributes as part of particle type
2019-06-29 15:05:15 +02:00
425d620d57
more generic way to apply attribute offsets
2019-06-29 14:14:48 +02:00
f77dfe6e94
cleanup: rename to attribute_offsets
2019-06-29 13:48:59 +02:00
b65783941c
separate integrator from simulation
2019-06-29 13:44:00 +02:00
0f26e99517
bring back loop to simulate n events
2019-06-29 13:08:48 +02:00
506b6d7df9
temporarily unrolled event loop
2019-06-29 12:53:19 +02:00
efd91c4701
integrate particles of entire block instead of a particle set
2019-06-29 12:29:06 +02:00
21dfdbc58b
Merge branch 'master' into functions
2019-06-28 17:42:08 +02:00
7e767d0858
initial experimental vector adaptor data structure
2019-06-28 17:41:15 +02:00
3be92ce31b
function to simulate a block
2019-06-28 16:41:18 +02:00
bb537df8d0
cleanup remove unused return parameter
2019-06-28 15:46:15 +02:00
3dbd8b81ba
compute ideal offsets only once per particle per time step
...
I have to bring back simulating multiple events per particle now.
2019-06-28 15:43:50 +02:00
6c5a2fecf6
refactor: move computation of ideal offsets up
2019-06-28 15:33:56 +02:00
4c85e861ea
refactor applying remaining particle offsets
2019-06-28 15:31:36 +02:00
b0f2b24160
cleanup
2019-06-28 15:12:42 +02:00
40f65055e3
loop only over particles with events instead of all
2019-06-28 14:58:18 +02:00
624794e006
float3 * scalar operator
2019-06-28 14:46:15 +02:00
a0fcdb0f98
extract method to compute current time per particle
2019-06-28 14:29:16 +02:00
035d92dd1a
faster temporary random number function
2019-06-28 14:20:04 +02:00
a4a69e605c
improve interface for killing particles
2019-06-28 14:11:06 +02:00
105353359c
improve birth time handling in action interface
2019-06-28 13:49:47 +02:00
c500e94670
cleanup handling of birth times in emitters
2019-06-28 13:30:36 +02:00
d2e050e5e1
experimental explode action
2019-06-28 12:50:16 +02:00
485b07dc55
give action access to current time per particle
2019-06-28 12:30:50 +02:00
58452b095d
initial test for spawning new particles in an action
2019-06-28 11:32:08 +02:00
788297480f
split EmitTarget into EmitTargetBase and TimeSpanEmitTarget
2019-06-28 10:53:15 +02:00
fad7613963
simulate newly created particles until there are no new ones
2019-06-28 10:45:15 +02:00
b928475df0
separate partial simulation of new particles from emitters
2019-06-28 10:34:38 +02:00
2835c8df6f
allow SmallVector to use ArrayRef
2019-06-28 09:59:32 +02:00
83a8f830c0
simulate particles of all types at the same time
2019-06-28 09:16:09 +02:00
7326d0a3f8
Merge branch 'master' into functions
2019-06-28 08:56:38 +02:00
17441b327b
use one block allocator per thread instead of per block
2019-06-27 17:03:44 +02:00
700c2c823a
keep track of newly allocated blocks
2019-06-27 16:21:29 +02:00
58253b535f
make Block Allocator part of action interface
2019-06-27 15:41:25 +02:00
dd55ac9128
cleanup: remove unnecessary state parameter
2019-06-27 15:30:56 +02:00
878028d385
make it easier for emitters to specify birth moments
2019-06-27 15:07:39 +02:00
42d70c8152
emitter decides at which time individual particles are spawned
2019-06-27 14:29:26 +02:00
ab136cb188
size-value constructor for SmallVector
2019-06-27 13:59:18 +02:00
f2ed497129
initialize attributes with default values
2019-06-27 13:46:03 +02:00
e858f2e9ff
thread safe block creation and deletion
2019-06-27 13:27:52 +02:00
551ae21bff
use block allocator to allow muliple emitters to emit into the same block
2019-06-27 13:25:01 +02:00
2fa66f6f96
move function from header to cpp
2019-06-27 12:40:33 +02:00
8349161f14
refactor emitter interface internals
...
The problem previously was that all the information about which
blocks contain the attributes was not accessible by the emitter.
2019-06-27 12:36:47 +02:00
db8c116f5c
remove request_raw function from public emitter interface
2019-06-27 11:21:59 +02:00
938bd0edc4
ParticleSet should know the block it is in
2019-06-27 11:13:48 +02:00
40a2f975dc
Merge branch 'master' into functions
2019-06-27 10:02:07 +02:00
06fab69664
visualize different particle types with vertex colors
2019-06-26 18:18:38 +02:00
ddb44cefbd
figure out how to add vertex colors to a new mesh
2019-06-26 15:58:32 +02:00
6ea4623ea1
ability to store attribute defaults in AttributeInfo
2019-06-26 15:34:57 +02:00
1d807a8399
Allow emitters to emit multiple types of particles
2019-06-26 14:46:44 +02:00
6704c82293
new ActionInterface class
2019-06-26 14:12:12 +02:00
333d82ebc0
remove unused variable
2019-06-26 12:52:08 +02:00
165580c661
Update attribute arrays based on which attributes are required
2019-06-26 12:51:58 +02:00
9728f45e89
particles container has responsibility to allocate attribute arrays again
2019-06-26 12:06:22 +02:00
2d7673578e
comment out unused variables
2019-06-26 11:41:12 +02:00
6736ce6a03
Merge branch 'master' into functions
2019-06-26 11:34:08 +02:00
059639e301
new EventInterface abstraction
2019-06-24 12:37:27 +02:00
c2e4c7490f
take reference to emitter interface
2019-06-24 09:47:30 +02:00
4b5a23b096
rename EmitterHelper to EmitterInterface
2019-06-24 09:44:14 +02:00
c5744593ec
rename pindex_of to get_particle_index
2019-06-24 09:40:51 +02:00
b12daf64ca
separate tuple from tuple-call
2019-06-24 09:38:54 +02:00
450d3be01f
Merge branch 'master' into functions
2019-06-24 09:13:21 +02:00
7c4208f8a9
Merge branch 'master' into functions
2019-06-21 18:52:00 +02:00
5f0286302e
Comment methods of ArrayRef and StringRef
2019-06-21 18:51:37 +02:00
da5f1dd8e5
comment methods of some more data structures
2019-06-21 18:41:04 +02:00
b247fc7d46
comments for methods of SmallVector
2019-06-21 18:12:07 +02:00
a19a5f8675
initial code layout for updating the required attributes
2019-06-21 16:56:19 +02:00
3a87096f24
allocate attributes arrays in AttributeArraysCore
2019-06-21 16:48:19 +02:00
8ee05156e6
simulate all particle types with description
2019-06-21 16:21:25 +02:00
098cb4ceaa
cleanup copying ArrayRef to pointer
2019-06-21 16:12:16 +02:00
cf81da2547
refactor towards supporting multiple particle types
2019-06-21 16:03:30 +02:00
ab51c0e7dc
initial particle type intermediate class
2019-06-21 15:10:23 +02:00
3e5fb5d83e
fix using wrong length
2019-06-21 14:56:13 +02:00
d5bc8a6840
support point and tetrahedon mesh creation
2019-06-21 14:45:41 +02:00
db06b3a0b4
comment to note invariants of particle indices arrays
2019-06-21 14:14:34 +02:00
da1524fca8
new ParticleSet abstraction: attribute arrays + particle indices
2019-06-21 14:09:59 +02:00
5a31c30b5c
transform emitter mesh to world space
2019-06-21 13:28:17 +02:00
cae29a0d9d
transform collision rays to object space
2019-06-21 13:23:55 +02:00
c9958be749
initial mesh collision event
2019-06-21 12:53:51 +02:00
1294a9b5b4
generate tetraeders for particles
2019-06-21 12:02:27 +02:00
9f53e98472
minor cleanup
2019-06-21 11:32:55 +02:00
a7a6fe3ebc
initial double event avoidance
2019-06-21 11:19:16 +02:00
5d590fc1bb
extract method to simulate multiple events per step
2019-06-21 11:00:48 +02:00
e5fa7e58ba
Merge branch 'master' into functions
2019-06-21 10:24:06 +02:00
f1369dd6ac
bring back multithreading support
2019-06-20 15:49:49 +02:00
ad051d46aa
don't inline simulation functions to make profiles more useful
2019-06-20 15:20:55 +02:00
a29da3be76
remove outdated simulation code
2019-06-20 15:17:23 +02:00
82c4bdc6d0
move events and actions to separate files
2019-06-20 15:16:57 +02:00
f0cca10248
use mesh surface emitter again
2019-06-20 15:05:08 +02:00
0bf6fa4729
test multiple events
2019-06-20 14:56:42 +02:00
9c7c2d0de3
support for multiple events per particle per time step
2019-06-20 14:34:09 +02:00
0886cdb1fe
support killing particles again
2019-06-20 14:23:39 +02:00
c7b1129e77
bring back event handling
2019-06-20 13:57:32 +02:00
bcc877e180
compress blocks after each simulation step
2019-06-20 12:51:07 +02:00
2a9316d33c
actually free emitters etc.
2019-06-20 12:44:07 +02:00
831d5665b0
apply forces to particles again
2019-06-20 12:36:23 +02:00
cfb18bb6c3
Pass particle influences into the right functions
2019-06-20 12:21:30 +02:00
dd8d2517d6
separate emitters from particle influencers
2019-06-20 12:16:43 +02:00
5561684337
support emitting particles again
2019-06-20 12:10:07 +02:00
f7cca29528
bring back creating the combined positon array
2019-06-20 11:18:54 +02:00
c8bf758a9a
restructure solver api
...
Now I have to bring back all the functionality that was there already.
2019-06-20 11:04:45 +02:00
c74934cbf9
remove abstractions that are wrong for now
2019-06-20 10:17:09 +02:00
10fe6f6037
Merge branch 'master' into functions
2019-06-20 09:43:01 +02:00
05969e5418
initial curve emitter
2019-06-19 12:24:20 +02:00
0a7715e308
move forces into separate file
2019-06-19 11:06:23 +02:00
3138c7c5d7
rename files
2019-06-19 10:39:02 +02:00
3134c78661
remove turbulence force to have less distorted profiles
2019-06-19 10:34:30 +02:00
20c7fa6bcc
extract temporary method for old particle deletion
2019-06-19 10:34:08 +02:00
d43d28a348
avoid creating the same arrays many times
2019-06-19 10:29:58 +02:00
5554851f15
refactor moving particles to next event time
2019-06-18 18:23:10 +02:00
ae80a416bd
extract methods to simulate to next event vs. to next frame
2019-06-18 16:45:18 +02:00
7b15ec8713
Integrate particles again after an event
2019-06-18 16:22:05 +02:00
647503ec47
remove specialized step function for new particles
2019-06-18 15:18:31 +02:00
7629b86581
use indices mask to update only certain particles
2019-06-18 15:02:59 +02:00
913e130897
naming cleanup
2019-06-18 14:26:57 +02:00
de5971b1df
initial positional event abstraction
2019-06-18 14:21:35 +02:00
d600fb3a45
more explicit particle integration step
2019-06-18 14:02:32 +02:00
17bff65c6b
Use multithreading when moving particles forward
...
Timings in my current test file (nanoseconds per particle per time step):
* Debug Build: 150ns
* Optimized Build: 47ns
* With threading: 9ns
2019-06-18 12:35:22 +02:00
962a64aaaa
restructure simulation steps in solver
2019-06-18 12:03:46 +02:00
5d08ae535a
Utility to convert SmallSet to SmallVector
2019-06-18 12:03:15 +02:00
dd856ee973
Cleanup: reorder some functions
2019-06-18 11:49:15 +02:00
e8e94a6800
Allow emitters to emit into separate buffers
2019-06-18 11:46:14 +02:00
14125d2652
minor emitter API improvement
2019-06-18 10:05:16 +02:00
155c1de9ad
improved particle attribute handling
2019-06-17 15:52:04 +02:00
8482ee2be9
utilities to create a range before/after another
2019-06-17 15:51:06 +02:00
270f4cb1f0
SmallVector: Append N Times
2019-06-17 15:13:19 +02:00
125ff9f320
initial mesh surface emitter
2019-06-17 12:16:41 +02:00
e8ecbf3a42
Emit from other objects origin
2019-06-17 11:19:26 +02:00
b010464151
simple point emitter
2019-06-17 10:59:04 +02:00
e77d269088
Merge branch 'master' into functions
2019-06-17 10:14:23 +02:00
dd201e3fc3
Merge branch 'master' into functions
2019-06-13 11:31:10 +02:00
4faf2de83a
initial particle action abstraction
2019-06-10 12:23:15 +02:00
aa05731607
compute new positions and velocities in separate buffer
2019-06-10 12:05:28 +02:00
81eecb252a
cleanup naming
2019-06-10 12:04:16 +02:00
97ecf23069
ArrayRef.copy_from
2019-06-10 12:03:29 +02:00
8e3178e1f2
use NamedBuffers in more places
2019-06-10 11:11:32 +02:00
2d73ff2380
rename buffer accessors
2019-06-10 11:07:40 +02:00
c49ca5c99f
rename Vec3 to float3
2019-06-10 10:53:36 +02:00
b5fda893ce
add byte attribute type
2019-06-09 13:51:37 +02:00
bcc8a07fd3
experimental turbulence force
2019-06-09 13:18:55 +02:00
5da27a41c1
improve naming
2019-06-09 12:59:41 +02:00
da1eb092eb
flag killed particles in step function
2019-06-09 12:55:26 +02:00
93e38f5f6b
cleanup stepping a slice of particles
2019-06-09 12:45:24 +02:00
4ffc3c46a1
partial step newly emitted particles
2019-06-09 12:37:21 +02:00
a38b89ecb5
initial emitter info class
2019-06-09 11:58:00 +02:00
270cee3d4a
fix old particle removal
2019-06-08 14:02:51 +02:00
dc26770356
keep track of time since simulation start
2019-06-08 14:00:24 +02:00
a4de314d20
ArrayRef take_front and take_back methods
2019-06-08 13:55:21 +02:00
c77945366c
pass elapsed seconds into step function
2019-06-08 13:39:49 +02:00
f693a5b66d
automatically initialize attributes the emitter does not care about
2019-06-08 13:30:33 +02:00
c76ed1781b
method to fill an ArrayRef
2019-06-08 13:28:35 +02:00
941159fba5
emitter can decide which attributes it initializes
2019-06-08 12:59:04 +02:00
e3d3d2eec7
introduce concept of particle block slices
2019-06-08 12:38:30 +02:00
3fd4418cfd
fix lazy init unit test
2019-06-08 12:37:49 +02:00
c0b36372d0
easy access last element in vector
2019-06-08 12:37:39 +02:00
3c04bdbddb
cleanup naming and implement some destructors
2019-06-08 11:54:45 +02:00
17804e4ecb
experiment with an emitter abstraction
2019-06-07 23:12:35 +02:00
dbc50aa156
initial deletion or particles and compression of blocks
2019-06-07 22:43:29 +02:00
c2fa4a33fa
test NamedBuffersRef abstraction to separate components
...
More specifically this separates implementation details of
Forces and ParticleBlocks.
2019-06-07 18:07:54 +02:00
9351db7146
work-in-progress functions to compress a set of particle blocks
2019-06-07 17:50:33 +02:00
4c0e7a285a
initial particles container
2019-06-07 17:18:18 +02:00
d0cbd39310
initial force implementation
2019-06-07 15:53:48 +02:00
2c519ceb63
simple Vec3 type
2019-06-07 15:53:12 +02:00
2bcf091ba9
control simulation with some properties
2019-06-07 15:13:11 +02:00
80ec80cb83
don't reset simulation when pausing playback
2019-06-07 12:34:15 +02:00
ed02e1d252
cleanup interface to solver
2019-06-07 12:30:39 +02:00
d3013152ce
little bit more interesting particle movement
2019-06-07 12:24:28 +02:00
3d797d0070
splitup bparticles code into multiple files
2019-06-07 12:17:22 +02:00
41cbcf96e9
try a different approach to connect state to solvers
2019-06-07 12:00:02 +02:00
01196be661
initial particle system api test
...
Still not happy with the way solver-dependent state is handled.
2019-06-07 11:04:01 +02:00
741ed59745
very simple particles state reset logic
2019-06-06 17:43:23 +02:00
b61fce82f9
more consistent naming in C wrappers
2019-06-06 11:33:46 +02:00
c5850f6ef1
use runtime data in modifier
2019-06-06 11:21:31 +02:00
56a0a71649
new simulations folder with some test code
2019-06-06 10:42:01 +02:00
6f728beec9
Merge branch 'master' into functions
2019-06-06 10:10:35 +02:00
6262b2bf7c
initial empty particle nodes modifier
2019-06-05 10:28:26 +02:00
0387abd20f
better explanation for lazy-init macros
2019-06-05 10:05:27 +02:00
473b79b4c2
remove unused include
2019-06-05 09:58:01 +02:00
6ffab86a4d
simplify naming for lazy init macros
2019-06-05 09:56:25 +02:00
63c4712450
lazy init: thread safe registration and utility to list all
2019-06-05 09:47:27 +02:00
4df64a4393
improve move semantic usage in BLI::Optional
2019-06-04 18:14:37 +02:00
6ac4a72b28
free cached vectorized functions
2019-06-04 18:05:15 +02:00
77df7c61e6
Destruct lazy initialized objects when Blender quits
2019-06-04 17:38:05 +02:00
b8cb48b630
Merge branch 'master' into functions
2019-06-04 16:31:37 +02:00
a5413ba0f8
sort includes
2019-05-28 15:18:19 +02:00
5ea27e3d14
cleanup SmallVector
2019-05-28 15:14:20 +02:00
a34761afc0
Reduce wasted space in Function class
...
This is achieved by storing strings in a single buffer instead
of using `std::string`, which does small object optimization
for every string individually. This optimization can be done
because all strings are known when the function is build and
don't change later on.
2019-05-28 12:11:11 +02:00
5c72fb6a34
implement == operator for StringRef
2019-05-28 11:42:53 +02:00
3913b81f9e
construct StringRefNull from pointer and length
2019-05-28 11:15:50 +02:00
a02cf6a05b
Merge branch 'master' into functions
2019-05-28 10:53:36 +02:00
68174cf0b2
Merge branch 'master' into functions
2019-05-23 17:27:26 +02:00
cbb8bd467b
better cross platform exponent computation
2019-05-22 17:31:43 +02:00
8c37c378a4
more assertions in ArrayLookup
2019-05-22 17:21:12 +02:00
e59d0263ba
create ArrayRef from std::vector and std::array
2019-05-22 17:11:09 +02:00
dac0f4864d
cleanup SmallMap
2019-05-22 17:00:10 +02:00
28887080a5
ArrayRef constructor for SmallSet
2019-05-22 16:41:53 +02:00
3ab2a2af29
correct small object optimization for sets and maps
2019-05-22 16:37:07 +02:00
d5b707b6fb
improve SmallStack class
2019-05-22 16:22:47 +02:00
9ec8e308e7
more efficient small vector extend
2019-05-22 16:16:34 +02:00
b3283176a0
fix memory leaks in unit tests
2019-05-22 16:05:01 +02:00
24c3b57ec3
remove unused StringCollection
2019-05-22 15:53:15 +02:00
7863cf89de
cleanup ScopedTimer
2019-05-22 15:41:20 +02:00
900e7f6352
Merge branch 'master' into functions
2019-05-22 15:31:28 +02:00
bddc6999b0
support for caching auto vectorized functions
2019-05-20 11:19:06 +02:00
357fa4a5ba
equality operator for functions
2019-05-20 11:07:41 +02:00
0338da1063
smallmap: lookup or insert using key function
2019-05-20 11:07:23 +02:00
341b078d91
allow creating small vector with different size from array ref
2019-05-20 11:06:53 +02:00
d8d6f2a521
smallmap: lookup or insert using callback
2019-05-20 10:55:15 +02:00
92a3a4e029
speedup when all types in tuple meta are trivially destructible
2019-05-20 09:51:33 +02:00
0b63963c5a
llvm vectors are not stored as struct anymore
2019-05-20 09:42:29 +02:00
a10f336346
Merge branch 'master' into functions
2019-05-20 09:36:28 +02:00
1bde9ab004
remove signature and paramter classes
2019-05-17 12:02:22 +02:00
ffeea91347
don't use signature in function anymore
2019-05-17 11:59:40 +02:00
e0032e8446
remove more dependencies on signature and parameter types
2019-05-17 11:46:31 +02:00
d6eb9668a0
move more signature logic into function
2019-05-17 11:18:30 +02:00
3bc03102d8
Merge branch 'master' into functions
2019-05-17 11:11:49 +02:00
3cddf75818
use StringRef and ArrayRef in more places
2019-05-16 12:02:57 +02:00
9d92456c88
use ArrayRef in more places
2019-05-16 11:52:56 +02:00
9107197320
use ArrayRef in more places
2019-05-16 11:46:39 +02:00
0a66b12776
less usage of InputParameter and OutputParameter type
2019-05-16 11:40:12 +02:00
9de7d3fa45
use new FunctionBuilder instead of creating Signature manually
2019-05-16 10:46:57 +02:00
3f82445d43
windows build fix
2019-05-16 10:15:21 +02:00
eb74be102e
Rename StridedArrayRef to MappedArrayRef
2019-05-15 18:03:08 +02:00
836a780649
Merge branch 'master' into functions
2019-05-15 17:55:11 +02:00
8ab87c1998
initial StringCollection class
2019-05-15 17:16:47 +02:00
39d4e0182c
use string ref in llvm ir builder
2019-05-15 11:39:25 +02:00
23c1b1edc8
deduplicate string ref code
2019-05-15 11:38:06 +02:00
13e06e7670
use string ref in more places
2019-05-15 11:22:50 +02:00
6dedb028d8
use string ref in more places
2019-05-15 11:17:20 +02:00
3b6bed43cd
use string ref for type names
2019-05-15 11:10:02 +02:00
92c1d9044c
new StringRefNull class
2019-05-15 11:00:07 +02:00
6e4866465d
initial StringRef class
2019-05-15 10:49:38 +02:00
dbced1d563
Merge branch 'master' into functions
2019-05-15 10:16:35 +02:00
4b6799394f
Some documentation for the C++ data structures in BLI
2019-05-13 18:38:37 +02:00
f7fd87d9d2
Merge branch 'master' into functions
2019-05-13 10:05:30 +02:00
3cb181ffe0
utilities to access function parameters
2019-05-12 20:25:49 +02:00
f959f4d2b2
use ArrayRef in more places
2019-05-12 20:07:16 +02:00
f2e5ed0e34
missing from last commit
2019-05-12 20:04:36 +02:00
38531114f7
initial support for defaults when using auto vectorization
2019-05-12 20:04:16 +02:00
4a2193927d
improve ArrayRef
2019-05-12 19:47:46 +02:00
a2ef8e34d5
support different list lengths in llvm vectorization
2019-05-12 17:53:41 +02:00
ec2c1e54ed
print with stacktrace from IR
2019-05-09 13:20:29 +02:00
d9c7df2492
put current loop iteration on stack
2019-05-09 13:02:41 +02:00
9f6e0a74cb
float comparison IR
2019-05-09 12:43:58 +02:00
192b5e9cfb
simplify usage of construct builders
2019-05-09 12:29:00 +02:00
e0c2784327
support for calling printf from llvm ir
2019-05-09 12:23:12 +02:00
9880a1b366
printing from Ir cleanup
2019-05-09 10:57:30 +02:00
6151808f1b
initial if then else construct helper
2019-05-09 10:45:07 +02:00
989c2691ac
improve ir loop constructs
2019-05-09 10:31:22 +02:00
5fe4ad93bc
more specialized iterations loop builder
2019-05-09 10:20:24 +02:00
dbb52fec27
initial for loop builder helper
2019-05-09 09:51:45 +02:00
6df353d805
Merge branch 'master' into functions
2019-05-08 18:06:43 +02:00
bbb3770be2
speedup size constructor of small vector
2019-05-03 12:42:50 +02:00
49131279ee
generate more readable IR
2019-05-03 12:39:21 +02:00
c1267d9e01
allow passing function pointer name
2019-05-03 12:18:35 +02:00
4cd8792882
cleanup code builder interface
2019-05-03 12:16:00 +02:00
6ad32d6675
create llvm wrapper function for calls to pointers
2019-05-03 12:09:40 +02:00
4390091f8b
utility to create a float constant
2019-05-03 11:38:33 +02:00
2a957e405d
cleanup small vector
2019-05-03 11:37:58 +02:00
c38b9e12b2
Merge branch 'master' into functions
2019-05-03 10:43:49 +02:00
2a87cfd809
allocate function bodies within function
2019-05-02 11:39:42 +02:00
0ca57c14af
rename extend to add_extension
2019-05-02 11:21:52 +02:00
5d4bf32c40
allocate type extensions in type directly
...
This makes sense, since every extension is owned
by a Type object. Also this improves thread safety.
2019-05-02 11:19:05 +02:00
9deeb8eb22
use centralized pool to reuse llvm contexts
2019-05-02 10:48:30 +02:00
676918e7a1
Merge branch 'master' into functions
2019-05-02 10:16:52 +02:00
6e652a42fc
splitup llvm vectorization into multiple methods
2019-05-01 19:26:51 +02:00
640a744d54
start simplifying automatic vectorization
2019-05-01 19:12:04 +02:00
1ab8b7f658
move c functions to access lists to lists.cpp
2019-05-01 18:26:42 +02:00
28051e2754
rerun clang format on functions folder
2019-05-01 18:01:03 +02:00
bde00c4aed
Merge branch 'master' into functions
2019-05-01 17:59:27 +02:00
576243ba39
Initial automatic function vectorization with llvm
2019-05-01 15:27:00 +02:00
f09f8ad61f
move slicing functionality to ArrayRef
2019-05-01 11:39:05 +02:00
034639a877
initial vector slicing API
2019-05-01 10:57:26 +02:00
fd5d972efb
Merge branch 'master' into functions
2019-05-01 10:20:10 +02:00
ffe0796c41
use first-class llvm vector for Vector type
2019-04-30 13:58:13 +02:00
e8e0e7bc69
rename SimpleLLVMTypeInfo to PackedLLVMTypeInfo
2019-04-30 12:48:44 +02:00
dc2979a942
cleanup LLVMBool type info
2019-04-30 12:42:26 +02:00
2524a5e509
new TrivialLLVMTypeInfo to simplify creating other types
2019-04-30 12:35:19 +02:00
45271f785a
clear cached node states on file load
2019-04-30 12:07:20 +02:00
f5d0dbed20
move btree lookup class to separate file
2019-04-30 11:57:38 +02:00
3b00f6625c
Merge branch 'master' into functions
...
This also removes dependency creation for function drivers
(due to merge conflicts that I could not resolve yet).
2019-04-30 10:55:36 +02:00
d1aa60da80
Merge branch 'master' into functions
2019-04-29 11:42:58 +02:00
0e0495cf32
Merge branch 'master' into functions
2019-04-29 10:52:11 +02:00
8f70d4986e
splitup forwarding function
2019-04-28 21:15:43 +02:00
6c1e5d7f34
extract method that ensure all inputs
2019-04-28 19:30:39 +02:00
1aa827d496
extract method that ensures required inputs
2019-04-28 19:23:59 +02:00
b287de4e68
deduplicate stack setup code
2019-04-28 19:20:24 +02:00
f16e64435f
deduplicate some code
2019-04-28 19:15:57 +02:00
26ce24b928
better type names
2019-04-28 19:12:26 +02:00
e80d9a5391
destruct unused values as early as possible
2019-04-28 18:56:16 +02:00
f48b9823a4
deduplicate code to setup tuples
2019-04-28 18:45:09 +02:00
1242de1b6d
deduplicate some code
2019-04-28 18:38:47 +02:00
64210d6682
simplify stack info setup
2019-04-28 18:33:36 +02:00
049d66aa80
initial support for lazy inputs in new fgraph evaluation
2019-04-28 18:25:29 +02:00
da3d297b3f
subscript operator for range
2019-04-28 17:50:44 +02:00
7b75b665d3
group node info into a struct
2019-04-28 15:06:23 +02:00
c9eb9f4ad1
fix error in last merge
2019-04-28 14:49:59 +02:00
df0b4a4d0e
Merge branch 'master' into functions
2019-04-28 14:42:08 +02:00
c27bbb3eca
use more correct type name
2019-04-27 23:59:33 +02:00
3f6357b970
initialize llvm for tests
2019-04-27 23:40:53 +02:00
93dea8967d
unit test for Float Range function
2019-04-27 23:29:33 +02:00
5b6dde93e9
initial unit test for functions system
2019-04-27 23:18:14 +02:00
1db1ac121a
reduce likelyhood for heap allocation in fgraph evaluation
2019-04-27 22:32:11 +02:00
b76f54e540
splitup graph evaluation in three parts
2019-04-27 22:23:23 +02:00
d01cc80b08
move more into the value storage abstraction
2019-04-27 22:16:28 +02:00
76c3bd772e
move value storage into separate struct
2019-04-27 22:03:04 +02:00
e0531b4338
use macro for pointer offset
2019-04-27 20:21:41 +02:00
05985d98ff
put values in a struct that are accessed together
2019-04-27 20:15:58 +02:00
833cdfdd0c
remove unused socket flag
2019-04-27 19:58:30 +02:00
21f1e501a7
do less unnecessary data copies
2019-04-27 19:49:33 +02:00
bbede5b3bd
copy computed value to fn_out immediatly
2019-04-27 19:34:49 +02:00
bae0d22e06
make it optional to run value destructors when tuple is destructed
2019-04-27 17:04:55 +02:00
eece95823c
multipool tried to deallocate the wrong pointer
2019-04-27 12:55:07 +02:00
9ca8b7a444
initial non recursive evaluation of new data flow graph
2019-04-27 12:48:04 +02:00
a9efbd6bcd
utility set functions
2019-04-27 12:21:13 +02:00
04a4f1aa4d
extract ensure tuple calls function
2019-04-27 10:24:43 +02:00
ad168871b1
dot export for new data flow graph
2019-04-27 10:01:36 +02:00
4346e88286
Split up the data flow graph data structure
...
The main goal is to be able to traverse the graph very efficiently
once it is build. This is hard when the structure has to be dynamic
(i.e. it can be changed). The solution is to use a builder that
can dynamically construct the graph. Once everything is set up,
the graph is converted into the compact form for further use.
2019-04-26 19:21:28 +02:00
ccc4285dee
Merge branch 'master' into functions
2019-04-26 17:09:11 +02:00
a8bc2fc2b7
Merge branch 'master' into functions
2019-04-25 09:57:14 +02:00
81b9187dda
Merge branch 'master' into functions
2019-04-24 09:22:11 +02:00
844745da77
Simple range iterator with tests
2019-04-19 13:56:49 +02:00
34fda46a3e
produce lookup statistics for map and set
2019-04-19 11:19:23 +02:00
866e9c31e9
socket builder utility function
2019-04-19 10:34:22 +02:00
6a7efc26bd
support conversions in all directions between bool, int and float
2019-04-18 11:25:20 +02:00
12904214d1
update inferencing to new type rules
2019-04-18 11:01:17 +02:00
9b3e36f6c4
concept of conversion groups in type system
2019-04-18 10:42:39 +02:00
7178267f20
start using a better defined type system
2019-04-18 10:19:30 +02:00
2141478180
implicit conversions between float and integer lists
2019-04-18 09:42:29 +02:00
5333710282
Merge branch 'master' into functions
2019-04-18 09:13:01 +02:00
8c6457820b
bring back llvm include dirs
2019-04-17 11:10:51 +02:00
bd54f55f3a
add bf_functions to LIB
2019-04-17 11:00:22 +02:00
2213234715
Merge 'master' into 'functions'
2019-04-17 10:28:33 +02:00
9e1d43367c
Merge 'master' into 'functions'
2019-04-17 10:26:56 +02:00
06a966ebe7
Merge 'master' into 'functions'
2019-04-17 10:25:47 +02:00
d348a27380
improved reuse of dummy slots in array lookup
2019-04-15 15:33:56 +02:00
b07b7d0a63
deduplicate some array lookup code
2019-04-15 15:03:23 +02:00
5d83b59751
splitup tests for set and set_vector
2019-04-15 14:48:07 +02:00
9bd835e1fb
don't use linear search in SmallSetVector
2019-04-15 14:31:18 +02:00
4687f961f0
remove refcount class that is not used anymore
2019-04-15 14:26:16 +02:00
6615900384
pack list declaration handles implicitely convertable types
2019-04-15 10:39:05 +02:00
955dc9f977
add LIB to CMakeLists.txt
2019-04-15 10:33:39 +02:00
a628f1842b
Merge branch 'master' into functions
2019-04-15 10:24:47 +02:00
158425fc61
use a multimap data structure to store links of output sockets
2019-04-11 13:47:01 +02:00
f92bc17cb3
utility to count the number of times an output socket is used
2019-04-08 18:57:01 +02:00
7e2f02b019
more generic function to find relevant sockets in a function graph
2019-04-08 18:35:58 +02:00
45917d435d
utility functions for set and map
2019-04-08 18:34:35 +02:00
e352d7d3ca
new Float Range node
2019-04-08 17:29:04 +02:00
750d47e4d9
fix inferencing of vectorized nodes
2019-04-08 17:06:11 +02:00
db03f3399c
fix probing function
2019-04-08 17:03:24 +02:00
54d4464a29
remove "small" from some type names
2019-04-08 16:13:44 +02:00
5a1279fdce
faster adding to array lookup
2019-04-08 16:01:16 +02:00
6742728ff1
don't use llvm fgraph execution for now
2019-04-08 12:39:03 +02:00
338d84676f
cleanup array lookup structure
2019-04-08 12:35:30 +02:00
b26a74c470
method to pop item from map
2019-04-07 20:22:06 +02:00
d866113089
End all files with a newline
2019-04-07 19:44:27 +02:00
76a1e9bdb8
Merge branch 'master' into functions
2019-04-07 17:21:30 +02:00
f6f8323082
Fix Sin operation in Float Math node
...
The patch only fixed the python part. I added the c++ part.
Differential Revision: https://developer.blender.org/D4658
2019-04-07 17:17:29 +02:00
0f1b4d7c38
Use actual hash tables instead of linear search
...
The hash functions themselves are not optimized yet.
2019-04-07 17:01:31 +02:00
6f96045c2f
rename ptr to rna to avoid confusing with actual pointers
2019-04-07 00:01:41 +02:00
9e8babf885
vectorize Float Math node
2019-04-06 23:54:06 +02:00
ece895e7d5
remove some redundency
2019-04-06 23:43:35 +02:00
be53a35ad3
allow lazy tuple call in fgraph ir generation
2019-04-06 23:42:57 +02:00
e38e04e9af
cleanup vectorized node inserters
2019-04-06 23:24:12 +02:00
44d8980780
cleanup and vectorize Vector Math node
2019-04-06 23:07:12 +02:00
5ea3eca380
use function name prefix for inserters
2019-04-06 22:50:20 +02:00
954b2de3d5
improve method names
2019-04-06 22:42:52 +02:00
28f239a384
remove BuilderContext
2019-04-06 22:27:58 +02:00
decd4d8ecf
rename Builder to GraphBuilder
2019-04-06 22:13:24 +02:00
d3b807ff02
move BuilderContext into Builder
2019-04-06 22:08:13 +02:00
87b472e1f6
use common prefix for type getters
2019-04-06 21:48:43 +02:00
586210c437
use common prefix for function getters
2019-04-06 21:44:10 +02:00
b4a3d036a9
cleanup auto vectorization function
2019-04-06 21:18:08 +02:00
49553de662
vectorized Separate Vector node
2019-04-06 21:06:06 +02:00
59116b27ea
Merge branch 'master' into functions
2019-04-06 18:52:37 +02:00
c251ddeafc
simplify execution stack management
2019-04-06 18:46:42 +02:00
362f8ec767
remove debug print
2019-04-06 18:14:26 +02:00
66e4eb795d
higher level macro for tuple allocation
2019-04-06 18:12:48 +02:00
05e3ee5ae6
automatically destruct stack allocated tuples in c++
2019-04-06 18:05:34 +02:00
5296f03f9f
initial generic automatic vectorization, used in Combine Vector node
2019-04-06 17:21:07 +02:00
acbfda0c6b
Implicit conversion from individual elements to lists
2019-04-06 15:23:17 +02:00
7c5cf3fd79
vectorized output sockets don't need a property
2019-04-06 14:58:29 +02:00
84670db6ea
List Length node and fail early when socket types don't match
2019-04-06 12:00:35 +02:00
2e2f289d25
Vectorization support for Node UI
2019-04-06 11:05:40 +02:00
1456a030f4
initial IR for vector addition
2019-04-05 19:31:11 +02:00
0f42dd82ac
new Vector Math node
2019-04-05 18:57:31 +02:00
cb158219e0
Generate LLVM IR for Mul and Sin
2019-04-05 18:44:01 +02:00
6fa863f6d9
Sin operation in Float Math node
2019-04-05 12:45:11 +02:00
3273d6be58
remove notes and unused variable
2019-04-05 12:31:34 +02:00
4a3720740d
use the socket name directly, instead of a getter function
2019-04-05 12:29:07 +02:00
52ff44d02c
Validate more aspects of the node tree while syncing
2019-04-05 12:10:30 +02:00
23a8864669
Splitup C API for separate components in different files
2019-04-05 11:32:34 +02:00
072fbb030a
fix for reroute nodes
2019-04-04 17:53:37 +02:00
2865ca6fb6
Merge branch 'master' into functions
2019-04-04 17:49:29 +02:00
c789c5288d
Fix: print python error message if there is one
2019-04-04 14:29:52 +02:00
dd5c352af5
More robust node tree update after changes
...
This implements a tree wide synching procedure, that corrects
all invalid things it can find. Also, trees are updated in
the correct order, when they depend on each other.
2019-04-04 14:26:20 +02:00
8675779372
Merge branch 'master' into functions
2019-04-03 19:01:49 +02:00
6ce1e30539
Merge branch 'master' into functions
2019-04-03 18:26:41 +02:00
4e84ea3da0
Merge branch 'master' into functions
2019-04-03 15:19:27 +02:00
2a8c7b8230
use cache to avoid building the same function ir twice
2019-04-03 11:55:11 +02:00
bcb6fa6e51
use better socket names in conversion to functions
2019-04-03 11:13:52 +02:00
ac7107df7c
better socket name accessor function
2019-04-03 10:25:11 +02:00
d9097f7484
initial automatic update of call node
2019-04-03 10:05:26 +02:00
c1ba8dcd85
Fix
2019-04-02 12:35:49 +02:00
118ce79baf
initial reroute support in graph conversion
2019-04-02 12:30:45 +02:00
6e78ef3ce5
initial support for reroutes in the ui
2019-04-02 11:29:31 +02:00
40d37cc8a0
Fix Get List Element node
2019-04-01 13:52:15 +02:00
9b2f1c0b38
fix modifier definition
2019-04-01 13:51:55 +02:00
212014e0d2
Merge branch 'master' into functions
2019-04-01 12:23:44 +02:00
7ace279696
cleanup pack list node converter
2019-04-01 10:42:13 +02:00
62059b465f
improve Pack List node UI
2019-04-01 10:32:54 +02:00
c7447b51bd
Pack List nodes have two inputs by default
2019-04-01 10:27:50 +02:00
02765a86cc
create pack list node if certain type from search
2019-04-01 10:20:19 +02:00
62f4467a49
simple operators to create new function trees from modifier
2019-04-01 10:11:56 +02:00
25e1a10de6
type extension base class
2019-03-29 15:57:24 +01:00
7b210749bb
simple operator to setup new function trees
2019-03-29 14:11:37 +01:00
b9a4ff5d38
Refactor node socket declaration
2019-03-29 13:56:14 +01:00
166e05b6ed
store node in declaration
2019-03-29 09:53:36 +01:00
b958410308
cleanup
2019-03-29 09:39:12 +01:00
9f3ffe53bd
name some virtual registers
2019-03-28 19:55:58 +01:00
b0f77c11d1
utility functions to optimize and print generated code
2019-03-28 19:55:44 +01:00
6af5d940db
cleanup
2019-03-28 18:17:34 +01:00
bd480232ee
remove LLVMCompiledBody
2019-03-28 18:09:46 +01:00
8259f92110
don't cache llvm type per context
2019-03-28 17:48:41 +01:00
6304ecbb06
ability to turn stack maintance on and off
2019-03-28 17:39:14 +01:00
40c12c675f
move execution context pointer through llvm
2019-03-28 17:25:29 +01:00
b60be30ed5
cleanup pointer calls
2019-03-28 16:30:48 +01:00
cdf4591edb
Improve interface of IR generators and wrap IRBuilder<>
2019-03-28 12:47:29 +01:00
c7bf98a186
push initial function caller information on execution stack
2019-03-28 09:50:12 +01:00
031bc7ca2d
Use Vector List in Function Points modifier
2019-03-27 12:18:25 +01:00
721581c366
fix
2019-03-27 12:16:45 +01:00
925b0b732c
show problems in separate problems panel
2019-03-27 11:36:26 +01:00
65ee9b6233
cleanup
2019-03-27 10:34:32 +01:00
439fdfcda7
initial ability to show warning messages in nodes
2019-03-27 10:30:55 +01:00
80a994776b
use multi mempool for source information
2019-03-26 17:34:41 +01:00
aebddd0ed6
initial multi mempool
2019-03-26 17:34:12 +01:00
1a8bc27052
Use Blender's guarded allocators
2019-03-26 16:56:23 +01:00
0b2baaab1a
missing include guards
2019-03-26 16:55:05 +01:00
895f68c8b2
fix panel idname
2019-03-26 11:28:59 +01:00
f0524205d6
Merge branch 'master' into functions
2019-03-26 11:23:05 +01:00
a90dca0ff5
also keep track of link sources
2019-03-26 11:20:33 +01:00
c23e2becdc
print with traceback utility
2019-03-26 11:00:08 +01:00
72593ecaed
cleanup
2019-03-26 10:51:49 +01:00
6b72c23e0a
data flow graph manages source info allocation
2019-03-26 10:45:50 +01:00
024247797f
keep track of original nodes
2019-03-26 10:33:10 +01:00
de7094a930
new SourceInfo class to keep track of where functions come from
2019-03-26 10:02:57 +01:00
9539b402b8
initial Execution Stack
2019-03-26 09:52:14 +01:00
8b777f5acf
function should not be copied
2019-03-26 09:51:38 +01:00
9295e3bdde
pass (currently empty) execution context into tuple call
2019-03-26 09:31:23 +01:00
bf8a98ffc5
experimental lazy fgraph evaluation
2019-03-25 09:57:44 +01:00
20e12025ea
Merge branch 'master' into functions
2019-03-24 18:41:02 +01:00
9421bf6655
initial body type for lazy input evaluation
2019-03-24 18:40:23 +01:00
d79805e1db
cleanup classes that are used in a composition
2019-03-24 17:29:06 +01:00
13ef2b1065
remove special type info for lists
2019-03-24 17:03:07 +01:00
f463cfb4c9
fix
2019-03-24 16:38:50 +01:00
c3a3b2e9b1
new Switch node
2019-03-24 16:16:59 +01:00
28a1b801b1
new Boolean type
2019-03-24 16:14:25 +01:00
b033626948
experimental byte code interpreter for function graph
2019-03-24 13:52:44 +01:00
0c15bc41b0
better naming
2019-03-24 13:52:14 +01:00
d819361cc5
simplify allocating tuple in prepared buffer
2019-03-24 11:31:33 +01:00
dc171b2a3e
non recursive method to find required sockets
2019-03-24 10:41:01 +01:00
e77a8b97e1
initial support for calling subprograms
2019-03-22 11:57:03 +01:00
cf72da183d
fail early when node inserter does not work
2019-03-22 11:52:49 +01:00
0efee91b63
rename tree type
2019-03-22 10:51:53 +01:00
95ccb24857
implement custom search terms for nodes
2019-03-22 10:21:01 +01:00
24d89e1cce
better file naming
2019-03-21 18:44:47 +01:00
ad79af4843
typo
2019-03-21 18:40:36 +01:00
c6e4c29988
implement concept of implicit conversions
2019-03-21 12:17:35 +01:00
b31b4d5df8
cleanup
2019-03-21 12:16:14 +01:00
b52af3a031
refactor frontend data type definition system
2019-03-21 11:12:35 +01:00
8450e44cb6
move data type information into a separate file
2019-03-21 11:01:04 +01:00
fb038ebe53
refactor list decision inferencing
2019-03-21 10:56:11 +01:00
1a73618b36
cleanup file structure
2019-03-21 10:46:05 +01:00
8968155985
improve file name
2019-03-21 10:41:53 +01:00
5cc1bbd6de
update tree automatically after changes
2019-03-21 10:39:57 +01:00
1ae0a8d760
Fix ListCPPTypeInfo
2019-03-20 20:03:45 +01:00
6db961e8b2
Merge branch 'master' into functions
2019-03-20 19:36:45 +01:00
1d64c35c3b
allow removal of sockets from pack list node
2019-03-20 19:33:34 +01:00
e25a0c4bb3
remove dead code
2019-03-20 19:11:23 +01:00
81d5383ce2
save socket states
2019-03-20 19:07:35 +01:00
8788431086
allow changing type of Pack List node
2019-03-20 18:51:02 +01:00
1b90194608
allow declarations to draw in node
2019-03-20 18:16:55 +01:00
8d5f02a191
New Pack List Input operator
2019-03-20 18:11:56 +01:00
28fc08bff9
replace Append to List and Combine Lists nodes with Pack List
2019-03-20 18:06:27 +01:00
c59b457ee5
Merge branch 'master' into functions
2019-03-20 12:53:45 +01:00
46f5cf2b41
remove code that is not used currently
2019-03-20 12:53:04 +01:00
a2ca81bf6e
initial version of less automatic inferencer
2019-03-20 12:46:30 +01:00
7533b4416e
decision id cleanup
2019-03-19 17:11:49 +01:00
4c499e6d09
Merge branch 'master' into functions
2019-03-19 12:05:06 +01:00
fae338bf7c
initial variadic list declaration
2019-03-19 12:03:47 +01:00
37bb26a217
cleanup list function generation
2019-03-19 11:06:38 +01:00
882ce6812f
cleanup graph generation for combine lists and get list element
2019-03-19 10:51:46 +01:00
f7a9d8f447
cleanup Graph generation for Append to List node
2019-03-19 10:40:10 +01:00
c7e2b27199
Merge branch 'master' into functions
2019-03-18 16:08:50 +01:00
af2f924b11
Unified socket declaration system
...
Function input/output use the same structure to declare
sockets as other nodes now.
The type inferencer can be invoked in the panel on the
right in the node editor.
The list nodes work with floats, vectors and ints.
2019-03-18 16:05:21 +01:00
d0ae91b7c0
Merge branch 'master' into functions
2019-03-14 10:41:28 +01:00
dee5ee40e0
actually run the inferencer on a node tree
2019-03-13 16:21:30 +01:00
614c8be1d8
Use data type names instead of idname in c++
2019-03-12 18:47:57 +01:00
51885aea9d
simple inferencer in python with tests
2019-03-12 18:29:16 +01:00
185c80e9ba
data type socket builder
2019-03-12 17:20:10 +01:00
255e1fe149
data type info
2019-03-12 16:48:00 +01:00
bd3334feaa
allow more advanced socket declarations
2019-03-12 16:30:41 +01:00
c15103f454
steps towards a second list type
2019-03-11 17:58:36 +01:00
121189e560
disable some debug prints
2019-03-10 19:15:51 +01:00
163af9c8cb
Merge branch 'master' into functions
2019-03-10 19:07:23 +01:00
a0627749b6
cleanup c wrapper
2019-03-10 18:59:44 +01:00
5a637fafd2
typo
2019-03-10 18:32:30 +01:00
391ee16746
new Combine Lists node
2019-03-10 18:29:00 +01:00
cfafdde927
use function to generate a list of floats
2019-03-10 18:10:53 +01:00
eaf5914496
allow float list input and output in frontend
2019-03-10 17:36:31 +01:00
a8cb18c644
new Function Points modifier for testing
2019-03-10 17:26:08 +01:00
b5f64cdb6e
float list type in C interface
2019-03-10 16:28:14 +01:00
5ab0eca7c6
fgraph ir builder prefers precompiled ir if available
2019-03-10 16:21:24 +01:00
6281aa7f5d
fix double value forwarding
2019-03-10 16:04:14 +01:00
5c916fa8f8
utility to copy dot format to clipboard
2019-03-10 15:49:15 +01:00
7fa6389d62
Get List Element and Append to List node
2019-03-10 15:38:11 +01:00
dcd90fae85
start implementing float list in frontend
2019-03-10 15:03:53 +01:00
9f850e5e4e
get float list element function
2019-03-10 14:56:05 +01:00
5b3f7c09d2
cleanup
2019-03-10 14:55:34 +01:00
fe5c13386c
use control2 as seed
2019-03-10 14:27:32 +01:00
4688ed1e28
use ctrl+A to open the node search
2019-03-10 14:27:22 +01:00
20f9248222
simple node search
2019-03-10 14:16:59 +01:00
657204dfce
use auto load for registration
2019-03-10 13:57:37 +01:00
6c49690847
also allow heap allocation for tuples in C
2019-03-10 13:11:02 +01:00
57450b4fbe
improve thread safety
2019-03-10 12:51:44 +01:00
1c844a694a
cleanup
2019-03-10 12:17:37 +01:00
a53b2b4564
allow tuple stack allocation in C
2019-03-10 12:06:51 +01:00
ac02c2daf2
cleanup C wrapper
2019-03-10 10:44:20 +01:00
e57c3996bd
store possible tuple meta in tuple call body
2019-03-10 10:26:19 +01:00
f6d994faac
stack allocate tuple
2019-03-10 10:00:51 +01:00
0c8c082f9d
improve shared lists
2019-03-09 16:11:10 +01:00
2e5df2cfa6
allow tuple call to modify fn_in
2019-03-09 14:22:14 +01:00
01d09210ff
use shared list in tuple
2019-03-08 14:54:36 +01:00
75ecfd03ab
more generic CPP and LLVM type info for lists
2019-03-08 14:31:50 +01:00
468f4f7985
Rename "Shared" to "AutoRefCount"
2019-03-08 14:09:29 +01:00
dcd4e2f767
more specific tuple access functions
2019-03-08 14:06:16 +01:00
151c9cd9ff
make SharedImmutable work with the automatic refcounting
2019-03-08 13:56:50 +01:00
9697e81dab
use intrusive refcounter because it simplifies things quite a bit
2019-03-08 13:42:55 +01:00
70534e5106
Merge branch 'master' into functions
2019-03-08 13:12:57 +01:00
d11b9c7239
cleanup
2019-03-07 11:38:48 +01:00
e60d04b129
rename RefCounted to RefCountedPtr
2019-03-07 11:22:50 +01:00
2c5ca6c7be
refcounter cleanup
2019-03-07 11:17:49 +01:00
b0552bbe57
Merge branch 'master' into functions
2019-03-06 13:59:30 +01:00
51aa004a39
initial list types implementation
2019-03-06 13:59:00 +01:00
ebab49d135
define separate and combine vector nodes in terms of llvm ir
2019-03-06 11:37:54 +01:00
8b0c9e4331
don't hardcode llvm include dirs
2019-03-06 11:23:04 +01:00
4b39cbdeef
fix "make full" on windows
2019-03-06 09:45:28 +01:00
8ba4f227ea
remove printing
2019-03-05 15:22:56 +01:00
771074d848
improve ir wrapper for tuple call
2019-03-05 15:13:48 +01:00
b23cf5f41a
put multiple unlinked inputs into a single function
2019-03-05 14:55:39 +01:00
8f5e6cf087
destruct tuple in wrapper
2019-03-05 13:48:00 +01:00
c4f1560ef3
Merge branch 'master' into functions
2019-03-05 13:36:52 +01:00
c1bad0da7a
improve LLVMCompiledBody
2019-03-04 16:29:56 +01:00
3dcfe05354
build llvm ir for function graph
2019-03-04 16:14:45 +01:00
a6374a2896
missing renamings
2019-03-04 14:19:34 +01:00
5a81ea8dcd
cleanup file naming
2019-03-04 14:16:15 +01:00
d8815d5b41
cleanup naming of function bodies and derive functions
2019-03-04 14:12:01 +01:00
f0d53df716
rename "LLVMGenBody" -> "LLVMGenerateIRBody"
2019-03-04 13:37:00 +01:00
7310c95ab7
Merge branch 'master' into functions
2019-03-04 13:29:50 +01:00
8a8b7d40ac
deduplicate compilation code
2019-03-03 20:41:54 +01:00
21fc76b50d
precompiled llvm function body
2019-03-03 20:13:24 +01:00
662b5ade05
generate separate wrapper functions
2019-03-03 15:03:56 +01:00
0e177a3b50
initial llvm wrapper for tuple call
2019-03-03 13:53:30 +01:00
149e6aa58c
don't use SmallVector in tuple
2019-03-03 11:36:00 +01:00
c090a2f821
cleanup
2019-03-03 11:07:39 +01:00
e99f72ae6d
common base class for function bodies
2019-03-03 10:56:57 +01:00
aa179bdfa3
separate tuple from its meta data
2019-03-02 22:00:47 +01:00
0ed75e7dbe
only types know how they should be stored/loaded
2019-03-02 12:48:47 +01:00
910d7d4be0
compile llvm to tuple call
2019-03-02 12:14:06 +01:00
5ad9010ebf
initial llvm integration (include path is still hardcoded...)
2019-03-01 19:30:20 +01:00
a42fe3e7df
cleanup
2019-03-01 18:07:13 +01:00
a74e970b1d
minor improvement
2019-03-01 17:30:22 +01:00
80efd2fed8
split core into multiple files
2019-03-01 17:19:36 +01:00
2cdb3d825a
Merge branch 'master' into functions
2019-03-01 16:33:35 +01:00
8085925bc6
naming cleanup
2019-03-01 16:31:41 +01:00
1f504e3bd9
separate dependencies from tuple call body
2019-03-01 16:27:45 +01:00
73ceb30a98
cleanup
2019-03-01 16:08:57 +01:00
b25aa2c753
only equal types are allowed to be linked
2019-03-01 15:51:40 +01:00
7260d0333e
fix
2019-03-01 15:44:13 +01:00
bdf1522fae
move CPU specific stuff to backend folder
2019-03-01 15:34:11 +01:00
7333478220
refactor function generation from data flow nodes
2019-03-01 13:41:54 +01:00
4a502bef3c
fix
2019-03-01 13:40:51 +01:00
d26f3663b1
Merge branch 'master' into functions
2019-03-01 10:32:36 +01:00
dd372c4d3d
first test using optional value
2019-02-28 14:42:54 +01:00
c4d221b149
simple BLI::optional<T> type (C++11 compatible)
2019-02-28 14:18:06 +01:00
dbc584ea9c
move some files
2019-02-28 14:01:47 +01:00
97997dd056
header cleanup
2019-02-28 12:40:20 +01:00
060a6c0e06
rename function headers
2019-02-28 12:31:34 +01:00
451884d2ea
better separation between functions and nodes
2019-02-28 12:25:57 +01:00
367b065369
Merge branch 'master' into functions
2019-02-28 11:45:46 +01:00
5c72773a6d
typo and minor improvement
2019-02-25 17:35:06 +01:00
b7ec20cc27
Merge branch 'master' into functions
2019-02-25 15:56:19 +01:00
3901ae2cb7
init defaults in tuple
2019-02-22 15:42:32 +01:00
e8187d58e5
Map Range node
2019-02-22 15:09:47 +01:00
9458baa8fe
pass seed to driver function
2019-02-22 14:44:11 +01:00
c9a9e8670b
pass index to function in displace modifier
2019-02-22 14:28:33 +01:00
5846212aab
fix and cleanup
2019-02-22 14:27:53 +01:00
4108d2f4f9
integer socket
2019-02-22 14:27:34 +01:00
eaeda7dc6b
remove unnecessary file
2019-02-22 13:53:47 +01:00
adba334093
utility function
2019-02-22 13:53:25 +01:00
36efb78551
improved naming
2019-02-22 13:42:41 +01:00
038a32ce1c
Merge branch 'master' into functions
2019-02-21 16:56:36 +01:00
95f02d7806
new Driver Variable type that evaluates a function
2019-02-21 16:56:00 +01:00
be308462b4
vector socket actually works now
2019-02-21 16:54:41 +01:00
660ca276ca
add function relations
2019-02-21 16:51:42 +01:00
daaa02f8b1
Use weight function in displace modifier
2019-02-21 14:32:59 +01:00
6593ba7e6b
improved C function API
2019-02-21 14:27:10 +01:00
4f686995c8
read from original tree
2019-02-21 13:40:49 +01:00
2fbdd08636
Merge branch 'master' into functions
2019-02-20 17:20:01 +01:00
1472b4a77f
simple to use function timer
2019-02-20 17:19:09 +01:00
de6a5ea3a0
clamp node as combination of min and max functions
2019-02-20 16:59:21 +01:00
d82a6a89b4
min and max of floats
2019-02-20 16:44:21 +01:00
72b67178dc
vector distance node
2019-02-20 16:32:31 +01:00
dbd5c54510
debug print for functions
2019-02-20 16:21:40 +01:00
2218d7bf9e
check function signature in modifier
2019-02-20 16:06:09 +01:00
e865bc730d
check function signature with c wrapper
2019-02-20 15:48:22 +01:00
c4f39dd4aa
remove some testing code
2019-02-20 15:34:52 +01:00
263bf06f66
annotation...
2019-02-20 15:25:48 +01:00
fa306a3c4a
more generic float math node
2019-02-20 15:25:04 +01:00
08da311c74
dynamically add and remove sockets
2019-02-20 15:05:47 +01:00
513b7b3c78
add outputs dynamically
2019-02-20 14:21:54 +01:00
2ac967c63e
typo
2019-02-20 13:48:06 +01:00
7699ea4d27
refactor graph generation
2019-02-20 13:44:03 +01:00
e3c61a30e1
refactor data flow graph generation
2019-02-20 12:50:58 +01:00
c1c17ba542
lookup_default
2019-02-20 12:49:44 +01:00
0267002a47
Merge branch 'master' into functions
2019-02-19 19:27:51 +01:00
dfdc955b1c
cleanup
2019-02-19 17:54:57 +01:00
144a90688c
better lazy init macro
2019-02-19 17:54:00 +01:00
a2ecba884a
missing pragma once
2019-02-19 17:53:24 +01:00
e417f07ee2
use mempool to allocate nodes
2019-02-19 17:17:38 +01:00
66389f8933
inference list relations properly
2019-02-18 18:18:47 +01:00
cca48e2d00
different way to store Type Relations
2019-02-18 17:22:52 +01:00
d533afa17b
all_equal tests
2019-02-18 17:21:23 +01:00
1a282bdca1
Signature.has_interface
2019-02-18 17:21:09 +01:00
6922161179
SmallVector::all_equal
2019-02-18 17:20:34 +01:00
a5cf0149dc
Merge branch 'master' into functions
2019-02-18 16:24:46 +01:00
30d7e0814f
fix SmallVector
2019-02-18 15:00:33 +01:00
c3b7bfbded
use allowed namespace definition syntax only
2019-02-18 14:59:46 +01:00
7df89986a5
Merge branch 'functions-in-train' into functions
2019-02-17 21:17:11 +01:00
34e1684fa2
Merge branch 'master' into functions
2019-02-17 21:09:08 +01:00
47ea90771d
initial type relations and improved inferencer
2019-02-17 17:44:21 +01:00
d93ecc84bb
initial type inferencer
2019-02-17 15:54:00 +01:00
b166e18d56
small vector - remove and reorder
2019-02-17 15:49:43 +01:00
d7fca3e468
initial lazy init macro
2019-02-17 14:46:54 +01:00
e3cdeb80b1
MemPool
2019-02-17 14:17:48 +01:00
f2c8e39d29
small stack
2019-02-17 13:32:29 +01:00
27dd613a84
Merge branch 'master' into functions
2019-02-13 17:00:47 +01:00
aafe1034bb
store node tree pointer in modifier
...
Unfortunately, there are still issues with the COW system resulting in a crash.
2019-02-12 19:20:45 +01:00
393f220f48
setup object dependencies correctly
2019-02-12 14:32:14 +01:00
79d2ea4f41
cleanup
2019-02-11 18:20:27 +01:00
139cdff657
object transforms node
2019-02-11 18:01:48 +01:00
10395fd00d
separate vector node
2019-02-11 17:33:34 +01:00
e49edb2ef1
actually read socket value
2019-02-11 17:13:31 +01:00
fb3e05ff62
better usage of wrapper
2019-02-11 16:57:36 +01:00
548eb3a822
listbase wrapper
2019-02-11 16:51:33 +01:00
62cfea48a3
initial node tree to function conversion
2019-02-11 16:10:17 +01:00
caa03d7a5d
cleanup
2019-02-10 20:14:26 +01:00
edad572189
FunctionGraph - a graph with specified inputs and outputs
2019-02-10 20:14:25 +01:00
8133fb0fad
cleanup
2019-02-10 20:14:25 +01:00
4c1a59fa96
cleanup
2019-02-10 20:14:25 +01:00
49385f89b9
function input and output node
2019-02-10 20:14:25 +01:00
c4364f3499
initial node tree
2019-02-10 20:14:25 +01:00
791902b2d2
better dot exprot
2019-02-10 20:14:25 +01:00
785289594b
SmallMap.add should not replace existing entries
2019-02-10 20:14:25 +01:00
ffdf77dd59
better naming
2019-02-10 20:14:25 +01:00
6ad32098af
do not use this-> for prefixed member variables
2019-02-10 20:14:25 +01:00
34026205f0
store more type info in Type
2019-02-10 20:14:25 +01:00
5743ffc46f
cmake fix
2019-02-10 20:14:25 +01:00
c3b0b85d47
move Composition to BLI
2019-02-10 20:14:25 +01:00
ac8555af9e
Function and Type are final classes - can still be extended with Composition
2019-02-10 20:14:25 +01:00
999a802600
generate function from data flow graph
2019-02-10 20:14:25 +01:00
59d589e736
move concrete type definitions into separate translation unit
2019-02-10 20:14:24 +01:00
4c3941745a
types don't have to be const everywhere
2019-02-10 20:14:24 +01:00
04350ca976
initial value iterator
2019-02-10 20:14:24 +01:00
ff59b09f02
cleanup
2019-02-10 20:14:24 +01:00
d5e675bddb
append rvalue reference to smallvector
2019-02-10 20:14:24 +01:00
ecd2e2b454
move shared without incref and decref
2019-02-10 20:14:24 +01:00
a9c1796470
use shared ownership for functions and types
2019-02-10 20:14:24 +01:00
05f9492580
actually free elements in small vector
2019-02-10 20:14:24 +01:00
328a6e9c91
use shared ownership for functions and types
2019-02-10 20:14:24 +01:00
7773e1c2af
better separation of concerns for shared objects
2019-02-10 20:14:24 +01:00
542caff21b
custom reference counter that supports manual incref and decref
2019-02-10 20:14:24 +01:00
4d572be4e6
small set vector
2019-02-10 20:14:23 +01:00
74e40a8863
Tuple::copy_element
2019-02-10 20:14:23 +01:00
8d55ff177d
extend set and vector data structure
2019-02-10 20:14:23 +01:00
fff8781973
dot export for data flow graph
2019-02-10 20:14:23 +01:00
252e46a346
input and output parameter class
2019-02-10 20:14:23 +01:00
010a4a76b5
data flow graph
2019-02-10 20:14:23 +01:00
434e2afe3c
more generic dynamic composition of types and functions
2019-02-10 20:14:23 +01:00
5784e17ff7
renaming
2019-02-10 20:14:23 +01:00
617d35315c
test dynamic composition instead of inheritance for functions
2019-02-10 20:14:23 +01:00
f63f7c1c86
minor fix, should be solved differently..
2019-02-10 20:14:23 +01:00
d5e25680df
separate actual core from cpu functions
2019-02-10 20:14:23 +01:00
6185d5fa7d
typo
2019-02-10 20:14:23 +01:00
25ff42d7d5
use const ref parameter
2019-02-10 20:14:23 +01:00
317a2880f6
fill test
2019-02-10 20:14:23 +01:00
f4e7621ee7
don't construct unneeded objects in SmallVector
2019-02-10 20:14:22 +01:00
cbefe2ad55
initial SmallMap
2019-02-10 20:14:22 +01:00
0774265195
modifier fix
2019-02-10 20:14:22 +01:00
3012e7a3c2
Tuple structure (no copy/move functionality yet)
2019-02-10 20:14:22 +01:00
a22763349a
use static size information to increase performance
2019-02-10 20:14:22 +01:00
4328946e12
work better with uninitialized memory + tests for SmallVector
2019-02-10 20:14:21 +01:00
be5c59f09a
cleanup api a bit
2019-02-10 20:14:20 +01:00
a52d9b4bac
actually deform something
2019-02-10 20:14:20 +01:00
59970cc12f
move test code to new modifier
2019-02-10 20:14:20 +01:00
46a4cf3697
new deform modifier
2019-02-10 20:14:20 +01:00
ebc898756a
deform function test
2019-02-10 20:14:20 +01:00
a9322b7e58
small buffer inherits small vector
2019-02-10 20:14:20 +01:00
54b8d6ba0b
more const
2019-02-10 20:14:20 +01:00
a3aaf9d4f9
implement move semantics properly, hopefully
2019-02-10 20:14:20 +01:00
b36a4d7c72
first successful execution
2019-02-10 20:14:20 +01:00
178d41c250
fix
2019-02-10 20:14:20 +01:00
520d7cd663
better naming
2019-02-10 20:14:20 +01:00
bd44822f89
implement other small vector constructors
2019-02-10 20:14:20 +01:00
37e0362215
cleanup
2019-02-10 20:14:19 +01:00
9b3a4c1697
real SmallVector implementation + make types const
2019-02-10 20:14:19 +01:00
09a561aa25
more initial setup
2019-02-10 20:14:19 +01:00
7fbebda942
basic code structure
2019-02-10 20:14:19 +01:00
ade4c61063
function api design
2019-02-10 20:14:19 +01:00