Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

sources repackaged for cmake and autotools

2009-10-09
2013-12-23
1 2 > >> (Page 1 of 2)
  • If you are interested in recompiling the software,
    you may take a look at http://www.iaas.msu.ru/tmp/u3d/u3d-1.2.852.tar.gz
    I have replaced the custom build system in Intel sources with
    autotools (tested on Linux and Mac) and cmake (Windows, Linux, Mac).

    Comments welcome.

     
  • Thank you for adding a CMake build interface. I had a bunch of link errors using the precompiled libs. Seems like a few symbols were not exported in the DLL's. Looking in a few header files, I didn't find __declspec(dllexport) statements so
    the author must have been using a .def file for exporting and missing to export a few functions there.

    Recompiling the code with your CMake script, however, fixed the problem.

    Dear project mainteners: Please switch to CMake

    Cheers,

    Babak Sayyid Hosseini

     
  • phodifoo
    phodifoo
    2010-08-27

    Thanks for this essential addition to this project.
    I've compiled and install it on a linux64 centos5 machine.

     
  • A variant with addition of static IDTF library and an IDTFGen.cpp example of its use (essentially it is IDTFConverter without IDTF parser) is at http://www.iaas.msu.ru/tmp/u3d/u3d-1.3.tar.gz .

     
  • fixed Win32 compilation with __stdcall set in IFXAPI.h
    put VTK U3D Exporter to the code samples section
    made libIDTF shared library on Linux

    http://www.iaas.msu.ru/tmp/u3d/u3d-1.4.2.tar.gz

     
  • angevad
    angevad
    2012-03-22

    Can anybody update links to the U3D library repack? Current links doesn't work.

     
  • angevad
    angevad
    2012-03-24

    Thanks, it was so fast )) Your update will be useful for me.

     
  • angevad
    angevad
    2012-04-12

    Hi mvid, Do you know the way to compile IFXRendering project?

     

  • Anonymous
    2013-03-03

    Hi Michail,

    I search for an Universal 3D Sample Software for mac 2 days already. I finally reached a forum and download the one packaged by you, named. U3D_A_061228_5

    I got the download link from the forum (last post, 2012-4-12)
    http://sourceforge.net/projects/u3d/forums/forum/557102/topic/3424219

    download link:  http://www2.iaas.msu.ru/tmp/u3d/u3d-1.2.852.tgz

    But somehow i cannot use cmake .; make; make install to install the package. When i use make, i received the errors below. The first error seems to has something to do with the IFXAttributes.h file.

    Matt

    /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXAttributes.h:36:3: error: call to function
          'memset' that is neither visible in the template definition nor found by argument-dependent
          lookup
                    memset(flags, 0, sizeof(flags));
                    ^
    /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Mesh/CIFXMesh.cpp:118:11: note: in instantiation of
          member function 'IFXAttributes<22>::IFXAttributes' requested here
    CIFXMesh::CIFXMesh()
              ^
    /usr/include/string.h:84:7: note: 'memset' should be declared prior to the call site
    void    *memset(void *, int, size_t);
             ^
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Mesh/CIFXMesh.cpp:21:
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Mesh/CIFXMesh.h:22:
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXMesh.h:26:
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXMeshGroup.h:28:
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXEnums.h:28:
    /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXAttributes.h:49:3: error: call to function
          'memcpy' that is neither visible in the template definition nor found by argument-dependent
          lookup
                    memcpy(flags, src.flags, sizeof(flags));
                    ^
    /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Mesh/CIFXMesh.cpp:423:16: note: in instantiation of
          member function 'IFXAttributes<22>::operator=' requested here
            eDirtyAttribs = CalculateDirtyAttribs(eAllAttribs);
                          ^
    /usr/include/string.h:82:7: note: 'memcpy' should be declared prior to the call site
    void    *memcpy(void *, const void *, size_t);
             ^
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Mesh/CIFXMesh.cpp:21:
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Mesh/CIFXMesh.h:22:
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXMesh.h:26:
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXMeshGroup.h:28:
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXEnums.h:28:
    /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXAttributes.h:151:11: error: call to function
          'memcmp' that is neither visible in the template definition nor found by argument-dependent
          lookup
                    return (memcmp(flags, src.flags, sizeof(flags)) != 0);
                            ^
    /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Mesh/CIFXMesh.cpp:595:21: note: in instantiation of
          member function 'IFXAttributes<22>::operator!=' requested here
                    if(eNewAllAttribs != eAllAttribs)
                                      ^
    /usr/include/string.h:81:6: note: 'memcmp' should be declared prior to the call site
    int      memcmp(const void *, const void *, size_t);
             ^
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Mesh/CIFXMesh.cpp:21:
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Mesh/CIFXMesh.h:22:
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXMesh.h:26:
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXMeshGroup.h:28:
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXEnums.h:28:
    /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXAttributes.h:40:3: error: call to function
          'memcpy' that is neither visible in the template definition nor found by argument-dependent
          lookup
                    memcpy(flags, src.flags, sizeof(flags));
                    ^
    /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Mesh/CIFXMesh.cpp:856:36: note: in instantiation of
          member function 'IFXAttributes<22>::IFXAttributes' requested here
            IFXMeshAttributes eDirtyAttribs = CalculateDirtyAttribs(eAllAttribs);
                                              ^
    /usr/include/string.h:82:7: note: 'memcpy' should be declared prior to the call site
    void    *memcpy(void *, const void *, size_t);
             ^
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Mesh/CIFXMesh.cpp:21:
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Mesh/CIFXMesh.h:22:
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXMesh.h:26:
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXMeshGroup.h:28:
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXEnums.h:28:
    /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXAttributes.h:147:11: error: call to function
          'memcmp' that is neither visible in the template definition nor found by argument-dependent
          lookup
                    return (memcmp(flags, src.flags, sizeof(flags)) == 0);
                            ^
    /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Mesh/CIFXMesh.cpp:944:20: note: in instantiation of
          member function 'IFXAttributes<22>::operator==' requested here
            if((eDirtyAttribs == eAllAttribs) && (eAllAttribs == IFXMeshAttributes(IFX_MESH_POSITION)))
                              ^
    /usr/include/string.h:81:6: note: 'memcmp' should be declared prior to the call site
    int      memcmp(const void *, const void *, size_t);
             ^
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Mesh/CIFXMesh.cpp:21:
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Mesh/CIFXMesh.h:22:
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXMesh.h:26:
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXMeshGroup.h:28:
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXEnums.h:28:
    /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXAttributes.h:44:3: error: call to function
          'memset' that is neither visible in the template definition nor found by argument-dependent
          lookup
                    memset(flags, 0, sizeof(flags));
                    ^
    /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Mesh/CIFXMesh.cpp:944:55: note: in instantiation of
          member function 'IFXAttributes<22>::IFXAttributes' requested here
            if((eDirtyAttribs == eAllAttribs) && (eAllAttribs == IFXMeshAttributes(IFX_MESH_POSITION)))
                                                                 ^
    /usr/include/string.h:84:7: note: 'memset' should be declared prior to the call site
    void    *memset(void *, int, size_t);
             ^
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Mesh/CIFXMesh.cpp:21:
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Mesh/CIFXMesh.h:22:
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXMesh.h:26:
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXMeshGroup.h:28:
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXEnums.h:28:
    /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXAttributes.h:54:3: error: call to function
          'memset' that is neither visible in the template definition nor found by argument-dependent
          lookup
                    memset(flags, 0, sizeof(flags));
                    ^
    /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Mesh/CIFXMesh.cpp:1079:24: note: in instantiation of
          member function 'IFXAttributes<22>::operator=' requested here
            m_eInterleavedAttribs = 0;
                                  ^
    /usr/include/string.h:84:7: note: 'memset' should be declared prior to the call site
    void    *memset(void *, int, size_t);
             ^
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Mesh/CIFXMesh.cpp:21:
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Mesh/CIFXMesh.h:22:
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXMesh.h:26:
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXMeshGroup.h:28:
    In file included from /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXEnums.h:28:
    /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Include/IFXAttributes.h:179:3: error: call to function
          'memset' that is neither visible in the template definition nor found by argument-dependent
          lookup
                    memset(flags, 0, sizeof(flags));
                    ^
    /Users/Matt/Desktop/u3d-1.2.852/RTL/Component/Mesh/CIFXMesh.cpp:1691:14: note: in instantiation of
          member function 'IFXAttributes<22>::clear' requested here
            eAllAttribs.clear();
                        ^
    /usr/include/string.h:84:7: note: 'memset' should be declared prior to the call site
    void    *memset(void *, int, size_t);
             ^
    8 errors generated.
    make: ***  Error 1
    make: ***  Error 2
    make: ***  Error 2

     
  • Vassili
    Vassili
    2013-05-07

    I believe the compile error is due to changes in recent versions of gcc; see
    http://gcc.gnu.org/gcc-4.3/porting_to.html
    about "Header dependency cleanup." Basically, #include statements were removed from header files where they had been for centuries and this breaks pretty much any existing code that used to compile with previous versions of gcc. You need to find which header file is missing from where and add it.

    In this case, I believe the missing header is string.h (Do a "man memset" to see what is needed.) Since this is C++, I added the line

    #include <cstring>
    

    in RTL/Component/include/IFXAttributes.h after which the compilation completes successfully.

    However, when I try to run any of the produced executables (IDTFConverter, IDTFGen, HelloWorld) they all segfault. (Same result if I #include <string.h> instead of <cstring>.)

    I am using gcc version 4.7.2 on Ubuntu 12.10.

    If anybody else can make some more progress, please let us know.

     
  • Vassili
    Vassili
    2013-05-07

    Sorry, I should have mentioned that I tried to compile u3d-1.4.3

    - Vassili

     
  • I'll try to reproduce the crash.
    Is your system 32 or 64 bit?

     
  • Vassili
    Vassili
    2013-05-08

    It's a 32-bit system

     
  • > when I try to run any of the produced executables … they all segfault.
    > I am using gcc version 4.7.2 on Ubuntu 12.10.
    > It's a 32-bit system

    Comment out the call to cpuid in IFXOSInitialize in RTL/Platform/Lin32/Common/IFXOSUtilities.cpp.

    It is some asm mumbo-jumbo to determine at run time if CPU is capable of MMX or SSE.
    If check is disabled and generic code is used instead of vector operations, there will be some performance loss, but likely unnoticeable one.

    Report results.

    I'll try to make a new version of u3d repack, with fixes for new compiler warnings and updated bundled libraries, some time soon.

     
  • Vassili
    Vassili
    2013-05-13

    Yes, that worked. I was able to create an executable IDTFConverter and install it, after which I could convert a file to .u3d and embed it into a PDF document. Everything looks good. Thank you.

     
  • Nicholas Yue
    Nicholas Yue
    2013-12-19

    I tried building the vtkU3DExporterTest.

    The build is fine but when I try to run it, it segmentation fault on Linux x64 (Ubuntu)

    I am using u3d-1.4.4.tar.gz

    Cheers

     
  • Try commenting out X3D export in vtkU3DExporterTest sources, it crashed for me recently.
    X3D export is not required for U3D export, it is there just to have something to compare to.
    If that does not help - report and I'll try to investigate.

     
  • Nicholas Yue
    Nicholas Yue
    2013-12-20

    Hi Michail,

    Thanks for the info.

    Commenting out the X3D stuff no longer crashes.

    It runs and generate the test.u3d file, I embedded the test.u3d file in a PDF and it shows up fine.

    However, I noticed the following errors when the vtk test program ends

    X Error of failed request: GLXBadDrawable
    Major opcode of failed request: 128 (GLX)
    Minor opcode of failed request: 11 (X_GLXSwapBuffers)
    Serial number of failed request: 92
    Current serial number in output stream: 92

    I thought you might like to know about that too.

    Cheers

     
  • X Error of failed request: GLXBadDrawable

    Looks like drawing error.
    Try to disable on-screen drawing of the test scene to test that.
    Someone using this code told me he had to update it to match VTK changes, but did not share results. May be some primitives I used in the test scene are obsolete or broken now.

    If you are interested in 3D VTK export using FOSS tools and have time and knowledge of VTK necessary for co-developing/testing it, I can revisit the issue.
    I do not use VTK now and make 3D PDFs with other tools.

     
  • Nicholas Yue
    Nicholas Yue
    2013-12-20

    I tried building the vtkU3DExporter on Windows 7, using the information that ran fine on Linux but no U3D files were generated.

    I can put in sometime to help test/debug.

    It would be easier if your source code is on GitHub and people can fork/submit-pull-request when the fixes are done.

    I have to fix the CMakeLists.txt as it requires winmm.lib on Windows
    I have to also modify the code as it requires decl export for the class.

    Let me know how I can contribute the fixes to your code base.

    Cheers

     
1 2 > >> (Page 1 of 2)