2022-11-28 19:21:26 +08:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" >
< head >
< meta http-equiv = "Content-Type" content = "text/xhtml;charset=UTF-8" / >
< meta http-equiv = "X-UA-Compatible" content = "IE=11" / >
< meta name = "generator" content = "Doxygen 1.9.4" / >
< meta name = "viewport" content = "width=device-width, initial-scale=1" / >
< title > DNA Calib: demo Namespace Reference< / title >
< link href = "tabs.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "jquery.js" > < / script >
< script type = "text/javascript" src = "dynsections.js" > < / script >
< link href = "search/search.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "search/searchdata.js" > < / script >
< script type = "text/javascript" src = "search/search.js" > < / script >
< link href = "doxygen.css" rel = "stylesheet" type = "text/css" / >
< / head >
< body >
< div id = "top" > <!-- do not remove this div, it is closed by doxygen! -->
< div id = "titlearea" >
< table cellspacing = "0" cellpadding = "0" >
< tbody >
< tr id = "projectrow" >
< td id = "projectalign" >
< div id = "projectname" > DNA Calib< span id = "projectnumber" >   1.1< / span >
< / div >
< div id = "projectbrief" > Project brief< / div >
< / td >
< / tr >
< / tbody >
< / table >
< / div >
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699& dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
< / script >
< script type = "text/javascript" src = "menudata.js" > < / script >
< script type = "text/javascript" src = "menu.js" > < / script >
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699& dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
< / script >
< div id = "main-nav" > < / div >
<!-- window showing the filter options -->
< div id = "MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
< / div >
<!-- iframe showing the search results (closed by default) -->
< div id = "MSearchResultsWindow" >
< iframe src = "javascript:void(0)" frameborder = "0"
name="MSearchResults" id="MSearchResults">
< / iframe >
< / div >
< / div > <!-- top -->
< div class = "header" >
< div class = "summary" >
< a href = "#func-members" > Functions< / a > < / div >
< div class = "headertitle" > < div class = "title" > demo Namespace Reference< / div > < / div >
< / div > <!-- header -->
< div class = "contents" >
< table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a id = "func-members" name = "func-members" > < / a >
Functions< / h2 > < / td > < / tr >
< tr class = "memitem:a60ef2641a92b59940e2e59d1e542b4dd" > < td class = "memItemLeft" align = "right" valign = "top" > def  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacedemo.html#a60ef2641a92b59940e2e59d1e542b4dd" > createDNA< / a > (path)< / td > < / tr >
< tr class = "separator:a60ef2641a92b59940e2e59d1e542b4dd" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ab7c7972424f00cc063b6ad4aad722579" > < td class = "memItemLeft" align = "right" valign = "top" > def  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacedemo.html#ab7c7972424f00cc063b6ad4aad722579" > loadDNA< / a > (path)< / td > < / tr >
< tr class = "separator:ab7c7972424f00cc063b6ad4aad722579" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:aa63452ff68c465e6b82d88d2f07ea34e" > < td class = "memItemLeft" align = "right" valign = "top" > def  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacedemo.html#aa63452ff68c465e6b82d88d2f07ea34e" > printDNASummary< / a > (dnaReader)< / td > < / tr >
< tr class = "separator:aa63452ff68c465e6b82d88d2f07ea34e" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a52b1010be750a7388115a9bbfb0c3284" > < td class = "memItemLeft" align = "right" valign = "top" > def  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacedemo.html#a52b1010be750a7388115a9bbfb0c3284" > main< / a > ()< / td > < / tr >
< tr class = "separator:a52b1010be750a7388115a9bbfb0c3284" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:aacb48e99c2628919435e08bb7fc75aa8" > < td class = "memItemLeft" align = "right" valign = "top" > def  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacedemo.html#aacb48e99c2628919435e08bb7fc75aa8" > saveDNA< / a > (reader, path)< / td > < / tr >
< tr class = "separator:aacb48e99c2628919435e08bb7fc75aa8" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:aadf38580dced3eb97e396267c636d6dc" > < td class = "memItemLeft" align = "right" valign = "top" > def  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacedemo.html#aadf38580dced3eb97e396267c636d6dc" > buildCommandList< / a > ()< / td > < / tr >
< tr class = "separator:aadf38580dced3eb97e396267c636d6dc" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a678487ef78664f96baab3c22238251af" > < td class = "memItemLeft" align = "right" valign = "top" > def  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacedemo.html#a678487ef78664f96baab3c22238251af" > calibrateDNA< / a > (inputPath, outputPath)< / td > < / tr >
< tr class = "separator:a678487ef78664f96baab3c22238251af" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< / table >
< h2 class = "groupheader" > Function Documentation< / h2 >
< a id = "aadf38580dced3eb97e396267c636d6dc" name = "aadf38580dced3eb97e396267c636d6dc" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#aadf38580dced3eb97e396267c636d6dc" > ◆ < / a > < / span > buildCommandList()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > def demo.buildCommandList < / td >
< td > (< / td >
< td class = "paramname" > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< div class = "fragment" > < div class = "line" > < span class = "lineno" > 29< / span > < span class = "keyword" > def < / span > < a class = "code hl_function" href = "namespacedemo.html#aadf38580dced3eb97e396267c636d6dc" > buildCommandList< / a > ():< / div >
< div class = "line" > < span class = "lineno" > 30< / span > < span class = "comment" > # Abstraction to collect all commands into a sequence, and run them with only one invocation< / span > < / div >
< div class = "line" > < span class = "lineno" > 31< / span > commands = < a class = "code hl_class" href = "classdnac_1_1CommandSequence.html" > dnac.CommandSequence< / a > ()< / div >
< div class = "line" > < span class = "lineno" > 32< / span > < / div >
< div class = "line" > < span class = "lineno" > 33< / span > print(< span class = "stringliteral" > " Creating a sequence of commands..." < / span > )< / div >
< div class = "line" > < span class = "lineno" > 34< / span > < span class = "comment" > # Instantiate command with parameters: scale-factor = 2 , origin-xyz = (0, 120, 0)< / span > < / div >
< div class = "line" > < span class = "lineno" > 35< / span > scaleByTwo = < a class = "code hl_class" href = "classdnac_1_1ScaleCommand.html" > dnac.ScaleCommand< / a > (2.0, [0.0, 120.0, 0.0])< / div >
< div class = "line" > < span class = "lineno" > 36< / span > < span class = "comment" > # Alternatively a command can be instantiated empty, and populated with parameters later, e.g.:< / span > < / div >
< div class = "line" > < span class = "lineno" > 37< / span > < span class = "comment" > # scaleByTwo = dnac.ScaleCommand()< / span > < / div >
< div class = "line" > < span class = "lineno" > 38< / span > < span class = "comment" > # scaleByTwo.setScale(2.0)< / span > < / div >
< div class = "line" > < span class = "lineno" > 39< / span > < span class = "comment" > # scaleByTwo.setOrigin([0.0, 120.0, 0.0])< / span > < / div >
< div class = "line" > < span class = "lineno" > 40< / span > commands.add(scaleByTwo)< / div >
< div class = "line" > < span class = "lineno" > 41< / span > < / div >
< div class = "line" > < span class = "lineno" > 42< / span > print(< span class = "stringliteral" > " Added command to scale dna" < / span > )< / div >
< div class = "line" > < span class = "lineno" > 43< / span > < span class = "comment" > # Rename by joint index (faster)< / span > < / div >
< div class = "line" > < span class = "lineno" > 44< / span > commands.add(< a class = "code hl_class" href = "classdnac_1_1RenameJointCommand.html" > dnac.RenameJointCommand< / a > (10, < span class = "stringliteral" > " NewJointA" < / span > ))< / div >
< div class = "line" > < span class = "lineno" > 45< / span > < / div >
< div class = "line" > < span class = "lineno" > 46< / span > < span class = "comment" > # Rename by matching joint name (slower)< / span > < / div >
< div class = "line" > < span class = "lineno" > 47< / span > commands.add(< a class = "code hl_class" href = "classdnac_1_1RenameJointCommand.html" > dnac.RenameJointCommand< / a > (< span class = "stringliteral" > " OldJointB" < / span > , < span class = "stringliteral" > " NewJointB" < / span > ))< / div >
< div class = "line" > < span class = "lineno" > 48< / span > < / div >
< div class = "line" > < span class = "lineno" > 49< / span > print(< span class = "stringliteral" > " Added command to rename joint" < / span > )< / div >
< div class = "line" > < span class = "lineno" > 50< / span > < span class = "comment" > # Interpolate blend shape target deltas between original DNA and below specified deltas< / span > < / div >
< div class = "line" > < span class = "lineno" > 51< / span > < span class = "comment" > # ¯\_(ツ)_/¯< / span > < / div >
< div class = "line" > < span class = "lineno" > 52< / span > < span class = "comment" > # Deltas in [[x, y, z], [x, y, z], [x, y, z]] format< / span > < / div >
< div class = "line" > < span class = "lineno" > 53< / span > blendShapeTargetDeltas = [[0.0, 0.0, 2.0], [0.0, -1.0, 4.0], [3.0, -3.0, 8.0]]< / div >
2023-04-21 18:19:55 +08:00
< div class = "line" > < span class = "lineno" > 54< / span > vertexIndices = [0, 1, 2]< / div >
< div class = "line" > < span class = "lineno" > 55< / span > < span class = "comment" > # Weights for interpolation between original deltas and above defined deltas< / span > < / div >
< div class = "line" > < span class = "lineno" > 56< / span > < span class = "comment" > # 1.0 == take the new value completely, 0.0 means keep the old value< / span > < / div >
< div class = "line" > < span class = "lineno" > 57< / span > < span class = "comment" > # Format: [Delta-0-Mask, Delta-1-Mask, Delta-2-Mask]< / span > < / div >
< div class = "line" > < span class = "lineno" > 58< / span > masks = [1.0, 0.0, 0.5]< / div >
< div class = "line" > < span class = "lineno" > 59< / span > setBlendShapesM0B0 = < a class = "code hl_class" href = "classdnac_1_1SetBlendShapeTargetDeltasCommand.html" > dnac.SetBlendShapeTargetDeltasCommand< / a > (0, < span class = "comment" > # mesh index< / span > < / div >
< div class = "line" > < span class = "lineno" > 60< / span > 0, < span class = "comment" > # blend shape target index< / span > < / div >
< div class = "line" > < span class = "lineno" > 61< / span > blendShapeTargetDeltas,< / div >
< div class = "line" > < span class = "lineno" > 62< / span > vertexIndices,< / div >
< div class = "line" > < span class = "lineno" > 63< / span > masks,< / div >
< div class = "line" > < span class = "lineno" > 64< / span > dnac.VectorOperation_Interpolate)< / div >
< div class = "line" > < span class = "lineno" > 65< / span > commands.add(setBlendShapesM0B0)< / div >
< div class = "line" > < span class = "lineno" > 66< / span > print(< span class = "stringliteral" > " Added command to change blend shape target deltas" < / span > )< / div >
< div class = "line" > < span class = "lineno" > 67< / span > < / div >
< div class = "line" > < span class = "lineno" > 68< / span > < span class = "comment" > # Add vertex position deltas onto existing vertex positions< / span > < / div >
< div class = "line" > < span class = "lineno" > 69< / span > < span class = "comment" > # Note the alternative data format, instead of using nested lists, separate all X, Y, Z< / span > < / div >
< div class = "line" > < span class = "lineno" > 70< / span > < span class = "comment" > # components into distinct lists (might also be faster)< / span > < / div >
< div class = "line" > < span class = "lineno" > 71< / span > positionXs = [1.0, -4.5, 7.2]< / div >
< div class = "line" > < span class = "lineno" > 72< / span > positionYs = [2.0, -5.5, -8.3]< / div >
< div class = "line" > < span class = "lineno" > 73< / span > positionZs = [3.0, -6.5, 9.7]< / div >
< div class = "line" > < span class = "lineno" > 74< / span > < span class = "comment" > # Weights to be multiplied with the above specified delta positions, before adding< / span > < / div >
< div class = "line" > < span class = "lineno" > 75< / span > < span class = "comment" > # them onto the original data< / span > < / div >
< div class = "line" > < span class = "lineno" > 76< / span > < span class = "comment" > # Format: [Delta-0-Weight, Delta-1-Weight, Delta-2-Weight]< / span > < / div >
< div class = "line" > < span class = "lineno" > 77< / span > masks = [1.0, 0.2, 0.4]< / div >
< div class = "line" > < span class = "lineno" > 78< / span > setVerticesM0 = < a class = "code hl_class" href = "classdnac_1_1SetVertexPositionsCommand.html" > dnac.SetVertexPositionsCommand< / a > (0, < span class = "comment" > # mesh index< / span > < / div >
< div class = "line" > < span class = "lineno" > 79< / span > positionXs,< / div >
< div class = "line" > < span class = "lineno" > 80< / span > positionYs,< / div >
< div class = "line" > < span class = "lineno" > 81< / span > positionZs,< / div >
< div class = "line" > < span class = "lineno" > 82< / span > masks,< / div >
< div class = "line" > < span class = "lineno" > 83< / span > dnac.VectorOperation_Add)< / div >
< div class = "line" > < span class = "lineno" > 84< / span > commands.add(setVerticesM0)< / div >
< div class = "line" > < span class = "lineno" > 85< / span > print(< span class = "stringliteral" > " Added command to change vertex positions" < / span > )< / div >
2022-11-28 19:21:26 +08:00
< div class = "line" > < span class = "lineno" > 86< / span > < / div >
2023-04-21 18:19:55 +08:00
< div class = "line" > < span class = "lineno" > 87< / span > < span class = "keywordflow" > return< / span > commands< / div >
< div class = "line" > < span class = "lineno" > 88< / span > < / div >
< div class = "line" > < span class = "lineno" > 89< / span > < / div >
2022-11-28 19:21:26 +08:00
< div class = "ttc" id = "aclassdnac_1_1CommandSequence_html" > < div class = "ttname" > < a href = "classdnac_1_1CommandSequence.html" > dnac::CommandSequence< / a > < / div > < div class = "ttdoc" > CommandSequence is used to run a sequence of commands on the same DNA.< / div > < div class = "ttdef" > < b > Definition:< / b > CommandSequence.h:20< / div > < / div >
< div class = "ttc" id = "aclassdnac_1_1RenameJointCommand_html" > < div class = "ttname" > < a href = "classdnac_1_1RenameJointCommand.html" > dnac::RenameJointCommand< / a > < / div > < div class = "ttdoc" > RenameJointCommand is used to rename a joint.< / div > < div class = "ttdef" > < b > Definition:< / b > RenameJointCommand.h:18< / div > < / div >
< div class = "ttc" id = "aclassdnac_1_1ScaleCommand_html" > < div class = "ttname" > < a href = "classdnac_1_1ScaleCommand.html" > dnac::ScaleCommand< / a > < / div > < div class = "ttdoc" > ScaleCommand is used to scale neutral joints, vertex positions and joint and blendshape deltas by a f...< / div > < div class = "ttdef" > < b > Definition:< / b > ScaleCommand.h:18< / div > < / div >
< div class = "ttc" id = "aclassdnac_1_1SetBlendShapeTargetDeltasCommand_html" > < div class = "ttname" > < a href = "classdnac_1_1SetBlendShapeTargetDeltasCommand.html" > dnac::SetBlendShapeTargetDeltasCommand< / a > < / div > < div class = "ttdoc" > SetBlendShapeTargetDeltasCommand is used to change blend shape target deltas.< / div > < div class = "ttdef" > < b > Definition:< / b > SetBlendShapeTargetDeltasCommand.h:19< / div > < / div >
< div class = "ttc" id = "aclassdnac_1_1SetVertexPositionsCommand_html" > < div class = "ttname" > < a href = "classdnac_1_1SetVertexPositionsCommand.html" > dnac::SetVertexPositionsCommand< / a > < / div > < div class = "ttdoc" > SetVertexPositionsCommand is used to change vertex positions values.< / div > < div class = "ttdef" > < b > Definition:< / b > SetVertexPositionsCommand.h:19< / div > < / div >
< div class = "ttc" id = "anamespacedemo_html_aadf38580dced3eb97e396267c636d6dc" > < div class = "ttname" > < a href = "namespacedemo.html#aadf38580dced3eb97e396267c636d6dc" > demo.buildCommandList< / a > < / div > < div class = "ttdeci" > def buildCommandList()< / div > < div class = "ttdef" > < b > Definition:< / b > alib/python3/examples/demo.py:29< / div > < / div >
< / div > <!-- fragment -->
< p class = "reference" > Referenced by < a class = "el" href = "namespacedemo.html#a678487ef78664f96baab3c22238251af" > calibrateDNA()< / a > .< / p >
< / div >
< / div >
< a id = "a678487ef78664f96baab3c22238251af" name = "a678487ef78664f96baab3c22238251af" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a678487ef78664f96baab3c22238251af" > ◆ < / a > < / span > calibrateDNA()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > def demo.calibrateDNA < / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > < em > inputPath< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > < em > outputPath< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
2023-04-21 18:19:55 +08:00
< div class = "fragment" > < div class = "line" > < span class = "lineno" > 90< / span > < span class = "keyword" > def < / span > < a class = "code hl_function" href = "namespacedemo.html#a678487ef78664f96baab3c22238251af" > calibrateDNA< / a > (inputPath, outputPath):< / div >
< div class = "line" > < span class = "lineno" > 91< / span > dna = < a class = "code hl_function" href = "namespacedemo.html#ab7c7972424f00cc063b6ad4aad722579" > loadDNA< / a > (inputPath)< / div >
< div class = "line" > < span class = "lineno" > 92< / span > < / div >
< div class = "line" > < span class = "lineno" > 93< / span > < span class = "comment" > # Copies DNA contents and will serve as input/output parameter to commands< / span > < / div >
< div class = "line" > < span class = "lineno" > 94< / span > calibrated = < a class = "code hl_class" href = "classdnac_1_1DNACalibDNAReader.html" > dnac.DNACalibDNAReader< / a > (dna)< / div >
2022-11-28 19:21:26 +08:00
< div class = "line" > < span class = "lineno" > 95< / span > < / div >
2023-04-21 18:19:55 +08:00
< div class = "line" > < span class = "lineno" > 96< / span > commands = < a class = "code hl_function" href = "namespacedemo.html#aadf38580dced3eb97e396267c636d6dc" > buildCommandList< / a > ()< / div >
< div class = "line" > < span class = "lineno" > 97< / span > < / div >
< div class = "line" > < span class = "lineno" > 98< / span > print(< span class = "stringliteral" > " Running command sequence..." < / span > )< / div >
< div class = "line" > < span class = "lineno" > 99< / span > < span class = "comment" > # Modifies calibrated DNA in-place< / span > < / div >
< div class = "line" > < span class = "lineno" > 100< / span > commands.run(calibrated)< / div >
< div class = "line" > < span class = "lineno" > 101< / span > < / div >
< div class = "line" > < span class = "lineno" > 102< / span > print(< span class = "stringliteral" > " Saving DNA..." < / span > )< / div >
< div class = "line" > < span class = "lineno" > 103< / span > < a class = "code hl_function" href = "namespacedemo.html#aacb48e99c2628919435e08bb7fc75aa8" > saveDNA< / a > (calibrated, outputPath)< / div >
2022-11-28 19:21:26 +08:00
< div class = "line" > < span class = "lineno" > 104< / span > < / div >
2023-04-21 18:19:55 +08:00
< div class = "line" > < span class = "lineno" > 105< / span > print(< span class = "stringliteral" > " Done." < / span > )< / div >
< div class = "line" > < span class = "lineno" > 106< / span > < / div >
2022-11-28 19:21:26 +08:00
< div class = "ttc" id = "aclassdnac_1_1DNACalibDNAReader_html" > < div class = "ttname" > < a href = "classdnac_1_1DNACalibDNAReader.html" > dnac::DNACalibDNAReader< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > DNACalibDNAReader.h:12< / div > < / div >
2023-04-21 18:19:55 +08:00
< div class = "ttc" id = "anamespacedemo_html_a678487ef78664f96baab3c22238251af" > < div class = "ttname" > < a href = "namespacedemo.html#a678487ef78664f96baab3c22238251af" > demo.calibrateDNA< / a > < / div > < div class = "ttdeci" > def calibrateDNA(inputPath, outputPath)< / div > < div class = "ttdef" > < b > Definition:< / b > alib/python3/examples/demo.py:90< / div > < / div >
2022-11-28 19:21:26 +08:00
< div class = "ttc" id = "anamespacedemo_html_aacb48e99c2628919435e08bb7fc75aa8" > < div class = "ttname" > < a href = "namespacedemo.html#aacb48e99c2628919435e08bb7fc75aa8" > demo.saveDNA< / a > < / div > < div class = "ttdeci" > def saveDNA(reader, path)< / div > < div class = "ttdef" > < b > Definition:< / b > alib/python3/examples/demo.py:18< / div > < / div >
< div class = "ttc" id = "anamespacedemo_html_ab7c7972424f00cc063b6ad4aad722579" > < div class = "ttname" > < a href = "namespacedemo.html#ab7c7972424f00cc063b6ad4aad722579" > demo.loadDNA< / a > < / div > < div class = "ttdeci" > def loadDNA(path)< / div > < div class = "ttdef" > < b > Definition:< / b > python3/examples/demo.py:26< / div > < / div >
< / div > <!-- fragment -->
< p class = "reference" > References < a class = "el" href = "namespacedemo.html#aadf38580dced3eb97e396267c636d6dc" > buildCommandList()< / a > , < a class = "el" href = "namespacedemo.html#a678487ef78664f96baab3c22238251af" > calibrateDNA()< / a > , < a class = "el" href = "namespacedemo.html#ab7c7972424f00cc063b6ad4aad722579" > loadDNA()< / a > , < a class = "el" href = "namespacedemo.html#a52b1010be750a7388115a9bbfb0c3284" > main()< / a > , and < a class = "el" href = "namespacedemo.html#aacb48e99c2628919435e08bb7fc75aa8" > saveDNA()< / a > .< / p >
< p class = "reference" > Referenced by < a class = "el" href = "namespacedemo.html#a678487ef78664f96baab3c22238251af" > calibrateDNA()< / a > .< / p >
< / div >
< / div >
< a id = "a60ef2641a92b59940e2e59d1e542b4dd" name = "a60ef2641a92b59940e2e59d1e542b4dd" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a60ef2641a92b59940e2e59d1e542b4dd" > ◆ < / a > < / span > createDNA()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > def demo.createDNA < / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > < em > path< / em > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< div class = "fragment" > < div class = "line" > < span class = "lineno" > 7< / span > < span class = "keyword" > def < / span > < a class = "code hl_function" href = "namespacedemo.html#a60ef2641a92b59940e2e59d1e542b4dd" > createDNA< / a > (path):< / div >
< div class = "line" > < span class = "lineno" > 8< / span > stream = < a class = "code hl_class" href = "classtrio_1_1FileStream.html" > dna.FileStream< / a > (path, dna.FileStream.AccessMode_Write, dna.FileStream.OpenMode_Binary)< / div >
< div class = "line" > < span class = "lineno" > 9< / span > writer = < a class = "code hl_class" href = "classdna_1_1BinaryStreamWriter.html" > dna.BinaryStreamWriter< / a > (stream)< / div >
< div class = "line" > < span class = "lineno" > 10< / span > < / div >
< div class = "line" > < span class = "lineno" > 11< / span > writer.setName(< span class = "stringliteral" > " rig name" < / span > )< / div >
< div class = "line" > < span class = "lineno" > 12< / span > writer.setLODCount(4)< / div >
< div class = "line" > < span class = "lineno" > 13< / span > writer.setJointName(0, < span class = "stringliteral" > " spine" < / span > )< / div >
< div class = "line" > < span class = "lineno" > 14< / span > writer.setJointName(1, < span class = "stringliteral" > " neck" < / span > )< / div >
< div class = "line" > < span class = "lineno" > 15< / span > < / div >
< div class = "line" > < span class = "lineno" > 16< / span > writer.setMeshName(0, < span class = "stringliteral" > " head" < / span > )< / div >
< div class = "line" > < span class = "lineno" > 17< / span > writer.setVertexPositions(0, [[0.0, 0.5, 0.3], [1.0, 3.0, -8.0]])< / div >
< div class = "line" > < span class = "lineno" > 18< / span > writer.setVertexTextureCoordinates(0, [[0.25, 0.55], [1.5, 3.6]])< / div >
< div class = "line" > < span class = "lineno" > 19< / span > < / div >
< div class = "line" > < span class = "lineno" > 20< / span > writer.write()< / div >
< div class = "line" > < span class = "lineno" > 21< / span > < span class = "keywordflow" > if< / span > < span class = "keywordflow" > not< / span > dna.Status.isOk():< / div >
< div class = "line" > < span class = "lineno" > 22< / span > status = dna.Status.get()< / div >
< div class = "line" > < span class = "lineno" > 23< / span > < span class = "keywordflow" > raise< / span > RuntimeError(< span class = "stringliteral" > " Error saving DNA: {}" < / span > .format(status.message))< / div >
< div class = "line" > < span class = "lineno" > 24< / span > < / div >
< div class = "line" > < span class = "lineno" > 25< / span > < / div >
< div class = "ttc" id = "aclassdna_1_1BinaryStreamWriter_html" > < div class = "ttname" > < a href = "classdna_1_1BinaryStreamWriter.html" > dna::BinaryStreamWriter< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > BinaryStreamWriter.h:11< / div > < / div >
< div class = "ttc" id = "aclasstrio_1_1FileStream_html" > < div class = "ttname" > < a href = "classtrio_1_1FileStream.html" > trio::FileStream< / a > < / div > < div class = "ttdoc" > Standard file stream.< / div > < div class = "ttdef" > < b > Definition:< / b > FileStream.h:13< / div > < / div >
< div class = "ttc" id = "anamespacedemo_html_a60ef2641a92b59940e2e59d1e542b4dd" > < div class = "ttname" > < a href = "namespacedemo.html#a60ef2641a92b59940e2e59d1e542b4dd" > demo.createDNA< / a > < / div > < div class = "ttdeci" > def createDNA(path)< / div > < div class = "ttdef" > < b > Definition:< / b > python3/examples/demo.py:7< / div > < / div >
< / div > <!-- fragment -->
< p class = "reference" > Referenced by < a class = "el" href = "namespacedemo.html#a52b1010be750a7388115a9bbfb0c3284" > main()< / a > .< / p >
< / div >
< / div >
< a id = "ab7c7972424f00cc063b6ad4aad722579" name = "ab7c7972424f00cc063b6ad4aad722579" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ab7c7972424f00cc063b6ad4aad722579" > ◆ < / a > < / span > loadDNA()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > def demo.loadDNA < / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > < em > path< / em > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< div class = "fragment" > < div class = "line" > < span class = "lineno" > 26< / span > < span class = "keyword" > def < / span > < a class = "code hl_function" href = "namespacedemo.html#ab7c7972424f00cc063b6ad4aad722579" > loadDNA< / a > (path):< / div >
< div class = "line" > < span class = "lineno" > 27< / span > stream = < a class = "code hl_class" href = "classtrio_1_1FileStream.html" > dna.FileStream< / a > (path, dna.FileStream.AccessMode_Read, dna.FileStream.OpenMode_Binary)< / div >
< div class = "line" > < span class = "lineno" > 28< / span > reader = < a class = "code hl_class" href = "classdna_1_1BinaryStreamReader.html" > dna.BinaryStreamReader< / a > (stream, dna.DataLayer_All)< / div >
< div class = "line" > < span class = "lineno" > 29< / span > reader.read()< / div >
< div class = "line" > < span class = "lineno" > 30< / span > < span class = "keywordflow" > if< / span > < span class = "keywordflow" > not< / span > dna.Status.isOk():< / div >
< div class = "line" > < span class = "lineno" > 31< / span > status = dna.Status.get()< / div >
< div class = "line" > < span class = "lineno" > 32< / span > < span class = "keywordflow" > raise< / span > RuntimeError(< span class = "stringliteral" > " Error loading DNA: {}" < / span > .format(status.message))< / div >
< div class = "line" > < span class = "lineno" > 33< / span > < span class = "keywordflow" > return< / span > reader< / div >
< div class = "line" > < span class = "lineno" > 34< / span > < / div >
< div class = "line" > < span class = "lineno" > 35< / span > < / div >
< div class = "ttc" id = "aclassdna_1_1BinaryStreamReader_html" > < div class = "ttname" > < a href = "classdna_1_1BinaryStreamReader.html" > dna::BinaryStreamReader< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > BinaryStreamReader.h:12< / div > < / div >
< / div > <!-- fragment -->
< p class = "reference" > Referenced by < a class = "el" href = "namespacedemo.html#a678487ef78664f96baab3c22238251af" > calibrateDNA()< / a > , and < a class = "el" href = "namespacedemo.html#a52b1010be750a7388115a9bbfb0c3284" > main()< / a > .< / p >
< / div >
< / div >
< a id = "a52b1010be750a7388115a9bbfb0c3284" name = "a52b1010be750a7388115a9bbfb0c3284" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a52b1010be750a7388115a9bbfb0c3284" > ◆ < / a > < / span > main()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > def demo.main < / td >
< td > (< / td >
< td class = "paramname" > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< div class = "fragment" > < div class = "line" > < span class = "lineno" > 57< / span > < span class = "keyword" > def < / span > < a class = "code hl_function" href = "namespacedemo.html#a52b1010be750a7388115a9bbfb0c3284" > main< / a > ():< / div >
< div class = "line" > < span class = "lineno" > 58< / span > parser = argparse.ArgumentParser(description=< span class = "stringliteral" > " DNA demo" < / span > )< / div >
< div class = "line" > < span class = "lineno" > 59< / span > parser.add_argument(< span class = "stringliteral" > ' dna_path' < / span > ,< / div >
< div class = "line" > < span class = "lineno" > 60< / span > metavar=< span class = "stringliteral" > ' dna_path' < / span > ,< / div >
< div class = "line" > < span class = "lineno" > 61< / span > help=< span class = "stringliteral" > ' Path where to save the DNA file' < / span > )< / div >
< div class = "line" > < span class = "lineno" > 62< / span > < / div >
< div class = "line" > < span class = "lineno" > 63< / span > args = parser.parse_args()< / div >
< div class = "line" > < span class = "lineno" > 64< / span > < / div >
< div class = "line" > < span class = "lineno" > 65< / span > < a class = "code hl_function" href = "namespacedemo.html#a60ef2641a92b59940e2e59d1e542b4dd" > createDNA< / a > (args.dna_path)< / div >
< div class = "line" > < span class = "lineno" > 66< / span > dnaReader = < a class = "code hl_function" href = "namespacedemo.html#ab7c7972424f00cc063b6ad4aad722579" > loadDNA< / a > (args.dna_path)< / div >
< div class = "line" > < span class = "lineno" > 67< / span > < a class = "code hl_function" href = "namespacedemo.html#aa63452ff68c465e6b82d88d2f07ea34e" > printDNASummary< / a > (dnaReader)< / div >
< div class = "line" > < span class = "lineno" > 68< / span > < / div >
< div class = "line" > < span class = "lineno" > 69< / span > < / div >
< div class = "ttc" id = "anamespacedemo_html_a52b1010be750a7388115a9bbfb0c3284" > < div class = "ttname" > < a href = "namespacedemo.html#a52b1010be750a7388115a9bbfb0c3284" > demo.main< / a > < / div > < div class = "ttdeci" > def main()< / div > < div class = "ttdef" > < b > Definition:< / b > python3/examples/demo.py:57< / div > < / div >
< div class = "ttc" id = "anamespacedemo_html_aa63452ff68c465e6b82d88d2f07ea34e" > < div class = "ttname" > < a href = "namespacedemo.html#aa63452ff68c465e6b82d88d2f07ea34e" > demo.printDNASummary< / a > < / div > < div class = "ttdeci" > def printDNASummary(dnaReader)< / div > < div class = "ttdef" > < b > Definition:< / b > python3/examples/demo.py:36< / div > < / div >
< / div > <!-- fragment -->
< p class = "reference" > References < a class = "el" href = "namespacedemo.html#a60ef2641a92b59940e2e59d1e542b4dd" > createDNA()< / a > , < a class = "el" href = "namespacedemo.html#ab7c7972424f00cc063b6ad4aad722579" > loadDNA()< / a > , < a class = "el" href = "namespacedemo.html#a52b1010be750a7388115a9bbfb0c3284" > main()< / a > , and < a class = "el" href = "namespacedemo.html#aa63452ff68c465e6b82d88d2f07ea34e" > printDNASummary()< / a > .< / p >
< p class = "reference" > Referenced by < a class = "el" href = "namespacedemo.html#a678487ef78664f96baab3c22238251af" > calibrateDNA()< / a > , and < a class = "el" href = "namespacedemo.html#a52b1010be750a7388115a9bbfb0c3284" > main()< / a > .< / p >
< / div >
< / div >
< a id = "aa63452ff68c465e6b82d88d2f07ea34e" name = "aa63452ff68c465e6b82d88d2f07ea34e" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#aa63452ff68c465e6b82d88d2f07ea34e" > ◆ < / a > < / span > printDNASummary()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > def demo.printDNASummary < / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > < em > dnaReader< / em > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< div class = "fragment" > < div class = "line" > < span class = "lineno" > 36< / span > < span class = "keyword" > def < / span > < a class = "code hl_function" href = "namespacedemo.html#aa63452ff68c465e6b82d88d2f07ea34e" > printDNASummary< / a > (dnaReader):< / div >
< div class = "line" > < span class = "lineno" > 37< / span > print(< span class = "stringliteral" > " Name: {}" < / span > .format(dnaReader.getName()))< / div >
< div class = "line" > < span class = "lineno" > 38< / span > print(< span class = "stringliteral" > " Joint count: {}" < / span > .format(dnaReader.getJointCount()))< / div >
< div class = "line" > < span class = "lineno" > 39< / span > jointNames = < span class = "stringliteral" > ' , ' < / span > .join(dnaReader.getJointName(i) < span class = "keywordflow" > for< / span > i < span class = "keywordflow" > in< / span > range(dnaReader.getJointCount()))< / div >
< div class = "line" > < span class = "lineno" > 40< / span > print(< span class = "stringliteral" > " Joint names: " < / span > + jointNames)< / div >
< div class = "line" > < span class = "lineno" > 41< / span > < / div >
< div class = "line" > < span class = "lineno" > 42< / span > < span class = "keywordflow" > for< / span > meshIdx < span class = "keywordflow" > in< / span > range(dnaReader.getMeshCount()):< / div >
< div class = "line" > < span class = "lineno" > 43< / span > < span class = "comment" > # Get vertices one by one< / span > < / div >
< div class = "line" > < span class = "lineno" > 44< / span > < span class = "keywordflow" > for< / span > vtxId < span class = "keywordflow" > in< / span > range(dnaReader.getVertexPositionCount(meshIdx)):< / div >
< div class = "line" > < span class = "lineno" > 45< / span > vtx = dnaReader.getVertexPosition(meshIdx, vtxId)< / div >
< div class = "line" > < span class = "lineno" > 46< / span > print(< span class = "stringliteral" > " Mesh {} - Vertex {} : {}" < / span > .format(meshIdx, vtxId, vtx))< / div >
< div class = "line" > < span class = "lineno" > 47< / span > < span class = "comment" > # Get all X / Y / Z coordinates< / span > < / div >
< div class = "line" > < span class = "lineno" > 48< / span > print(dnaReader.getVertexPositionXs(meshIdx))< / div >
< div class = "line" > < span class = "lineno" > 49< / span > print(dnaReader.getVertexPositionYs(meshIdx))< / div >
< div class = "line" > < span class = "lineno" > 50< / span > print(dnaReader.getVertexPositionZs(meshIdx))< / div >
< div class = "line" > < span class = "lineno" > 51< / span > < / div >
< div class = "line" > < span class = "lineno" > 52< / span > < span class = "keywordflow" > for< / span > tcIdx < span class = "keywordflow" > in< / span > range(dnaReader.getVertexTextureCoordinateCount(meshIdx)):< / div >
< div class = "line" > < span class = "lineno" > 53< / span > texCoord = dnaReader.getVertexTextureCoordinate(meshIdx, tcIdx)< / div >
< div class = "line" > < span class = "lineno" > 54< / span > print(< span class = "stringliteral" > " Mesh {} - Texture coordinate {} : {}" < / span > .format(meshIdx, tcIdx, texCoord))< / div >
< div class = "line" > < span class = "lineno" > 55< / span > < / div >
< div class = "line" > < span class = "lineno" > 56< / span > < / div >
< / div > <!-- fragment -->
< p class = "reference" > Referenced by < a class = "el" href = "namespacedemo.html#a52b1010be750a7388115a9bbfb0c3284" > main()< / a > .< / p >
< / div >
< / div >
< a id = "aacb48e99c2628919435e08bb7fc75aa8" name = "aacb48e99c2628919435e08bb7fc75aa8" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#aacb48e99c2628919435e08bb7fc75aa8" > ◆ < / a > < / span > saveDNA()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > def demo.saveDNA < / td >
< td > (< / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > < em > reader< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" >   < / td >
< td class = "paramname" > < em > path< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< div class = "fragment" > < div class = "line" > < span class = "lineno" > 18< / span > < span class = "keyword" > def < / span > < a class = "code hl_function" href = "namespacedemo.html#aacb48e99c2628919435e08bb7fc75aa8" > saveDNA< / a > (reader, path):< / div >
< div class = "line" > < span class = "lineno" > 19< / span > stream = < a class = "code hl_class" href = "classtrio_1_1FileStream.html" > dna.FileStream< / a > (path, dna.FileStream.AccessMode_Write, dna.FileStream.OpenMode_Binary)< / div >
< div class = "line" > < span class = "lineno" > 20< / span > writer = < a class = "code hl_class" href = "classdna_1_1BinaryStreamWriter.html" > dna.BinaryStreamWriter< / a > (stream)< / div >
< div class = "line" > < span class = "lineno" > 21< / span > writer.setFrom(reader)< / div >
< div class = "line" > < span class = "lineno" > 22< / span > writer.write()< / div >
< div class = "line" > < span class = "lineno" > 23< / span > < / div >
< div class = "line" > < span class = "lineno" > 24< / span > < span class = "keywordflow" > if< / span > < span class = "keywordflow" > not< / span > dna.Status.isOk():< / div >
< div class = "line" > < span class = "lineno" > 25< / span > status = dna.Status.get()< / div >
< div class = "line" > < span class = "lineno" > 26< / span > < span class = "keywordflow" > raise< / span > RuntimeError(< span class = "stringliteral" > " Error saving DNA: {}" < / span > .format(status.message))< / div >
< div class = "line" > < span class = "lineno" > 27< / span > < / div >
< div class = "line" > < span class = "lineno" > 28< / span > < / div >
< / div > <!-- fragment -->
< p class = "reference" > Referenced by < a class = "el" href = "namespacedemo.html#a678487ef78664f96baab3c22238251af" > calibrateDNA()< / a > .< / p >
< / div >
< / div >
< / div > <!-- contents -->
<!-- start footer part -->
< hr class = "footer" / > < address class = "footer" > < small >
Generated by  < a href = "https://www.doxygen.org/index.html" > < img class = "footer" src = "doxygen.svg" width = "104" height = "31" alt = "doxygen" / > < / a > 1.9.4
< / small > < / address >
< / body >
< / html >