Skip to content

Commit 477df1a

Browse files
alxbilgernyoxiduriezjbosmanigor
authored
Develop to main (#13)
* improving polar decomposition by scaling down the computed angle git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@418 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * changing SCA 2012 to Vriphys 2012 git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@419 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * changing from SCA 2012 to Vriphys 2012 git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@420 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * update old scenes git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@421 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * more on the article git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@422 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * fixing a figure git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@423 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * Doxygen documentation git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@424 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * more on the article git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@425 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * setting svn:ignore property git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@426 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * using 6 Gauss point quadrature for bending element computing interpolation frame at center using interpolation component git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@427 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * modifs in intro git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@428 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * reorganizing sections 2 and 3, adding more stuff to sec. 2 git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@429 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * modifs & comments git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@430 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * more on article git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@431 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * finishing section 2 git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@432 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * article git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@433 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * comments and some update git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@434 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * begin of something in section 3.1 git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@435 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * trying new image for membrane/bending deformations git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@436 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * section 3.1 git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@437 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * section 3 git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@438 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * small changes in section 3 git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@439 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * rewritten contributon, new images for the paper git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@440 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * article: reviewed end of section 2 and most of section 3 git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@441 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * fixing FPS for the test (only visual mapping) git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@442 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * sections 3, 4 and most of 5 git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@443 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * spell check git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@444 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * cropping images git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@445 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * application on the birth simulation git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@446 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * abstract git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@447 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * changes in sections 6 and 7 git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@448 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * proofread of section 4 git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@449 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * proofread of section 5 git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@450 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * small corrections git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@451 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * changes to fit into 10 page limit git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@452 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * adding paper outline to introduction git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@453 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * Precomputing shape functions; removing typing problem with call to apply* functions git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@454 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * drawing strain/stress at each gausspoint -- initial skeleton git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@455 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * measuring the membrane stress git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@456 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * fixing previous commit and making maximal value for colour mapping configurable git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@457 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * using von Mises stress criterion to evaluate stress vallues, included bending stress example, configurable point size, example git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@458 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * Dossier papier afig git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@459 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * Corrections + figure git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@460 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * Ajout intro et corrections git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@461 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * Papier version finale + figures git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@462 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * final version of VRIPHYS paper git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@463 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * fixing invalid line; removing unused files git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@464 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * simple controller for optimization of 2D mesh (for testing purposes) git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@465 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * Multiple iterations of Laplacian smoothing git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@466 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * optimization based smoothing git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@467 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * Afig paper removed (non longer needed) git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@468 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * Implementation of smoothing algorithm by Pain et al. git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@469 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * compute values at nodes git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@470 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * CUDA implementation of Laplacian smoothing git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@471 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * CUDA implementation of optimization based smoothin git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@472 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * preparation for parallelization; support for topological changes, point tracking git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@473 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * first working version of point tracking git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@474 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * making CUDA optional git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@475 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * fixing comments (for doxygen) git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@476 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * - Having both boundary and fixed nodes (allowing boundary nodes to move). - Point switching to prevent point sticking and degenerated triangles git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@477 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * fixing #includes git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@478 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * Computing stress/strain on mapped topology git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@479 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * using DataDisplay to draw stress git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@480 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * reattach point to avoid degenerated elements git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@481 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * preparing for the adaptive cutting git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@482 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * more work on the cutting framework (little bit broken now) git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@483 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * more on the cutting git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@484 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * first working version of cutting support (not yet perfect though) git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@485 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * small fixes to cutting, fixed boundary recheck git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@486 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * fixing compilation with new Sofa git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@487 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * computing stress/strain for some elements in TriangularShellForceField git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@488 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * removing stress drawing code from BezierShellForceField and renaming 'measureValues' to 'measuredValues' git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@489 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * - removing distinction between tracked and "last seen" point position - reattaching points during cutting in N1-ring - automated cutting git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@490 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * adding class for projection of points on surface git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@491 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * handling point projection during adaptivity git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@492 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * removing CUDA classes from build (broken) git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@493 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * fixing some cut-point selection problems git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@494 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * fixing computation of stress/strain git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@495 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * implementing edge swapping operation git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@496 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * Refactoring adaptive cutting into separate component git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@497 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * adding mesh git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@498 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * Added edge protection code and tracked point swapping method to complete the refactoring. Edgeswaping is done for all triangles. git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@499 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * bugfix git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@500 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * fixing compilation git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@501 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * removing unwanted property svn:mime-type git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@502 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * scenes combining tetrahedral forcefield with shells git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@503 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * scenes git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@504 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * scenes git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@505 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * scenes git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@506 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * renaming old directory git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@507 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * adding first lines for MICCAI 2013 paper git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@508 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * fixing integration of the DKT element git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@509 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * Component with CST membrane element (because the implementations in Sofa are hopelessly broken). git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@510 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * scenes for liver with capsule git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@511 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * fixing path git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@512 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * more on the miccai paper git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@513 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * first version fo aspiration test and results git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@514 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * missing mesh file git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@515 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * abstract v1.0 git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@516 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * more on the miccai paper git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@517 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * the paper git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@518 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * aspiration test git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@519 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * fixing the solver git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@520 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * fixing the aspiration test git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@521 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * few comments git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@522 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * ADD: the effect of the force field applied gradually git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@523 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * paper git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@524 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * CHANGE: allowing for both increasin and decreasing the effect of the forcefield git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@525 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * ADD: introduction git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@526 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * paper: intro, intro to experiments git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@527 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * ADD and CHANGE: some additions and modifications in Model -- Parenchyma and Vascularization git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@528 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * ADD: overview of "Global deformations" section git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@529 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * bibliography, comments, figures for aspiration git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@530 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * TEMPORARY: aspiration.jpg => aspiration.pdf to compile the TeX. Aspiration.jpg needed! git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@531 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * adding missing file git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@532 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * REVERT: pdf => jpg git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@533 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * FIX: small fixes in the introduction git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@534 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * fixing the plot and screenshots git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@535 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * membrane stiffness matrix git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@536 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * adding references git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@537 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * ADD: graph showing the force evoluation when adding the membrane git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@538 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * paper outline git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@539 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * liver under gravity git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@540 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * changing stiffness of parenchyma git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@541 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * small changes git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@542 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * ADD: part of the global deformation section plus images git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@543 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * ADD: global deformations finished git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@544 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * CHANGE: small modifications in Local Deformations section git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@545 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * CHANGE: negligible modification of title git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@546 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * adding figure caption git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@547 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * removing unnecessary info to make citations shorter git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@548 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * removing unnecessary stuff to make it shorter; correcting insitutions git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@549 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * CHANGE: new version of abstract, small modifications in introduction git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@550 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * ADD: small changes in the text git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@551 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * small fixes git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@552 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * spell check, homogenized figure captions git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@553 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * small changes git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@554 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * small changes git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@555 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * final fix git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@556 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * CHANGE: two important modifs: new mesh sizes and frame rate, max. Hausdorff distance modified git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@557 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * FIX: English and small typos git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@558 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * CHANGE: conclusions git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@559 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * CHANGE: using stiffnessFactor provided externally to switch on the capsule gradually git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@560 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * CHANGE: default factorStiffness parameter changed to 1 git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@561 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * ADD: new scenes to compare influence of the capsule using gravity and registration together with required data git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@562 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * changes for miccai git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@563 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * small cleanups git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@564 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * introducint metric tensor git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@565 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * CHANGE: removed obsolete parameters git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@566 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * small cleanup git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@567 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * adding some form of projection onto surface git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@568 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * adapting parametrization to changes in topology (point relocation) git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@569 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * moving optimization related code to seprate class git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@570 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * modified optimization to use parametrized surface git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@571 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * framework for metric tensors git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@572 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * Paper for VRST 2013 (reworked miccai 2013 paper) git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@573 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * FIX: caption bug and affiliations git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@574 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * removing vascularization and global deformations git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@575 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * vrst2013: aspiration test git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@576 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * vrst2013: more changes git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@577 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * more fixes in the paper git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@578 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * reorganizing sections git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@579 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * ADD: abstract git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@580 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * ADD: some reformulations in section 3 and 4 git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@581 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * ADD: citations and further fixes git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@582 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * ADD: reformulation in 4. chapter git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@583 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * displacement evolution git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@584 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * further reformulations git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@585 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * ADD: figure git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@586 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * fixing the figure git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@587 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * FIX: i7 CPU git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@588 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * FIX: conclusions git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@589 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * updating values in figure git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@590 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * categories, term, keywords git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@591 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * final fixes git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@592 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * changing the time range git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@593 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * moving mapping related code into another interpolation component git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@594 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * implementing applyJT for constraints (not sure it's working though) git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@595 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * commited wrong version of applyJT git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@596 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * preparing MEDIA paper git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@597 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * aspiration test git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@598 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * adding doxygen documentation git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@599 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * using acmsiggraph class git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@600 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * fixing some issues git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@601 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * FIX: typos git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@602 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * MMVR 2014 paper - 4 pages git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@603 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * DELETE: unnecessary files under SVN git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@604 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * REMOVE: unnecessary files under SVN git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@605 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * UPDATE: adding the global influence, reducing the method section git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@606 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * ADD: new section about the methods showing the combination of matrices git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@607 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * FIX: finalization of the paper git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@608 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * CMakeLists added for shell plugin. Testing required and feedback is welcome git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@609 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * ADD: proceedings version of the paper git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@610 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * RENAME: keep the files, up-to-date version of MMVR14 paper about complete liver model in Bilikimo plugin git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@611 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * ADD&CHANGE: various modifications of scenes for MMVR2014 git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@612 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * CHANGE: temporary removal of shell components for compilation without shaders git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@613 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * ADD: new scenes for MMVR validation git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@614 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * fix compilation problems (with cmake): change 'method()' by 'this->method()' and include missing file git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@615 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * Updated component to match new method signatures and deprecations. git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@616 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * tentative update of Cmakelist to match SOFA changes git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@617 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * Fix build with new sofa buildsystem git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@618 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * Fix bugs to work with current sofa version git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/sofa-shells@619 7b2761c9-2758-49ef-8c29-9c9f1e1aad1b * FIX= small corrections on scene files * change the plugin Name * FIX: change the type of shell FF to get better results * ADD: ongoing work on ApplyJt for MatrixDeriv * Fix for compilation to match changes with update/doUpdate * Update to compile with the current version of SOFA where SOFA_FLOAT and SOFA_DOUBLE were removed * rename txt file for authors and license * Remove old files (qmake) * FIX CMake config * Fix compilation with v19.12 * Reorganize plugin and update CMakelists.txt * Move doc * Move examples * Set up cpp files for plugin * Fix compilation, path and most warnings * Clean CMakes * Fix compilation with master 20210317 * update the CmakeList according to Sofa code * remove the now-private propagateTopologicalChanges * intermediate commit for updating towards v21.06 * Update plugin for v21.06 * [all] list of changes: - fixes compilation wrt SOFA changes - separates examples, xml and sofapython3 - adds an example using python * [src] fixes changes made by mistake * [forcefield] cleaning and examples * [src] Fixes compilation, cleaning, and visu * update the Triangular Shell ForceField scene * Updated the CMakeList file to correspond to the new Sofa standards. * Updated the CMakeList file to correspond to the new Sofa standards. * Update data name in forcefield component. * add ShellsAndBeams, SceneCochlea folder to the pluging * Enhancement: Add Support for rest state in TriangularShellForceField Component * update the code in order to compile with Sofa master * Refactor TriangularShellForceField: Rename 'f_corotated' to 'd_corotated' and Add Draw Functionality **Commit Message:** "Refactor TriangularShellForceField: Rename 'f_corotated' to 'd_corotated' and Add Draw Functionality" **Details:** - Renamed `f_corotated` to `d_corotated` across multiple files to improve consistency in naming conventions. - Fixed several minor spelling errors (e.g., "postions" to "positions"). - Added a `draw()` function to `TriangularShellForceField` for visual representation of shell triangle information, including arrows with customizable radii. - Minor code improvements in vector naming for clarity (`edgex` to `edge_x`, etc.). * correct previous commit * move everything that was not already moved * CMake takes into account the folder with the new name * remove legacy folder * adapt code to the new plugin name and latest SOFA changes * Cleanup the plugin and fix compilation (#12) * Remove unnecessary includes to ConstantForceField.h * Missing Sofa.Component.Mapping.Linear package * sort lines * cleaning dependencies * [Examples] Clean xml examples from folder combo/miccai2013 (#11) * [examples] Update scene * clean example from folder xml/combo * fix paths 200shellComputationAnevrism * remove comments + move LCPConstraintSolver * clean examples 30/04 * fix last commit * Delete doc/Vrst2013/vrst2013.pdf * Delete doc/VRIPHYS2012/vriphys2012.pdf --------- Co-authored-by: Lucas Burel <lucas.burel@inria.fr> * Remove superfluous files for a merge of develop into the main branch --------- Co-authored-by: nyoxi <nyoxi@7b2761c9-2758-49ef-8c29-9c9f1e1aad1b> Co-authored-by: duriez <duriez@7b2761c9-2758-49ef-8c29-9c9f1e1aad1b> Co-authored-by: jbosman <jbosman@7b2761c9-2758-49ef-8c29-9c9f1e1aad1b> Co-authored-by: igor <igor@7b2761c9-2758-49ef-8c29-9c9f1e1aad1b> Co-authored-by: stephane <stephane@7b2761c9-2758-49ef-8c29-9c9f1e1aad1b> Co-authored-by: majorczyk <majorczyk@7b2761c9-2758-49ef-8c29-9c9f1e1aad1b> Co-authored-by: ogoury <ogoury@7b2761c9-2758-49ef-8c29-9c9f1e1aad1b> Co-authored-by: bcarrez <bcarrez@7b2761c9-2758-49ef-8c29-9c9f1e1aad1b> Co-authored-by: duriez <christian.duriez@inria.fr> Co-authored-by: Olivier-Goury <olivier.goury@inria.fr> Co-authored-by: htalbot <hugo.talbot@sofa-framework.org> Co-authored-by: Younes <yinoussa.adagolodjo@gmail.com> Co-authored-by: ADAGOLODJO Yinoussa <yinoussa.adagolodjo@inria.fr> Co-authored-by: TALBOT Hugo <hugo.talbot@inria.fr> Co-authored-by: EulalieCoevoet <eulalie.coevoet@gmail.com> Co-authored-by: Yinoussa Adagolodjo <yinoussa.adagolodjo2@univ-lille.fr> Co-authored-by: Lucas-TJ <lucasbureltojo@gmail.com> Co-authored-by: Lucas Burel <lucas.burel@inria.fr>
1 parent 55cfb8c commit 477df1a

58 files changed

Lines changed: 19843 additions & 13 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CMakeLists.txt

Lines changed: 87 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,16 @@ cmake_minimum_required(VERSION 3.12)
22
project(Shell VERSION 1.0 LANGUAGES CXX)
33

44
# Find and load CMake configuration of packages containing this plugin's dependencies
5-
find_package(Sofa.Component.Controller REQUIRED)
5+
find_package(Sofa.Config REQUIRED)
6+
sofa_find_package(Sofa.Component.Controller REQUIRED)
7+
sofa_find_package(Sofa.Component.Topology.Container.Dynamic REQUIRED)
68
sofa_find_package(Sofa.Component.StateContainer REQUIRED)
9+
sofa_find_package(Sofa.Component.Mapping.Linear REQUIRED)
10+
sofa_find_package(Sofa.GL REQUIRED)
711

12+
set(README_FILE README.md)
13+
14+
option(SOFA-PLUGIN_SHELLS_ADAPTIVITY "Enables shells adaptivity" OFF)
815

916
# List all files
1017
set(SHELL_SRC_DIR src/Shell)
@@ -13,32 +20,102 @@ set(HEADER_FILES
1320
${SHELL_SRC_DIR}/controller/MeshChangedEvent.h
1421
${SHELL_SRC_DIR}/controller/MeshInterpolator.h
1522
${SHELL_SRC_DIR}/controller/MeshInterpolator.inl
23+
${SHELL_SRC_DIR}/controller/TriangleSwitchExample.h
24+
${SHELL_SRC_DIR}/controller/TriangleSwitchExample.inl
1625
${SHELL_SRC_DIR}/engine/JoinMeshPoints.h
1726
${SHELL_SRC_DIR}/engine/JoinMeshPoints.inl
27+
${SHELL_SRC_DIR}/engine/FindClosePoints.h
28+
${SHELL_SRC_DIR}/engine/FindClosePoints.inl
29+
${SHELL_SRC_DIR}/forcefield/BezierTriangularBendingFEMForceField.h
30+
${SHELL_SRC_DIR}/forcefield/BezierTriangularBendingFEMForceField.inl
31+
${SHELL_SRC_DIR}/forcefield/CstFEMForceField.h
32+
${SHELL_SRC_DIR}/forcefield/CstFEMForceField.inl
1833
${SHELL_SRC_DIR}/forcefield/TriangularBendingFEMForceField.h
1934
${SHELL_SRC_DIR}/forcefield/TriangularBendingFEMForceField.inl
35+
${SHELL_SRC_DIR}/forcefield/TriangularShellForceField.h
36+
${SHELL_SRC_DIR}/forcefield/TriangularShellForceField.inl
37+
${SHELL_SRC_DIR}/mapping/BendingPlateMechanicalMapping.h
38+
${SHELL_SRC_DIR}/mapping/BendingPlateMechanicalMapping.inl
39+
${SHELL_SRC_DIR}/mapping/BezierTriangleMechanicalMapping.h
40+
${SHELL_SRC_DIR}/mapping/BezierTriangleMechanicalMapping.inl
41+
${SHELL_SRC_DIR}/misc/PointProjection.h
42+
${SHELL_SRC_DIR}/misc/PointProjection.inl
43+
${SHELL_SRC_DIR}/shells2/fem/BezierShellInterpolation.h
44+
${SHELL_SRC_DIR}/shells2/fem/BezierShellInterpolation.inl
45+
${SHELL_SRC_DIR}/shells2/fem/BezierShellInterpolationM.h
46+
${SHELL_SRC_DIR}/shells2/fem/BezierShellInterpolationM.inl
47+
${SHELL_SRC_DIR}/shells2/forcefield/BezierShellForceField.h
48+
${SHELL_SRC_DIR}/shells2/forcefield/BezierShellForceField.inl
49+
${SHELL_SRC_DIR}/shells2/mapping/BezierShellMechanicalMapping.h
50+
${SHELL_SRC_DIR}/shells2/mapping/BezierShellMechanicalMapping.inl
2051
)
52+
2153
set(SOURCE_FILES
2254
${SHELL_SRC_DIR}/initShell.cpp
2355
${SHELL_SRC_DIR}/controller/MeshChangedEvent.cpp
2456
${SHELL_SRC_DIR}/controller/MeshInterpolator.cpp
57+
${SHELL_SRC_DIR}/controller/TriangleSwitchExample.cpp
2558
${SHELL_SRC_DIR}/engine/JoinMeshPoints.cpp
59+
${SHELL_SRC_DIR}/engine/FindClosePoints.cpp
60+
${SHELL_SRC_DIR}/forcefield/BezierTriangularBendingFEMForceField.cpp
61+
${SHELL_SRC_DIR}/forcefield/CstFEMForceField.cpp
2662
${SHELL_SRC_DIR}/forcefield/TriangularBendingFEMForceField.cpp
63+
${SHELL_SRC_DIR}/forcefield/TriangularShellForceField.cpp
64+
${SHELL_SRC_DIR}/mapping/BendingPlateMechanicalMapping.cpp
65+
${SHELL_SRC_DIR}/mapping/BezierTriangleMechanicalMapping.cpp
66+
${SHELL_SRC_DIR}/misc/PointProjection.cpp
67+
${SHELL_SRC_DIR}/shells2/fem/BezierShellInterpolation.cpp
68+
${SHELL_SRC_DIR}/shells2/fem/BezierShellInterpolationM.cpp
69+
${SHELL_SRC_DIR}/shells2/forcefield/BezierShellForceField.cpp
70+
${SHELL_SRC_DIR}/shells2/mapping/BezierShellMechanicalMapping.cpp
2771
)
28-
set(README_FILES
29-
README.md
30-
)
3172

32-
# Create the plugin library.
73+
if(SOFA-PLUGIN_SHELLS_ADAPTIVITY)
74+
set(COMPILER_DEFINE "SOFA_BUILD_SHELLS_ADAPTIVITY")
75+
76+
list(APPEND HEADER_FILES
77+
${SHELL_SRC_DIR}/controller/AdaptiveCuttingController.h
78+
${SHELL_SRC_DIR}/controller/AdaptiveCuttingController.inl
79+
${SHELL_SRC_DIR}/controller/Test2DAdapter.h
80+
${SHELL_SRC_DIR}/controller/Test2DAdapter.inl
81+
${SHELL_SRC_DIR}/misc/Optimize2DSurface.h
82+
${SHELL_SRC_DIR}/misc/Optimize2DSurface.inl
83+
${SHELL_SRC_DIR}/misc/SurfaceParametrization.h
84+
${SHELL_SRC_DIR}/misc/SurfaceParametrization.inl
85+
)
86+
87+
list(APPEND SOURCE_FILES
88+
${SHELL_SRC_DIR}/controller/AdaptiveCuttingController.cpp
89+
${SHELL_SRC_DIR}/controller/Test2DAdapter.cpp
90+
${SHELL_SRC_DIR}/misc/Optimize2DSurface.cpp
91+
${SHELL_SRC_DIR}/misc/SurfaceParametrization.cpp
92+
)
93+
94+
if(SofaGui_FOUND AND SofaOpenglVisual_FOUND)
95+
list(APPEND HEADER_FILES
96+
${SHELL_SRC_DIR}/cutting/AdaptiveCutting.h
97+
)
98+
99+
list(APPEND SOURCE_FILES
100+
${SHELL_SRC_DIR}/cutting/AdaptiveCutting.cpp
101+
)
102+
endif()
103+
104+
endif()
105+
106+
107+
# Create the plugin library
33108
add_library(${PROJECT_NAME} SHARED ${HEADER_FILES} ${SOURCE_FILES} ${README_FILES})
34109

35110
# Link the plugin library to its dependency(ies).
36-
target_link_libraries(${PROJECT_NAME} Sofa.Component.Controller Sofa.Component.StateContainer)
111+
target_link_libraries(${PROJECT_NAME}
112+
Sofa.Component.Controller
113+
Sofa.Component.Topology.Container.Dynamic
114+
Sofa.Component.StateContainer
115+
Sofa.Component.Mapping.Linear
116+
Sofa.GL
117+
)
37118

38-
# Create package Config, Version & Target files.
39-
# Deploy the headers, resources, scenes & examples.
40-
# Set the plugin 'relocatable' if built within SOFA.
41-
# --> see SofaMacros.cmake
42119
sofa_create_package_with_targets(
43120
PACKAGE_NAME ${PROJECT_NAME}
44121
PACKAGE_VERSION ${PROJECT_VERSION}
Binary file not shown.

examples/xml/ShellTest.scn

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,12 @@
2727
<SparseLDLSolver template="CompressedRowSparseMatrixMat3x3d"/>
2828
<MeshOBJLoader name="loader" filename="mesh/square1.obj"/>
2929
<MeshTopology name="topology" src="@loader"/>
30-
<MechanicalObject template="Rigid3"/>
30+
<MechanicalObject template="Rigid3d"/>
3131
<UniformMass totalMass="0.005"/>
3232
<BoxROI name="box" box="0 0.9 -0.1 1 1 0.1" drawBoxes="1"/>
33-
<FixedConstraint indices="@box.indices"/>
33+
<FixedProjectiveConstraint indices="@box.indices"/>
3434
<TriangularBendingFEMForceField youngModulus="1.7e3" poissonRatio="0.3" thickness="0.01"/>
35+
3536

3637
<Node name="Visu">
3738

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#include <SofaShells/config.h>
2+
#include <SofaShells/cutting/AdaptiveCuttingController.inl>
3+
#include <sofa/core/ObjectFactory.h>
4+
5+
6+
namespace sofa
7+
{
8+
9+
namespace component
10+
{
11+
12+
namespace controller
13+
{
14+
15+
using namespace sofa::defaulttype;
16+
17+
SOFA_DECL_CLASS(AdaptiveCuttingController)
18+
19+
// Register in the Factory
20+
int AdaptiveCuttingControllerClass = core::RegisterObject(
21+
"Controller that handles the cutting method based on mesh adaptivity.")
22+
#ifdef SOFA_FLOAT
23+
.add< AdaptiveCuttingController<type::Vec3fTypes> >(true) // default template
24+
#else
25+
.add< AdaptiveCuttingController<type::Vec3dTypes> >(true) // default template
26+
# ifndef SOFA_DOUBLE
27+
.add< AdaptiveCuttingController<type::Vec3fTypes> >()
28+
# endif
29+
#endif
30+
;
31+
32+
#ifndef SOFA_FLOAT
33+
template class SOFA_SHELLS_API AdaptiveCuttingController<type::Vec3dTypes>;
34+
#endif //SOFA_FLOAT
35+
#ifndef SOFA_DOUBLE
36+
template class SOFA_SHELLS_API AdaptiveCuttingController<type::Vec3fTypes>;
37+
#endif //SOFA_DOUBLE
38+
39+
} // namespace controller
40+
41+
} // namespace component
42+
43+
} // namespace sofa
Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
#ifndef SOFA_COMPONENT_CONTROLLER_ADAPTIVECUTTINGCONTROLLER_H
2+
#define SOFA_COMPONENT_CONTROLLER_ADAPTIVECUTTINGCONTROLLER_H
3+
4+
#include <SofaUserInteraction/Controller.h>
5+
6+
#include <sofa/defaulttype/VecTypes.h>
7+
#include <sofa/type/Vec.h>
8+
9+
#include <sofa/core/behavior/MechanicalState.h>
10+
#include <sofa/core/topology/BaseMeshTopology.h>
11+
#include <sofa/gui/component/performer/MouseInteractor.h>
12+
#include <sofa/component/topology/container/dynamic/TriangleSetTopologyContainer.h>
13+
#include <sofa/component/topology/container/dynamic/TriangleSetTopologyModifier.h>
14+
#include <sofa/component/topology/container/dynamic/TriangleSetTopologyAlgorithms.h>
15+
#include <sofa/component/topology/container/dynamic/TriangleSetGeometryAlgorithms.h>
16+
#include <sofa/core/topology/TopologyData.h>
17+
18+
#include <sofa/helper/map.h>
19+
#include <sofa/type/vector.h>
20+
21+
#include <SofaShells/controller/Test2DAdapter.h>
22+
23+
namespace sofa
24+
{
25+
26+
namespace component
27+
{
28+
29+
namespace controller
30+
{
31+
32+
/// Class to shield the data type
33+
class CuttingAdapter
34+
{
35+
public:
36+
virtual void setTrackedPoint(const collision::BodyPicked &picked) = 0;
37+
virtual void freeTrackedPoint() = 0;
38+
virtual void addCuttingPoint() = 0;
39+
};
40+
41+
template<class DataTypes>
42+
class AdaptiveCuttingController : public Controller, public CuttingAdapter
43+
{
44+
public:
45+
SOFA_CLASS(SOFA_TEMPLATE(AdaptiveCuttingController,DataTypes),Controller);
46+
47+
typedef typename DataTypes::Coord Coord;
48+
typedef typename DataTypes::VecCoord VecCoord;
49+
//typedef typename DataTypes::Deriv Deriv;
50+
//typedef typename DataTypes::VecDeriv VecDeriv;
51+
typedef typename Coord::value_type Real;
52+
53+
typedef sofa::type::Vec<2, Real> Vec2;
54+
typedef sofa::type::Vec<3, Real> Vec3;
55+
//typedef sofa::type::Mat<2,2,Real> Mat22;
56+
//typedef sofa::type::Mat<3,3,Real> Mat33;
57+
//typedef type::vector<Vec2> VecVec2;
58+
//typedef type::vector<Vec3> VecVec3;
59+
60+
61+
typedef sofa::core::topology::BaseMeshTopology::Edge Edge;
62+
typedef sofa::core::topology::BaseMeshTopology::EdgesAroundVertex EdgesAroundVertex;
63+
typedef sofa::component::topology::TriangleSetTopologyContainer::TriangleID Index;
64+
typedef sofa::component::topology::TriangleSetTopologyContainer::Triangle Triangle;
65+
typedef sofa::component::topology::TriangleSetTopologyContainer::TrianglesAroundVertex TrianglesAroundVertex;
66+
typedef sofa::component::topology::TriangleSetTopologyContainer::TrianglesAroundEdge TrianglesAroundEdge;
67+
typedef sofa::component::topology::TriangleSetTopologyContainer::EdgesInTriangle EdgesInTriangle;
68+
typedef sofa::type::vector<Index> VecIndex;
69+
70+
enum { InvalidID = sofa::core::topology::Topology::InvalidID };
71+
72+
/// @brief If geometric functinal drops below this value the attached node
73+
/// is dropped.
74+
Data<Real> m_affinity;
75+
76+
virtual void init();
77+
virtual void reinit();
78+
79+
virtual std::string getTemplateName() const
80+
{
81+
return templateName(this);
82+
}
83+
84+
static std::string templateName(const AdaptiveCuttingController<DataTypes>* = NULL)
85+
{
86+
return DataTypes::Name();
87+
}
88+
89+
void onEndAnimationStep(const double dt);
90+
//void onKeyPressedEvent(core::objectmodel::KeypressedEvent *key);
91+
92+
void draw(const core::visual::VisualParams* vparams);
93+
94+
95+
void setTrackedPoint(const collision::BodyPicked &picked);
96+
void freeTrackedPoint() {
97+
// Detach the point
98+
m_pointId = InvalidID;
99+
// Stop cutting
100+
m_cutPoints = 0;
101+
m_cutEdge = InvalidID;
102+
}
103+
void addCuttingPoint();
104+
105+
/// Whether the cutting is in progress or not.
106+
bool cutting() { return m_cutPoints > 0; }
107+
108+
protected:
109+
110+
AdaptiveCuttingController();
111+
112+
113+
private:
114+
115+
Test2DAdapter<DataTypes>* m_adapter;
116+
sofa::component::topology::TriangleSetTopologyContainer* m_container;
117+
sofa::component::topology::TriangleSetGeometryAlgorithms<DataTypes> *m_algoGeom;
118+
sofa::component::topology::TriangleSetTopologyAlgorithms<DataTypes> *m_algoTopo;
119+
sofa::core::behavior::MechanicalState<DataTypes>* m_state;
120+
121+
// TODO: This should go to cutting config (maybe?)
122+
bool autoCutting;
123+
124+
125+
/// Closest point in the mstate.
126+
Index m_pointId;
127+
/// A point on a surface to attract to (valid only if m_pointId != InvalidID).
128+
Vec3 m_point;
129+
/// Position of m_point projected into rest shape.
130+
Vec3 m_pointRest;
131+
/// @brief Triangle ID inside which m_point is located (valid only if
132+
///m_pointId != InvalidID).
133+
Index m_pointTriId;
134+
/// @brief Number of iterations during which the attached node will not be
135+
/// reattached.
136+
unsigned int m_gracePeriod;
137+
138+
/// @brief Stored index of the first edge to cut when the first cut has
139+
/// been delayed.
140+
Index m_cutEdge;
141+
/// Last cutting point.
142+
Index m_cutLastPoint;
143+
/// Cutting operation to perform in this step.
144+
VecIndex m_cutList;
145+
/// Number of cut points defined.
146+
int m_cutPoints;
147+
148+
void switchPoint(const Vec3 &newPoint, const Index newPointTri,
149+
const Index newID, const Index newCutEdge);
150+
151+
/**
152+
* Set edge planned for the next cut.
153+
*
154+
* @param newCutEdge Index of new edge to use.
155+
* @param bKeepProtection Whether to keep edge protection for previous
156+
* edge.
157+
*/
158+
void setCutEdge(const Index newCutEdge, const bool bKeepProtection=false);
159+
160+
};
161+
162+
163+
} // namespace controller
164+
165+
} // namespace component
166+
167+
} // namespace sofa
168+
169+
#endif // #ifndef SOFA_COMPONENT_CONTROLLER_ADAPTIVECUTTINGCONTROLLER_H

0 commit comments

Comments
 (0)