Serveur d'exploration sur les dispositifs haptiques

Attention, ce site est en cours de développement !
Attention, site généré par des moyens informatiques à partir de corpus bruts.
Les informations ne sont donc pas validées.

A fast and stable vascular deformation scheme for interventional surgery training system

Identifieur interne : 004151 ( Ncbi/Merge ); précédent : 004150; suivant : 004152

A fast and stable vascular deformation scheme for interventional surgery training system

Auteurs : Xiufen Ye [République populaire de Chine] ; Jianguo Zhang [République populaire de Chine] ; Peng Li [République populaire de Chine] ; Tian Wang [République populaire de Chine] ; Shuxiang Guo [République populaire de Chine, Japon]

Source :

RBID : PMC:4822255

Abstract

Background

The emergence and development of robot assistant interventional vascular surgery technologies have benefited many patients with cardiovascular or cerebrovascular diseases. Due to the absence of effective training measures, these new advanced technologies have not been fully utilized and only few experienced surgeons can perform such complicated surgeries so far. In order to solve such problems, virtual reality based vascular interventional surgery training system, a promising way to train young surgeons or assist experienced surgeons to perform surgery, has been widely studied.

Methods

In this paper, we mainly conduct a thorough study on both reliable deformation and high real-time performance of an interactive surgery training system. An efficient hybrid geometric blood vessel model which handles the collision detection query and vascular deformation calculation separately is employed to enhance the real-time performance of our surgery training system. In addition, a position-based dynamic approach with volume conservation constraint is used to improve the vascular deformation result. Finally, a hash table based spatial adaptive acceleration algorithm which makes the training system much more efficient and reliable is described.

Results

Several necessary experiments are conducted to validate the vascular deformation scheme presented in this paper. From the results we can see that the position-based dynamic modeling method with volume conservation constraint can prevent the vascular deformation from the issue of penetration. In addition, the deformation calculation with spatial acceleration algorithm has enhanced the real-time performance significantly.

Conclusion

The corresponding experimental results indicate that both the hybrid geometric blood vessel model and the hash table based spatial adaptive acceleration algorithm can enhance the performance of our surgery training system greatly without losing the deformation accuracy.


Url:
DOI: 10.1186/s12938-016-0148-3
PubMed: 27048290
PubMed Central: 4822255

Links toward previous steps (curation, corpus...)


Links to Exploration step

PMC:4822255

Le document en format XML

