[x3d-public] X3D Working Group agenda 20 JAN 2023: comment review for C, C++, C# draft specifications

GPU Group gpugroup at gmail.com
Fri Jan 20 05:17:11 PST 2023


Round3 review of C-SAI
SAI field structs have no memory allocation data. They have various scalars
- pointers to functions, some ID, and get the data from the server on
demand and pass to the server on demand. So the structs are suitable as
stack variables, except something needs to initialize their function
pointers and ID.
Normally SAI users aren't creating nodes and fields - they are fetching
already created nodes on the server, and so a call to get a particular
field will return a struct that has its function pointers initialized. When
a node or field is created, the server will do the allocation on the
server, and put the node in its own garbage collection list, so its not
necessary for the SAI application to specifically delete the node. The
server instance may out-last the SAI application.
Matrix - are local. There's no server allocation. No allocation is needed,
float _data[16] can be in every matrix struct, and the structs passed
around like normal stack variables. The problem is initialization, to
populate the function pointers:
{
Matrix A = newMatrix(); // struct initialized on rhs right hand side and
copied element-wise to matrix struc on lhs
Matrix B = newMatrix() // ditto
Matrix C = A.mulitply( B );  // Matrix B copied element wise to stack
variable and passed to multiply function, function return struct gets
copied elementwise to Matrix C including function pointers and float
_data[16];
} //end of local scope, A, B, C structs popped off stack. No mallocs were
done, so no frees needed

On Thu, Jan 19, 2023 at 4:14 PM GPU Group <gpugroup at gmail.com> wrote:

