<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
</head>
<body>
<p>Don, Myeong, Doug,<br>
</p>
<p>I noticed that there are no virtual methods in the C++ spec SAI I
got (examples, yes, except for ~SAIExample5()) on
drive.google.com. I do not think they are necessary, but may be
useful when defining subclasses for people who want to subclass
from the SAI abstract and concrete nodes.
<a class="moz-txt-link-freetext" href="https://www.geeksforgeeks.org/virtual-function-cpp/">https://www.geeksforgeeks.org/virtual-function-cpp/</a> Note that most
methods are virtual in Java, without the keyword. I think virtual
methods are slower than regular methods, last I heard. But I'm
pretty sure all destructors should be virtual? I've forgotten.
Some discussion whether destructors should be present in the spec
is welcome. The virtual destructor ensures that the superclass
destructor is not called.<br>
</p>
<p>I think it would be useful to have Doug Sanden review the
abstract and concrete class and structs before making big
decisions.<br>
</p>
<p>I am also unsure why the first parameter to many C function
pointer declarations is void* instead of passing a pointer to a
struct type?</p>
<p>In all cases, C/C++/C# it might be useful for setter functions
and members to return this or *this, instead of void. We need
set functions to return this for creating builders I'm fairly
sure. (In C SAI, the first parameter is called this, it's not a
keyword that I know of).<br>
</p>
<p>I'm glad I am reviewing this! We'll see if anything else pops
into my head after I send the message!</p>
<p>Thanks,</p>
<p>John<br>
</p>
<div class="moz-cite-prefix">On 8/20/21 1:46 PM, Brutzman, Donald
(Don) (CIV) wrote:<br>
</div>
<blockquote type="cite"
cite="mid:BY3PR13MB48841102DEE63061F5BD9DC8C4C19@BY3PR13MB4884.namprd13.prod.outlook.com">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
<meta name="Generator" content="Microsoft Word 15 (filtered
medium)">
<style>@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}@font-face
{font-family:Verdana;
panose-1:2 11 6 4 3 5 4 4 2 4;}p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}p.msonormal0, li.msonormal0, div.msonormal0
{mso-style-name:msonormal;
mso-margin-top-alt:auto;
margin-right:0in;
mso-margin-bottom-alt:auto;
margin-left:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}span.EmailStyle18
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:windowtext;}span.EmailStyle19
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:windowtext;}.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}div.WordSection1
{page:WordSection1;}ol
{margin-bottom:0in;}ul
{margin-bottom:0in;}</style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<div class="WordSection1">
<p class="MsoNormal">Attendees John Carlson, Vince Marchetti,
Dick Puk, Don Brutzman<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<ol style="margin-top:0in" type="1" start="1">
<li class="MsoListParagraph"
style="margin-left:-.25in;mso-list:l2 level1 lfo1">Very
useful discussion today, we reviewed proposed language
bindings<o:p></o:p></li>
</ol>
<ol style="margin-top:0in" type="a" start="1">
<li class="MsoListParagraph"
style="margin-left:0in;mso-list:l0 level1 lfo2">19755- 3, C<o:p></o:p></li>
<li class="MsoListParagraph"
style="margin-left:0in;mso-list:l0 level1 lfo2">19755- 4,
C++<o:p></o:p></li>
<li class="MsoListParagraph"
style="margin-left:0in;mso-list:l0 level1 lfo2">19755- 5, C#<o:p></o:p></li>
</ol>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">We discussed whether special treatment is
deserved for exposing these draft specifications. 22 Web3D
members have access to them now.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Language bindings need compilable
interfaces for ISO, and at least two implementations for
Web3D.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Close inspection of each shows that a
handful of example programs are available for test
development, and could be used as basis for
X3dToCCppCsharp.xslt conversion stylesheet.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Close inspection of detailed abstract
interfaces, and detailed node/statement implementations for
libraries are available (with some omissions). Each appears
quite similar to the others. Regeneration via X3DUOM of
compilable “header” or interface files matching the source
code in the HTML is possible.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">C and C++ language compilation is easily
possible using gcc compiler. Compilation of C# is not so
clear, some open-source implementations are available. Once
initial compilation of headers is accomplished, further
scrutiny and possible evolution of design patterns would be
straightforward. We’ll use gcc on the next round since it is
part of our build infrastructure already.<o:p></o:p></p>
<ul style="margin-top:0in" type="disc">
<li class="MsoListParagraph"
style="margin-left:0in;mso-list:l1 level1 lfo3">GCC, the GNU
Compiler Collection
<a href="https://gcc.gnu.org" moz-do-not-send="true">https://gcc.gnu.org</a>
<o:p></o:p></li>
<li class="MsoListParagraph"
style="margin-left:0in;mso-list:l1 level1 lfo3"><a
href="https://stackoverflow.com/questions/26078437/why-does-gcc-support-java-and-not-c-sharp"
moz-do-not-send="true">https://stackoverflow.com/questions/26078437/why-does-gcc-support-java-and-not-c-sharp</a>
<o:p></o:p></li>
</ul>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">We have enough that immediate sharing of
shared specifications can be deferred until broader discussion
is warranted. Sharing of generated code will help, and that
does not have to be restricted.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">We are concerned about personnel
availability, but will keep working on it step by step.<o:p></o:p></p>
<p class="MsoNormal"><br>
We will welcome all help and participation as the work
proceeds.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<ol style="margin-top:0in" type="1" start="2">
<li class="MsoListParagraph"
style="margin-left:-.25in;mso-list:l2 level1 lfo1">Mantis
issue progress is persevering steadily each week.<o:p></o:p></li>
</ol>
<p class="MsoNormal"><o:p> </o:p></p>
<ol style="margin-top:0in" type="1" start="2">
<ol style="margin-top:0in" type="a" start="1">
<li class="MsoListParagraph"
style="margin-left:-.25in;mso-list:l2 level2 lfo1">Mantis
1218 for creating a MetadataDate or MetadataTime node
needs to be deferred to X3D4.1. Meanwhile we might an
example scene demonstrating how to do such representations
with existing nodes, workably across all forms of X3D.
E.g. pseudocode examples:<o:p></o:p></li>
</ol>
</ol>
<p class="MsoListParagraph" style="margin-left:.75in"><MetadataDouble
name=”time” value=“0.0” reference=”Unix
reference of time with start at 1 JAN 1970”/><o:p></o:p></p>
<p class="MsoListParagraph" style="margin-left:.75in"><MetadataString
name=”TuesdayLunch” value=“24-AUG-2021-1200-pacific”
reference=”XSD, XML Schema Definition”/> <MetadataString
name=”ThankGoodnessItsMonday”
value=“23-AUG-2021-1200-pacific” reference=”ISO 8601 Time
standard”/> <o:p></o:p></p>
<p class="MsoListParagraph" style="margin-left:.75in">Any scene
of examples would be fully detailed and cross-referenced for
clarity.<o:p></o:p></p>
<p class="MsoListParagraph" style="margin-left:.75in"><span
style="font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;background:#F3F3F3">Mantis
1218: 07.2.4 MetadataDate - New node type, or new data type</span><o:p></o:p></p>
<p class="MsoListParagraph" style="margin-left:.75in"><a
href="https://www.web3d.org/member-only/mantis/view.php?id=1218"
moz-do-not-send="true">https://www.web3d.org/member-only/mantis/view.php?id=1218</a>
<o:p></o:p></p>
<p class="MsoListParagraph" style="margin-left:.75in"><o:p> </o:p></p>
<ol style="margin-top:0in" type="1" start="2">
<ol style="margin-top:0in" type="a" start="2">
<li class="MsoListParagraph"
style="margin-left:-.25in;mso-list:l2 level2 lfo1">Other
mantis issues are being fixed and addresses each week.
Membership has value.<o:p></o:p></li>
</ol>
</ol>
<p class="MsoListParagraph" style="margin-left:.75in"><a
href="https://www.web3d.org/member-only/mantis/view_all_bug_page.php"
moz-do-not-send="true">https://www.web3d.org/member-only/mantis/view_all_bug_page.php</a>
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks everyone for a worthy effort today.
Have fun with X3D! 8)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1
1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> Brutzman, Donald (Don)
(CIV) <br>
<b>Sent:</b> Friday, August 20, 2021 12:27 AM<br>
<b>To:</b> <a class="moz-txt-link-abbreviated" href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a><br>
<b>Cc:</b> Brutzman, Donald (Don) (CIV)
<a class="moz-txt-link-rfc2396E" href="mailto:brutzman@nps.edu"><brutzman@nps.edu></a><br>
<b>Subject:</b> X3D meeting agenda 20 AUG 2021, C C++ C#
and Mantis<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Regular weekly call once again this week,
Friday 10-1100 Pacific on Web3D conference line.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">We will review our approach to C C++ C#
encodings and also ongoing Mantis progress. Additional topics
welcome.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">all the best, Don<o:p></o:p></p>
<p class="MsoNormal"><span
style="font-size:10.0pt;font-family:"Courier New"">--
<o:p>
</o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.0pt;font-family:"Courier New"">Don
Brutzman Naval Postgraduate School, Code USW/Br
<a href="mailto:brutzman@nps.edu" moz-do-not-send="true">brutzman@nps.edu</a><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.0pt;font-family:"Courier New"">Watkins
270, MOVES Institute, Monterey CA 93943-5000 USA
+1.831.656.2149<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.0pt;font-family:"Courier New"">X3D
graphics, virtual worlds, navy robotics
<a href="http://faculty.nps.edu/brutzman"
moz-do-not-send="true">http://faculty.nps.edu/brutzman</a><o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
x3d-public mailing list
<a class="moz-txt-link-abbreviated" href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a>
<a class="moz-txt-link-freetext" href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a>
</pre>
</blockquote>
</body>
</html>