26 Commits

Author SHA1 Message Date
Irlan
43013ad80b now b3World is responsable for creating or destroying b3Cloth; clean up; update tests 2018-05-26 00:41:41 -03:00
Irlan
8d2affb0b2 typo, optimization, consistency 2018-05-25 22:15:00 -03:00
Irlan
8b775361a9 store tension action force inside spring, make spring output force and derivative for abstraction, cleanup 2018-05-25 00:00:07 -03:00
Irlan
8f106c8037 comment 2018-05-24 18:53:27 -03:00
Irlan
4ae3b7cc79 refactor cloth 2018-05-24 05:35:16 -03:00
Irlan
109f23da49 add a small framework of garments, update the related tests 2018-05-23 03:54:02 -03:00
Irlan
079e6eddca improve mpcg
This improved performance significantly in some small test systems.
2018-05-19 21:15:29 -03:00
Irlan
b202988d82 add diagonal matrix 2018-05-19 21:13:32 -03:00
Irlan
a251a9e180 add addition operation for two csr matrices 2018-05-19 21:13:09 -03:00
Irlan
1ccb411fb6 typo 2018-05-18 19:39:22 -03:00
Irlan
66228785fc kinematic cloth 2018-05-18 19:26:49 -03:00
Irlan
69ee19ffac simplify preconditioning the system matrix, bugfix 2018-05-16 16:18:00 -03:00
Irlan
d8826c751e correctly initiate/terminate contact constraints 2018-05-16 02:08:45 -03:00
Irlan
bd09b243c2 use mvc for the testbed, update almost all tests, bugfixes, improvements, cleanup
Since I started altering the testbed for better maintainability, I prefered to drop this (tested) large change with a single commit. Some changes below:

Put some globals in their correct place,

Now Testbed uses the MVC pattern (Model-View Controller). This way it becomes better to maintain than using no pattern  in my opinion.

Fixed some bugs in the debug draw interface.

Of course, updated almost all tests because of the differences.

Update script.
2018-04-10 00:57:14 -03:00
Irlan
49f7b2f728 add tension mapping test 2018-04-08 21:38:09 -03:00
Irlan
5342361a5d use gravity 2018-04-08 00:13:29 -03:00
Irlan
fecd622b92 rearrange input and output arguments 2018-04-03 23:01:26 -03:00
Irlan
6e0e269f68 add comments, correct typo, correct energy computation 2018-04-03 15:02:00 -03:00
Irlan
c1a5d1b93f fix #34 2018-04-02 13:06:32 -03:00
Irlan
40093fcf2f improve CG performance using CSR matrix format 2018-04-02 12:47:56 -03:00
Irlan
aec685f736 add dense vector and sparse matrix 2018-04-02 12:46:56 -03:00
Irlan
e22ed9852a bugfixes and improvements
Bugfixes:

Simplify and correct one derivation of a second derivative of energy function.

Clear dynamic variables for static shapes

Invalidate contact for a particle when its type switches from dynamic to static

Improvements:

Allow user to apply force to a particle

Allow user to displace a particle

Compute kinetic energy

Store the mass of each particle, not only its inverse. It can improve performance because the solver needs the masses most of the time for computations

Add some code to find shared and non-shared edges. These algorithms don't work for non-manifold meshes

Remove some unecessary temporaries decreasing code readability
2018-03-28 01:08:19 -03:00
Irlan
a21d46ac64 add MCG without Jacobi preconditioning, delegate cloth solver to another class, ignore positive separation, improve contact handling, support different shapes
Specially, see b3SpringSolver.cpp for details.
2018-03-26 16:03:43 -03:00
Irlan
be812ed897 add collision (no friction) 2018-03-24 02:21:31 -03:00
Irlan
2cbf9b56ed add baraff and witkin's mass-spring-based cloth 2018-03-23 15:29:47 -03:00
Irlan
c411bf341a add rope 2017-05-28 21:05:32 -03:00