> Round 2 review of C SAI
>
> I scraped Annex A field structs
> http://www.web3d.org/specifications/ISO-IEC19777/ISO-IEC19777-3v3.3-DIS/
>
> http://www.web3d.org/specifications/ISO-IEC19777/ISO-IEC19777-3v3.3-DIS/Part03/abstracts.html
> pasted into a C program and tried compiling. It didn't compile.
> I hacked for a few hours and got them to compile.
>
> https://drive.google.com/file/d/1fTZfD8geN4_kSP1gow35eiElkMTvj6vH/view?usp=sharing
>
> CSAI_check2.c
> 1 small repetitive syntax errors > missing or double semi-colon
> 2 enums different in C, don't put a type int for each value
> 3 throw / exceptions not defined in C (there is a way to do it, but not
> standard or normal)
> 4 function name overloading not permitted in C -- use a different name or
> simplify the options
> 5 MF values being returned via getValue need to return a *size, there's no
> hint in float ** value as to how many SFs there are.
>
>
> Review of CSAIExamples
> - compiled and linked
> x unable to run, missing some dlls like mfc110d.dll
> - the author had C++ classes defined elsewhere (in a binary lib, X3DLib)
> in C++ and used a Microsoft technology AFX to wrap and expose those classes
> as flat C structs.
>
> class AFX_EXT_CLASS CSFColorRGBA : public CX3DField
>
> {
>
>           DECLARE_DYNAMIC(CSFColorRGBA);
>
> ...
> - there's an equivalent way to wrap classes manually in a lib, suitable
> for other operating systems
> http://www.faqs.org/docs/Linux-mini/C++-dlopen.html
> Common to both methods: there are 2 functions in addition to the struct
> representing a class:
> - create()
> - destroy(void *)
> In C++ a class instance can allocate memory when creating an object and
> when the object goes out of local scope { }
>  a destructor defined by the class author, is automatically called to
> deallocate the memory. C doesn't have this feature, the application must
> explicitly call something to deallocate.
> This affects strategy when defining functions:
> Matrix3f {
>    Matrix3f multiply( void *this, Matrix3f rhs); //bad, C++ copy
> constructor called on rhs when passed in, and on return value
>    Matrix3f multiply( void *this, Matrix3f *lhs, Matrix3f *rhs ); //
> better, programmer is in charge of explicitly creating and destroying lhs
> and rhs
> }
> Or that's what it looked like to me with limited time to review
> -Doug
>
> On Thu, Jan 19, 2023 at 8:25 AM Brutzman, Donald (Don) (CIV) <
> brutzman at nps.edu> wrote:
>
>> We meet at our regular time tomorrow, 0900-1000 pacific Friday 20 JAN.
>>
>>
>>
>> First we will briefly review updates to the following important status
>> resource, discussing next steps.
>>
>>    - *Updated.* X3D Node Inventory Comparison
>>    <https://www.web3d.org/specifications/X3dNodeInventoryComparison.xlsx>
>>     (.pdf
>>    <https://www.web3d.org/specifications/X3dNodeInventoryComparison.pdf>)
>>    shows node-by-node implementation coverage of the
>>    X3D Abstract Specification: validation using X3D Schema, X3D DOCTYPE, and
>>    X3D Schematron; X3D Tooltips and VRML97 node sets; plus selected
>>    open-source implementations: FreeWrl, X3DOM, X_ITE, view3dscene (Castle
>>    Game Engine), X3D-Edit, Xj3D.
>>    - https://www.web3d.org/specifications/X3dNodeInventoryComparison.xlsx
>>    - https://www.web3d.org/specifications/X3dNodeInventoryComparison.pdf
>>
>>
>>
>> Our primary goal is to review all comments on the C, C++, C# draft
>> specifications and ensure they are captured appropriately in the Web3D
>> Consortium Mantis Issue Tracker. Results will be submitted to ISO.
>>
>>
>>
>> All participation is welcome.  Last week’s minutes attached for
>> convenience.  Have fun with X3D! 8)
>>
>>
>>
>> all the best, Don
>>
>> --
>>
>> Don Brutzman  Naval Postgraduate School, Code USW/Br
>> brutzman at nps.edu
>>
>> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA
>> +1.831.656.2149
>>
>> X3D graphics, virtual worlds, Navy robotics https://
>> faculty.nps.edu/brutzman
>>
>>
>>
>> *From:* Brutzman, Donald (Don) (CIV) brutzman at nps.edu
>> *Sent:* Friday, January 13, 2023 10:40 AM
>> *To:* X3D Public Mailing List (x3d-public at web3d.org) x3d-public at web3d.org
>> *Cc:* Brutzman, Donald (Don) (CIV) brutzman at nps.edu
>> *Subject:* X3D Working Group minutes 13 JAN 2023: refined goals, ISO
>> specification updates, X3D4 implementation upgrade guidelines?
>>
>>
>>
>> Happy Friday 13th everyone!  (bwa ha ha…)
>>
>>
>>
>> Today we held our regular weekly meeting of X3D Working Group, Friday 13
>> January 2023 at 09-10 pacific.  Connection information and topics follow.
>>
>>
>>
>>    -
>>    https://us02web.zoom.us/j/81634670698?pwd=a1VPeU5tN01rc21Oa3hScUlHK0Rxdz09
>>    - https://zoom.us/j/148206572  Password 483805
>>    - https://www.web3d.org/member/teleconference-information
>>
>>
>>
>> Attendees: Anita Havele, Nicholas Polys, Dick Puk, Doug Sanden, Don
>> Brutzman.
>>
>>
>>
>>
>>
>>    1. *Goal statement review*.  Our primary activities for X3D Working
>>    Group in 2023 are focused on broad and correct deployment.  Refined:
>>
>>
>>
>>    1. Encourage consistent rendering, interaction and usage for the many
>>    tremendous capabilities in X3D4.
>>    2. Update ISO specifications and implementations for multiple
>>    programming languages and file encodings to match X3D4.
>>
>>
>>
>> The dozen corresponding standards to receive these updates are
>> illustrated as follows:
>>
>>
>>
>>    - X3D Graphics Standards Relationships
>>    -
>>    https://web3d.org/specifications/X3dGraphicsStandardsRelationships.png
>>
>>
>>
>>
>>
>>    1. *Milestone: X3D4 Architecture Finalization*.
>>
>>
>>
>> Last Tuesday we held a totally successful ISO Editors meeting for X3D4
>> Architecture Draft International Specification (DIS).  ISO review and
>> approval deliberations continue.
>>
>>
>>
>> Today we reviewed progress, changes and next steps following.  Almost
>> finally, finally done locking in all details…
>>
>>
>>
>>    - X3D4: Extensible 3D (X3D) Part 1: Architecture and base components,
>>    ISO/IEC 19775-1:2022
>>    -
>>    https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/Architecture.html
>>
>>
>>
>>    - Mantis Issue Tracker
>>    - https://www.web3d.org/member-only/mantis/view_all_bug_page.php
>>
>>
>>
>> Mantis issues are being updated to track all of the agreed-upon ISO
>> changes correctly.
>>
>>
>>
>> Given the formally approved list of X3D4 Architecture changes, we can
>> finally proceed with document editing.  Next step is to apply CSS-markup
>> highlighted changes to the current DIS source for group review.
>>
>>
>>
>> Proposed github location for that draft:
>>
>>
>>
>>    - Web3D Consortium GitHub Archive
>>    - https://github.com/Web3dConsortium
>>    -
>>    https://github.com/Web3DConsortium/X3D/tree/master/ISO-IEC19775/ISO-IEC19775-1/ISO-IEC19775-1v4.0/ISO-IEC19775-1v4-DIS
>>    - ISO-IEC19775-1v4-ProposedIS will be new directory location,
>>    eventual rename to “IS” once accepted by ISO
>>
>>
>>
>> X3D schema, DTD, X3DUOM, X3DJSAIL updates in progress, so far so good.
>> Have applied most validation-related changes.  Initial
>> recapitalization/dehyphenization of Web Audio-related enumerations to
>> follow.
>>
>>
>>
>> Forward thinkers can rest assured that no good ideas regarding X3D
>> evolution that didn’t “make the final ISO cut” are getting lost.  All
>> future possibilities will continue to be tracked in Mantis and designated
>> as future X3D 4.1.
>>
>>
>>
>>
>>
>>    1. *Web3D Review of C, C++, C# draft standards for X3D 3.3.*
>>
>>
>>
>> Deadline is imminent, we intend to review all comments next week.  Based
>> on that review, X3D Working Group will make a recommendation to Web3D Board
>> of Directors regarding Consortium and community inputs on specification
>> readiness.
>>
>>
>>
>>
>>
>>    1. *Preparing for Outreach*.
>>
>>
>>
>> We discussed how to communicate the soon-to-happen approval of X3D 4.0 by
>> ISO, including possible testimonials by members, implementers, authors,
>> users, Standards Development Organization (SDO) partners, et al.
>>
>>
>>
>> *All testimonial statements are welcome.*  Web3D Consortium Executive
>> Director Anita Havele to participate.
>>
>>
>>
>>
>>
>>    1. *X3D Node Inventory Comparison*.
>>
>>
>>
>> We took another look at this spreadsheet, let’s prepare to regularly
>> update.  Multiple other assets can also be used by implementers to support
>> upgrading to X3D4.
>>
>>
>>
>>    - X3D Specifications: Schema and DOCTYPE Validation
>>    - https://www.web3d.org/specifications
>>    - These assets are commonly used for XML validation of X3D scenes,
>>    and in-depth documentation is also provided here.
>>
>>
>>
>>    - X3D Node Inventory Comparison (.pdf) shows node-by-node
>>    implementation coverage of the X3D Abstract Specification: validation using
>>    X3D Schema, X3D DOCTYPE, and X3D Schematron; X3D Tooltips and VRML97 node
>>    sets; plus selected open-source implementations: FreeWrl, X3DOM, X_ITE,
>>    view3dscene (Castle Game Engine), X3D-Edit, Xj3D.
>>    - https://www.web3d.org/specifications/X3dNodeInventoryComparison.xslx
>>    (master in version control)
>>    - https://www.web3d.org/specifications/X3dNodeInventoryComparison.pdf
>>    - This will be updated to X3D 4.0 latest, with changes highlighted in
>>    yellow
>>
>>
>>
>>    - X3D Tooltips 4.0 also highlights all changes in yellow
>>    - https://www.web3d.org/x3d/tooltips/X3dTooltips.html
>>    - For example, Anchor tooltips:
>>    - https://www.web3d.org/x3d/tooltips/X3dTooltips.html#Anchor
>>
>>
>>
>>    - The X3D4 Architecture specification itself also reveals specific
>>    changes to nodes and fields, from versions 3.0, 3.1, 3.2, 3.3 and 4.0:
>>    - X3D4 Architecture, Annex Z, Version Content
>>    -
>>    https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/versionContent.html
>>    - For example, looking at Anchor node, you can see in rightmost
>>    column that v4.0 adds load, bboxDisplay, autoRefreshTimeLimit etc.
>>
>>
>>
>> Suggested: should we create an X3D4 Migration Guide to help
>> implementers?  Seems like an excellent idea, also “rings true” with our
>> initial goal statements today.
>>
>>
>>
>> *Volunteers please?  *Creating some form of X3D4 Migration Guide
>> checklist to assist implementers might be quite useful.  Also an excellent
>> professional opportunity for experts and consultants to demonstrate (and
>> upgrade) their expertise.
>>
>>
>>
>>
>>
>>    1. *All other business*.
>>
>>
>>
>> Good discussions on download statistics (X3D-Edit, FreeWrl) and a variety
>> of other topics... we’re having fun now!
>>
>>
>>
>> As ever, many thanks for the work of many contributors.  Deep breath… wow.
>>
>>
>>
>> No Web3D member-only information is included in these minutes… but please
>> do note: several valuable items documented here have Web3D member-only
>> access.
>>
>>
>>
>> Consortium membership has value!  *Please consider joining*.
>>
>>
>>
>>    - Join the Web3D Consortium
>>    - https://www.web3d.org/join
>>
>>
>>
>> Have fun with X3D4!   8)
>>
>>
>>
>> all the best, Don
>>
>> --
>>
>> Don Brutzman  Naval Postgraduate School, Code USW/Br
>> brutzman at nps.edu
>>
>> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA
>> +1.831.656.2149
>>
>> X3D graphics, virtual worlds, Navy robotics https://
>> faculty.nps.edu/brutzman
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> all the best, Don
>>
>> --
>>
>> Don Brutzman  Naval Postgraduate School, Code USW/Br
>> brutzman at nps.edu
>>
>> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA
>> +1.831.656.2149
>>
>> X3D graphics, virtual worlds, Navy robotics https://
>> faculty.nps.edu/brutzman
>>
>>
>> _______________________________________________
>> x3d-public mailing list
>> x3d-public at web3d.org
>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230120/160962cd/attachment-0001.html>


More information about the x3d-public mailing list