<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>