<record>
<TEI>
<teiHeader>
<fileDesc>
<titleStmt>
<title xml:lang="en">A fast and stable vascular deformation scheme for interventional surgery training system</title>
<author>
<name sortKey="Ye, Xiufen" sort="Ye, Xiufen" uniqKey="Ye X" first="Xiufen" last="Ye">Xiufen Ye</name>
<affiliation wicri:level="1">
<nlm:aff id="Aff1">College of Automation, Harbin Engineering University, No. 145, Nantong street, Harbin, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>College of Automation, Harbin Engineering University, No. 145, Nantong street, Harbin</wicri:regionArea>
<wicri:noRegion>Harbin</wicri:noRegion>
</affiliation>
</author>
<author>
<name sortKey="Zhang, Jianguo" sort="Zhang, Jianguo" uniqKey="Zhang J" first="Jianguo" last="Zhang">Jianguo Zhang</name>
<affiliation wicri:level="1">
<nlm:aff id="Aff1">College of Automation, Harbin Engineering University, No. 145, Nantong street, Harbin, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>College of Automation, Harbin Engineering University, No. 145, Nantong street, Harbin</wicri:regionArea>
<wicri:noRegion>Harbin</wicri:noRegion>
</affiliation>
</author>
<author>
<name sortKey="Li, Peng" sort="Li, Peng" uniqKey="Li P" first="Peng" last="Li">Peng Li</name>
<affiliation wicri:level="1">
<nlm:aff id="Aff1">College of Automation, Harbin Engineering University, No. 145, Nantong street, Harbin, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>College of Automation, Harbin Engineering University, No. 145, Nantong street, Harbin</wicri:regionArea>
<wicri:noRegion>Harbin</wicri:noRegion>
</affiliation>
</author>
<author>
<name sortKey="Wang, Tian" sort="Wang, Tian" uniqKey="Wang T" first="Tian" last="Wang">Tian Wang</name>
<affiliation wicri:level="1">
<nlm:aff id="Aff1">College of Automation, Harbin Engineering University, No. 145, Nantong street, Harbin, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>College of Automation, Harbin Engineering University, No. 145, Nantong street, Harbin</wicri:regionArea>
<wicri:noRegion>Harbin</wicri:noRegion>
</affiliation>
</author>
<author>
<name sortKey="Guo, Shuxiang" sort="Guo, Shuxiang" uniqKey="Guo S" first="Shuxiang" last="Guo">Shuxiang Guo</name>
<affiliation wicri:level="1">
<nlm:aff id="Aff1">College of Automation, Harbin Engineering University, No. 145, Nantong street, Harbin, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>College of Automation, Harbin Engineering University, No. 145, Nantong street, Harbin</wicri:regionArea>
<wicri:noRegion>Harbin</wicri:noRegion>
</affiliation>
<affiliation wicri:level="1">
<nlm:aff id="Aff2">Intelligent Mechanical Systems Engineering, Kagawa University, Hayashi-cho, Takamatsu, 761-0396 Japan</nlm:aff>
<country xml:lang="fr">Japon</country>
<wicri:regionArea>Intelligent Mechanical Systems Engineering, Kagawa University, Hayashi-cho, Takamatsu</wicri:regionArea>
<wicri:noRegion>Takamatsu</wicri:noRegion>
</affiliation>
</author>
</titleStmt>
<publicationStmt>
<idno type="wicri:source">PMC</idno>
<idno type="pmid">27048290</idno>
<idno type="pmc">4822255</idno>
<idno type="url">http://www.ncbi.nlm.nih.gov/pmc/articles/PMC4822255</idno>
<idno type="RBID">PMC:4822255</idno>
<idno type="doi">10.1186/s12938-016-0148-3</idno>
<date when="2016">2016</date>
<idno type="wicri:Area/Pmc/Corpus">000773</idno>
<idno type="wicri:Area/Pmc/Curation">000773</idno>
<idno type="wicri:Area/Pmc/Checkpoint">000178</idno>
<idno type="wicri:Area/Ncbi/Merge">004151</idno>
</publicationStmt>
<sourceDesc>
<biblStruct>
<analytic>
<title xml:lang="en" level="a" type="main">A fast and stable vascular deformation scheme for interventional surgery training system</title>
<author>
<name sortKey="Ye, Xiufen" sort="Ye, Xiufen" uniqKey="Ye X" first="Xiufen" last="Ye">Xiufen Ye</name>
<affiliation wicri:level="1">
<nlm:aff id="Aff1">College of Automation, Harbin Engineering University, No. 145, Nantong street, Harbin, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>College of Automation, Harbin Engineering University, No. 145, Nantong street, Harbin</wicri:regionArea>
<wicri:noRegion>Harbin</wicri:noRegion>
</affiliation>
</author>
<author>
<name sortKey="Zhang, Jianguo" sort="Zhang, Jianguo" uniqKey="Zhang J" first="Jianguo" last="Zhang">Jianguo Zhang</name>
<affiliation wicri:level="1">
<nlm:aff id="Aff1">College of Automation, Harbin Engineering University, No. 145, Nantong street, Harbin, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>College of Automation, Harbin Engineering University, No. 145, Nantong street, Harbin</wicri:regionArea>
<wicri:noRegion>Harbin</wicri:noRegion>
</affiliation>
</author>
<author>
<name sortKey="Li, Peng" sort="Li, Peng" uniqKey="Li P" first="Peng" last="Li">Peng Li</name>
<affiliation wicri:level="1">
<nlm:aff id="Aff1">College of Automation, Harbin Engineering University, No. 145, Nantong street, Harbin, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>College of Automation, Harbin Engineering University, No. 145, Nantong street, Harbin</wicri:regionArea>
<wicri:noRegion>Harbin</wicri:noRegion>
</affiliation>
</author>
<author>
<name sortKey="Wang, Tian" sort="Wang, Tian" uniqKey="Wang T" first="Tian" last="Wang">Tian Wang</name>
<affiliation wicri:level="1">
<nlm:aff id="Aff1">College of Automation, Harbin Engineering University, No. 145, Nantong street, Harbin, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>College of Automation, Harbin Engineering University, No. 145, Nantong street, Harbin</wicri:regionArea>
<wicri:noRegion>Harbin</wicri:noRegion>
</affiliation>
</author>
<author>
<name sortKey="Guo, Shuxiang" sort="Guo, Shuxiang" uniqKey="Guo S" first="Shuxiang" last="Guo">Shuxiang Guo</name>
<affiliation wicri:level="1">
<nlm:aff id="Aff1">College of Automation, Harbin Engineering University, No. 145, Nantong street, Harbin, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>College of Automation, Harbin Engineering University, No. 145, Nantong street, Harbin</wicri:regionArea>
<wicri:noRegion>Harbin</wicri:noRegion>
</affiliation>
<affiliation wicri:level="1">
<nlm:aff id="Aff2">Intelligent Mechanical Systems Engineering, Kagawa University, Hayashi-cho, Takamatsu, 761-0396 Japan</nlm:aff>
<country xml:lang="fr">Japon</country>
<wicri:regionArea>Intelligent Mechanical Systems Engineering, Kagawa University, Hayashi-cho, Takamatsu</wicri:regionArea>
<wicri:noRegion>Takamatsu</wicri:noRegion>
</affiliation>
</author>
</analytic>
<series>
<title level="j">BioMedical Engineering OnLine</title>
<idno type="eISSN">1475-925X</idno>
<imprint>
<date when="2016">2016</date>
</imprint>
</series>
</biblStruct>
</sourceDesc>
</fileDesc>
<profileDesc>
<textClass></textClass>
</profileDesc>
</teiHeader>
<front>
<div type="abstract" xml:lang="en">
<sec>
<title>Background</title>
<p>The emergence and development of robot assistant interventional vascular surgery technologies have benefited many patients with cardiovascular or cerebrovascular diseases. Due to the absence of effective training measures, these new advanced technologies have not been fully utilized and only few experienced surgeons can perform such complicated surgeries so far. In order to solve such problems, virtual reality based vascular interventional surgery training system, a promising way to train young surgeons or assist experienced surgeons to perform surgery, has been widely studied.</p>
</sec>
<sec>
<title>Methods</title>
<p>In this paper, we mainly conduct a thorough study on both reliable deformation and high real-time performance of an interactive surgery training system. An efficient hybrid geometric blood vessel model which handles the collision detection query and vascular deformation calculation separately is employed to enhance the real-time performance of our surgery training system. In addition, a position-based dynamic approach with volume conservation constraint is used to improve the vascular deformation result. Finally, a hash table based spatial adaptive acceleration algorithm which makes the training system much more efficient and reliable is described.</p>
</sec>
<sec>
<title>Results</title>
<p>Several necessary experiments are conducted to validate the vascular deformation scheme presented in this paper. From the results we can see that the position-based dynamic modeling method with volume conservation constraint can prevent the vascular deformation from the issue of penetration. In addition, the deformation calculation with spatial acceleration algorithm has enhanced the real-time performance significantly.</p>
</sec>
<sec>
<title>Conclusion</title>
<p>The corresponding experimental results indicate that both the hybrid geometric blood vessel model and the hash table based spatial adaptive acceleration algorithm can enhance the performance of our surgery training system greatly without losing the deformation accuracy.</p>
</sec>
</div>
</front>
<back>
<div1 type="bibliography">
<listBibl>
<biblStruct>
<analytic>
<author>
<name sortKey="Davidson, Ija" uniqKey="Davidson I">IJA Davidson</name>
</author>
<author>
<name sortKey="Lok, C" uniqKey="Lok C">C Lok</name>
</author>
<author>
<name sortKey="Dolmatch, B" uniqKey="Dolmatch B">B Dolmatch</name>
</author>
<author>
<name sortKey="Gallieni, M" uniqKey="Gallieni M">M Gallieni</name>
</author>
<author>
<name sortKey="Nolen, B" uniqKey="Nolen B">B Nolen</name>
</author>
<author>
<name sortKey="Pittiruti, M" uniqKey="Pittiruti M">M Pittiruti</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Guo, J" uniqKey="Guo J">J Guo</name>
</author>
<author>
<name sortKey="Guo, S" uniqKey="Guo S">S Guo</name>
</author>
<author>
<name sortKey="Xiao, N" uniqKey="Xiao N">N Xiao</name>
</author>
<author>
<name sortKey="Ma, X" uniqKey="Ma X">X Ma</name>
</author>
<author>
<name sortKey="Yoshida, S" uniqKey="Yoshida S">S Yoshida</name>
</author>
<author>
<name sortKey="Tamiya, T" uniqKey="Tamiya T">T Tamiya</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Lyu, Sr" uniqKey="Lyu S">SR Lyu</name>
</author>
<author>
<name sortKey="Lin, Yk" uniqKey="Lin Y">YK Lin</name>
</author>
<author>
<name sortKey="Huang, St" uniqKey="Huang S">ST Huang</name>
</author>
<author>
<name sortKey="Yau, Ht" uniqKey="Yau H">HT Yau</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Ye, X" uniqKey="Ye X">X Ye</name>
</author>
<author>
<name sortKey="Zhang, J" uniqKey="Zhang J">J Zhang</name>
</author>
<author>
<name sortKey="Gu, Y" uniqKey="Gu Y">Y Gu</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Wang, T" uniqKey="Wang T">T Wang</name>
</author>
<author>
<name sortKey="Zhang, D" uniqKey="Zhang D">D Zhang</name>
</author>
<author>
<name sortKey="Da, L" uniqKey="Da L">L Da</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Lu, Ws" uniqKey="Lu W">WS Lu</name>
</author>
<author>
<name sortKey="Xu, Wy" uniqKey="Xu W">WY Xu</name>
</author>
<author>
<name sortKey="Zhang, J" uniqKey="Zhang J">J Zhang</name>
</author>
<author>
<name sortKey="Liu, D" uniqKey="Liu D">D Liu</name>
</author>
<author>
<name sortKey="Wang, Dm" uniqKey="Wang D">DM Wang</name>
</author>
<author>
<name sortKey="Jia, P" uniqKey="Jia P">P Jia</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Meng, C" uniqKey="Meng C">C Meng</name>
</author>
<author>
<name sortKey="Zhang, J" uniqKey="Zhang J">J Zhang</name>
</author>
<author>
<name sortKey="Liu, D" uniqKey="Liu D">D Liu</name>
</author>
<author>
<name sortKey="Liu, B" uniqKey="Liu B">B Liu</name>
</author>
<author>
<name sortKey="Zhou, F" uniqKey="Zhou F">F Zhou</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Zhang, D" uniqKey="Zhang D">D Zhang</name>
</author>
<author>
<name sortKey="Wang, T" uniqKey="Wang T">T Wang</name>
</author>
<author>
<name sortKey="Liu, D" uniqKey="Liu D">D Liu</name>
</author>
<author>
<name sortKey="Lin, G" uniqKey="Lin G">G Lin</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Wang, H" uniqKey="Wang H">H Wang</name>
</author>
<author>
<name sortKey="Wu, J" uniqKey="Wu J">J Wu</name>
</author>
<author>
<name sortKey="Wei, M" uniqKey="Wei M">M Wei</name>
</author>
<author>
<name sortKey="Ma, X" uniqKey="Ma X">X Ma</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Wu, J" uniqKey="Wu J">J Wu</name>
</author>
<author>
<name sortKey="Wang, H" uniqKey="Wang H">H Wang</name>
</author>
<author>
<name sortKey="Zhang, P" uniqKey="Zhang P">P Zhang</name>
</author>
<author>
<name sortKey="Ma, X" uniqKey="Ma X">X Ma</name>
</author>
<author>
<name sortKey="Hu, Q" uniqKey="Hu Q">Q Hu</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Lenoir, J" uniqKey="Lenoir J">J Lenoir</name>
</author>
<author>
<name sortKey="Cotin, S" uniqKey="Cotin S">S Cotin</name>
</author>
<author>
<name sortKey="Duriez, C" uniqKey="Duriez C">C Duriez</name>
</author>
<author>
<name sortKey="Neumann, P" uniqKey="Neumann P">P Neumann</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Tang, W" uniqKey="Tang W">W Tang</name>
</author>
<author>
<name sortKey="Wan, Tr" uniqKey="Wan T">TR Wan</name>
</author>
<author>
<name sortKey="Gould, Da" uniqKey="Gould D">DA Gould</name>
</author>
<author>
<name sortKey="How, T" uniqKey="How T">T How</name>
</author>
<author>
<name sortKey="John, Nw" uniqKey="John N">NW John</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Basafa, E" uniqKey="Basafa E">E Basafa</name>
</author>
<author>
<name sortKey="Farahmand, F" uniqKey="Farahmand F">F Farahmand</name>
</author>
</analytic>
</biblStruct>
<biblStruct></biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Patete, P" uniqKey="Patete P">P Patete</name>
</author>
<author>
<name sortKey="Iacono, Mi" uniqKey="Iacono M">MI Iacono</name>
</author>
<author>
<name sortKey="Spadea, Mf" uniqKey="Spadea M">MF Spadea</name>
</author>
<author>
<name sortKey="Trecate, G" uniqKey="Trecate G">G Trecate</name>
</author>
<author>
<name sortKey="Vergnaghi, D" uniqKey="Vergnaghi D">D Vergnaghi</name>
</author>
<author>
<name sortKey="Mainardi, Lt" uniqKey="Mainardi L">LT Mainardi</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Ye, X" uniqKey="Ye X">X Ye</name>
</author>
<author>
<name sortKey="Zhu, L" uniqKey="Zhu L">L Zhu</name>
</author>
<author>
<name sortKey="Guo, S" uniqKey="Guo S">S Guo</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Dick, C" uniqKey="Dick C">C Dick</name>
</author>
<author>
<name sortKey="Georgii, J" uniqKey="Georgii J">J Georgii</name>
</author>
<author>
<name sortKey="Westermann, R" uniqKey="Westermann R">R Westermann</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Muller, M" uniqKey="Muller M">M Müller</name>
</author>
<author>
<name sortKey="Heidelberger, B" uniqKey="Heidelberger B">B Heidelberger</name>
</author>
<author>
<name sortKey="Hennix, M" uniqKey="Hennix M">M Hennix</name>
</author>
<author>
<name sortKey="Ratcliff, J" uniqKey="Ratcliff J">J Ratcliff</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Bender, J" uniqKey="Bender J">J Bender</name>
</author>
<author>
<name sortKey="Muller, M" uniqKey="Muller M">M Müller</name>
</author>
<author>
<name sortKey="Otaduy, Ma" uniqKey="Otaduy M">MA Otaduy</name>
</author>
<author>
<name sortKey="Teschner, M" uniqKey="Teschner M">M Teschner</name>
</author>
<author>
<name sortKey="Macklin, M" uniqKey="Macklin M">M Macklin</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Souza, Ms" uniqKey="Souza M">MS Souza</name>
</author>
<author>
<name sortKey="Wangenheim, A" uniqKey="Wangenheim A">A Wangenheim</name>
</author>
<author>
<name sortKey="Comunello, E" uniqKey="Comunello E">E Comunello</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Teschner, M" uniqKey="Teschner M">M Teschner</name>
</author>
<author>
<name sortKey="Hiedelberger, B" uniqKey="Hiedelberger B">B Hiedelberger</name>
</author>
<author>
<name sortKey="Muller, M" uniqKey="Muller M">M Müller</name>
</author>
<author>
<name sortKey="Pomeranets, D" uniqKey="Pomeranets D">D Pomeranets</name>
</author>
<author>
<name sortKey="Gross, M" uniqKey="Gross M">M Gross</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Si, H" uniqKey="Si H">H Si</name>
</author>
</analytic>
</biblStruct>
<biblStruct></biblStruct>
</listBibl>
</div1>
</back>
</TEI>
<pmc article-type="research-article">
<pmc-dir>properties open_access</pmc-dir>
<front>
<journal-meta>
<journal-id journal-id-type="nlm-ta">Biomed Eng Online</journal-id>
<journal-id journal-id-type="iso-abbrev">Biomed Eng Online</journal-id>
<journal-title-group>
<journal-title>BioMedical Engineering OnLine</journal-title>
</journal-title-group>
<issn pub-type="epub">1475-925X</issn>
<publisher>
<publisher-name>BioMed Central</publisher-name>
<publisher-loc>London</publisher-loc>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="pmid">27048290</article-id>
<article-id pub-id-type="pmc">4822255</article-id>
<article-id pub-id-type="publisher-id">148</article-id>
<article-id pub-id-type="doi">10.1186/s12938-016-0148-3</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Research</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>A fast and stable vascular deformation scheme for interventional surgery training system</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Ye</surname>
<given-names>Xiufen</given-names>
</name>
<address>
<email>yexiufen@hrbeu.edu.cn</email>
</address>
<xref ref-type="aff" rid="Aff1"></xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Zhang</surname>
<given-names>Jianguo</given-names>
</name>
<address>
<email>zhang.jian.guo@foxmail.com</email>
</address>
<xref ref-type="aff" rid="Aff1"></xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Li</surname>
<given-names>Peng</given-names>
</name>
<address>
<email>lipengchn@foxmail.com</email>
</address>
<xref ref-type="aff" rid="Aff1"></xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Wang</surname>
<given-names>Tian</given-names>
</name>
<address>
<email>wangtian@hrbeu.edu.cn</email>
</address>
<xref ref-type="aff" rid="Aff1"></xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Guo</surname>
<given-names>Shuxiang</given-names>
</name>
<address>
<email>guoshuxiang@hotmail.com</email>
</address>
<xref ref-type="aff" rid="Aff1"></xref>
<xref ref-type="aff" rid="Aff2"></xref>
</contrib>
<aff id="Aff1">
<label></label>
College of Automation, Harbin Engineering University, No. 145, Nantong street, Harbin, China</aff>
<aff id="Aff2">
<label></label>
Intelligent Mechanical Systems Engineering, Kagawa University, Hayashi-cho, Takamatsu, 761-0396 Japan</aff>
</contrib-group>
<pub-date pub-type="epub">
<day>6</day>
<month>4</month>
<year>2016</year>
</pub-date>
<pub-date pub-type="pmc-release">
<day>6</day>
<month>4</month>
<year>2016</year>
</pub-date>
<pub-date pub-type="collection">
<year>2016</year>
</pub-date>
<volume>15</volume>
<elocation-id>35</elocation-id>
<history>
<date date-type="received">
<day>19</day>
<month>8</month>
<year>2015</year>
</date>
<date date-type="accepted">
<day>21</day>
<month>3</month>
<year>2016</year>
</date>
</history>
<permissions>
<copyright-statement>© Ye et al. 2016</copyright-statement>
<license license-type="OpenAccess">
<license-p>
<bold>Open Access</bold>
This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (
<ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/4.0/">http://creativecommons.org/licenses/by/4.0/</ext-link>
), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made. The Creative Commons Public Domain Dedication waiver (
<ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/publicdomain/zero/1.0/">http://creativecommons.org/publicdomain/zero/1.0/</ext-link>
) applies to the data made available in this article, unless otherwise stated.</license-p>
</license>
</permissions>
<abstract id="Abs1">
<sec>
<title>Background</title>
<p>The emergence and development of robot assistant interventional vascular surgery technologies have benefited many patients with cardiovascular or cerebrovascular diseases. Due to the absence of effective training measures, these new advanced technologies have not been fully utilized and only few experienced surgeons can perform such complicated surgeries so far. In order to solve such problems, virtual reality based vascular interventional surgery training system, a promising way to train young surgeons or assist experienced surgeons to perform surgery, has been widely studied.</p>
</sec>
<sec>
<title>Methods</title>
<p>In this paper, we mainly conduct a thorough study on both reliable deformation and high real-time performance of an interactive surgery training system. An efficient hybrid geometric blood vessel model which handles the collision detection query and vascular deformation calculation separately is employed to enhance the real-time performance of our surgery training system. In addition, a position-based dynamic approach with volume conservation constraint is used to improve the vascular deformation result. Finally, a hash table based spatial adaptive acceleration algorithm which makes the training system much more efficient and reliable is described.</p>
</sec>
<sec>
<title>Results</title>
<p>Several necessary experiments are conducted to validate the vascular deformation scheme presented in this paper. From the results we can see that the position-based dynamic modeling method with volume conservation constraint can prevent the vascular deformation from the issue of penetration. In addition, the deformation calculation with spatial acceleration algorithm has enhanced the real-time performance significantly.</p>
</sec>
<sec>
<title>Conclusion</title>
<p>The corresponding experimental results indicate that both the hybrid geometric blood vessel model and the hash table based spatial adaptive acceleration algorithm can enhance the performance of our surgery training system greatly without losing the deformation accuracy.</p>
</sec>
</abstract>
<kwd-group xml:lang="en">
<title>Keywords</title>
<kwd>Vascular interventional surgery</kwd>
<kwd>Surgery training</kwd>
<kwd>Position-based dynamic</kwd>
<kwd>Volume conservation</kwd>
<kwd>Spatial acceleration</kwd>
</kwd-group>
<funding-group>
<award-group>
<funding-source>
<institution>Natural Science Foundation of Heilongjiang Province of China</institution>
</funding-source>
<award-id>F201416</award-id>
<principal-award-recipient>
<name>
<surname>Ye</surname>
<given-names>Xiufen</given-names>
</name>
</principal-award-recipient>
</award-group>
<award-group>
<funding-source>
<institution>National High-tech R&D Program of China</institution>
</funding-source>
<award-id>2015AA0401</award-id>
<principal-award-recipient>
<name>
<surname>Ye</surname>
<given-names>Xiufen</given-names>
</name>
</principal-award-recipient>
</award-group>
</funding-group>
<custom-meta-group>
<custom-meta>
<meta-name>issue-copyright-statement</meta-name>
<meta-value>© The Author(s) 2016</meta-value>
</custom-meta>
</custom-meta-group>
</article-meta>
</front>
<body>
<sec id="Sec1">
<title>Background</title>
<p>In vascular interventional surgery especially in current advanced master–slave based vascular interventional surgery, surgeons are required extremely strict professional skills. Only few experienced surgeons can perform such complicated surgery by now mainly due to the difficulty to learn and master the skill as well as the existed gap between engineering development and medical training. Virtual reality based surgery training system is regarded as a promising way to overcome these problems [
<xref ref-type="bibr" rid="CR1">1</xref>
<xref ref-type="bibr" rid="CR3">3</xref>
]. As shown in Fig.
<xref rid="Fig1" ref-type="fig">1</xref>
, a master–slave based robot assistant vascular interventional surgery system usually contains a master system controlled by a surgeon directly, a corresponding slave system and a virtual reality based surgery training system. With years of development, the technique of robotic assistant vascular interventional surgery system has made a great progress, while the relevant surgery training system seems a little incompetent. There are lots of issues that have to be solved or balanced in developing an interactive surgery training system in real-time [
<xref ref-type="bibr" rid="CR4">4</xref>
]. For instance, accurate vascular deformation result can be obtained only with a more accurate biomechanics modeling approach which may reduce the real-time performance of the training system. High refresh rate of haptic feedback device, network transmission with minimum time-delay and data loss are also required to guarantee a consecutive and stable force feedback.
<fig id="Fig1">
<label>Fig. 1</label>
<caption>
<p>Illustration of a master–slave based robotic assistant vascular interventional surgery system</p>
</caption>
<graphic xlink:href="12938_2016_148_Fig1_HTML" id="MO1"></graphic>
</fig>
</p>
<p>There are already several academic or commercial vascular interventional assistant surgery robotic prototypes which have been promoting the development of the minimally invasive surgery. Guo and Guo proposed a novel master–slave based robotic catheter operating system with visual and force feedback [
<xref ref-type="bibr" rid="CR2">2</xref>
], but a corresponding surgery training system is urgent to be studied. Wang et al. also designed a master–slave based vascular interventional surgery with an image navigation system, and validated their robotic system with transparent glass vascular model and animal experiments [
<xref ref-type="bibr" rid="CR5">5</xref>
,
<xref ref-type="bibr" rid="CR6">6</xref>
]. Meng et al. addressed several key technologies of image guided system, like distortion correction, catheter localization and clinical simulation [
<xref ref-type="bibr" rid="CR7">7</xref>
]. Since a vascular surgery training system can be used for training and assisting a surgeon to perform interventional surgery and so on, lots of researchers have shown their great interests in developing surgery training system. Zhang et al. used a mass-spring model to simulate vascular deformation [
<xref ref-type="bibr" rid="CR8">8</xref>
], whose spring coefficient is driven from a reference model, and used more accurate finite element method to validate the simulation results. However, the collision detection and its response performance are not given. Wu et al. used flexible elastic rods to model the guidewire in interventional radiology with different resolutions, which are adaptive to the curvature of the vessel dynamically [
<xref ref-type="bibr" rid="CR9">9</xref>
], moreover, they also proposed a force correction strategy to decrease the overhead of collision detection and thus improve the computation efficiency significantly [
<xref ref-type="bibr" rid="CR10">10</xref>
]. Lenoir et al. used an incremental linear finite element model to approximate the geometric non-linearity of large bending deformation of the catheter. In addition, a substructure analysis is used for improving the computational efficiency [
<xref ref-type="bibr" rid="CR11">11</xref>
]. Tang et al. presented a real-time physically based model to simulate catheter insertions, and non-linear elastic cosserat rods is used to simulate the long, slender body of the catheter shaft [
<xref ref-type="bibr" rid="CR12">12</xref>
].</p>
<p>In the field of mechanics, many feasible modeling approaches are available for deformable simulation and mainly range from simple and fast mass-spring system (MSS) to complicated but accurate finite element method (FEM). The early MSSs are widely used due to its efficiency and simplicity, and some improvements are well studied to make them more suitable for medical simulation with complicated biomechanics properties in real-time [
<xref ref-type="bibr" rid="CR13">13</xref>
<xref ref-type="bibr" rid="CR16">16</xref>
]. Continuous mechanics based FEMs are much more accurate than MSSs but accompanied with huge computation overhead and not suitable for a real-time interactive surgery training system. Some efficient measures are taken to accelerate the computation, like pre-computation, linear approximation, and GPUs acceleration so as to simulate the deformation with haptic feedback in real-time properly [
<xref ref-type="bibr" rid="CR17">17</xref>
]. Physics modeling method used in our surgery training system is a position-based dynamic approach, proposed by Müller et al. [
<xref ref-type="bibr" rid="CR18">18</xref>
,
<xref ref-type="bibr" rid="CR19">19</xref>
]. Position-based method is well established and used widely, even in famous physics dynamic libraries like PhysX and Bullet. The main advantages of this approach are its controllability, and the problem of overshooting in force based explicit integration systems can be avoided. All these advanced properties make the approach standout when comparing with above mentioned MSS and FEM in developing a real-time interactive surgery training system. Moreover, position-based dynamic approach is geometry motivated and unconditional stable even with large time step so that this method can guarantee the stability of the surgery training system better than using MSSs which may become unstable when facing large time and the parameters in a mass-spring system are much more arbitrary. General position-based method is often used in computer animation and mainly handles with triangular meshes, while the basic element is tetrahedron in our blood vessel geometric model. Therefore, an extra volume conservation constraint need to be considered in our implementation to guarantee the deformation accuracy.</p>
<p>This paper contributes to a master–slave based vascular interventional surgery training system mainly in three aspects. First, a hybrid blood vessel model was designed to process collision detection and deformation calculation separately to improve the real-time performance of our surgery training system. Second, volume conservation constraint of a tetrahedral element was deduced and then used to solve the problem of tetrahedral elements overlapping which improves the vascular deformation result. Lastly, spatial acceleration algorithm is employed to enhance the real-time performance of our interactive training system.</p>
<p>The remainder of the paper is organized as follows. In "
<xref rid="Sec2" ref-type="sec">Methods</xref>
" section, we introduce the hybrid geometric blood vessel modeling approach and the volume conservation constraint of a tetrahedral element, and then a hash table based spatial acceleration algorithm is depicted. Simulation results are given in "
<xref rid="Sec4" ref-type="sec">Conclusion</xref>
" section, and finally we discuss our approaches and future work planning systematically.</p>
</sec>
<sec id="Sec2">
<title>Methods</title>
<sec id="Sec3">
<title>Vascular deformation modeling scheme</title>
<p>Efficient vascular deformation modeling scheme plays an important role in virtual reality based vascular interventional surgery training system since it determines the visual deformation result and real-time performance directly. In this section, we first discuss a hybrid geometric blood vessel model which processes collision detection and deformation calculation separately, and then introduce a position-based vascular deformation method with volume conservation.</p>
<sec id="Sec4">
<title>Hybrid geometric blood vessel model</title>
<p>A hybrid geometric blood vessel model which consists of a relative simplified triangular mesh and a complicated tetrahedral mesh is employed in this paper to improve the efficiency of collision detection between catheter and vascular wall. Figure
<xref rid="Fig2" ref-type="fig">2</xref>
a depicts the conceptual diagram of the proposed hybrid blood vessel model where the tetrahedral mesh represents vascular wall with specific thickness inspired by the vascular anatomy model, as shown in Fig.
<xref rid="Fig2" ref-type="fig">2</xref>
b. The red tetrahedral mesh is mainly used for accurate deformation calculation, while the green triangular mesh represents the ghost surface (never rendering) that tightly attached to the inner vascular wall. This triangular mesh is mainly designed for collision detection between the catheter and the blood vessel and further preventing the catheter from penetrating the blood vessel. Compared with previous related work [
<xref ref-type="bibr" rid="CR9">9</xref>
], employing position-based dynamics technique with volume conservation and hash table based spatial acceleration scheme for real-time vessel deformation simulation is our main concern in this paper. Therefore, we simply model the catheter with tetrahedral mesh (yellow cylinder) mainly for further efficient collision detection and convenient experimental results validation.
<fig id="Fig2">
<label>Fig. 2</label>
<caption>
<p>Hybrid geometric blood vessel model and its reference.
<bold>a</bold>
The hybrid geometric model with
<italic>tetrahedral</italic>
and
<italic>triangular mesh</italic>
, and
<bold>b</bold>
A real vascular anatomy model (from
<ext-link ext-link-type="uri" xlink:href="http://www.adam.com">http://www.adam.com</ext-link>
) which provides a reference for our hybrid geometric model</p>
</caption>
<graphic xlink:href="12938_2016_148_Fig2_HTML" id="MO2"></graphic>
</fig>
</p>
<p>The motion states of a flexible catheter and its contact information with vascular wall are also important in this paper. In our implementation, the catheter is also modeled with tetrahedral mesh and its tip has four degrees of freedom (DOF) just as a real catheter, including three degrees of freedom in rotation (i.e. rotation around x, y and z axis) and one translation along the catheter axis direction. The rest parts are controlled by elastic potential energy produced by the collision response (collision between the catheter and the ghost triangular mesh). In this way, a catheter can move freely in the blood vessel with continuous transmission commands governed by an experienced surgeon.</p>
</sec>
<sec id="Sec5">
<title>Position-based vascular deformation with volume conservation</title>
<p>Compared with the widely-used mass-spring system, position-based dynamic approach is unconditional stable even solved with a large time step. The original studies are mainly used to model the deformation of triangular mesh like cloth simulation [
<xref ref-type="bibr" rid="CR19">19</xref>
,
<xref ref-type="bibr" rid="CR20">20</xref>
]. Cloth can be constructed with a large amount of triangles easily and its constraints mainly consist of stretching and bending constraints. As we mentioned above, the elements in our deformation calculation are tetrahedrons rather than triangles so that volume conservation constraint should be also taken into account as well as stretching and bending constraints to prevent the vascular wall from the issue of penetration and makes the deformation much more realistic. However, the volume conservation constraint is just mentioned briefly without detailed derivation in the original study [
<xref ref-type="bibr" rid="CR18">18</xref>
]. To implement the position-based vascular deformation with volume conservation, a detailed derivation of the constraint should be given firstly. Let
<italic>p</italic>
be the vertices concatenation
<inline-formula id="IEq1">
<alternatives>
<tex-math id="M1">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$${\bigl [p_1^T, p_2^T, p_3^T, p_4^T\bigr ]}^{T}$$\end{document}</tex-math>
<mml:math id="M2">
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo maxsize="1.2em" minsize="1.2em" stretchy="true">[</mml:mo>
</mml:mrow>
<mml:msubsup>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
<mml:mi>T</mml:mi>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi>p</mml:mi>
<mml:mn>2</mml:mn>
<mml:mi>T</mml:mi>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi>p</mml:mi>
<mml:mn>3</mml:mn>
<mml:mi>T</mml:mi>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi>p</mml:mi>
<mml:mn>4</mml:mn>
<mml:mi>T</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mo maxsize="1.2em" minsize="1.2em" stretchy="true">]</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:math>
<inline-graphic xlink:href="12938_2016_148_Article_IEq1.gif"></inline-graphic>
</alternatives>
</inline-formula>
of a tetrahedron. Given a vertex
<inline-formula id="IEq2">
<alternatives>
<tex-math id="M3">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$p_i$$\end{document}</tex-math>
<mml:math id="M4">
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:math>
<inline-graphic xlink:href="12938_2016_148_Article_IEq2.gif"></inline-graphic>
</alternatives>
</inline-formula>
with mass
<inline-formula id="IEq3">
<alternatives>
<tex-math id="M5">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$m_i$$\end{document}</tex-math>
<mml:math id="M6">
<mml:msub>
<mml:mi>m</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:math>
<inline-graphic xlink:href="12938_2016_148_Article_IEq3.gif"></inline-graphic>
</alternatives>
</inline-formula>
, where
<inline-formula id="IEq4">
<alternatives>
<tex-math id="M7">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$i \in (1,2,3,4)$$\end{document}</tex-math>
<mml:math id="M8">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo></mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
<inline-graphic xlink:href="12938_2016_148_Article_IEq4.gif"></inline-graphic>
</alternatives>
</inline-formula>
is the index number of a vertex, as well as
<italic>j</italic>
in the following equation. Then, the displacement of the vertex
<inline-formula id="IEq5">
<alternatives>
<tex-math id="M9">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$p_i$$\end{document}</tex-math>
<mml:math id="M10">
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:math>
<inline-graphic xlink:href="12938_2016_148_Article_IEq5.gif"></inline-graphic>
</alternatives>
</inline-formula>
by projection can be represented as
<disp-formula id="Equ1">
<label>1</label>
<alternatives>
<tex-math id="M11">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \Delta p_i =-\frac{C(p)}{\sum _{j=1}^4 w_j {|\nabla _{p_j} C(p)|}^{2}} w_i \nabla _{p_i} C(p) \end{aligned}$$\end{document}</tex-math>
<mml:math id="M12" display="block">
<mml:mrow>
<mml:mtable columnspacing="0.5ex">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>-</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>p</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mo></mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mn>4</mml:mn>
</mml:msubsup>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
</mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal"></mml:mi>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>p</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mfrac>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="normal"></mml:mi>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>p</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<graphic xlink:href="12938_2016_148_Article_Equ1.gif" position="anchor"></graphic>
</alternatives>
</disp-formula>
where
<inline-formula id="IEq6">
<alternatives>
<tex-math id="M13">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$w_i=1 / m_i$$\end{document}</tex-math>
<mml:math id="M14">
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">/</mml:mo>
<mml:msub>
<mml:mi>m</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
<inline-graphic xlink:href="12938_2016_148_Article_IEq6.gif"></inline-graphic>
</alternatives>
</inline-formula>
,
<italic>C</italic>
(
<italic>p</italic>
) and
<inline-formula id="IEq7">
<alternatives>
<tex-math id="M15">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\nabla _p C(p)$$\end{document}</tex-math>
<mml:math id="M16">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal"></mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>p</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
<inline-graphic xlink:href="12938_2016_148_Article_IEq7.gif"></inline-graphic>
</alternatives>
</inline-formula>
mean the constraint function and its gradient respectively. According to the reference [
<xref ref-type="bibr" rid="CR19">19</xref>
], the volume conservation constraint of a single tetrahedron with rest volume
<inline-formula id="IEq8">
<alternatives>
<tex-math id="M17">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$V_0$$\end{document}</tex-math>
<mml:math id="M18">
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:math>
<inline-graphic xlink:href="12938_2016_148_Article_IEq8.gif"></inline-graphic>
</alternatives>
</inline-formula>
can be described as
<disp-formula id="Equ2">
<label>2</label>
<alternatives>
<tex-math id="M19">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} C(p_1, p_2, p_3, p_4)=\frac{1}{6}\left( (p_2 - p_1) \times (p_3 - p_1)\right) \cdot (p_4 - p_1)- V_0 \end{aligned}$$\end{document}</tex-math>
<mml:math id="M20" display="block">
<mml:mrow>
<mml:mtable columnspacing="0.5ex">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>6</mml:mn>
</mml:mfrac>
<mml:mfenced close=")" open="(" separators="">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>×</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mfenced>
<mml:mo>·</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<graphic xlink:href="12938_2016_148_Article_Equ2.gif" position="anchor"></graphic>
</alternatives>
</disp-formula>
And our ultimate goal is to deduce every unknown factor in Eq. (
<xref rid="Equ1" ref-type="">1</xref>
). The volume of a tetrahedron can be calculated with
<disp-formula id="Equ3">
<label>3</label>
<alternatives>
<tex-math id="M21">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} V(p_1, p_2, p_3, p_4)&= \frac{1}{6}\left( (p_2 - p_1) \times (p_3 - p_1)\right) \cdot (p_4 - p_1) \nonumber \\&= \frac{1}{6}\left( (p_2 \times p_3 - p_2 \times p_1 - p_1 \times p_3 + p_1 \times p_1)\right) \cdot (p_4 - p_1) \nonumber \\&= \frac{1}{6}\left( (p_2 \times p_3)\cdot p_4 - (p_2 \times p_1)\cdot p_4 - (p_1 \times p_3)\cdot p_4- (p_2 \times p_3)\cdot p_1\right) \end{aligned}$$\end{document}</tex-math>
<mml:math id="M22" display="block">
<mml:mrow>
<mml:mtable columnspacing="0.5ex">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>6</mml:mn>
</mml:mfrac>
<mml:mfenced close=")" open="(" separators="">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>×</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mfenced>
<mml:mo>·</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow></mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>6</mml:mn>
</mml:mfrac>
<mml:mfenced close=")" open="(" separators="">
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>×</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>×</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>×</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>×</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mfenced>
<mml:mo>·</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow></mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>6</mml:mn>
</mml:mfrac>
<mml:mfenced close=")" open="(" separators="">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>×</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>×</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>×</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>×</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mfenced>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<graphic xlink:href="12938_2016_148_Article_Equ3.gif" position="anchor"></graphic>
</alternatives>
</disp-formula>
According to Eq. (
<xref rid="Equ1" ref-type="">1</xref>
), we have to calculate
<inline-formula id="IEq9">
<alternatives>
<tex-math id="M23">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\nabla _{p_1}V,\nabla _{p_2}V,\nabla _{p_3}V$$\end{document}</tex-math>
<mml:math id="M24">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal"></mml:mi>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:msub>
<mml:mi>V</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="normal"></mml:mi>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:msub>
<mml:mi>V</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="normal"></mml:mi>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:msub>
<mml:mi>V</mml:mi>
</mml:mrow>
</mml:math>
<inline-graphic xlink:href="12938_2016_148_Article_IEq9.gif"></inline-graphic>
</alternatives>
</inline-formula>
and
<inline-formula id="IEq10">
<alternatives>
<tex-math id="M25">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\nabla _{p_4}V$$\end{document}</tex-math>
<mml:math id="M26">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal"></mml:mi>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
</mml:msub>
<mml:mi>V</mml:mi>
</mml:mrow>
</mml:math>
<inline-graphic xlink:href="12938_2016_148_Article_IEq10.gif"></inline-graphic>
</alternatives>
</inline-formula>
respectively. In order to make the derivation clearly, the basic gradient principles of a combination of cross and dot product can be represented as follows, where
<inline-formula id="IEq11">
<alternatives>
<tex-math id="M27">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$a,b,c \in R^3$$\end{document}</tex-math>
<mml:math id="M28">
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>b</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>c</mml:mi>
<mml:mo></mml:mo>
<mml:msup>
<mml:mi>R</mml:mi>
<mml:mn>3</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
<inline-graphic xlink:href="12938_2016_148_Article_IEq11.gif"></inline-graphic>
</alternatives>
</inline-formula>
<disp-formula id="Equ4">
<label>4</label>
<alternatives>
<tex-math id="M29">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \nabla _c(a \times b)\cdot c=\, & {} \nabla _c\left( (a_2b_3-a_3b_2)c_1 + (a_3b_1-a_1b_3)c_2 +(a_1b_2-a_2b_1)c_3\right) \nonumber \\=\, & {} a \times b,\end{aligned}$$\end{document}</tex-math>
<mml:math id="M30" display="block">
<mml:mrow>
<mml:mtable columnspacing="0.5ex">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal"></mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>a</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi>b</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>·</mml:mo>
<mml:mi>c</mml:mi>
<mml:mo>=</mml:mo>
<mml:mspace width="0.166667em"></mml:mspace>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mrow></mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal"></mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mfenced close=")" open="(" separators="">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:mfenced>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow>
<mml:mrow></mml:mrow>
<mml:mo>=</mml:mo>
<mml:mspace width="0.166667em"></mml:mspace>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mrow></mml:mrow>
<mml:mi>a</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi>b</mml:mi>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<graphic xlink:href="12938_2016_148_Article_Equ4.gif" position="anchor"></graphic>
</alternatives>
</disp-formula>
<disp-formula id="Equ5">
<label>5</label>
<alternatives>
<tex-math id="M31">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \nabla _c(a \times c)\cdot b=\, & {} \nabla _c\left( (a_2c_3-a_3c_2)b_1 + (a_3c_1-a_1c_3)b_2 +(a_1c_2-a_2c_1)b_3\right) \nonumber \\=\, & {} b \times a,\end{aligned}$$\end{document}</tex-math>
<mml:math id="M32" display="block">
<mml:mrow>
<mml:mtable columnspacing="0.5ex">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal"></mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>a</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi>c</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>·</mml:mo>
<mml:mi>b</mml:mi>
<mml:mo>=</mml:mo>
<mml:mspace width="0.166667em"></mml:mspace>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mrow></mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal"></mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mfenced close=")" open="(" separators="">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:mfenced>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow>
<mml:mrow></mml:mrow>
<mml:mo>=</mml:mo>
<mml:mspace width="0.166667em"></mml:mspace>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mrow></mml:mrow>
<mml:mi>b</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi>a</mml:mi>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<graphic xlink:href="12938_2016_148_Article_Equ5.gif" position="anchor"></graphic>
</alternatives>
</disp-formula>
<disp-formula id="Equ6">
<label>6</label>
<alternatives>
<tex-math id="M33">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \nabla _c(c \times a)\cdot b=\, & {} \nabla _c\left( (c_2a_3-c_3a_2)b_1 + (c_3a_1-c_1a_3)b_2 +(c_1a_2-c_2a_1)b_3\right) \nonumber \\=\, & {} a \times b. \end{aligned}$$\end{document}</tex-math>
<mml:math id="M34" display="block">
<mml:mrow>
<mml:mtable columnspacing="0.5ex">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal"></mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>c</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi>a</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>·</mml:mo>
<mml:mi>b</mml:mi>
<mml:mo>=</mml:mo>
<mml:mspace width="0.166667em"></mml:mspace>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mrow></mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal"></mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mfenced close=")" open="(" separators="">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:mfenced>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow>
<mml:mrow></mml:mrow>
<mml:mo>=</mml:mo>
<mml:mspace width="0.166667em"></mml:mspace>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mrow></mml:mrow>
<mml:mi>a</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi>b</mml:mi>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<graphic xlink:href="12938_2016_148_Article_Equ6.gif" position="anchor"></graphic>
</alternatives>
</disp-formula>
With the principles (
<xref rid="Equ4" ref-type="">4</xref>
)–(
<xref rid="Equ6" ref-type="">6</xref>
), we can deduce the corresponding gradient of Eq. (
<xref rid="Equ3" ref-type="">3</xref>
) easily
<disp-formula id="Equ7">
<label>7</label>
<alternatives>
<tex-math id="M35">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \nabla _{p_1}V=\, & {} \frac{1}{6}(p_2 \times p_4 - p_3 \times p_4 - p_2 \times p_3) \nonumber \\=\, & {} \frac{1}{6}(p_2 \times p_4 - p_3 \times p_4 - p_2 \times p_3 - p_2 \times p_2) \nonumber \\=\, & {} \frac{1}{6}((p_4 - p_2)\times (p_3 - p_2)) \end{aligned}$$\end{document}</tex-math>
<mml:math id="M36" display="block">
<mml:mrow>
<mml:mtable columnspacing="0.5ex">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal"></mml:mi>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:msub>
<mml:mi>V</mml:mi>
<mml:mo>=</mml:mo>
<mml:mspace width="0.166667em"></mml:mspace>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mrow></mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>6</mml:mn>
</mml:mfrac>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>×</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>×</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>×</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow>
<mml:mrow></mml:mrow>
<mml:mo>=</mml:mo>
<mml:mspace width="0.166667em"></mml:mspace>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mrow></mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>6</mml:mn>
</mml:mfrac>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>×</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>×</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>×</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>×</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow>
<mml:mrow></mml:mrow>
<mml:mo>=</mml:mo>
<mml:mspace width="0.166667em"></mml:mspace>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mrow></mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>6</mml:mn>
</mml:mfrac>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>×</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<graphic xlink:href="12938_2016_148_Article_Equ7.gif" position="anchor"></graphic>
</alternatives>
</disp-formula>
Similarly, the gradient of other corners can be obtained
<disp-formula id="Equ14">
<alternatives>
<tex-math id="M37">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \nabla _{p_2}V=\, & {} \frac{1}{6}\left( (p_3-p_1)\times (p_4-p_1)\right) \\ \nabla _{p_3}V=\, & {} \frac{1}{6}\left( (p_4-p_1)\times (p_2-p_1)\right) \\ \nabla _{p_4}V=\, & {} \frac{1}{6}\left( (p_2-p_1)\times (p_3-p_1)\right) \end{aligned}$$\end{document}</tex-math>
<mml:math id="M38" display="block">
<mml:mrow>
<mml:mtable columnspacing="0.5ex">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal"></mml:mi>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:msub>
<mml:mi>V</mml:mi>
<mml:mo>=</mml:mo>
<mml:mspace width="0.166667em"></mml:mspace>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mrow></mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>6</mml:mn>
</mml:mfrac>
<mml:mfenced close=")" open="(" separators="">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>×</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow>
<mml:mrow></mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal"></mml:mi>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:msub>
<mml:mi>V</mml:mi>
<mml:mo>=</mml:mo>
<mml:mspace width="0.166667em"></mml:mspace>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mrow></mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>6</mml:mn>
</mml:mfrac>
<mml:mfenced close=")" open="(" separators="">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>×</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow>
<mml:mrow></mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal"></mml:mi>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
</mml:msub>
<mml:mi>V</mml:mi>
<mml:mo>=</mml:mo>
<mml:mspace width="0.166667em"></mml:mspace>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mrow></mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>6</mml:mn>
</mml:mfrac>
<mml:mfenced close=")" open="(" separators="">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>×</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<graphic xlink:href="12938_2016_148_Article_Equ14.gif" position="anchor"></graphic>
</alternatives>
</disp-formula>
Then according to the above equations and Eqs. (
<xref rid="Equ4" ref-type="">4</xref>
)–(
<xref rid="Equ7" ref-type="">7</xref>
), the denominator in Eq. (
<xref rid="Equ1" ref-type="">1</xref>
) can be represented as
<disp-formula id="Equ8">
<label>8</label>
<alternatives>
<tex-math id="M39">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \sum ^4_{j=1}w_j|\nabla p_j C(p)|^2 &= w_1\left| \frac{1}{6}(p_4-p_2)\times (p_3 -p_2)\right| ^2 + w_2\left| \frac{1}{6}(p_3-p_1)\times (p_4 -p_1)\right| ^2 \nonumber \\&\quad + w_3\left| \frac{1}{6}(p_4-p_1)\times (p_2 -p_1)\right| ^2 + w_4\left| \frac{1}{6}(p_2-p_1)\times (p_3 -p_1)\right| ^2 \end{aligned}$$\end{document}</tex-math>
<mml:math id="M40" display="block">
<mml:mrow>
<mml:mtable columnspacing="0.5ex">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow>
<mml:munderover>
<mml:mo></mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mn>4</mml:mn>
</mml:munderover>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="normal"></mml:mi>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>p</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msup>
<mml:mfenced close="|" open="|" separators="">
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>6</mml:mn>
</mml:mfrac>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>×</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mfenced>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:msup>
<mml:mfenced close="|" open="|" separators="">
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>6</mml:mn>
</mml:mfrac>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>×</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mfenced>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow></mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mspace width="1em"></mml:mspace>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:msup>
<mml:mfenced close="|" open="|" separators="">
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>6</mml:mn>
</mml:mfrac>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>×</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mfenced>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
<mml:msup>
<mml:mfenced close="|" open="|" separators="">
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mn>6</mml:mn>
</mml:mfrac>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>×</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mfenced>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<graphic xlink:href="12938_2016_148_Article_Equ8.gif" position="anchor"></graphic>
</alternatives>
</disp-formula>
Now we have all the necessary factors in Eq. (
<xref rid="Equ1" ref-type="">1</xref>
), which also means the desired volume conservation constraint function is achieved. With the volume conservation constraint mentioned above, realistic deformation result of a surgery training system can be improved greatly and our detailed experimental results will be given in the section of results and discussion.</p>
</sec>
</sec>
<sec id="Sec6">
<title>Hash table based spatial acceleration</title>
<p>The blood vessel model in a surgery training system usually has a large amount of tetrahedral elements, which make the vascular deformation calculation with volume conservation constraint much more time-consuming and may further limit the real-time performance of the system seriously. To guarantee a high real-time performance without losing deformation accuracy, several advanced algorithms and efficient data structures can be used. Inspired by the previous related work [
<xref ref-type="bibr" rid="CR21">21</xref>
], a hash table based spatial acceleration algorithm is employed in our study to reduce computation overhead so as to significantly improve the real-time performance of our surgery training system. However, the original approach is used to process rapid collision detection between soft bodies, while in this paper we mainly use the hash value to quickly determine the vascular deformation region and then perform partial calculation which can improve real-time performance greatly.
<fig id="Fig3">
<label>Fig. 3</label>
<caption>
<p>Illustration of the spatial acceleration approach. The bounding box
<italic>filled</italic>
with
<italic>light blue color</italic>
describes the active computation unit</p>
</caption>
<graphic xlink:href="12938_2016_148_Fig3_HTML" id="MO12"></graphic>
</fig>
</p>
<p>Calculating vascular deformation partially is the core idea of the spatial acceleration approach. Figure
<xref rid="Fig3" ref-type="fig">3</xref>
depicts the spatial acceleration approach with a small piece of blood vessel model, in which the wireframe and the filled box represent the inactive and active bounding boxes respectively. In the initialization stage, all tetrahedral elements of a blood vessel model are first classified into several adjacent child bounding boxes whose states are inactive by default and each accompanies with a unique hash value. The hash value is extremely important since it determines which bounding box encloses the catheter tip. As we mentioned above, a catheter can move freely in the blood vessel under the control of a skilled surgeon, thus a hash value of the catheter tip need to be calculated in every time-step. A bounding box will be activated when its hash value matches the hash value of the catheter tip, namely the active bounding box encloses the catheter tip. And further, all tetrahedral elements in the active bounding box are also active and will be used for deformation calculation, which means that an active bounding box is a basic calculation unit in our implementation.</p>
<p>During the simulation, some particles are fixed to prevent the blood vessel from falling under the gravity and moving freely under the pulled force. In our study, the particles which are too close to the top or bottom of the active bounding box are fixed. However, the catheter moves from one bounding box to another dynamically and when the catheter tip just enters a new bounding box with small displacement, the vascular deformation can hardly occur because of the fixed particles. To address this issue and guarantee more smooth transition when the catheter tip moves from one bounding box to another, we expanded the child bounding box a little bigger than the regular one when classifying the tetrahedral elements into a specific child bounding box. As a result, a tetrahedral element may be existed in several adjacent bounding boxes at the same time because of the shared space. The larger the shared space is, the smoother the transition results can be obtained while the more computation overhead is required. The detailed hash table based spatial acceleration approach will be discussed below.</p>
<p>The entire simulation domain is enclosed by an axis-aligned bounding box (AABB) with
<inline-formula id="IEq12">
<alternatives>
<tex-math id="M41">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$g^{max}$$\end{document}</tex-math>
<mml:math id="M42">
<mml:msup>
<mml:mi>g</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msup>
</mml:math>
<inline-graphic xlink:href="12938_2016_148_Article_IEq12.gif"></inline-graphic>
</alternatives>
</inline-formula>
and
<inline-formula id="IEq13">
<alternatives>
<tex-math id="M43">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$g^{min}$$\end{document}</tex-math>
<mml:math id="M44">
<mml:msup>
<mml:mi>g</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msup>
</mml:math>
<inline-graphic xlink:href="12938_2016_148_Article_IEq13.gif"></inline-graphic>
</alternatives>
</inline-formula>
denoting its corresponding minimum and maximum coordinates, then the entire bounding box should be partitioned into several regular child bounding boxes with size
<italic>d</italic>
. Each bounding box accompanies with a hash value which stored in an array, the length of the array is
<inline-formula id="IEq14">
<alternatives>
<tex-math id="M45">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$N_{array} = N_x \cdot N_y \cdot N_z$$\end{document}</tex-math>
<mml:math id="M46">
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
<inline-graphic xlink:href="12938_2016_148_Article_IEq14.gif"></inline-graphic>
</alternatives>
</inline-formula>
, and
<disp-formula id="Equ9">
<label>9</label>
<alternatives>
<tex-math id="M47">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} (N_x, N_y, N_z) = \biggl (\biggl \lceil \frac{g^{max}_x-g^{min}_x}{d} \biggr \rceil , \biggl \lceil \frac{g^{max}_y-g^{min}_y}{d} \biggr \rceil , \biggl \lceil \frac{g^{max}_z-g^{min}_z}{d} \biggr \rceil \biggr ) \end{aligned}$$\end{document}</tex-math>
<mml:math id="M48" display="block">
<mml:mrow>
<mml:mtable columnspacing="0.5ex">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo maxsize="2.047em" minsize="2.047em" stretchy="true">(</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo maxsize="2.047em" minsize="2.047em" stretchy="true"></mml:mo>
</mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mi>g</mml:mi>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>-</mml:mo>
<mml:msubsup>
<mml:mi>g</mml:mi>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mi>d</mml:mi>
</mml:mfrac>
<mml:mrow>
<mml:mo maxsize="2.047em" minsize="2.047em" stretchy="true"></mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mo maxsize="2.047em" minsize="2.047em" stretchy="true"></mml:mo>
</mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mi>g</mml:mi>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>-</mml:mo>
<mml:msubsup>
<mml:mi>g</mml:mi>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mi>d</mml:mi>
</mml:mfrac>
<mml:mrow>
<mml:mo maxsize="2.047em" minsize="2.047em" stretchy="true"></mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mo maxsize="2.047em" minsize="2.047em" stretchy="true"></mml:mo>
</mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mi>g</mml:mi>
<mml:mi>z</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>-</mml:mo>
<mml:msubsup>
<mml:mi>g</mml:mi>
<mml:mi>z</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mi>d</mml:mi>
</mml:mfrac>
<mml:mrow>
<mml:mo maxsize="2.047em" minsize="2.047em" stretchy="true"></mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo maxsize="2.047em" minsize="2.047em" stretchy="true">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<graphic xlink:href="12938_2016_148_Article_Equ9.gif" position="anchor"></graphic>
</alternatives>
</disp-formula>
where
<inline-formula id="IEq15">
<alternatives>
<tex-math id="M49">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$N_x, N_y$$\end{document}</tex-math>
<mml:math id="M50">
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
<inline-graphic xlink:href="12938_2016_148_Article_IEq15.gif"></inline-graphic>
</alternatives>
</inline-formula>
and
<inline-formula id="IEq16">
<alternatives>
<tex-math id="M51">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$N_z$$\end{document}</tex-math>
<mml:math id="M52">
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:math>
<inline-graphic xlink:href="12938_2016_148_Article_IEq16.gif"></inline-graphic>
</alternatives>
</inline-formula>
denote the number of bounding boxes in the three perpendicular axes respectively. Once given a specific bounding box with three axis-based indices (
<italic>i</italic>
<italic>j</italic>
<italic>k</italic>
), we can use the following function
<italic>T</italic>
(
<italic>i</italic>
<italic>j</italic>
<italic>k</italic>
) to uniquely map the three-dimensional bounding box into an element of the continuous one-dimensional array.
<disp-formula id="Equ10">
<label>10</label>
<alternatives>
<tex-math id="M53">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} T(i,j,k) = i + j\times N_x + k\times N_x \cdot N_y, (0,0,0) \le (i,j,k) \le (N_x,N_y,N_z) \end{aligned}$$\end{document}</tex-math>
<mml:math id="M54" display="block">
<mml:mrow>
<mml:mtable columnspacing="0.5ex">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>×</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>×</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo></mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo></mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<graphic xlink:href="12938_2016_148_Article_Equ10.gif" position="anchor"></graphic>
</alternatives>
</disp-formula>
In function
<italic>T</italic>
(
<italic>i</italic>
<italic>j</italic>
<italic>k</italic>
), a triple loop is used to map the bounding box into the array one by one continuously without overlapping. And the regular child bounding box can be calculated with
<disp-formula id="Equ11">
<label>11</label>
<alternatives>
<tex-math id="M55">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} \left\{ \begin{array}{lll} e^{min}(i,j,k) &{}=&{} g^{min}+d\times (i,j,k) \\ e^{max}(i,j,k) &{}=&{} e^{min}(i,j,k)+(d,d,d) \end{array} \right. \end{aligned}$$\end{document}</tex-math>
<mml:math id="M56" display="block">
<mml:mrow>
<mml:mtable columnspacing="0.5ex">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mfenced close="" open="{" separators="">
<mml:mrow>
<mml:mtable columnspacing="0.5ex">
<mml:mtr>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msup>
<mml:mi>e</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mrow></mml:mrow>
<mml:mo>=</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mrow></mml:mrow>
<mml:msup>
<mml:mi>g</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mi>d</mml:mi>
<mml:mo>×</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mrow></mml:mrow>
<mml:msup>
<mml:mi>e</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mrow></mml:mrow>
<mml:mo>=</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mrow></mml:mrow>
<mml:msup>
<mml:mi>e</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>d</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<graphic xlink:href="12938_2016_148_Article_Equ11.gif" position="anchor"></graphic>
</alternatives>
</disp-formula>
According to the reference [
<xref ref-type="bibr" rid="CR21">21</xref>
], the corresponding hash value of a bounding box can be determined with
<disp-formula id="Equ12">
<label>12</label>
<alternatives>
<tex-math id="M57">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} h(T(i,j,k))=\bigl [(i\times u)\oplus (j\times v)\oplus (k\times w)\bigr ] \ mod \ N_{array} \end{aligned}$$\end{document}</tex-math>
<mml:math id="M58" display="block">
<mml:mrow>
<mml:mtable columnspacing="0.5ex">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo maxsize="1.2em" minsize="1.2em" stretchy="true">[</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi>u</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo></mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi>v</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo></mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi>w</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo maxsize="1.2em" minsize="1.2em" stretchy="true">]</mml:mo>
</mml:mrow>
<mml:mspace width="4pt"></mml:mspace>
<mml:mi>m</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>d</mml:mi>
<mml:mspace width="4pt"></mml:mspace>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<graphic xlink:href="12938_2016_148_Article_Equ12.gif" position="anchor"></graphic>
</alternatives>
</disp-formula>
Here
<italic>u</italic>
<italic>v</italic>
and
<italic>w</italic>
are three large prime numbers to ensure a unique hash value for each bounding box.</p>
<p>Since a regular child bounding box is designed to be a basic computation unit, we have to determine all the tetrahedral elements that a regular child bounding box contains. Each regular child bounding box is expanded with the size
<inline-formula id="IEq17">
<alternatives>
<tex-math id="M59">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$span_x=span_y=span_z=d/3$$\end{document}</tex-math>
<mml:math id="M60">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>p</mml:mi>
<mml:mi>a</mml:mi>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi>s</mml:mi>
<mml:mi>p</mml:mi>
<mml:mi>a</mml:mi>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi>s</mml:mi>
<mml:mi>p</mml:mi>
<mml:mi>a</mml:mi>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi>d</mml:mi>
<mml:mo stretchy="false">/</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:math>
<inline-graphic xlink:href="12938_2016_148_Article_IEq17.gif"></inline-graphic>
</alternatives>
</inline-formula>
to guarantee a much more smooth transition during the simulation. The elongation
<italic>span</italic>
is an experienced value and it can balance computation efficiency and visual deformation result quite well.</p>
<p>During the simulation, the catheter moves in the blood vessel model freely and the position of the catheter tip is
<inline-formula id="IEq18">
<alternatives>
<tex-math id="M61">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(x_t,y_t,z_t)$$\end{document}</tex-math>
<mml:math id="M62">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
<inline-graphic xlink:href="12938_2016_148_Article_IEq18.gif"></inline-graphic>
</alternatives>
</inline-formula>
at a given time t and then we can calculate the corresponding hash value with
<disp-formula id="Equ13">
<label>13</label>
<alternatives>
<tex-math id="M63">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\begin{aligned} h_{Tip} = \biggl [\biggl (\biggl \lfloor {\frac{x_t-g^{min}_x}{d}}\biggl \rfloor \times u\biggr ) \! \oplus \! \biggl (\biggl \lfloor {\frac{y_t-g^{min}_y}{d}}\biggl \rfloor \times v\biggr ) \! \oplus \! \biggl (\biggl \lfloor {\frac{z_t-g^{min}_z}{d}}\biggl \rfloor \times w\biggr )\biggr ] \ mod \ N_{array} \end{aligned}$$\end{document}</tex-math>
<mml:math id="M64" display="block">
<mml:mrow>
<mml:mtable columnspacing="0.5ex">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo maxsize="2.047em" minsize="2.047em" stretchy="true">[</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo maxsize="2.047em" minsize="2.047em" stretchy="true">(</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo maxsize="2.047em" minsize="2.047em" stretchy="true"></mml:mo>
</mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msubsup>
<mml:mi>g</mml:mi>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mi>d</mml:mi>
</mml:mfrac>
<mml:mrow>
<mml:mo maxsize="2.047em" minsize="2.047em" stretchy="true"></mml:mo>
</mml:mrow>
<mml:mo>×</mml:mo>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mo maxsize="2.047em" minsize="2.047em" stretchy="true">)</mml:mo>
</mml:mrow>
<mml:mspace width="-0.166667em"></mml:mspace>
<mml:mo></mml:mo>
<mml:mspace width="-0.166667em"></mml:mspace>
<mml:mrow>
<mml:mo maxsize="2.047em" minsize="2.047em" stretchy="true">(</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo maxsize="2.047em" minsize="2.047em" stretchy="true"></mml:mo>
</mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msubsup>
<mml:mi>g</mml:mi>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mi>d</mml:mi>
</mml:mfrac>
<mml:mrow>
<mml:mo maxsize="2.047em" minsize="2.047em" stretchy="true"></mml:mo>
</mml:mrow>
<mml:mo>×</mml:mo>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mo maxsize="2.047em" minsize="2.047em" stretchy="true">)</mml:mo>
</mml:mrow>
<mml:mspace width="-0.166667em"></mml:mspace>
<mml:mo></mml:mo>
<mml:mspace width="-0.166667em"></mml:mspace>
<mml:mrow>
<mml:mo maxsize="2.047em" minsize="2.047em" stretchy="true">(</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo maxsize="2.047em" minsize="2.047em" stretchy="true"></mml:mo>
</mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msubsup>
<mml:mi>g</mml:mi>
<mml:mi>z</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mi>d</mml:mi>
</mml:mfrac>
<mml:mrow>
<mml:mo maxsize="2.047em" minsize="2.047em" stretchy="true"></mml:mo>
</mml:mrow>
<mml:mo>×</mml:mo>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mo maxsize="2.047em" minsize="2.047em" stretchy="true">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo maxsize="2.047em" minsize="2.047em" stretchy="true">]</mml:mo>
</mml:mrow>
<mml:mspace width="4pt"></mml:mspace>
<mml:mi>m</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>d</mml:mi>
<mml:mspace width="4pt"></mml:mspace>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<graphic xlink:href="12938_2016_148_Article_Equ13.gif" position="anchor"></graphic>
</alternatives>
</disp-formula>
The parameters
<italic>u</italic>
<italic>v</italic>
and
<italic>w</italic>
have the same meaning and value as in Eq. (
<xref rid="Equ12" ref-type="">12</xref>
). Then the child bounding box with the same hash value of the catheter tip will be activated and used for precise collision detection and deformation calculation.</p>
</sec>
</sec>
<sec id="Sec7">
<title>Results and discussion</title>
<p>In this section, a systematic and comprehensive description of our verification experiments is given, which not only describes the performance of our proposed method, but also compares the proposed method with previous related methods properly. All the experiments were performed on a laptop with Intel Core i5 3230M, 4G RAM and GeForce 630M graphic card. Tetrahedral mesh was used in our study since it is necessary for the implementation of the following finite element method. There are many available tools to generate tetrahedral mesh from surface mesh, what we choose is TetGen [
<xref ref-type="bibr" rid="CR22">22</xref>
], an efficient tetrahedral mesh generator. The whole geometric model has been partitioned into 80 continuous bounding boxes for further spatial acceleration. For simplification, we only concern the blood vessel branch that the catheter will enter in our experiments, and there are 3954 vertices and 12,434 tetrahedral elements in total after tetrahedralization.
<fig id="Fig4">
<label>Fig. 4</label>
<caption>
<p>Visual deformation results and stress–strain curve using position-based dynamic approach.
<bold>a</bold>
A vertex in inner vascular wall has penetrated the outer vascular wall without volume conservation
<bold>b</bold>
a much more reliable result can be obtained with volume conservation
<bold>c</bold>
stress–strain curve of the collision vertex</p>
</caption>
<graphic xlink:href="12938_2016_148_Fig4_HTML" id="MO18"></graphic>
</fig>
</p>
<p>In general position-based approach without the constraint of volume conservation, tetrahedral elements of a vascular model are much easier to penetrate each other during deformation if the loaded force reaches a certain threshold. When one or more vertices in the inner vascular wall penetrates the blood vessel, an erroneous visual result will be definitely obtained, as shown in Fig.
<xref rid="Fig4" ref-type="fig">4</xref>
a. We can see the problem of penetration from the figure clearly, where tetrahedral elements and vertices in the inner wall were drawn in blue and green color respectively. To build a robust interventional surgery training system, the problem of penetration is unacceptable, and as we mentioned above, volume conservation constraint is regarded as a promising way to address this kind of problem. The final visual rendering result of the improved position-based approach with the constraint of volume conservation is shown in Fig.
<xref rid="Fig4" ref-type="fig">4</xref>
b, which has addressed the penetration issue successfully. From these two figures, a conclusion that the employment of volume conservation constraint in position-based dynamic method can improve the visual deformation result greatly. Since reliable soft tissue deformation is important in a surgery training system, therefore, we have been attempting to use support vector machine method to refine the material parameters setting in our deformation modeling method [
<xref ref-type="bibr" rid="CR23">23</xref>
]. In the study of virtual surgery simulation, the stress–strain curve is an essential criterion to assure that deformation is real and accurate. Therefore, we have also recorded a series of external force that applied to the collision vertex on the inner vascular wall and its corresponding displacement in the experiment, then we convert the contact force
<italic>F</italic>
to the stress with
<inline-formula id="IEq19">
<alternatives>
<tex-math id="M65">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\sigma =F / A$$\end{document}</tex-math>
<mml:math id="M66">
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi>F</mml:mi>
<mml:mo stretchy="false">/</mml:mo>
<mml:mi>A</mml:mi>
</mml:mrow>
</mml:math>
<inline-graphic xlink:href="12938_2016_148_Article_IEq19.gif"></inline-graphic>
</alternatives>
</inline-formula>
, where
<italic>A</italic>
is the area of the cross-section and the displacement into strain with
<inline-formula id="IEq20">
<alternatives>
<tex-math id="M67">\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varepsilon =(l-L) / L$$\end{document}</tex-math>
<mml:math id="M68">
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>-</mml:mo>
<mml:mi>L</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">/</mml:mo>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:math>
<inline-graphic xlink:href="12938_2016_148_Article_IEq20.gif"></inline-graphic>
</alternatives>
</inline-formula>
, where
<italic>l</italic>
and
<italic>L</italic>
represent the current and original length of the fiber respectively. Finally a stress–strain curve can be obtained as shown in Fig.
<xref rid="Fig4" ref-type="fig">4</xref>
c, in which, we can see that the modeled blood vessel deforms a little when the contact force reaches a proper value and this phenomenon suits the non-linear property of soft tissue properly. From the figure, a conclusion that our deformation modeling method represents the biomechanics properties of soft tissue properly, can be obtained.
<fig id="Fig5">
<label>Fig. 5</label>
<caption>
<p>Real-time performance of the general and the acceleration methods.
<italic>Curves with </italic>
<italic>diamond</italic>
and
<italic>asterisk</italic>
describe the time usage of the general and the acceleration methods respectively, the
<italic>green</italic>
and the
<italic>light blue curves</italic>
represent the position-based dynamic method with volume conservation constraint</p>
</caption>
<graphic xlink:href="12938_2016_148_Fig5_HTML" id="MO19"></graphic>
</fig>
</p>
<p>Besides reliable deformation, computation efficiency is also an important factor in surgery training system since it determines the real-time performance of the system directly. However, computation overhead of our surgery training system increases significantly due to the employment of volume conservation constraint. In order to maintain a real-time deformation result in this case, hash table based spatial acceleration algorithm has been used to seek an optimal trade-off between efficiency and accuracy. Several necessary experiments with general or accelerated method were conducted to validate the computation efficiency of our approach, and each experiment was performed with and without volume conservation constraint respectively. The corresponding experimental results are shown in Fig.
<xref rid="Fig5" ref-type="fig">5</xref>
. From the figure, we can see that the deformation modeling method with volume conservation constraint is much more time-consuming than the general one, and the spatial acceleration method can reduce the computation time greatly and guarantee a better real-time performance as well. From Figs.
<xref rid="Fig4" ref-type="fig">4</xref>
and
<xref rid="Fig5" ref-type="fig">5</xref>
, we can see that our acceleration method with volume conservation constraint can balance reliable deformation and real-time performance properly.
<fig id="Fig6">
<label>Fig. 6</label>
<caption>
<p>Illustration of three different implemented soft tissue deformation modeling methods with the same geometrical blood vessel model.
<bold>a</bold>
The force model of position-based method,
<bold>b</bold>
and
<bold>c</bold>
the force model of mass-spring system and finite element method respectively</p>
</caption>
<graphic xlink:href="12938_2016_148_Fig6_HTML" id="MO20"></graphic>
</fig>
</p>
<p>There were already several feasible deformation modeling methods, in order to compare their performance with our method in this paper comprehensively, we have also implemented another two widely used methods, namely mass–spring system and co-rotational finite elements method, and their force model are shown in Fig.
<xref rid="Fig6" ref-type="fig">6</xref>
. Similar deformation results can be obtained using these methods with proper material parameters setting, but their efficiencies vary a lot. To compare their computation efficiencies, several key configurations like geometric model (tetrahedral vascular mesh) and numerical solver (implicit backward euler solver with time-step 0.02 s) are the same. Figure
<xref rid="Fig6" ref-type="fig">6</xref>
a illustrates the position-based approach with 64 clusters, and its average rendering speed is up to 116 frames per second which meets the requirement of real-time virtual surgery training system well. Figure
<xref rid="Fig6" ref-type="fig">6</xref>
b represents a mass-spring system based deformable blood vessel, where particles and springs were drawn in yellow and green respectively. Since each edge of the tetrahedral model is treated as an elastic spring in our implementation, and thus there are about 22K springs in total. As a result, the final rendering speed reduces to nearly 65 frames per seconds due to the large number of geometric primitives in the model. Lastly, Fig.
<xref rid="Fig6" ref-type="fig">6</xref>
c shows the force model of a more accurate co-rotational finite element method without any acceleration technique, and its average rendering speed as low as 12 frames per second which determines that this method cannot be employed in real-time surgery training system directly. As we mentioned above, the hybrid geometric blood vessel model processes collision detection and deformation calculation separately and hash table based spatial acceleration method make the partial deformation become possible, all these advantages can improve the real-time performance of our surgery training system.
<fig id="Fig7">
<label>Fig. 7</label>
<caption>
<p>Visual results of our vascular interventional surgery training system. The
<italic>1st and 2nd figures</italic>
simply depict the global bounding box of the whole simulation domain and regular child bounding boxes after classification. The
<italic>figures from 3rd to 6th</italic>
describe the simulation process, where the
<italic>blue</italic>
and
<italic>yellow boxes</italic>
depict the activated child bounding box and its corresponding extended bounding box respectively. The
<italic>7th figure</italic>
shows the visual deformation result after detecting a collision in our system</p>
</caption>
<graphic xlink:href="12938_2016_148_Fig7_HTML" id="MO21"></graphic>
</fig>
<fig id="Fig8">
<label>Fig. 8</label>
<caption>
<p>Snapshot of the entire surgery training system</p>
</caption>
<graphic xlink:href="12938_2016_148_Fig8_HTML" id="MO22"></graphic>
</fig>
</p>
<p>In the final implementation of our real-time vascular interventional surgery simulator, besides efficient hybrid blood vessel model, position-based deformation with volume conservation and hash table based spatial acceleration were obtained. The final visual rendering results and system snapshot of our simulator are shown in Figs.
<xref rid="Fig7" ref-type="fig">7</xref>
and
<xref rid="Fig8" ref-type="fig">8</xref>
respectively. With video information provided by a monitor on the master side, an interventional radiologist operates the catheter along the main axis with the combination of translations and rotations. A series of continuous control instructions are transmitted to computer directly, once receiving the specific instructions, the catheter in the training system starts to follow the catheter in the master side. In addition, we have also invited two experienced surgeons from our partner hospital to perform a face validity of our surgery training simulator and their assessment mainly focus on three aspects, namely visual authenticity, haptic reality and user interaction, in which, the average score of visual authenticity is 0.78 (1.0 in total, the same as below) and they suggested that texture mapping technique can be used in the next version to improve the rendering results of the simulator. Besides, the average score of haptic reality and user interaction are 0.86 and 0.90 respectively which perform well during the evaluation and they thought that the simulator can simulate basic interventional operations well and its vascular deformation results are reliable, which should be helpful in clinic training and surgery scheme planning.</p>
</sec>
<sec id="Sec8">
<title>Conclusions</title>
<p>Vascular interventional surgery is rapid developing and will let more and more patients benefit from it. In recent years, vascular interventional robotic technique has been built but still need to be refined. With the development of such a new coming useful technology, efficient surgeon training measures are still a big challenge. In order to design a reusable training platform, many scientists and researchers have paid lots of attention on this subject. In this paper, we have adapted a new hybrid blood vessel model for efficient collision detection and deformation calculation, which makes the movement of a catheter in the blood vessel more realistic. In addition, a spatial adaptive acceleration algorithm is employed to improve the real-time performance and visual deformation result, and the experimental results show that the hybrid blood vessel model and hash table based spatial adaptive acceleration approach are robust and efficient to guarantee the performance of our vascular surgery training system.</p>
<p>In future study, we will focus on the realistic material behavior of the blood vessel, such as non-linear, stress relaxation, anisotropy and so on. By employing the more realistic material properties, the deformation can be modeled much closer to the real blood vessel under the same external force load. Finally, we can use the training system to assist remote vascular interventional surgery.</p>
</sec>
</body>
<back>
<ack>
<title>Authors' contributions</title>
<p>XF Ye contributed to the hybrid blood vessel model modeling and derive the volume conservation constraint in detail. JG Zhang has implemented the surgery training system and improved the method proposed in this paper. P Li has verified the efficiency and real-time performance of the system. T Wang has improved the visual deformation result and performed the comparison with previous related methods. SX Guo has built a corresponding experimental platform. All authors read and approved the final manuscript.</p>
<sec id="FPar2">
<title>Acknowledgements</title>
<p>This research was supported by Natural Science Foundation of Heilongjiang Province of China (Grant No. F201416) and National High-tech R&D Program of China (863 key Program, Grant No. 2015AA0401).</p>
</sec>
<sec id="FPar1">
<title>Competing interests</title>
<p>The authors declare that they have no competing interests.</p>
</sec>
</ack>
<ref-list id="Bib1">
<title>References</title>
<ref id="CR1">
<label>1.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Davidson</surname>
<given-names>IJA</given-names>
</name>
<name>
<surname>Lok</surname>
<given-names>C</given-names>
</name>
<name>
<surname>Dolmatch</surname>
<given-names>B</given-names>
</name>
<name>
<surname>Gallieni</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Nolen</surname>
<given-names>B</given-names>
</name>
<name>
<surname>Pittiruti</surname>
<given-names>M</given-names>
</name>
<etal></etal>
</person-group>
<article-title>Virtual reality: emerging role of simulation training in vascular access</article-title>
<source>Semin Nephrol</source>
<year>2012</year>
<volume>32</volume>
<fpage>572</fpage>
<lpage>581</lpage>
<pub-id pub-id-type="doi">10.1016/j.semnephrol.2012.10.009</pub-id>
<pub-id pub-id-type="pmid">23217338</pub-id>
</element-citation>
</ref>
<ref id="CR2">
<label>2.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Guo</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Guo</surname>
<given-names>S</given-names>
</name>
<name>
<surname>Xiao</surname>
<given-names>N</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>X</given-names>
</name>
<name>
<surname>Yoshida</surname>
<given-names>S</given-names>
</name>
<name>
<surname>Tamiya</surname>
<given-names>T</given-names>
</name>
<etal></etal>
</person-group>
<article-title>A novel robotic catheter system with force and visual feedback for vascular interventional surgery</article-title>
<source>Int J Mechatron Autom</source>
<year>2012</year>
<volume>2</volume>
<fpage>1</fpage>
<lpage>15</lpage>
<pub-id pub-id-type="doi">10.1504/IJMA.2012.046582</pub-id>
</element-citation>
</ref>
<ref id="CR3">
<label>3.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lyu</surname>
<given-names>SR</given-names>
</name>
<name>
<surname>Lin</surname>
<given-names>YK</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>ST</given-names>
</name>
<name>
<surname>Yau</surname>
<given-names>HT</given-names>
</name>
</person-group>
<article-title>Experience-based virtual training system for knee arthroscopic inspection</article-title>
<source>Biomed Eng Online</source>
<year>2013</year>
<volume>12</volume>
<fpage>63</fpage>
<pub-id pub-id-type="doi">10.1186/1475-925X-12-63</pub-id>
<pub-id pub-id-type="pmid">23826988</pub-id>
</element-citation>
</ref>
<ref id="CR4">
<label>4.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ye</surname>
<given-names>X</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Gu</surname>
<given-names>Y</given-names>
</name>
</person-group>
<article-title>An improved collision detection and cutting algorithm of the soft tissue in virtual surgical simulation</article-title>
<source>Int J Mechatron Autom</source>
<year>2014</year>
<volume>4</volume>
<fpage>236</fpage>
<lpage>247</lpage>
<pub-id pub-id-type="doi">10.1504/IJMA.2014.066363</pub-id>
</element-citation>
</ref>
<ref id="CR5">
<label>5.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>T</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>D</given-names>
</name>
<name>
<surname>Da</surname>
<given-names>L</given-names>
</name>
</person-group>
<article-title>Remote-controlled vascular interventional surgery robot</article-title>
<source>Int J Med Robot Comput Assist Surg</source>
<year>2010</year>
<volume>6</volume>
<fpage>194</fpage>
<lpage>201</lpage>
</element-citation>
</ref>
<ref id="CR6">
<label>6.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lu</surname>
<given-names>WS</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>WY</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>D</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>DM</given-names>
</name>
<name>
<surname>Jia</surname>
<given-names>P</given-names>
</name>
<etal></etal>
</person-group>
<article-title>Application study of medical robots in vascular intervention</article-title>
<source>Int J Med Robot Comput Assist Surg</source>
<year>2011</year>
<volume>7</volume>
<fpage>361</fpage>
<lpage>366</lpage>
</element-citation>
</ref>
<ref id="CR7">
<label>7.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Meng</surname>
<given-names>C</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>D</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>B</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>F</given-names>
</name>
</person-group>
<article-title>A remote-controlled vascular interventional robot: System structure and image guidance</article-title>
<source>Int J Med Robot Comput Assist Surg</source>
<year>2013</year>
<volume>9</volume>
<fpage>230</fpage>
<lpage>239</lpage>
<pub-id pub-id-type="doi">10.1002/rcs.1494</pub-id>
</element-citation>
</ref>
<ref id="CR8">
<label>8.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>D</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>T</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>D</given-names>
</name>
<name>
<surname>Lin</surname>
<given-names>G</given-names>
</name>
</person-group>
<article-title>Vascular deformation for vascular interventional surgery simulation</article-title>
<source>Int J Med Robot Comput Assist Surg</source>
<year>2010</year>
<volume>6</volume>
<fpage>170</fpage>
<lpage>177</lpage>
<pub-id pub-id-type="doi">10.1002/rcs.358</pub-id>
</element-citation>
</ref>
<ref id="CR9">
<label>9.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>H</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Wei</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>X</given-names>
</name>
</person-group>
<article-title>A robust and fast approach to simulating the behavior of guidewire in vascular interventional radiology</article-title>
<source>Comput Med Imaging Graph</source>
<year>2015</year>
<volume>40</volume>
<fpage>160</fpage>
<lpage>169</lpage>
<pub-id pub-id-type="doi">10.1016/j.compmedimag.2014.10.006</pub-id>
<pub-id pub-id-type="pmid">25467803</pub-id>
</element-citation>
</ref>
<ref id="CR10">
<label>10.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>H</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>P</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>X</given-names>
</name>
<name>
<surname>Hu</surname>
<given-names>Q</given-names>
</name>
</person-group>
<article-title>A preliminary real-time and realistic simulation environment for percutaneous coronary intervention</article-title>
<source>Biomed Res Int</source>
<year>2015</year>
<volume>2015</volume>
<fpage>1</fpage>
<lpage>10</lpage>
</element-citation>
</ref>
<ref id="CR11">
<label>11.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lenoir</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Cotin</surname>
<given-names>S</given-names>
</name>
<name>
<surname>Duriez</surname>
<given-names>C</given-names>
</name>
<name>
<surname>Neumann</surname>
<given-names>P</given-names>
</name>
</person-group>
<article-title>Interactive physically-based simulation of catheter and guidewire</article-title>
<source>Comput Graph</source>
<year>2006</year>
<volume>30</volume>
<fpage>416</fpage>
<lpage>422</lpage>
<pub-id pub-id-type="doi">10.1016/j.cag.2006.02.013</pub-id>
</element-citation>
</ref>
<ref id="CR12">
<label>12.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Tang</surname>
<given-names>W</given-names>
</name>
<name>
<surname>Wan</surname>
<given-names>TR</given-names>
</name>
<name>
<surname>Gould</surname>
<given-names>DA</given-names>
</name>
<name>
<surname>How</surname>
<given-names>T</given-names>
</name>
<name>
<surname>John</surname>
<given-names>NW</given-names>
</name>
</person-group>
<article-title>A stable and real-time nonlinear elastic approach to simulating guidewire and catheter insertions based on cosserat rod</article-title>
<source>IEEE Transact Biomed Eng</source>
<year>2012</year>
<volume>59</volume>
<fpage>2211</fpage>
<lpage>2218</lpage>
<pub-id pub-id-type="doi">10.1109/TBME.2012.2199319</pub-id>
</element-citation>
</ref>
<ref id="CR13">
<label>13.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Basafa</surname>
<given-names>E</given-names>
</name>
<name>
<surname>Farahmand</surname>
<given-names>F</given-names>
</name>
</person-group>
<article-title>Real-time simulation of the nonlinear visco-elastic deformations of soft tissues</article-title>
<source>Int J Comput Assist Radiol Surg</source>
<year>2011</year>
<volume>6</volume>
<fpage>297</fpage>
<lpage>307</lpage>
<pub-id pub-id-type="doi">10.1007/s11548-010-0508-6</pub-id>
<pub-id pub-id-type="pmid">20607618</pub-id>
</element-citation>
</ref>
<ref id="CR14">
<label>14.</label>
<mixed-citation publication-type="other">Gao W, Chu L, Fu Y, Wang S. A non-linear, anisotropic mass spring model based simulation for soft tissue deformation. In: 11th international conference on ubiquitous robots and ambient intelligence (URAI); 2014. p. 7–10.</mixed-citation>
</ref>
<ref id="CR15">
<label>15.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Patete</surname>
<given-names>P</given-names>
</name>
<name>
<surname>Iacono</surname>
<given-names>MI</given-names>
</name>
<name>
<surname>Spadea</surname>
<given-names>MF</given-names>
</name>
<name>
<surname>Trecate</surname>
<given-names>G</given-names>
</name>
<name>
<surname>Vergnaghi</surname>
<given-names>D</given-names>
</name>
<name>
<surname>Mainardi</surname>
<given-names>LT</given-names>
</name>
<etal></etal>
</person-group>
<article-title>A multi-tissue mass-spring model for computer assisted breast surgery</article-title>
<source>Med Eng Phys</source>
<year>2013</year>
<volume>35</volume>
<fpage>47</fpage>
<lpage>53</lpage>
<pub-id pub-id-type="doi">10.1016/j.medengphy.2012.03.008</pub-id>
<pub-id pub-id-type="pmid">22483758</pub-id>
</element-citation>
</ref>
<ref id="CR16">
<label>16.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ye</surname>
<given-names>X</given-names>
</name>
<name>
<surname>Zhu</surname>
<given-names>L</given-names>
</name>
<name>
<surname>Guo</surname>
<given-names>S</given-names>
</name>
</person-group>
<article-title>Deformation model of soft tissues for real-time surgical simulation</article-title>
<source>Inform Int Interdiscip J</source>
<year>2010</year>
<volume>13</volume>
<fpage>2011</fpage>
<lpage>2020</lpage>
</element-citation>
</ref>
<ref id="CR17">
<label>17.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Dick</surname>
<given-names>C</given-names>
</name>
<name>
<surname>Georgii</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Westermann</surname>
<given-names>R</given-names>
</name>
</person-group>
<article-title>A real-time multigrid finite hexahedra method for elasticity simulation using CUDA</article-title>
<source>Simul Model Pract Theor</source>
<year>2011</year>
<volume>19</volume>
<fpage>801</fpage>
<lpage>816</lpage>
<pub-id pub-id-type="doi">10.1016/j.simpat.2010.11.005</pub-id>
</element-citation>
</ref>
<ref id="CR18">
<label>18.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Müller</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Heidelberger</surname>
<given-names>B</given-names>
</name>
<name>
<surname>Hennix</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Ratcliff</surname>
<given-names>J</given-names>
</name>
</person-group>
<article-title>Position based dynamics</article-title>
<source>J Vis Commun Image Represent</source>
<year>2007</year>
<volume>18</volume>
<fpage>109</fpage>
<lpage>118</lpage>
<pub-id pub-id-type="doi">10.1016/j.jvcir.2007.01.005</pub-id>
</element-citation>
</ref>
<ref id="CR19">
<label>19.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Bender</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Müller</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Otaduy</surname>
<given-names>MA</given-names>
</name>
<name>
<surname>Teschner</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Macklin</surname>
<given-names>M</given-names>
</name>
</person-group>
<article-title>A survey on position-based simulation methods in computer graphics</article-title>
<source>Comput Graph Forum</source>
<year>2014</year>
<volume>33</volume>
<fpage>228</fpage>
<lpage>251</lpage>
<pub-id pub-id-type="doi">10.1111/cgf.12346</pub-id>
</element-citation>
</ref>
<ref id="CR20">
<label>20.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Souza</surname>
<given-names>MS</given-names>
</name>
<name>
<surname>Wangenheim</surname>
<given-names>A</given-names>
</name>
<name>
<surname>Comunello</surname>
<given-names>E</given-names>
</name>
</person-group>
<article-title>Fast simulation of cloth tearing</article-title>
<source>SBC J Interact Syst</source>
<year>2014</year>
<volume>5</volume>
<fpage>44</fpage>
<lpage>48</lpage>
</element-citation>
</ref>
<ref id="CR21">
<label>21.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Teschner</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Hiedelberger</surname>
<given-names>B</given-names>
</name>
<name>
<surname>Müller</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Pomeranets</surname>
<given-names>D</given-names>
</name>
<name>
<surname>Gross</surname>
<given-names>M</given-names>
</name>
</person-group>
<article-title>Optimized spatial hashing for collision detection of deformable objects</article-title>
<source>Vision Model Vis</source>
<year>2003</year>
<volume>3</volume>
<fpage>47</fpage>
<lpage>54</lpage>
</element-citation>
</ref>
<ref id="CR22">
<label>22.</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Si</surname>
<given-names>H</given-names>
</name>
</person-group>
<article-title>TetGen, a Delaunay-based quality tetrahedral mesh generator</article-title>
<source>ACM Transact Math Soft (TOMS)</source>
<year>2015</year>
<volume>41</volume>
<fpage>1</fpage>
<lpage>36</lpage>
<pub-id pub-id-type="doi">10.1145/2629697</pub-id>
</element-citation>
</ref>
<ref id="CR23">
<label>23.</label>
<mixed-citation publication-type="other">Wang T, Zhao F, Gao W, Ye X, Yu D, Gao Y. A physical model identification method of soft tissue deformation for virtual surgery. In: 2014 IEEE international conference on mechatronics and automation (ICMA); 2014. p. 298–302.</mixed-citation>
</ref>
</ref-list>
</back>
</pmc>
<affiliations>
<list>
<country>
<li>Japon</li>
<li>République populaire de Chine</li>
</country>
</list>
<tree>
<country name="République populaire de Chine">
<noRegion>
<name sortKey="Ye, Xiufen" sort="Ye, Xiufen" uniqKey="Ye X" first="Xiufen" last="Ye">Xiufen Ye</name>
</noRegion>
<name sortKey="Guo, Shuxiang" sort="Guo, Shuxiang" uniqKey="Guo S" first="Shuxiang" last="Guo">Shuxiang Guo</name>
<name sortKey="Li, Peng" sort="Li, Peng" uniqKey="Li P" first="Peng" last="Li">Peng Li</name>
<name sortKey="Wang, Tian" sort="Wang, Tian" uniqKey="Wang T" first="Tian" last="Wang">Tian Wang</name>
<name sortKey="Zhang, Jianguo" sort="Zhang, Jianguo" uniqKey="Zhang J" first="Jianguo" last="Zhang">Jianguo Zhang</name>
</country>
<country name="Japon">
<noRegion>
<name sortKey="Guo, Shuxiang" sort="Guo, Shuxiang" uniqKey="Guo S" first="Shuxiang" last="Guo">Shuxiang Guo</name>
</noRegion>
</country>
</tree>
</affiliations>
</record>

Pour manipuler ce document sous Unix (Dilib)

EXPLOR_STEP=$WICRI_ROOT/Ticri/CIDE/explor/HapticV1/Data/Ncbi/Merge
HfdSelect -h $EXPLOR_STEP/biblio.hfd -nk 004151 | SxmlIndent | more

Ou

HfdSelect -h $EXPLOR_AREA/Data/Ncbi/Merge/biblio.hfd -nk 004151 | SxmlIndent | more

Pour mettre un lien sur cette page dans le réseau Wicri

{{Explor lien
   |wiki=    Ticri/CIDE
   |area=    HapticV1
   |flux=    Ncbi
   |étape=   Merge
   |type=    RBID
   |clé=     PMC:4822255
   |texte=   A fast and stable vascular deformation scheme for interventional surgery training system
}}

Pour générer des pages wiki

HfdIndexSelect -h $EXPLOR_AREA/Data/Ncbi/Merge/RBID.i   -Sk "pubmed:27048290" \
       | HfdSelect -Kh $EXPLOR_AREA/Data/Ncbi/Merge/biblio.hfd   \
       | NlmPubMed2Wicri -a HapticV1 

Wicri

This area was generated with Dilib version V0.6.23.
Data generation: Mon Jun 13 01:09:46 2016. Site generation: Wed Mar 6 09:54:07 2024