Commit Graph

211 Commits

Author SHA1 Message Date
Cirilo Bernardo 0ec15c9157 VRML plugin: VRML plugin. This patch modifies the behavior of the VRML name parser so that a name may be immediately succeeded by ] or }.
The previous behavior was to reject a valid name since the brace or bracket was considered an invalid character within a name.
2016-05-16 09:32:15 +02:00
Cirilo Bernardo c2a60d14d7 3D: fix issues reported by Coverity scan
*** CID 143752:  Incorrect expression  (USELESS_CALL)
*** CID 143751:  Incorrect expression  (UNUSED_VALUE)
*** CID 143749:  Uninitialized members  (UNINIT_CTOR)
*** CID 143748:  Uninitialized members  (UNINIT_CTOR)
*** CID 143747:  Uninitialized members  (UNINIT_CTOR)
*** CID 143746:  Uninitialized members  (UNINIT_CTOR)
*** CID 143745:  Uninitialized members  (UNINIT_CTOR)
*** CID 143744:  Uninitialized members  (UNINIT_CTOR)
*** CID 143740:  Null pointer dereferences  (NULL_RETURNS)
*** CID 143739:  Memory - corruptions  (MISMATCHED_ITERATOR)
*** CID 143735:  Integer handling issues  (CONSTANT_EXPRESSION_RESULT)
*** CID 143734:  Error handling issues  (CHECKED_RETURN)
2016-04-06 21:41:52 -04:00
Cirilo Bernardo 20b40aba1c Fixed bad delete/delete [] invocations and other warnings and errors as suggested by cppcheck 2016-04-05 20:32:22 +10:00
Cirilo Bernardo 18bb852030 Removed incorrect special treatment of commas within VRML files 2016-04-03 10:56:41 +10:00
Cirilo Bernardo 2dfd8064d4 Fix filename resolution within VRML2 Inline{} 2016-04-03 10:55:22 +10:00
Cirilo Bernardo 5e0e2538d0 Added comments to 3D Plugin CMake files regarding debugging output 2016-03-02 10:25:21 +11:00
Bernhard Stegmaier 5b0a250609 Fix compilation and install for OSX plus general code cleanup 2016-03-01 10:08:19 +11:00
Cirilo Bernardo 611d5de179 Removed code stubs for WWWInline support in VRML1; the construct will not be supported 2016-02-25 13:30:21 +11:00
Cirilo Bernardo 9195451e12 Switched SG* classes and plugin loader logging code from stderr to wxLogTrace 2016-02-23 17:46:22 +11:00
Cirilo Bernardo c5984b207b Changed IDF plugin debug log from stderr to wxLogTrace 2016-02-23 13:42:51 +11:00
Cirilo Bernardo b0a26f32ef Fixed bugs in VRML/X3D parser log code 2016-02-23 13:37:35 +11:00
Cirilo Bernardo d2a13efc12 Changed VRML2 parser debug output from stderr to wxLogTrace 2016-02-23 13:31:51 +11:00
Cirilo Bernardo d6af042c64 Revert accidental change to VRML logging levels 2016-02-23 11:21:15 +11:00
Cirilo Bernardo 14178ee521 Change logging of X3D and VRML1 parsers from stderr to wxLogTrace 2016-02-23 11:20:34 +11:00
Cirilo Bernardo 0d14fd0f9b Fix scaling bug in vrml2_box.cpp 2016-02-22 20:00:23 +11:00
Cirilo Bernardo 684e41358a Added support for VRML2 Inline{} 2016-02-22 19:59:07 +11:00
Cirilo Bernardo af0ac955b9 Merge with main branch r6576 2016-02-22 19:58:32 +11:00
Cirilo Bernardo 970955d1a2 Improved non-compliant VRML1 model support by processing all top-level nodes (spec. mandates single top-level node which must be a grouping node) 2016-02-22 11:57:16 +11:00
Cirilo Bernardo 52e093087e Relaxed VRML1 parsing rules to support yet more non-compliant models 2016-02-22 09:42:47 +11:00
Cirilo Bernardo 7ffa20a668 Fixed bug: X3D models not scaled to conform to legacy expectation 2016-02-12 16:58:12 +11:00
Cirilo Bernardo 8e63862d7c Fixed coloring bugs related to uninitialized variable 2016-02-12 10:23:21 +11:00
Cirilo Bernardo 3c22f0f48f Bumped VRML plugin version number 2016-02-08 09:01:25 +11:00
Cirilo Bernardo 943c5d8ea8 Changed default creaseAngle from ~30deg (VRML spec) to ~42deg for prettier smoothing 2016-02-08 08:56:03 +11:00
Cirilo Bernardo 99aba8f261 Changed handling of ambientIntensity; change of major version in SG* lib 2016-02-07 08:41:27 +11:00
Cirilo Bernardo 67832dbc74 Removed temporary debug info message 2016-02-06 13:28:59 +11:00
Cirilo Bernardo c180390a08 Converted WRLVEC2, WRLVEC3, WRLROTATION to GLM equivalents 2016-02-06 09:59:18 +11:00
Cirilo Bernardo f52744b29c Added back-pointers to referenced entities 2016-02-06 09:38:03 +11:00
Cirilo Bernardo b7a8661a03 Sync with main branch r6538 2016-02-05 16:15:51 +11:00
Cirilo Bernardo cd6b0fbef1 Added visualization of X3D models 2016-02-05 16:08:30 +11:00
Cirilo Bernardo ffa0775074 Added preliminary X3D parser with no visualization data 2016-02-05 15:32:52 +11:00
Cirilo Bernardo bf3d2b252e Fixed VRML normals calculations 2016-02-03 11:44:48 +11:00
Cirilo Bernardo b987445676 Forced smoothed normals calculations for VMRML2 parser 2016-02-02 16:50:46 +11:00
Cirilo Bernardo ca9ada70a2 Deactivate SG* VRML output 2016-02-02 11:48:26 +11:00
Cirilo Bernardo 1f796ef494 Fixed normals calculations in wrlfacet 2016-02-02 11:23:15 +11:00
Cirilo Bernardo eadb34e22e Remove accidental activation of SG->VRML debug write 2016-02-01 18:19:16 +11:00
Cirilo Bernardo 8fa9e28e85 Fixed inverted normals bug in wrlfacet 2016-02-01 18:09:19 +11:00
Cirilo Bernardo 55c7c61458 Initial introduction of improved VRML normals calculations; working on VRML1 2016-02-01 17:27:50 +11:00
Cirilo Bernardo 8dd744f635 Improved 3D cache manager's ability to replace outdated cache models 2016-01-31 13:21:12 +11:00
Cirilo Bernardo b1d35965f5 Relax VRML1 specifications conformance to support more non-conformant models 2016-01-30 13:50:17 +11:00
Cirilo Bernardo dddc3d91e9 Cleaned up 3D SceneGraph API by removing references to wxString 2016-01-29 11:52:42 +11:00
Cirilo Bernardo 3cb1924750 Suppressed 3D plugin VRML file output from default DEBUG build 2016-01-23 16:58:22 +11:00
Cirilo Bernardo fcd89c57ed Change in VRML1 color retrieval rule for out-of-bounds index 2016-01-19 16:13:12 +11:00
Cirilo Bernardo 39ca807ac4 Improved VRML1 support, including relaxed rules to support poorly structured models 2016-01-19 15:21:00 +11:00
Cirilo Bernardo 9a0b020806 Added VRML conversion of 'translation' and 'center' to mm on read and 0.1 inch on write 2016-01-18 10:39:51 +11:00
Cirilo Bernardo ef62a5f153 Ensure consistent use of mm within SG models and that SG models write VRML files using 0.1 inch units 2016-01-18 08:35:29 +11:00
Cirilo Bernardo e185b29baa Resync with main branch r6482 2016-01-16 19:10:53 +11:00
Cirilo Bernardo 2ef42001df Added missing header to 3D plugin loader 2016-01-12 18:18:11 +11:00
Cirilo Bernardo 81977ed6b7 Finished checking debug/info messages and internationalization where appropriate 2016-01-12 18:03:17 +11:00
Cirilo Bernardo c952cb4902 Changed VRML parsers to use LINE_READER 2016-01-12 10:12:50 +11:00
Cirilo Bernardo cbfd05e799 Change dynamic loader from wxPluginManager to wxDynamicLoader (wxPluginManager was causing segfaults) 2016-01-11 18:32:37 +11:00
Cirilo Bernardo 14bee875cf Replaced platform-dependent dynamic loading code with wxPluginManager 2016-01-11 15:47:08 +11:00
Cirilo Bernardo b04bd8c07a Improved VRML parser's ability to skip comments 2016-01-08 16:51:39 +11:00
Cirilo Bernardo 979edc4f9f Improved VRML1 conformance to spec 2016-01-08 16:23:42 +11:00
Cirilo Bernardo 0377be722f Added ShapeHints to VRML1 parser 2016-01-07 18:03:07 +11:00
Cirilo Bernardo 1b6480e858 Added support for VRML1 transforms (except for MatrixTransform) 2016-01-07 17:01:07 +11:00
Cirilo Bernardo 0bb4beb5d7 Fixed bug (missing #ifdef/#endif) 2016-01-07 15:55:24 +11:00
Cirilo Bernardo 7dd4bd9f09 Improving VRML1/2 parsers 2016-01-07 15:43:32 +11:00
Cirilo Bernardo 8a9eb3bbe8 Fixed various bugs in VRML2 and VRML1 code 2016-01-07 11:24:11 +11:00
Cirilo Bernardo d6fbd7b4e5 Finished initial implementation of VRML1 parser 2016-01-06 19:45:49 +11:00
Cirilo Bernardo 7e165ac866 Work in progress: implementing VRML1 to SGNODE translation 2016-01-06 18:02:21 +11:00
Cirilo Bernardo 403cd94edc Fixed color indexing for VRML2 plugin 2016-01-06 16:51:29 +11:00
Cirilo Bernardo 6f309a46c9 Implemented per-vertex colors for VRML2 and SGNODE 2016-01-06 16:15:54 +11:00
Cirilo Bernardo 6b873ed46b Work in progress: implementing SG translation for VRML1 models 2016-01-06 15:34:14 +11:00
Cirilo Bernardo 38543ab94f Work in progress: added Switch and IndexedFaceSet to VRML1 plugin 2016-01-06 08:29:13 +11:00
Cirilo Bernardo b126c1b697 Fixed mistaken cut/paste use of VRML2 where it should be VRML1 2016-01-05 19:35:15 +11:00
Cirilo Bernardo 42f83bdf8a VRML1 plugin: added Coordinate3 type node 2016-01-05 19:29:28 +11:00
Cirilo Bernardo 9f9f146cd9 Work in progress: VRML1 plugin 2016-01-05 18:55:54 +11:00
Cirilo Bernardo 79e0564622 Work in progress: VRML1 plugin 2016-01-05 16:38:53 +11:00
Cirilo Bernardo 43c2c7223b Sync with main branch r6421 2016-01-05 16:37:52 +11:00
Cirilo Bernardo d52d8867c8 Fixed bug in vrml2_shape.cpp which resulted in segfaults. (used AND rather than OR in control statement) 2016-01-04 20:24:40 +11:00
Cirilo Bernardo c798f8b545 Added support for FreeCAD VRML files 2016-01-04 18:10:15 +11:00
Cirilo Bernardo 54905cb15c Adding forgotten VRML2 Box sources 2016-01-03 17:58:23 +11:00
Cirilo Bernardo 5208a1b47e Added VRML2 Box node 2016-01-03 16:55:53 +11:00
Cirilo Bernardo 59cf4c5ed0 + Fixed calculation of overall transform in SCENEGRAPH
+ Fixed NULL dereference bug in VRML2 nodes
2016-01-03 14:55:30 +11:00
Cirilo Bernardo 62c6cba2a1 Reorganizing VRML parser code 2016-01-03 10:06:28 +11:00
Cirilo Bernardo 4d9ce774a8 Organizing VRML2 plugin debug reporting levels 2016-01-03 09:57:41 +11:00
Cirilo Bernardo 8939955f2f Relax VRML2 naming rules (perhaps temporarily) to accept the '-' character in DEF names 2016-01-03 09:18:16 +11:00
Cirilo Bernardo 76bf525d12 + Changed the debug output switch to DEBUG_VRML2
+ Transform nodes will now correctly include referenced nodes
2016-01-02 14:41:54 +11:00
Cirilo Bernardo 012e0a2066 Clean up naming of plugin VRML test output 2016-01-02 14:04:28 +11:00
Cirilo Bernardo fad73f0e85 VRML2 3D plugin is now functional 2016-01-02 12:21:02 +11:00
Cirilo Bernardo d68418d613 Work in progress: WRL2 to SGNODE translation 2016-01-01 18:55:43 +11:00
Cirilo Bernardo 68a512693f Work in progress: implementing VRML2 plugin 2016-01-01 16:05:14 +11:00
Cirilo Bernardo f7ea4ddb72 Cleaning up code in preparation for merge 2015-12-31 10:31:35 +11:00
Cirilo Bernardo 70b545895b Cleaning up debug info messages in preparation for merge 2015-12-31 09:56:56 +11:00
Cirilo Bernardo 548b54d75d + resync with main branch r6409
+ work in progress: new VRML2 3D plugin
2015-12-31 09:28:39 +11:00
Cirilo Bernardo 189f6fa763 Work in progress: VRML2 parser 2015-12-22 19:02:18 +11:00
Cirilo Bernardo e08c0de68f Work in progress: VRML2 parser 2015-12-22 17:02:33 +11:00
Cirilo Bernardo 07bd4cbc04 + Resync with main r6397
+ Work in progress: VRML parser
2015-12-22 11:08:39 +11:00
Cirilo Bernardo b1177e9025 Work in progress: VRML2 parser 2015-12-22 08:19:05 +11:00
Cirilo Bernardo 735137a26a Work in progress: VRML2 parser 2015-12-20 23:37:04 +11:00
Cirilo Bernardo e13dade517 Added beginnings of VRML parser 2015-12-20 18:59:26 +11:00
Cirilo Bernardo fb4b48f35b Removed accidental include in plugins/3d/CMakeLists.txt 2015-12-19 18:00:30 +11:00
Cirilo Bernardo 6cd0e51775 Removed build of demo plugin files 2015-12-19 14:59:42 +11:00
Cirilo Bernardo 396825d960 Cleaning up in preparation for merge 2015-12-19 14:57:02 +11:00
Cirilo Bernardo 86c54ce636 Modified IDF plugin to support IDF assemblies (*.emn) in addition to component outlines (*.idf) 2015-12-18 19:43:27 +11:00
Cirilo Bernardo 85e438570f Fixed bug for MSWin build (bad variable name) 2015-12-17 20:32:24 +11:00
Cirilo Bernardo 879c445b55 Preparing IDF plugin to support EMN/EMP files 2015-12-17 14:46:09 +11:00
Cirilo Bernardo 008d8a540a + Fixed bug in SGSHAPE::Prepare() : bad assignment of color pointer
+ Reworked s3d_plugin_demo2.cpp to use per-vertex-per-face normals
+ Reworked s3d_plugin_idf.cpp to use per-vertex-per-face normals
2015-12-17 13:55:35 +11:00
Cirilo Bernardo c0fcb15e3a + Rework S3D_CACHE::Prepare() to take only a filename and return
non-transformed S3DMODEL for rendering.
+ S3D_CACHE now caches S3DMODEL and returns a pointer to a single
  instance of the S3DMODEL for repeated calls to Prepare()
+ Beginning the VRML Plugin
2015-12-16 20:01:44 +11:00
Cirilo Bernardo 580f7aecfc Added model coloring to the IDF 3D model plugin 2015-12-16 15:11:54 +11:00
Cirilo Bernardo c251fbac75 + Improved the normals calculations (however it's still buggy)
+ Reworked 3D plugins to use normals calculations
2015-12-16 14:25:46 +11:00
Cirilo Bernardo 304cd81ebd + Bugfix: changed Plugin Loader to expect 'GetPluginVersion' instead of
'GetVersion'.
+ Introduced normal calculations. This is buggy due to multiple equal
  face normals distorting the vertex normal; this will be fixed by
  removing the redundant face normals from the calculations.
2015-12-15 18:53:03 +11:00
Cirilo Bernardo 1940bd71e4 Resync with main branch + fix MSWin build (accidental inclusion of dlfcn.h) 2015-12-15 10:56:11 +11:00
Cirilo Bernardo 31509fa52c Removed superfluous comment 2015-12-15 09:27:34 +11:00
Cirilo Bernardo 6294e507f9 Changed function name to avoid name clash with MinGW system call 2015-12-15 09:17:10 +11:00
Cirilo Bernardo a2fe783f53 Finished refactor and introduction of generic Plugin scheme 2015-12-14 14:51:28 +11:00
Cirilo Bernardo 3ff8ca0caf Refactored to use new generic plugin base 2015-12-14 08:45:22 +11:00
Cirilo Bernardo 86042d86a6 Added partial render ability to IDF plugin 2015-12-11 17:37:42 +11:00
Cirilo Bernardo b46451ec81 Introducing the IDF 3D plugin and reorganizing directories 2015-12-11 08:34:52 +11:00
Cirilo Bernardo ac3acb0061 Moving headers to facilitate support for building 3D plugins out-of-tree 2015-12-09 18:30:48 +11:00
Mario Luzeiro 69cc788e8e + Removed glm source from kicad tree (Maciej / Cirilo)
+ Added renderer for 3D model preview (Mario)
+ Added 3d_cache including name resolver and modifications to 3D model dialogs (Cirilo)
2015-12-08 18:31:57 +11:00