BtOgre21, forked for Ogre 2.1 that uses Item. + debug drawer

Discussion area about developing with Ogre-Next (2.1, 2.2 and beyond)


User avatar
Ybalrid
Halfling
Posts: 89
Joined: Thu Jul 10, 2014 6:52 pm
Location: France
x 31

BtOgre21, forked for Ogre 2.1 that uses Item. + debug drawer

Post by Ybalrid »

Edit : You can download the 1.2.144 Release from there if you don't want to use Git https://github.com/Ybalrid/BtOgre21/releases/

I had a bit of time, and I was playing around with Ogre 2.1 (porting my pet project to it, a game engine for VR, Rift and Vive that uses Ogre and a bunch of other cool open sources libraries)...

So I present you my fork of btOgre, that can take Ogre v2 Items and Meshes as input (thus, not relying on having v1 objects around) and with a debug drawer that support all the "configurations" you can ask Bullet to draw debuging for (you know, contact points, AABBs, changing the colors depending on activation states, all that good stuff 8) )

https://github.com/Ybalrid/BtOgre21 There's a release tagged 1.2.144 that you can grab.

The idea comes from personal needs, and the fork originally made by nyxkn that added an overload to take v1::Mesh and not just Entities (along side adding the v1 namespace everywhere so that the library will build), but with a few other changes.) I did not want to keep v1 meshes around just to generate their physics representation in my own projects... ^^"

The C style array manually reallocated every time in the extraction of vertex and index buffers (and all the pointer arithmetic that comes with reading them back) have been replaced by std::vectors, because it makes the code easier to read, (and I like the STL containers, and vectors are basically flat raw arrays ^^"). I'm not using push/emplace back, but resizing the array by hand with the known size to make, so it's virtually the same thing.

Changes made from the original version of btOgre

  • Code: Select all

    [*]Modified to compile against Ogre 2.1
    [*]Added an overload to construct a static shape converter from an Ogre::v1::MeshPtr
    [*]Motion states moves "derivated coordinates" instead of the "regular" ones. This prevent unsynchronising graphics and physics if you are doing weird object parenting stuff (in case of physics objects, You probably shouldn't)
    [*]The static mesh to shape converter has overloads to use v2 meshes and Items, instead of just v1 meshes or Entity object
    [*]Class implementation are not in headers
    [*]Debug drawer re-implemented for Ogre V2 by using a v2 manual object
    [list]
        [*]The debug drawer now supports every mode of debug drawing Bullet can offer, and does it with the proper colors
        [*]The debug drawer uses an HLMS Unlit datablock created at run time the first time you call it, and set vertex colors on each points of each lines
        [*]The color of the line is multiplied by a factor the user can set to accomodate HDR rendering pipeline and the way the user wants to deal with color spaces and gamma correction
    [/list][/list]

    It's under the same zlib license, uses CMake, is installable, and shipped with a "FindBtOgre21" cmake modules that makes it easy to configure for your own projects.

    The project on the "demo" subfolder "works", but that's about it. The PBS materials are broken, I'm not using the original framework, I just hacked it together to run. It uses the original .mesh files, but convert them at runtime to v2 objects the same way the samples does. and is only OpenGL because I copy pasted code from a linux only project and it's looking for the "GLSL" subfolder of the HLMS library. I'm going to fix theses things...

    I hope this can be useful to other people in the Ogre comunity, I did not touch the AnimatedMeshToShapeConverter yet, since I'm still not familiar on how the animations are dealt with in Ogre 2 (the v1 and v2 systems seems to coexist since as far as I have read on the documentation, v2 is good for playback of pre-made ones, v1 is better when moving stuff "live" :?: ). I'm also interested on soft body physics, so I'll probably work on that next.

    Any thoughts and comments are appreciated, specifically if you fond problems with it, don't hesitate to submit issues and pull request!

Last edited by Ybalrid on Sat Oct 08, 2022 11:45 am, edited 7 times in total.
Ogre_glTF Ogre v2-1 GLTF2 loader : topic link github repo
BtOgre21 Fork of btOgre, for Ogre v2-1 : topic link github repo
OIS Current maintainer : Official repository
Annwvyn VR focused game engine using Ogre : https://github.com/Ybalrid/Annwvyn https://annwvyn.org/
User avatar
Crystal Hammer
Gnome
Posts: 388
Joined: Sat Jun 23, 2007 5:16 pm
x 99

Re: BtOgre21, forked for Ogre 2.1that uses Item. + debug dra

Post by Crystal Hammer »

Awesome, kudos.
User avatar
Ybalrid
Halfling
Posts: 89
Joined: Thu Jul 10, 2014 6:52 pm
Location: France
x 31

Re: BtOgre21, forked for Ogre 2.1that uses Item. + debug dra

Post by Ybalrid »

So, I took some time to put this online : http://btogre21.ybalrid.info/api/annotated.html (will add this link to the 1st post)

All the methods of all classes are annotated here, except for the AnimatedMeshToShapeConverter, that is still using the old v1 code for now (I haven't looked at it too much yet.)

What's more interesting to support next, getting the Animated Meshes to work with v2 Ogre::Item, or some other thing?
Ogre_glTF Ogre v2-1 GLTF2 loader : topic link github repo
BtOgre21 Fork of btOgre, for Ogre v2-1 : topic link github repo
OIS Current maintainer : Official repository
Annwvyn VR focused game engine using Ogre : https://github.com/Ybalrid/Annwvyn https://annwvyn.org/
User avatar
areay
Bugbear
Posts: 819
Joined: Wed May 05, 2010 4:59 am
Location: Auckland, NZ
x 69

Re: BtOgre21, forked for Ogre 2.1that uses Item. + debug dra

Post by areay »

Thank you very much for updating this wrapper. Great job.
User avatar
Ybalrid
Halfling
Posts: 89
Joined: Thu Jul 10, 2014 6:52 pm
Location: France
x 31

Re: BtOgre21, forked for Ogre 2.1that uses Item. + debug dra

Post by Ybalrid »

Thanks areay. If you encounter any problem or have any suggestion, please share them here or on GitHub.

I still did not took the time to look into the "animated mesh" part. I never actually used that code on the original library either. Looks like it tries to fit a rigidbody around each bone of the skeleton attached to the object. ^^"
Ogre_glTF Ogre v2-1 GLTF2 loader : topic link github repo
BtOgre21 Fork of btOgre, for Ogre v2-1 : topic link github repo
OIS Current maintainer : Official repository
Annwvyn VR focused game engine using Ogre : https://github.com/Ybalrid/Annwvyn https://annwvyn.org/
Hotshot5000
OGRE Contributor
OGRE Contributor
Posts: 233
Joined: Thu Oct 14, 2010 12:30 pm
x 58

Re: BtOgre21, forked for Ogre 2.1that uses Item. + debug dra

Post by Hotshot5000 »

Absolutely amazing stuff! I was just looking around for some bullet wrappers to use for my Ogre based game since I wanted to add some better quality physics and this is exactly the stuff that I needed. Great job and thanks for this! Amazing times in open source. Ogre3D for rendering, bullet for physics, add an audio framework and SDL2 and you have a game engine :). Take that Unreal and Unity! (I'm just joking I have nothing against Unreal Engine nor against Unity).
hedphelym
Gremlin
Posts: 180
Joined: Tue Nov 25, 2008 10:58 am
Location: Kristiansand, Norway
x 23

Re: BtOgre21, forked for Ogre 2.1that uses Item. + debug dra

Post by hedphelym »

Just wanted to say thank you for doing this, it does lower the bar for others who are not able to spend the time \ effort do such a integration.
I have not tested it yet - but my plan was to do this exact thing - use bullet with latest Ogre.

I did integrate bullet into 3dsmax some time ago, I learned a lot from there, I especially enjoyed the softbody physics.
Is the softbody physics integrated here as well?
When I get started with my project I'll see if i can help out with some things.
User avatar
Ybalrid
Halfling
Posts: 89
Joined: Thu Jul 10, 2014 6:52 pm
Location: France
x 31

Re: BtOgre21, forked for Ogre 2.1that uses Item. + debug dra

Post by Ybalrid »

hedphelym wrote: I did integrate bullet into 3dsmax some time ago, I learned a lot from there, I especially enjoyed the softbody physics.
Is the softbody physics integrated here as well?
When I get started with my project I'll see if i can help out with some things.
Hi,

This is a fork of an old little tool that used to work with Ogre 1.x. The original library had no support for softbodies at all.
Currently, this one doesn't either, but I want to add it, but I never actually used softbodies with bullet personally so I'll need to do some research and experimentation with it before starting to actually work on this.

Obviously, any kind of help is appreciated ;-)
Ogre_glTF Ogre v2-1 GLTF2 loader : topic link github repo
BtOgre21 Fork of btOgre, for Ogre v2-1 : topic link github repo
OIS Current maintainer : Official repository
Annwvyn VR focused game engine using Ogre : https://github.com/Ybalrid/Annwvyn https://annwvyn.org/
hedphelym
Gremlin
Posts: 180
Joined: Tue Nov 25, 2008 10:58 am
Location: Kristiansand, Norway
x 23

Re: BtOgre21, forked for Ogre 2.1that uses Item. + debug dra

Post by hedphelym »

It works with trimesh data, (so you read the vertices out of your ogre mesh), create the softbody in bullet, send in the vertex data, apply softbody properties, trigger simulation,
you then fetch the vertex position from bullet (you get it in world space) and apply it to your ogre mesh.
That's the basic steps for it. I have lot's of code related to this (but as I mentioned - it's for 3dsmax, but the bullet code is generic and can be applied anywhere).

I will take a look at your code and such tonight and tomorrow.
I currently work exclusively on Linux, so I hope to get everything up and running fine there.
User avatar
Ybalrid
Halfling
Posts: 89
Joined: Thu Jul 10, 2014 6:52 pm
Location: France
x 31

Re: BtOgre21, forked for Ogre 2.1that uses Item. + debug dra

Post by Ybalrid »

hedphelym wrote:It works with trimesh data, (so you read the vertices out of your ogre mesh), create the softbody in bullet, send in the vertex data, apply softbody properties, trigger simulation,
you then fetch the vertex position from bullet (you get it in world space) and apply it to your ogre mesh.
That's the basic steps for it. I have lot's of code related to this (but as I mentioned - it's for 3dsmax, but the bullet code is generic and can be applied anywhere).
I see; seems doable without "too much work". Just has from that I just have to figure out how to modify vertex position in Ogre's "vertex array objects"... This is apparently done asynchronously by communicating with (well, an abstraction of) "the GPU memory" now. The code that pull the static geometry from an Ogre v2 mesh is already there, that's what is used by the "static mesh to shape converter".

I haven't touched that code since last april, so it's a bit rusty in my mind. ^^
hedphelym wrote: I will take a look at your code and such tonight and tomorrow.
I currently work exclusively on Linux, so I hope to get everything up and running fine there.
I tested everything on Linux (g++ 7). "cmake - make - sudo make install" is your friend to build the static lib and install it in /usr/local/{lib, include} in a BtOgre21 subfolder. It *should* find your Bullet (install that from your distro's package) and your (installed from source) Ogre 2.1 without much trouble.
Ogre_glTF Ogre v2-1 GLTF2 loader : topic link github repo
BtOgre21 Fork of btOgre, for Ogre v2-1 : topic link github repo
OIS Current maintainer : Official repository
Annwvyn VR focused game engine using Ogre : https://github.com/Ybalrid/Annwvyn https://annwvyn.org/
hedphelym
Gremlin
Posts: 180
Joined: Tue Nov 25, 2008 10:58 am
Location: Kristiansand, Norway
x 23

Re: BtOgre21, forked for Ogre 2.1that uses Item. + debug dra

Post by hedphelym »

Do you just build againt the current bullet source, or does it need a specific version?
(I cannot seem to find any info about what bullet SDK version I should build against, so I just assume the latest?).

Their latest tagged version is this one:
https://github.com/bulletphysics/bullet ... tag/2.86.1
User avatar
Ybalrid
Halfling
Posts: 89
Joined: Thu Jul 10, 2014 6:52 pm
Location: France
x 31

Re: BtOgre21, forked for Ogre 2.1that uses Item. + debug dra

Post by Ybalrid »

Any recent version should work. I personally use the latest. But don't sweat it, the "-dev" (in the debian/ubuntu way of calling them) version of the packages for bullet in your Linux distribution repository should work.

If you want to build it from source, use the latest stable release.
Last edited by Ybalrid on Fri Jul 14, 2017 11:25 am, edited 1 time in total.
Ogre_glTF Ogre v2-1 GLTF2 loader : topic link github repo
BtOgre21 Fork of btOgre, for Ogre v2-1 : topic link github repo
OIS Current maintainer : Official repository
Annwvyn VR focused game engine using Ogre : https://github.com/Ybalrid/Annwvyn https://annwvyn.org/
hedphelym
Gremlin
Posts: 180
Joined: Tue Nov 25, 2008 10:58 am
Location: Kristiansand, Norway
x 23

Re: BtOgre21, forked for Ogre 2.1that uses Item. + debug dra

Post by hedphelym »

Ok great!
I did get some errors building it yesterday, but I'll give it a try again today.
Yesterday I worked on my CentOS 7 workstation (got bullet (latest stable) \ ogre (latest 2.1 version) compiled, but btOgre21 failed), I did the cmake steps and all that.
I will try today om my laptop with debian on it, if I get the same issue there I'll let you know how it goes.
User avatar
Ybalrid
Halfling
Posts: 89
Joined: Thu Jul 10, 2014 6:52 pm
Location: France
x 31

Re: BtOgre21, forked for Ogre 2.1that uses Item. + debug dra

Post by Ybalrid »

Post all the errors you have here. It's probably a stupid error on my CMakeList file. I only tested it on ArchLinux (beside windows and the whole mess it is to set path to bullet and ogre in the config...) and that's probably not the best idea... ^^"
Ogre_glTF Ogre v2-1 GLTF2 loader : topic link github repo
BtOgre21 Fork of btOgre, for Ogre v2-1 : topic link github repo
OIS Current maintainer : Official repository
Annwvyn VR focused game engine using Ogre : https://github.com/Ybalrid/Annwvyn https://annwvyn.org/
hedphelym
Gremlin
Posts: 180
Joined: Tue Nov 25, 2008 10:58 am
Location: Kristiansand, Norway
x 23

Re: BtOgre21, forked for Ogre 2.1that uses Item. + debug dra

Post by hedphelym »

It was some declaration errors, so it seems to just be something relatively simple.
I will post the log as soon as I can when I get home later today.
hedphelym
Gremlin
Posts: 180
Joined: Tue Nov 25, 2008 10:58 am
Location: Kristiansand, Norway
x 23

Re: BtOgre21, forked for Ogre 2.1that uses Item. + debug dra

Post by hedphelym »

Here is the full output (compiled on my CentOS 7 workstation):

Code: Select all

[ 33%] Building CXX object CMakeFiles/BtOgre21.dir/sources/BtOgreGP.cpp.o
In file included from BtOgre21/include/BtOgrePG.h:21:0,
                 from BtOgre21/sources/BtOgreGP.cpp:16:
BtOgre21/include/BtOgreExtras.h:34:8: error: expected nested-name-specifier before ‘Vector3Array’
  using Vector3Array = std::vector<Ogre::Vector3>;
        ^
BtOgre21/include/BtOgreExtras.h:34:8: error: ‘Vector3Array’ has not been declared
BtOgre21/include/BtOgreExtras.h:34:21: error: expected ‘;’ before ‘=’ token
  using Vector3Array = std::vector<Ogre::Vector3>;
                     ^
BtOgre21/include/BtOgreExtras.h:34:21: error: expected unqualified-id before ‘=’ token
BtOgre21/include/BtOgreExtras.h:40:15: warning: defaulted and deleted functions only available with -std=c++11 or -std=gnu++11 [enabled by default]
   Convert() = delete;
               ^
BtOgre21/include/BtOgreExtras.h:119:10: error: ‘constexpr’ does not name a type
   static constexpr const char* unlitDatablockName{ "DebugLinesGenerated" };
          ^
BtOgre21/include/BtOgreExtras.h:119:10: note: C++11 ‘constexpr’ only available with -std=c++11 or -std=gnu++11
In file included from BtOgre21/include/BtOgrePG.h:21:0,
                 from BtOgre21/sources/BtOgreGP.cpp:16:
BtOgre21/include/BtOgreExtras.h:146:10: error: ‘constexpr’ does not name a type
   static constexpr const char* BtOgre21ResourceGroup{ "BtOgre21" };
          ^
BtOgre21/include/BtOgreExtras.h:146:10: note: C++11 ‘constexpr’ only available with -std=c++11 or -std=gnu++11
BtOgre21/include/BtOgreExtras.h:162:28: warning: defaulted and deleted functions only available with -std=c++11 or -std=gnu++11 [enabled by default]
   virtual ~DebugDrawer() = default;
                            ^
BtOgre21/include/BtOgreExtras.h:168:83: warning: override controls (override/final) only available with -std=c++11 or -std=gnu++11 [enabled by default]
   void drawLine(const btVector3& from, const btVector3& to, const btVector3& color) override;
                                                                                   ^
BtOgre21/include/BtOgreExtras.h:171:68: warning: override controls (override/final) only available with -std=c++11 or -std=gnu++11 [enabled by default]
   void draw3dText(const btVector3& location, const char* textString) override;
                                                                    ^
BtOgre21/include/BtOgreExtras.h:174:135: warning: override controls (override/final) only available with -std=c++11 or -std=gnu++11 [enabled by default]
   void drawContactPoint(const btVector3& PointOnB, const btVector3& normalOnB, btScalar distance, int lifeTime, const btVector3& color) override;
                                                                                                                                       ^
BtOgre21/include/BtOgreExtras.h:177:52: warning: override controls (override/final) only available with -std=c++11 or -std=gnu++11 [enabled by default]
   void reportErrorWarning(const char* warningString) override;
                                                    ^
BtOgre21/include/BtOgreExtras.h:180:29: warning: override controls (override/final) only available with -std=c++11 or -std=gnu++11 [enabled by default]
   void setDebugMode(int isOn) override;
                             ^
BtOgre21/include/BtOgreExtras.h:183:22: warning: override controls (override/final) only available with -std=c++11 or -std=gnu++11 [enabled by default]
   int getDebugMode() const override;
                      ^
In file included from BtOgre21/sources/BtOgreGP.cpp:16:0:
BtOgre21/include/BtOgrePG.h:51:44: warning: override controls (override/final) only available with -std=c++11 or -std=gnu++11 [enabled by default]
   void getWorldTransform(btTransform& ret) const override;
                                            ^
BtOgre21/include/BtOgrePG.h:55:47: warning: override controls (override/final) only available with -std=c++11 or -std=gnu++11 [enabled by default]
   void setWorldTransform(const btTransform& in) override;
                                               ^
In file included from BtOgre21/include/BtOgreGP.h:34:0,
                 from BtOgre21/sources/BtOgreGP.cpp:17:
BtOgre21/include/BtOgre.hpp:9:113: note: #pragma message: You are using OGRE 2.1 Tindalos
 #pragma message ("You are using OGRE " STR(OGRE_VERSION_MAJOR) "." STR(OGRE_VERSION_MINOR) " " OGRE_VERSION_NAME)
                                                                                                                 ^
BtOgre21/include/BtOgre.hpp:14:54: note: #pragma message: Your version of Ogre is compatible
 #pragma message ("Your version of Ogre is compatible")
                                                      ^
In file included from BtOgre21/sources/BtOgreGP.cpp:17:0:
BtOgre21/include/BtOgreGP.h:38:8: error: expected nested-name-specifier before ‘BoneIndex’
  using BoneIndex = std::map<unsigned, Vector3Array*>;
        ^
BtOgre21/include/BtOgreGP.h:38:8: error: ‘BoneIndex’ has not been declared
BtOgre21/include/BtOgreGP.h:38:18: error: expected ‘;’ before ‘=’ token
  using BoneIndex = std::map<unsigned, Vector3Array*>;
                  ^
BtOgre21/include/BtOgreGP.h:38:18: error: expected unqualified-id before ‘=’ token
BtOgre21/include/BtOgreGP.h:39:8: error: expected nested-name-specifier before ‘BoneKeyIndex’
  using BoneKeyIndex = std::pair<unsigned, Vector3Array*>;
        ^
BtOgre21/include/BtOgreGP.h:39:8: error: ‘BoneKeyIndex’ has not been declared
BtOgre21/include/BtOgreGP.h:39:21: error: expected ‘;’ before ‘=’ token
  using BoneKeyIndex = std::pair<unsigned, Vector3Array*>;
                     ^
BtOgre21/include/BtOgreGP.h:39:21: error: expected unqualified-id before ‘=’ token
BtOgre21/include/BtOgreGP.h:42:8: error: expected nested-name-specifier before ‘VertexBuffer’
  using VertexBuffer = std::vector<Ogre::Vector3>;
        ^
BtOgre21/include/BtOgreGP.h:42:8: error: ‘VertexBuffer’ has not been declared
BtOgre21/include/BtOgreGP.h:42:21: error: expected ‘;’ before ‘=’ token
  using VertexBuffer = std::vector<Ogre::Vector3>;
                     ^
BtOgre21/include/BtOgreGP.h:42:21: error: expected unqualified-id before ‘=’ token
BtOgre21/include/BtOgreGP.h:45:8: error: expected nested-name-specifier before ‘IndexBuffer’
  using IndexBuffer = std::vector<unsigned int>;
        ^
BtOgre21/include/BtOgreGP.h:45:8: error: ‘IndexBuffer’ has not been declared
BtOgre21/include/BtOgreGP.h:45:20: error: expected ‘;’ before ‘=’ token
  using IndexBuffer = std::vector<unsigned int>;
                    ^
BtOgre21/include/BtOgreGP.h:45:20: error: expected unqualified-id before ‘=’ token
In file included from BtOgre21/sources/BtOgreGP.cpp:17:0:
BtOgre21/include/BtOgreGP.h:149:3: error: ‘VertexBuffer’ does not name a type
   VertexBuffer mVertexBuffer;
   ^
BtOgre21/include/BtOgreGP.h:152:3: error: ‘IndexBuffer’ does not name a type
   IndexBuffer  mIndexBuffer;
   ^
BtOgre21/include/BtOgreGP.h:160:3: error: ‘BoneIndex’ does not name a type
   BoneIndex*  mBoneIndex;
   ^
BtOgre21/include/BtOgreGP.h: In member function ‘void BtOgre::VertexIndexToShape::loadV1IndexBuffer(Ogre::v1::HardwareIndexBufferSharedPtr, const size_t&, const size_t&, const size_t&)’:
BtOgre21/include/BtOgreGP.h:109:9: error: ‘pointerData’ does not name a type
    auto pointerData = static_cast<const T*>(ibuf->lock(Ogre::v1::HardwareBuffer::HBL_READ_ONLY));
         ^
BtOgre21/include/BtOgreGP.h:110:14: error: ‘i’ does not name a type
    for (auto i = 0u; i < appendedIndexes; ++i)
              ^
BtOgre21/include/BtOgreGP.h:110:22: error: expected ‘;’ before ‘i’
    for (auto i = 0u; i < appendedIndexes; ++i)
                      ^
BtOgre21/include/BtOgreGP.h:110:22: error: ‘i’ was not declared in this scope
BtOgre21/include/BtOgreGP.h:112:5: error: ‘mIndexBuffer’ was not declared in this scope
     mIndexBuffer[previousSize + i] = static_cast<unsigned>(offset + pointerData[i]);
     ^
BtOgre21/include/BtOgreGP.h:112:69: error: ‘pointerData’ was not declared in this scope
     mIndexBuffer[previousSize + i] = static_cast<unsigned>(offset + pointerData[i]);
                                                                     ^
BtOgre21/include/BtOgreGP.h: In member function ‘void BtOgre::VertexIndexToShape::loadV2IndexBuffer(Ogre::AsyncTicketPtr, const size_t&, const size_t&, const size_t&)’:
BtOgre21/include/BtOgreGP.h:135:9: error: ‘pointerData’ does not name a type
    auto pointerData = static_cast<const T*>(asyncTicket->map());
         ^
BtOgre21/include/BtOgreGP.h:136:14: error: ‘i’ does not name a type
    for (auto i = 0; i < appendedIndexes; ++i)
              ^
BtOgre21/include/BtOgreGP.h:136:21: error: expected ‘;’ before ‘i’
    for (auto i = 0; i < appendedIndexes; ++i)
                     ^
BtOgre21/include/BtOgreGP.h:136:21: error: ‘i’ was not declared in this scope
BtOgre21/include/BtOgreGP.h:138:5: error: ‘mIndexBuffer’ was not declared in this scope
     mIndexBuffer[perviousSize + i] = static_cast<unsigned>(offset + pointerData[i]);
     ^
BtOgre21/include/BtOgreGP.h:138:69: error: ‘pointerData’ was not declared in this scope
     mIndexBuffer[perviousSize + i] = static_cast<unsigned>(offset + pointerData[i]);
                                                                     ^
BtOgre21/include/BtOgreGP.h: At global scope:
BtOgre21/include/BtOgreGP.h:189:43: warning: defaulted and deleted functions only available with -std=c++11 or -std=gnu++11 [enabled by default]
   virtual ~StaticMeshToShapeConverter() = default;
                                           ^
BtOgre21/sources/BtOgreGP.cpp: In member function ‘void BtOgre::VertexIndexToShape::appendV1VertexData(const Ogre::v1::VertexData*)’:
BtOgre21/sources/BtOgreGP.cpp:38:13: error: ‘previousSize’ does not name a type
  const auto previousSize = mVertexBuffer.size();
             ^
BtOgre21/sources/BtOgreGP.cpp:41:2: error: ‘mVertexBuffer’ was not declared in this scope
  mVertexBuffer.resize(previousSize + vertex_data->vertexCount);
  ^
BtOgre21/sources/BtOgreGP.cpp:41:23: error: ‘previousSize’ was not declared in this scope
  mVertexBuffer.resize(previousSize + vertex_data->vertexCount);
                       ^
BtOgre21/sources/BtOgreGP.cpp:44:13: error: ‘posElem’ does not name a type
  const auto posElem = vertex_data->vertexDeclaration->findElementBySemantic(VES_POSITION);
             ^
BtOgre21/sources/BtOgreGP.cpp:45:13: error: ‘vbuf’ does not name a type
  const auto vbuf = vertex_data->vertexBufferBinding->getBuffer(posElem->getSource());
             ^
BtOgre21/sources/BtOgreGP.cpp:46:13: error: ‘vertexSize’ does not name a type
  const auto vertexSize = static_cast<unsigned int>(vbuf->getVertexSize());
             ^
BtOgre21/sources/BtOgreGP.cpp:49:13: error: ‘vertex’ does not name a type
  const auto vertex = static_cast<unsigned char*>(vbuf->lock(v1::HardwareBuffer::HBL_READ_ONLY));
             ^
BtOgre21/sources/BtOgreGP.cpp:50:8: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
  Real* rawVertex{ nullptr }; // this pointer will be used a a buffer to write the [float, float, float] array of the vertex
        ^
BtOgre21/sources/BtOgreGP.cpp:50:19: error: ‘nullptr’ was not declared in this scope
  Real* rawVertex{ nullptr }; // this pointer will be used a a buffer to write the [float, float, float] array of the vertex
                   ^
BtOgre21/sources/BtOgreGP.cpp:53:13: error: ‘vertexCount’ does not name a type
  const auto vertexCount = static_cast<unsigned int>(vertex_data->vertexCount);
             ^
BtOgre21/sources/BtOgreGP.cpp:54:12: error: ‘j’ does not name a type
  for (auto j = size_t{ 0U }; j < vertexCount; ++j)
            ^
BtOgre21/sources/BtOgreGP.cpp:54:30: error: ‘j’ was not declared in this scope
  for (auto j = size_t{ 0U }; j < vertexCount; ++j)
                              ^
BtOgre21/sources/BtOgreGP.cpp:54:34: error: ‘vertexCount’ was not declared in this scope
  for (auto j = size_t{ 0U }; j < vertexCount; ++j)
                                  ^
BtOgre21/sources/BtOgreGP.cpp:57:3: error: ‘posElem’ was not declared in this scope
   posElem->baseVertexPointerToElement(vertex + j * vertexSize, &rawVertex);
   ^
BtOgre21/sources/BtOgreGP.cpp:57:39: error: ‘vertex’ was not declared in this scope
   posElem->baseVertexPointerToElement(vertex + j * vertexSize, &rawVertex);
                                       ^
BtOgre21/sources/BtOgreGP.cpp:57:52: error: ‘vertexSize’ was not declared in this scope
   posElem->baseVertexPointerToElement(vertex + j * vertexSize, &rawVertex);
                                                    ^
BtOgre21/sources/BtOgreGP.cpp:58:50: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
   mVertexBuffer[previousSize + j] = mTransform * Vector3{ rawVertex };
                                                  ^
BtOgre21/sources/BtOgreGP.cpp:62:2: error: ‘vbuf’ was not declared in this scope
  vbuf->unlock();
  ^
BtOgre21/sources/BtOgreGP.cpp: In member function ‘void BtOgre::VertexIndexToShape::addAnimatedVertexData(const Ogre::v1::VertexData*, const Ogre::v1::VertexData*, const IndexMap*)’:
BtOgre21/sources/BtOgreGP.cpp:72:13: error: ‘data’ does not name a type
  const auto data = blend_data;
             ^
BtOgre21/sources/BtOgreGP.cpp:75:13: error: ‘prev_size’ does not name a type
  const auto prev_size = mVertexBuffer.size();
             ^
BtOgre21/sources/BtOgreGP.cpp:78:21: error: ‘data’ was not declared in this scope
  appendV1VertexData(data);
                     ^
BtOgre21/sources/BtOgreGP.cpp:80:13: error: ‘bneElem’ does not name a type
  const auto bneElem = vertex_data->vertexDeclaration->findElementBySemantic(VES_BLEND_INDICES);
             ^
In file included from /usr/local/include/OGRE/OgreLwConstString.h:37:0,
                 from /usr/local/include/OGRE/OgreHlmsJson.h:36,
                 from /usr/local/include/OGRE/OgreHlms.h:35,
                 from BtOgre21/include/BtOgreExtras.h:27,
                 from BtOgre21/include/BtOgrePG.h:21,
                 from BtOgre21/sources/BtOgreGP.cpp:16:
BtOgre21/sources/BtOgreGP.cpp:81:9: error: ‘bneElem’ was not declared in this scope
  assert(bneElem);
         ^
BtOgre21/sources/BtOgreGP.cpp:83:13: error: ‘vbuf’ does not name a type
  const auto vbuf = vertex_data->vertexBufferBinding->getBuffer(bneElem->getSource());
             ^
BtOgre21/sources/BtOgreGP.cpp:84:13: error: ‘vSize’ does not name a type
  const auto vSize = static_cast<unsigned int>(vbuf->getVertexSize());
             ^
BtOgre21/sources/BtOgreGP.cpp:85:13: error: ‘vertex’ does not name a type
  const auto vertex = static_cast<unsigned char*>(vbuf->lock(v1::HardwareBuffer::HBL_READ_ONLY));
             ^
BtOgre21/sources/BtOgreGP.cpp:89:7: error: ‘mBoneIndex’ was not declared in this scope
  if (!mBoneIndex)
       ^
BtOgre21/sources/BtOgreGP.cpp:90:20: error: expected type-specifier before ‘BoneIndex’
   mBoneIndex = new BoneIndex();
                    ^
BtOgre21/sources/BtOgreGP.cpp:90:20: error: expected ‘;’ before ‘BoneIndex’
BtOgre21/sources/BtOgreGP.cpp:91:2: error: ‘BoneIndex’ has not been declared
  BoneIndex::iterator i;
  ^
BtOgre21/sources/BtOgreGP.cpp:91:22: error: expected ‘;’ before ‘i’
  BoneIndex::iterator i;
                      ^
BtOgre21/sources/BtOgreGP.cpp:94:7: error: ‘curVertices’ does not name a type
  auto curVertices = &mVertexBuffer.data()[prev_size];
       ^
BtOgre21/sources/BtOgreGP.cpp:96:13: error: ‘vertexCount’ does not name a type
  const auto vertexCount = static_cast<unsigned int>(vertex_data->vertexCount);
             ^
BtOgre21/sources/BtOgreGP.cpp:97:12: error: ‘j’ does not name a type
  for (auto j = size_t{ 0U }; j < vertexCount; ++j)
            ^
BtOgre21/sources/BtOgreGP.cpp:97:30: error: ‘j’ was not declared in this scope
  for (auto j = size_t{ 0U }; j < vertexCount; ++j)
                              ^
BtOgre21/sources/BtOgreGP.cpp:97:34: error: ‘vertexCount’ was not declared in this scope
  for (auto j = size_t{ 0U }; j < vertexCount; ++j)
                                  ^
BtOgre21/sources/BtOgreGP.cpp:99:39: error: ‘vertex’ was not declared in this scope
   bneElem->baseVertexPointerToElement(vertex + j * vSize, &pBone);
                                       ^
BtOgre21/sources/BtOgreGP.cpp:99:52: error: ‘vSize’ was not declared in this scope
   bneElem->baseVertexPointerToElement(vertex + j * vSize, &pBone);
                                                    ^
BtOgre21/sources/BtOgreGP.cpp:101:14: error: ‘currBone’ does not name a type
   const auto currBone = static_cast<unsigned char>(indexMap ? (*indexMap)[*pBone] : *pBone);
              ^
BtOgre21/sources/BtOgreGP.cpp:102:3: error: ‘i’ was not declared in this scope
   i = mBoneIndex->find(currBone);
   ^
BtOgre21/sources/BtOgreGP.cpp:102:7: error: ‘mBoneIndex’ was not declared in this scope
   i = mBoneIndex->find(currBone);
       ^
BtOgre21/sources/BtOgreGP.cpp:102:24: error: ‘currBone’ was not declared in this scope
   i = mBoneIndex->find(currBone);
                        ^
BtOgre21/sources/BtOgreGP.cpp:104:3: error: ‘Vector3Array’ was not declared in this scope
   Vector3Array* l = nullptr;
   ^
BtOgre21/sources/BtOgreGP.cpp:104:17: error: ‘l’ was not declared in this scope
   Vector3Array* l = nullptr;
                 ^
BtOgre21/sources/BtOgreGP.cpp:104:21: error: ‘nullptr’ was not declared in this scope
   Vector3Array* l = nullptr;
                     ^
BtOgre21/sources/BtOgreGP.cpp:108:12: error: expected type-specifier before ‘Vector3Array’
    l = new Vector3Array;
            ^
BtOgre21/sources/BtOgreGP.cpp:108:12: error: expected ‘;’ before ‘Vector3Array’
BtOgre21/sources/BtOgreGP.cpp:109:47: error: ‘BoneKeyIndex’ was not declared in this scope
    mBoneIndex->insert(BoneKeyIndex(currBone, l));
                                               ^
BtOgre21/sources/BtOgreGP.cpp:116:17: error: ‘curVertices’ was not declared in this scope
   l->push_back(*curVertices);
                 ^
BtOgre21/sources/BtOgreGP.cpp:120:2: error: ‘vbuf’ was not declared in this scope
  vbuf->unlock();
  ^
BtOgre21/sources/BtOgreGP.cpp: In member function ‘void BtOgre::VertexIndexToShape::appendV1IndexData(Ogre::v1::IndexData*, size_t)’:
BtOgre21/sources/BtOgreGP.cpp:125:13: error: ‘appendedIndexes’ does not name a type
  const auto appendedIndexes = data->indexCount;
             ^
BtOgre21/sources/BtOgreGP.cpp:126:13: error: ‘previousSize’ does not name a type
  const auto previousSize = mIndexBuffer.size();
             ^
BtOgre21/sources/BtOgreGP.cpp:128:2: error: ‘mIndexBuffer’ was not declared in this scope
  mIndexBuffer.resize(previousSize + appendedIndexes);
  ^
BtOgre21/sources/BtOgreGP.cpp:128:22: error: ‘previousSize’ was not declared in this scope
  mIndexBuffer.resize(previousSize + appendedIndexes);
                      ^
BtOgre21/sources/BtOgreGP.cpp:128:37: error: ‘appendedIndexes’ was not declared in this scope
  mIndexBuffer.resize(previousSize + appendedIndexes);
                                     ^
BtOgre21/sources/BtOgreGP.cpp:130:7: error: ‘ibuf’ does not name a type
  auto ibuf = data->indexBuffer;
       ^
BtOgre21/sources/BtOgreGP.cpp:133:6: error: ‘ibuf’ was not declared in this scope
  if (ibuf->getType() == v1::HardwareIndexBuffer::IT_32BIT)
      ^
BtOgre21/sources/BtOgreGP.cpp: In member function ‘Ogre::Vector3 BtOgre::VertexIndexToShape::getSize()’:
BtOgre21/sources/BtOgreGP.cpp:153:8: error: ‘vmin’ does not name a type
   auto vmin = mVertexBuffer[0];
        ^
BtOgre21/sources/BtOgreGP.cpp:154:8: error: ‘vmax’ does not name a type
   auto vmax = vmin;
        ^
BtOgre21/sources/BtOgreGP.cpp:156:19: error: ‘vertex’ does not name a type
   for (const auto vertex : mVertexBuffer)
                   ^
BtOgre21/sources/BtOgreGP.cpp:166:3: error: expected ‘;’ before ‘mBounds’
   mBounds = vmax - vmin;
   ^
BtOgre21/sources/BtOgreGP.cpp:166:13: error: ‘vmax’ was not declared in this scope
   mBounds = vmax - vmin;
             ^
BtOgre21/sources/BtOgreGP.cpp:166:20: error: ‘vmin’ was not declared in this scope
   mBounds = vmax - vmin;
                    ^
BtOgre21/sources/BtOgreGP.cpp:167:2: error: expected primary-expression before ‘}’ token
  }
  ^
BtOgre21/sources/BtOgreGP.cpp:167:2: error: expected ‘)’ before ‘}’ token
BtOgre21/sources/BtOgreGP.cpp:167:2: error: expected primary-expression before ‘}’ token
BtOgre21/sources/BtOgreGP.cpp:167:2: error: expected ‘;’ before ‘}’ token
BtOgre21/sources/BtOgreGP.cpp: In member function ‘const Ogre::Vector3* BtOgre::VertexIndexToShape::getVertices()’:
BtOgre21/sources/BtOgreGP.cpp:175:9: error: ‘mVertexBuffer’ was not declared in this scope
  return mVertexBuffer.data();
         ^
BtOgre21/sources/BtOgreGP.cpp: In member function ‘size_t BtOgre::VertexIndexToShape::getVertexCount() const’:
BtOgre21/sources/BtOgreGP.cpp:180:9: error: ‘mVertexBuffer’ was not declared in this scope
  return mVertexBuffer.size();
         ^
BtOgre21/sources/BtOgreGP.cpp: In member function ‘const unsigned int* BtOgre::VertexIndexToShape::getIndices()’:
BtOgre21/sources/BtOgreGP.cpp:184:9: error: ‘mIndexBuffer’ was not declared in this scope
  return mIndexBuffer.data();
         ^
BtOgre21/sources/BtOgreGP.cpp: In member function ‘size_t BtOgre::VertexIndexToShape::getIndexCount() const’:
BtOgre21/sources/BtOgreGP.cpp:189:9: error: ‘mIndexBuffer’ was not declared in this scope
  return mIndexBuffer.size();
         ^
BtOgre21/sources/BtOgreGP.cpp: In member function ‘btSphereShape* BtOgre::VertexIndexToShape::createSphere()’:
BtOgre21/sources/BtOgreGP.cpp:199:13: error: ‘rad’ does not name a type
  const auto rad = getRadius();
             ^
In file included from /usr/local/include/OGRE/OgreLwConstString.h:37:0,
                 from /usr/local/include/OGRE/OgreHlmsJson.h:36,
                 from /usr/local/include/OGRE/OgreHlms.h:35,
                 from BtOgre21/include/BtOgreExtras.h:27,
                 from BtOgre21/include/BtOgrePG.h:21,
                 from BtOgre21/sources/BtOgreGP.cpp:16:
BtOgre21/sources/BtOgreGP.cpp:200:10: error: ‘rad’ was not declared in this scope
  assert((rad > 0.0) &&
          ^
BtOgre21/sources/BtOgreGP.cpp:202:7: error: ‘shape’ does not name a type
  auto shape = new btSphereShape(rad);
       ^
BtOgre21/sources/BtOgreGP.cpp:204:2: error: ‘shape’ was not declared in this scope
  shape->setLocalScaling(Convert::toBullet(mScale));
  ^
BtOgre21/sources/BtOgreGP.cpp: In member function ‘btBoxShape* BtOgre::VertexIndexToShape::createBox()’:
BtOgre21/sources/BtOgreGP.cpp:211:13: error: ‘sz’ does not name a type
  const auto sz = getSize();
             ^
In file included from /usr/local/include/OGRE/OgreLwConstString.h:37:0,
                 from /usr/local/include/OGRE/OgreHlmsJson.h:36,
                 from /usr/local/include/OGRE/OgreHlms.h:35,
                 from BtOgre21/include/BtOgreExtras.h:27,
                 from BtOgre21/include/BtOgrePG.h:21,
                 from BtOgre21/sources/BtOgreGP.cpp:16:
BtOgre21/sources/BtOgreGP.cpp:213:10: error: ‘sz’ was not declared in this scope
  assert((sz.x > 0.0) && (sz.y > 0.0) && (sz.z > 0.0) &&
          ^
BtOgre21/sources/BtOgreGP.cpp:216:7: error: ‘shape’ does not name a type
  auto shape = new btBoxShape(Convert::toBullet(sz * 0.5));
       ^
BtOgre21/sources/BtOgreGP.cpp:218:2: error: ‘shape’ was not declared in this scope
  shape->setLocalScaling(Convert::toBullet(mScale));
  ^
BtOgre21/sources/BtOgreGP.cpp: In member function ‘btCylinderShape* BtOgre::VertexIndexToShape::createCylinder()’:
BtOgre21/sources/BtOgreGP.cpp:225:13: error: ‘sz’ does not name a type
  const auto sz = getSize()*.5f;
             ^
In file included from /usr/local/include/OGRE/OgreLwConstString.h:37:0,
                 from /usr/local/include/OGRE/OgreHlmsJson.h:36,
                 from /usr/local/include/OGRE/OgreHlms.h:35,
                 from BtOgre21/include/BtOgreExtras.h:27,
                 from BtOgre21/include/BtOgrePG.h:21,
                 from BtOgre21/sources/BtOgreGP.cpp:16:
BtOgre21/sources/BtOgreGP.cpp:227:10: error: ‘sz’ was not declared in this scope
  assert((sz.x > 0.0) && (sz.y > 0.0) && (sz.z > 0.0) &&
          ^
BtOgre21/sources/BtOgreGP.cpp:230:7: error: ‘biggest’ does not name a type
  auto biggest = std::max(sz.x, std::max(sz.y, sz.z));
       ^
BtOgre21/sources/BtOgreGP.cpp:235:6: error: ‘biggest’ was not declared in this scope
  if (biggest == sz.x)
      ^
BtOgre21/sources/BtOgreGP.cpp: In member function ‘btConvexHullShape* BtOgre::VertexIndexToShape::createConvex()’:
BtOgre21/sources/BtOgreGP.cpp:253:7: error: ‘shape’ does not name a type
  auto shape = new btConvexHullShape{ static_cast<btScalar*>(&mVertexBuffer[0].x), int(getVertexCount()), sizeof(Vector3) };
       ^
BtOgre21/sources/BtOgreGP.cpp:255:2: error: ‘shape’ was not declared in this scope
  shape->setLocalScaling(Convert::toBullet(mScale));
  ^
BtOgre21/sources/BtOgreGP.cpp: In member function ‘btBvhTriangleMeshShape* BtOgre::VertexIndexToShape::createTrimesh()’:
BtOgre21/sources/BtOgreGP.cpp:265:13: error: ‘numFaces’ does not name a type
  const auto numFaces = getTriangleCount();
             ^
BtOgre21/sources/BtOgreGP.cpp:266:7: error: ‘trimesh’ does not name a type
  auto trimesh = new btTriangleMesh();
       ^
BtOgre21/sources/BtOgreGP.cpp:269:12: error: ‘i’ does not name a type
  for (auto i = size_t{ 0U }; i < numFaces; ++i)
            ^
BtOgre21/sources/BtOgreGP.cpp:269:30: error: ‘i’ was not declared in this scope
  for (auto i = size_t{ 0U }; i < numFaces; ++i)
                              ^
BtOgre21/sources/BtOgreGP.cpp:269:34: error: ‘numFaces’ was not declared in this scope
  for (auto i = size_t{ 0U }; i < numFaces; ++i)
                                  ^
BtOgre21/sources/BtOgreGP.cpp:271:19: error: ‘j’ does not name a type
   for (const auto j : { 0, 1, 2 })
                   ^
BtOgre21/sources/BtOgreGP.cpp:271:34: error: expected ‘;’ before ‘)’ token
   for (const auto j : { 0, 1, 2 })
                                  ^
BtOgre21/sources/BtOgreGP.cpp:271:34: error: expected primary-expression before ‘)’ token
BtOgre21/sources/BtOgreGP.cpp:271:34: error: expected ‘;’ before ‘)’ token
BtOgre21/sources/BtOgreGP.cpp:272:14: error: ‘j’ was not declared in this scope
    vertexPos[j] = Convert::toBullet(mVertexBuffer[mIndexBuffer[3 * i + j]]);
              ^
BtOgre21/sources/BtOgreGP.cpp:272:37: error: ‘mVertexBuffer’ was not declared in this scope
    vertexPos[j] = Convert::toBullet(mVertexBuffer[mIndexBuffer[3 * i + j]]);
                                     ^
BtOgre21/sources/BtOgreGP.cpp:272:51: error: ‘mIndexBuffer’ was not declared in this scope
    vertexPos[j] = Convert::toBullet(mVertexBuffer[mIndexBuffer[3 * i + j]]);
                                                   ^
BtOgre21/sources/BtOgreGP.cpp:274:3: error: ‘trimesh’ was not declared in this scope
   trimesh->addTriangle(vertexPos[0], vertexPos[1], vertexPos[2]);
   ^
BtOgre21/sources/BtOgreGP.cpp:277:13: error: ‘useQuantizedAABB’ does not name a type
  const auto useQuantizedAABB = true;
             ^
BtOgre21/sources/BtOgreGP.cpp:278:7: error: ‘shape’ does not name a type
  auto shape = new btBvhTriangleMeshShape(trimesh, useQuantizedAABB);
       ^
BtOgre21/sources/BtOgreGP.cpp:280:2: error: ‘shape’ was not declared in this scope
  shape->setLocalScaling(Convert::toBullet(mScale));
  ^
BtOgre21/sources/BtOgreGP.cpp: In member function ‘btCapsuleShape* BtOgre::VertexIndexToShape::createCapsule()’:
BtOgre21/sources/BtOgreGP.cpp:287:13: error: ‘sz’ does not name a type
  const auto sz = getSize();
             ^
In file included from /usr/local/include/OGRE/OgreLwConstString.h:37:0,
                 from /usr/local/include/OGRE/OgreHlmsJson.h:36,
                 from /usr/local/include/OGRE/OgreHlms.h:35,
                 from BtOgre21/include/BtOgreExtras.h:27,
                 from BtOgre21/include/BtOgrePG.h:21,
                 from BtOgre21/sources/BtOgreGP.cpp:16:
BtOgre21/sources/BtOgreGP.cpp:289:10: error: ‘sz’ was not declared in this scope
  assert((sz.x > 0.0) && (sz.y > 0.0) && (sz.z > 0.0) &&
          ^
BtOgre21/sources/BtOgreGP.cpp:292:7: error: ‘height’ does not name a type
  auto height = std::max(sz.x, std::max(sz.y, sz.z));
       ^
BtOgre21/sources/BtOgreGP.cpp:296:6: error: ‘height’ was not declared in this scope
  if (height == sz.y)
      ^
BtOgre21/sources/BtOgreGP.cpp: In destructor ‘virtual BtOgre::VertexIndexToShape::~VertexIndexToShape()’:
BtOgre21/sources/BtOgreGP.cpp:319:6: error: ‘mBoneIndex’ was not declared in this scope
  if (mBoneIndex)
      ^
BtOgre21/sources/BtOgreGP.cpp:321:13: error: ‘i’ does not name a type
   for (auto i = begin(*mBoneIndex);
             ^
BtOgre21/sources/BtOgreGP.cpp:322:4: error: expected ‘;’ before ‘i’
    i != end(*mBoneIndex);
    ^
BtOgre21/sources/BtOgreGP.cpp:322:4: error: ‘i’ was not declared in this scope
BtOgre21/sources/BtOgreGP.cpp:322:24: error: ‘end’ was not declared in this scope
    i != end(*mBoneIndex);
                        ^
BtOgre21/sources/BtOgreGP.cpp:325:10: error: type ‘<type error>’ argument given to ‘delete’, expected pointer
   delete mBoneIndex;
          ^
BtOgre21/sources/BtOgreGP.cpp: In constructor ‘BtOgre::VertexIndexToShape::VertexIndexToShape(const Ogre::Matrix4&)’:
BtOgre21/sources/BtOgreGP.cpp:332:2: error: class ‘BtOgre::VertexIndexToShape’ does not have any field named ‘mBoneIndex’
  mBoneIndex(nullptr),
  ^
BtOgre21/sources/BtOgreGP.cpp:332:13: error: ‘nullptr’ was not declared in this scope
  mBoneIndex(nullptr),
             ^
BtOgre21/sources/BtOgreGP.cpp: In constructor ‘BtOgre::StaticMeshToShapeConverter::StaticMeshToShapeConverter()’:
BtOgre21/sources/BtOgreGP.cpp:346:10: error: ‘nullptr’ was not declared in this scope
  mEntity(nullptr),
          ^
BtOgre21/sources/BtOgreGP.cpp: In constructor ‘BtOgre::StaticMeshToShapeConverter::StaticMeshToShapeConverter(Ogre::v1::Entity*, const Ogre::Matrix4&)’:
BtOgre21/sources/BtOgreGP.cpp:354:10: error: ‘nullptr’ was not declared in this scope
  mEntity(nullptr),
          ^
BtOgre21/sources/BtOgreGP.cpp: In constructor ‘BtOgre::StaticMeshToShapeConverter::StaticMeshToShapeConverter(Ogre::v1::Mesh*, const Ogre::Matrix4&)’:
BtOgre21/sources/BtOgreGP.cpp:363:10: error: ‘nullptr’ was not declared in this scope
  mEntity(nullptr),
          ^
BtOgre21/sources/BtOgreGP.cpp: In constructor ‘BtOgre::StaticMeshToShapeConverter::StaticMeshToShapeConverter(Ogre::Renderable*, const Ogre::Matrix4&)’:
BtOgre21/sources/BtOgreGP.cpp:377:10: error: ‘nullptr’ was not declared in this scope
  mEntity(nullptr),
          ^
BtOgre21/sources/BtOgreGP.cpp: In member function ‘void BtOgre::StaticMeshToShapeConverter::addMesh(const Ogre::v1::Mesh*, const Ogre::Matrix4&)’:
BtOgre21/sources/BtOgreGP.cpp:416:8: error: ‘sub_mesh’ does not name a type
   auto sub_mesh = mesh->getSubMesh(i);
        ^
BtOgre21/sources/BtOgreGP.cpp:418:8: error: ‘sub_mesh’ was not declared in this scope
   if (!sub_mesh->useSharedVertices)
        ^
BtOgre21/sources/BtOgreGP.cpp: In member function ‘void BtOgre::VertexIndexToShape::getV2MeshBufferSize(const Ogre::Mesh*, size_t&, size_t&)’:
BtOgre21/sources/BtOgreGP.cpp:435:23: error: ‘mVertexBuffer’ was not declared in this scope
  previousVertexSize = mVertexBuffer.size();
                       ^
BtOgre21/sources/BtOgreGP.cpp:438:18: error: ‘subMesh’ does not name a type
  for (const auto subMesh : mesh->getSubMeshes())
                  ^
BtOgre21/sources/BtOgreGP.cpp:444:2: error: expected ‘;’ before ‘mVertexBuffer’
  mVertexBuffer.resize(mVertexBuffer.size() + numVertices);
  ^
BtOgre21/sources/BtOgreGP.cpp:445:2: error: ‘mIndexBuffer’ was not declared in this scope
  mIndexBuffer.resize(mIndexBuffer.size() + numIndices);
  ^
BtOgre21/sources/BtOgreGP.cpp:445:55: error: expected ‘)’ before ‘;’ token
  mIndexBuffer.resize(mIndexBuffer.size() + numIndices);
                                                       ^
BtOgre21/sources/BtOgreGP.cpp: In member function ‘void BtOgre::VertexIndexToShape::extractV2SubMeshVertexBuffer(size_t&, Ogre::VertexArrayObject::ReadRequestsArray, const size_t&)’:
BtOgre21/sources/BtOgreGP.cpp:452:7: error: ‘subMeshVerticiesNum’ does not name a type
  auto subMeshVerticiesNum = requests[0].vertexBuffer->getNumElements();
       ^
BtOgre21/sources/BtOgreGP.cpp:456:26: error: ‘subMeshVerticiesNum’ was not declared in this scope
   for (size_t i = 0; i < subMeshVerticiesNum; ++i)
                          ^
BtOgre21/sources/BtOgreGP.cpp:458:9: error: ‘pos’ does not name a type
    auto pos = reinterpret_cast<const uint16*>(requests[0].data); //Stored as 16 bits. Need to use Ogre::Bitwise utilities to extract a floating point form this
         ^
BtOgre21/sources/BtOgreGP.cpp:460:4: error: ‘mVertexBuffer’ was not declared in this scope
    mVertexBuffer[prevSize + i + subMeshOffset] = mTransform * Vector3{ Bitwise::halfToFloat(pos[0]), Bitwise::halfToFloat(pos[1]), Bitwise::halfToFloat(pos[2]) };
    ^
BtOgre21/sources/BtOgreGP.cpp:460:63: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
    mVertexBuffer[prevSize + i + subMeshOffset] = mTransform * Vector3{ Bitwise::halfToFloat(pos[0]), Bitwise::halfToFloat(pos[1]), Bitwise::halfToFloat(pos[2]) };
                                                               ^
BtOgre21/sources/BtOgreGP.cpp:460:93: error: ‘pos’ was not declared in this scope
    mVertexBuffer[prevSize + i + subMeshOffset] = mTransform * Vector3{ Bitwise::halfToFloat(pos[0]), Bitwise::halfToFloat(pos[1]), Bitwise::halfToFloat(pos[2]) };
                                                                                             ^
BtOgre21/sources/BtOgreGP.cpp:460:161: error: no matching function for call to ‘Ogre::Vector3::Vector3(<brace-enclosed initializer list>)’
    mVertexBuffer[prevSize + i + subMeshOffset] = mTransform * Vector3{ Bitwise::halfToFloat(pos[0]), Bitwise::halfToFloat(pos[1]), Bitwise::halfToFloat(pos[2]) };
                                                                                                                                                                 ^
BtOgre21/sources/BtOgreGP.cpp:460:161: note: candidates are:
In file included from /usr/local/include/OGRE/OgreMatrix3.h:33:0,
                 from /usr/local/include/OGRE/OgreMatrix4.h:36,
                 from /usr/local/include/OGRE/OgreNode.h:33,
                 from /usr/local/include/OGRE/OgreSceneNode.h:33,
                 from BtOgre21/include/BtOgrePG.h:20,
                 from BtOgre21/sources/BtOgreGP.cpp:16:
/usr/local/include/OGRE/OgreVector3.h:88:25: note: Ogre::Vector3::Vector3(Ogre::Real)
         inline explicit Vector3( const Real scaler )
                         ^
/usr/local/include/OGRE/OgreVector3.h:88:25: note:   candidate expects 1 argument, 3 provided
/usr/local/include/OGRE/OgreVector3.h:83:25: note: Ogre::Vector3::Vector3(Ogre::Real*)
         inline explicit Vector3( Real* const r )
                         ^
/usr/local/include/OGRE/OgreVector3.h:83:25: note:   candidate expects 1 argument, 3 provided
/usr/local/include/OGRE/OgreVector3.h:76:25: note: Ogre::Vector3::Vector3(const int*)
         inline explicit Vector3( const int afCoordinate[3] )
                         ^
/usr/local/include/OGRE/OgreVector3.h:76:25: note:   candidate expects 1 argument, 3 provided
/usr/local/include/OGRE/OgreVector3.h:69:25: note: Ogre::Vector3::Vector3(const Real*)
         inline explicit Vector3( const Real afCoordinate[3] )
                         ^
/usr/local/include/OGRE/OgreVector3.h:69:25: note:   candidate expects 1 argument, 3 provided
/usr/local/include/OGRE/OgreVector3.h:64:16: note: Ogre::Vector3::Vector3(Ogre::Real, Ogre::Real, Ogre::Real)
         inline Vector3( const Real fX, const Real fY, const Real fZ )
                ^
/usr/local/include/OGRE/OgreVector3.h:64:16: note:   no known conversion for argument 1 from ‘<type error>’ to ‘Ogre::Real {aka float}’
/usr/local/include/OGRE/OgreVector3.h:60:16: note: Ogre::Vector3::Vector3()
         inline Vector3()
                ^
/usr/local/include/OGRE/OgreVector3.h:60:16: note:   candidate expects 0 arguments, 3 provided
/usr/local/include/OGRE/OgreVector3.h:50:23: note: Ogre::Vector3::Vector3(const Ogre::Vector3&)
     class _OgreExport Vector3
                       ^
/usr/local/include/OGRE/OgreVector3.h:50:23: note:   candidate expects 1 argument, 3 provided
BtOgre21/sources/BtOgreGP.cpp:464:26: error: ‘subMeshVerticiesNum’ was not declared in this scope
   for (size_t i = 0; i < subMeshVerticiesNum; ++i)
                          ^
BtOgre21/sources/BtOgreGP.cpp:466:9: error: ‘pos’ does not name a type
    auto pos = reinterpret_cast<const Real*>(requests[0].data);
         ^
BtOgre21/sources/BtOgreGP.cpp:468:4: error: ‘mVertexBuffer’ was not declared in this scope
    mVertexBuffer[prevSize + i + subMeshOffset] = mTransform * Vector3(pos);
    ^
BtOgre21/sources/BtOgreGP.cpp:468:71: error: ‘pos’ was not declared in this scope
    mVertexBuffer[prevSize + i + subMeshOffset] = mTransform * Vector3(pos);
                                                                       ^
BtOgre21/sources/BtOgreGP.cpp:474:19: error: ‘subMeshVerticiesNum’ was not declared in this scope
  subMeshOffset += subMeshVerticiesNum;
                   ^
BtOgre21/sources/BtOgreGP.cpp: In member function ‘void BtOgre::VertexIndexToShape::extractV2SubMeshIndexBuffer(const size_t&, const size_t&, const bool&, Ogre::IndexBufferPacked*)’:
BtOgre21/sources/BtOgreGP.cpp:489:8: error: ‘asyncTicket’ does not name a type
   auto asyncTicket = indexBuffer->readRequest(0, indexBuffer->getNumElements());
        ^
BtOgre21/sources/BtOgreGP.cpp:491:44: error: ‘asyncTicket’ was not declared in this scope
   if (indices32) loadV2IndexBuffer<uint32>(asyncTicket, offset, previousSize, indexBuffer->getNumElements());
                                            ^
BtOgre21/sources/BtOgreGP.cpp:492:34: error: ‘asyncTicket’ was not declared in this scope
   else loadV2IndexBuffer<uint16>(asyncTicket, offset, previousSize, indexBuffer->getNumElements());
                                  ^
BtOgre21/sources/BtOgreGP.cpp: In member function ‘void BtOgre::StaticMeshToShapeConverter::addMesh(const Ogre::Mesh*, const Ogre::Matrix4&)’:
BtOgre21/sources/BtOgreGP.cpp:507:12: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
  mBounds = Vector3{ -1, -1, -1 };
            ^
BtOgre21/sources/BtOgreGP.cpp:523:7: error: ‘indexOffset’ does not name a type
  auto indexOffset{ mIndexBuffer.empty() ? 0U : mIndexBuffer[mIndexBuffer.size() - 1] };
       ^
BtOgre21/sources/BtOgreGP.cpp:529:19: error: ISO C++ forbids declaration of ‘subMesh’ with no type [-fpermissive]
  for (const auto& subMesh : mesh->getSubMeshes())
                   ^
BtOgre21/sources/BtOgreGP.cpp:529:29: error: range-based ‘for’ loops are not allowed in C++98 mode
  for (const auto& subMesh : mesh->getSubMeshes())
                             ^
BtOgre21/sources/BtOgreGP.cpp:532:14: error: ‘vaos’ does not name a type
   const auto vaos = subMesh->mVao[0];
              ^
BtOgre21/sources/BtOgreGP.cpp:533:7: error: ‘vaos’ was not declared in this scope
   if (vaos.empty()) continue;
       ^
BtOgre21/sources/BtOgreGP.cpp:536:14: error: ‘vao’ does not name a type
   const auto vao = vaos[0];
              ^
BtOgre21/sources/BtOgreGP.cpp:539:15: error: ISO C++ forbids declaration of ‘vertexBuffers’ with no type [-fpermissive]
   const auto& vertexBuffers = vao->getVertexBuffers();
               ^
BtOgre21/sources/BtOgreGP.cpp:539:31: error: ‘vao’ was not declared in this scope
   const auto& vertexBuffers = vao->getVertexBuffers();
                               ^
BtOgre21/sources/BtOgreGP.cpp:540:14: error: ‘indexBuffer’ does not name a type
   const auto indexBuffer = vao->getIndexBuffer();
              ^
BtOgre21/sources/BtOgreGP.cpp:554:4: error: ‘indexOffset’ was not declared in this scope
    indexOffset,
    ^
BtOgre21/sources/BtOgreGP.cpp:556:4: error: ‘indexBuffer’ was not declared in this scope
    indexBuffer);
    ^
BtOgre21/sources/BtOgreGP.cpp:559:33: error: invalid types ‘const int[int]’ for array subscript
   indexOffset += vertexBuffers[0]->getNumElements();
                                 ^
BtOgre21/sources/BtOgreGP.cpp: In constructor ‘BtOgre::AnimatedMeshToShapeConverter::AnimatedMeshToShapeConverter(Ogre::v1::Entity*, const Ogre::Matrix4&)’:
BtOgre21/sources/BtOgreGP.cpp:572:10: error: ‘nullptr’ was not declared in this scope
  mEntity(nullptr),
          ^
BtOgre21/sources/BtOgreGP.cpp: In constructor ‘BtOgre::AnimatedMeshToShapeConverter::AnimatedMeshToShapeConverter()’:
BtOgre21/sources/BtOgreGP.cpp:582:10: error: ‘nullptr’ was not declared in this scope
  mEntity(nullptr),
          ^
BtOgre21/sources/BtOgreGP.cpp: In member function ‘void BtOgre::AnimatedMeshToShapeConverter::addEntity(Ogre::v1::Entity*, const Ogre::Matrix4&)’:
BtOgre21/sources/BtOgreGP.cpp:619:8: error: ‘sub_mesh’ does not name a type
   auto sub_mesh = mEntity->getSubEntity(i)->getSubMesh();
        ^
BtOgre21/sources/BtOgreGP.cpp:621:8: error: ‘sub_mesh’ was not declared in this scope
   if (!sub_mesh->useSharedVertices)
        ^
BtOgre21/sources/BtOgreGP.cpp: In member function ‘void BtOgre::AnimatedMeshToShapeConverter::addMesh(const MeshPtr&, const Ogre::Matrix4&)’:
BtOgre21/sources/BtOgreGP.cpp:651:4: error: ‘nullptr’ was not declared in this scope
    nullptr,
    ^
BtOgre21/sources/BtOgreGP.cpp:657:8: error: ‘sub_mesh’ does not name a type
   auto sub_mesh = mesh->getSubMesh(i);
        ^
BtOgre21/sources/BtOgreGP.cpp:659:8: error: ‘sub_mesh’ was not declared in this scope
   if (!sub_mesh->useSharedVertices)
        ^
BtOgre21/sources/BtOgreGP.cpp:664:5: error: ‘nullptr’ was not declared in this scope
     nullptr,
     ^
BtOgre21/sources/BtOgreGP.cpp: In member function ‘bool BtOgre::AnimatedMeshToShapeConverter::getBoneVertices(unsigned char, unsigned int&, Ogre::Vector3*&, const Ogre::Vector3&)’:
BtOgre21/sources/BtOgreGP.cpp:679:7: error: ‘i’ does not name a type
  auto i = mBoneIndex->find(bone);
       ^
BtOgre21/sources/BtOgreGP.cpp:681:6: error: ‘i’ was not declared in this scope
  if (i == mBoneIndex->end())
      ^
BtOgre21/sources/BtOgreGP.cpp:681:11: error: ‘mBoneIndex’ was not declared in this scope
  if (i == mBoneIndex->end())
           ^
BtOgre21/sources/BtOgreGP.cpp:684:6: error: ‘i’ was not declared in this scope
  if (i->second->empty())
      ^
BtOgre21/sources/BtOgreGP.cpp:687:43: error: ‘i’ was not declared in this scope
  vertex_count = static_cast<unsigned int>(i->second->size()) + 1;
                                           ^
BtOgre21/sources/BtOgreGP.cpp:703:7: error: ‘j’ does not name a type
  auto j = i->second->begin();
       ^
BtOgre21/sources/BtOgreGP.cpp:704:9: error: ‘j’ was not declared in this scope
  while (j != i->second->end())
         ^
BtOgre21/sources/BtOgreGP.cpp: In member function ‘btBoxShape* BtOgre::AnimatedMeshToShapeConverter::createAlignedBox(unsigned char, const Ogre::Vector3&, const Ogre::Quaternion&)’:
BtOgre21/sources/BtOgreGP.cpp:721:10: error: ‘nullptr’ was not declared in this scope
   return nullptr;
          ^
BtOgre21/sources/BtOgreGP.cpp:723:15: error: ISO C++ forbids declaration of ‘min_vec’ with no type [-fpermissive]
  auto min_vec(vertices[0]);
               ^
BtOgre21/sources/BtOgreGP.cpp:723:26: error: cannot convert ‘Ogre::Vector3’ to ‘int’ in initialization
  auto min_vec(vertices[0]);
                          ^
BtOgre21/sources/BtOgreGP.cpp:724:15: error: ISO C++ forbids declaration of ‘max_vec’ with no type [-fpermissive]
  auto max_vec(vertices[0]);
               ^
BtOgre21/sources/BtOgreGP.cpp:724:26: error: cannot convert ‘Ogre::Vector3’ to ‘int’ in initialization
  auto max_vec(vertices[0]);
                          ^
BtOgre21/sources/BtOgreGP.cpp:728:11: error: request for member ‘x’ in ‘min_vec’, which is of non-class type ‘int’
   min_vec.x = std::min(min_vec.x, vertices[j].x);
           ^
BtOgre21/sources/BtOgreGP.cpp:728:32: error: request for member ‘x’ in ‘min_vec’, which is of non-class type ‘int’
   min_vec.x = std::min(min_vec.x, vertices[j].x);
                                ^
BtOgre21/sources/BtOgreGP.cpp:729:11: error: request for member ‘y’ in ‘min_vec’, which is of non-class type ‘int’
   min_vec.y = std::min(min_vec.y, vertices[j].y);
           ^
BtOgre21/sources/BtOgreGP.cpp:729:32: error: request for member ‘y’ in ‘min_vec’, which is of non-class type ‘int’
   min_vec.y = std::min(min_vec.y, vertices[j].y);
                                ^
BtOgre21/sources/BtOgreGP.cpp:730:11: error: request for member ‘z’ in ‘min_vec’, which is of non-class type ‘int’
   min_vec.z = std::min(min_vec.z, vertices[j].z);
           ^
BtOgre21/sources/BtOgreGP.cpp:730:32: error: request for member ‘z’ in ‘min_vec’, which is of non-class type ‘int’
   min_vec.z = std::min(min_vec.z, vertices[j].z);
                                ^
BtOgre21/sources/BtOgreGP.cpp:732:11: error: request for member ‘x’ in ‘max_vec’, which is of non-class type ‘int’
   max_vec.x = std::max(max_vec.x, vertices[j].x);
           ^
BtOgre21/sources/BtOgreGP.cpp:732:32: error: request for member ‘x’ in ‘max_vec’, which is of non-class type ‘int’
   max_vec.x = std::max(max_vec.x, vertices[j].x);
                                ^
BtOgre21/sources/BtOgreGP.cpp:733:11: error: request for member ‘y’ in ‘max_vec’, which is of non-class type ‘int’
   max_vec.y = std::max(max_vec.y, vertices[j].y);
           ^
BtOgre21/sources/BtOgreGP.cpp:733:32: error: request for member ‘y’ in ‘max_vec’, which is of non-class type ‘int’
   max_vec.y = std::max(max_vec.y, vertices[j].y);
                                ^
BtOgre21/sources/BtOgreGP.cpp:734:11: error: request for member ‘z’ in ‘max_vec’, which is of non-class type ‘int’
   max_vec.z = std::max(max_vec.z, vertices[j].z);
           ^
BtOgre21/sources/BtOgreGP.cpp:734:32: error: request for member ‘z’ in ‘max_vec’, which is of non-class type ‘int’
   max_vec.z = std::max(max_vec.z, vertices[j].z);
                                ^
BtOgre21/sources/BtOgreGP.cpp:736:25: error: ISO C++ forbids declaration of ‘maxMinusMin’ with no type [-fpermissive]
  const auto maxMinusMin(max_vec - min_vec);
                         ^
BtOgre21/sources/BtOgreGP.cpp:737:7: error: ‘box’ does not name a type
  auto box = new btBoxShape(Convert::toBullet(maxMinusMin));
       ^
BtOgre21/sources/BtOgreGP.cpp:746:9: error: ‘box’ was not declared in this scope
  return box;
         ^
BtOgre21/sources/BtOgreGP.cpp: In member function ‘bool BtOgre::AnimatedMeshToShapeConverter::getOrientedBox(unsigned char, const Ogre::Vector3&, const Ogre::Quaternion&, Ogre::Vector3&, Ogre::Vector3*, Ogre::Vector3&)’:
BtOgre21/sources/BtOgreGP.cpp:769:14: error: ‘invVertexCount’ does not name a type
   const auto invVertexCount = 1.0f / vertex_count;
              ^
BtOgre21/sources/BtOgreGP.cpp:770:18: error: ‘invVertexCount’ was not declared in this scope
   box_kCenter *= invVertexCount;
                  ^
BtOgre21/sources/BtOgreGP.cpp:772:7: error: ‘orient’ does not name a type
  auto orient = boneOrientation;
       ^
BtOgre21/sources/BtOgreGP.cpp:773:2: error: ‘orient’ was not declared in this scope
  orient.ToAxes(box_akAxis);
  ^
BtOgre21/sources/BtOgreGP.cpp:782:13: error: ISO C++ forbids declaration of ‘kDiff’ with no type [-fpermissive]
  auto kDiff(vertices[1] - box_kCenter);
             ^
BtOgre21/sources/BtOgreGP.cpp:782:38: error: cannot convert ‘Ogre::Vector3’ to ‘int’ in initialization
  auto kDiff(vertices[1] - box_kCenter);
                                      ^
BtOgre21/sources/BtOgreGP.cpp:783:7: error: ‘fY0Min’ does not name a type
  auto fY0Min = kDiff.dotProduct(box_akAxis[0]), fY0Max = fY0Min;
       ^
BtOgre21/sources/BtOgreGP.cpp:784:7: error: ‘fY1Min’ does not name a type
  auto fY1Min = kDiff.dotProduct(box_akAxis[1]), fY1Max = fY1Min;
       ^
BtOgre21/sources/BtOgreGP.cpp:785:7: error: ‘fY2Min’ does not name a type
  auto fY2Min = kDiff.dotProduct(box_akAxis[2]), fY2Max = fY2Min;
       ^
BtOgre21/sources/BtOgreGP.cpp:789:9: error: cannot convert ‘Ogre::Vector3’ to ‘int’ in assignment
   kDiff = vertices[i] - box_kCenter;
         ^
BtOgre21/sources/BtOgreGP.cpp:791:14: error: ‘fY0’ does not name a type
   const auto fY0 = kDiff.dotProduct(box_akAxis[0]);
              ^
BtOgre21/sources/BtOgreGP.cpp:792:7: error: ‘fY0’ was not declared in this scope
   if (fY0 < fY0Min)
       ^
BtOgre21/sources/BtOgreGP.cpp:792:13: error: ‘fY0Min’ was not declared in this scope
   if (fY0 < fY0Min)
             ^
BtOgre21/sources/BtOgreGP.cpp:794:18: error: ‘fY0Max’ was not declared in this scope
   else if (fY0 > fY0Max)
                  ^
BtOgre21/sources/BtOgreGP.cpp:797:14: error: ‘fY1’ does not name a type
   const auto fY1 = kDiff.dotProduct(box_akAxis[1]);
              ^
BtOgre21/sources/BtOgreGP.cpp:798:7: error: ‘fY1’ was not declared in this scope
   if (fY1 < fY1Min)
       ^
BtOgre21/sources/BtOgreGP.cpp:798:13: error: ‘fY1Min’ was not declared in this scope
   if (fY1 < fY1Min)
             ^
BtOgre21/sources/BtOgreGP.cpp:800:18: error: ‘fY1Max’ was not declared in this scope
   else if (fY1 > fY1Max)
                  ^
BtOgre21/sources/BtOgreGP.cpp:803:14: error: ‘fY2’ does not name a type
   const auto fY2 = kDiff.dotProduct(box_akAxis[2]);
              ^
BtOgre21/sources/BtOgreGP.cpp:804:7: error: ‘fY2’ was not declared in this scope
   if (fY2 < fY2Min)
       ^
BtOgre21/sources/BtOgreGP.cpp:804:13: error: ‘fY2Min’ was not declared in this scope
   if (fY2 < fY2Min)
             ^
BtOgre21/sources/BtOgreGP.cpp:806:18: error: ‘fY2Max’ was not declared in this scope
   else if (fY2 > fY2Max)
                  ^
BtOgre21/sources/BtOgreGP.cpp:810:31: error: ‘fY0Max’ was not declared in this scope
  box_afExtent.x = Real(0.5f)*(fY0Max - fY0Min);
                               ^
BtOgre21/sources/BtOgreGP.cpp:810:40: error: ‘fY0Min’ was not declared in this scope
  box_afExtent.x = Real(0.5f)*(fY0Max - fY0Min);
                                        ^
BtOgre21/sources/BtOgreGP.cpp:811:31: error: ‘fY1Max’ was not declared in this scope
  box_afExtent.y = Real(0.5f)*(fY1Max - fY1Min);
                               ^
BtOgre21/sources/BtOgreGP.cpp:811:40: error: ‘fY1Min’ was not declared in this scope
  box_afExtent.y = Real(0.5f)*(fY1Max - fY1Min);
                                        ^
BtOgre21/sources/BtOgreGP.cpp:812:31: error: ‘fY2Max’ was not declared in this scope
  box_afExtent.z = Real(0.5f)*(fY2Max - fY2Min);
                               ^
BtOgre21/sources/BtOgreGP.cpp:812:40: error: ‘fY2Min’ was not declared in this scope
  box_afExtent.z = Real(0.5f)*(fY2Max - fY2Min);
                                        ^
BtOgre21/sources/BtOgreGP.cpp: In member function ‘btBoxShape* BtOgre::AnimatedMeshToShapeConverter::createOrientedBox(unsigned char, const Ogre::Vector3&, const Ogre::Quaternion&)’:
BtOgre21/sources/BtOgreGP.cpp:835:10: error: ‘nullptr’ was not declared in this scope
   return nullptr;
          ^
BtOgre21/sources/BtOgreGP.cpp:837:7: error: ‘geom’ does not name a type
  auto geom = new btBoxShape(Convert::toBullet(box_afExtent));
       ^
BtOgre21/sources/BtOgreGP.cpp:840:9: error: ‘geom’ was not declared in this scope
  return geom;
         ^
make[2]: *** [CMakeFiles/BtOgre21.dir/sources/BtOgreGP.cpp.o] Error 1
make[1]: *** [CMakeFiles/BtOgre21.dir/all] Error 2
make: *** [all] Error 2
User avatar
Ybalrid
Halfling
Posts: 89
Joined: Thu Jul 10, 2014 6:52 pm
Location: France
x 31

Re: BtOgre21, forked for Ogre 2.1that uses Item. + debug dra

Post by Ybalrid »

Mh... what compiler are you using? if gcc, can you post a `gcc --version" output ?

the syntax

Code: Select all

using some_type = known_type;
is the "more modern" way of doing typedef in C++11 and above. From that log, your compiler should support that with " --std=c++11", as other "modern" c++ features I'm using aren't compiling either apparently (e.g. "Constructor() = delete" or "auto".

I'm not a CMake expert, I may have forgotten something to tell him to set the compiler to use the modern standards of C++. I'm currently building Ogre 2.1 in an OpenSuse VM, so I can't test if the configuration still works right now ^^"
Ogre_glTF Ogre v2-1 GLTF2 loader : topic link github repo
BtOgre21 Fork of btOgre, for Ogre v2-1 : topic link github repo
OIS Current maintainer : Official repository
Annwvyn VR focused game engine using Ogre : https://github.com/Ybalrid/Annwvyn https://annwvyn.org/
hedphelym
Gremlin
Posts: 180
Joined: Tue Nov 25, 2008 10:58 am
Location: Kristiansand, Norway
x 23

Re: BtOgre21, forked for Ogre 2.1that uses Item. + debug dra

Post by hedphelym »

It is old - so I do not feel the need for you to do a lot of work to support a old version.
I will most likely switch OS to something else in a while.
But - as I mentioned, the other things compiles fine - so if it is possible to get BtOgre21 to compile as well with this then I'd appreciate it, but do not spend a lot of time on it if it works with debian\ubuntu\suse etc out of the box.

gcc --version output:

Code: Select all

gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
User avatar
Ybalrid
Halfling
Posts: 89
Joined: Thu Jul 10, 2014 6:52 pm
Location: France
x 31

Re: BtOgre21, forked for Ogre 2.1that uses Item. + debug dra

Post by Ybalrid »

I updated the cmakelist file, pull the repo again and it should work out of the box, but you need CMake 3.1 or up. ^^"

edit: your compiler version should be fine.
Ogre_glTF Ogre v2-1 GLTF2 loader : topic link github repo
BtOgre21 Fork of btOgre, for Ogre v2-1 : topic link github repo
OIS Current maintainer : Official repository
Annwvyn VR focused game engine using Ogre : https://github.com/Ybalrid/Annwvyn https://annwvyn.org/
hedphelym
Gremlin
Posts: 180
Joined: Tue Nov 25, 2008 10:58 am
Location: Kristiansand, Norway
x 23

Re: BtOgre21, forked for Ogre 2.1that uses Item. + debug dra

Post by hedphelym »

getting closer.

Now I end up with this:

Code: Select all

[ 25%] Building CXX object CMakeFiles/BtOgre21.dir/sources/BtOgreGP.cpp.o
In file included from /development/BtOgre21/include/BtOgreGP.h:34:0,
                 from /development/BtOgre21/sources/BtOgreGP.cpp:17:
/development/BtOgre21/include/BtOgre.hpp:9:113: note: #pragma message: You are using OGRE 2.1 Tindalos
 #pragma message ("You are using OGRE " STR(OGRE_VERSION_MAJOR) "." STR(OGRE_VERSION_MINOR) " " OGRE_VERSION_NAME)
                                                                                                                 ^
/development/BtOgre21/include/BtOgre.hpp:14:54: note: #pragma message: Your version of Ogre is compatible
 #pragma message ("Your version of Ogre is compatible")
                                                      ^
/development/BtOgre21/sources/BtOgreGP.cpp: In member function ‘void BtOgre::StaticMeshToShapeConverter::addMesh(const Ogre::Mesh*, const Ogre::Matrix4&)’:
/development/BtOgre21/sources/BtOgreGP.cpp:556:15: error: no matching function for call to ‘BtOgre::StaticMeshToShapeConverter::extractV2SubMeshIndexBuffer(size_t, std::initializer_list<unsigned int>&, bool, Ogre::IndexBufferPacked* const&)’
    indexBuffer);
               ^
/development/BtOgre21/sources/BtOgreGP.cpp:556:15: note: candidate is:
/development/BtOgre21/sources/BtOgreGP.cpp:485:6: note: void BtOgre::VertexIndexToShape::extractV2SubMeshIndexBuffer(const size_t&, const size_t&, const bool&, Ogre::IndexBufferPacked*)
 void VertexIndexToShape::extractV2SubMeshIndexBuffer(const size_t& previousSize, const size_t& offset, const bool& indices32, IndexBufferPacked* indexBuffer)
      ^
/development/BtOgre21/sources/BtOgreGP.cpp:485:6: note:   no known conversion for argument 2 from ‘std::initializer_list<unsigned int>’ to ‘const size_t& {aka const long unsigned int&}’
/development/BtOgre21/sources/BtOgreGP.cpp:559:15: error: no match for ‘operator+=’ (operand types are ‘std::initializer_list<unsigned int>’ and ‘Ogre::uint32 {aka unsigned int}’)
   indexOffset += vertexBuffers[0]->getNumElements();
               ^
make[2]: *** [CMakeFiles/BtOgre21.dir/sources/BtOgreGP.cpp.o] Error 1
make[1]: *** [CMakeFiles/BtOgre21.dir/all] Error 2
my cmake output:

Code: Select all

[user@computer BtOgre21]$ /home/user/cmake-3.8.2-Linux-x86_64/bin/cmake .
-- Looking for OGRE...
-- Checking for module 'OGRE'
--   No package 'OGRE' found
-- Found Ogre Tindalos (2.1.0)
-- Found OGRE: optimized;/usr/local/lib/libOgreMain.so;debug;/usr/local/lib/libOgreMain_d.so
-- Looking for OGRE_Paging...
-- Could not locate OGRE_Paging
-- Looking for OGRE_Terrain...
-- Could not locate OGRE_Terrain
-- Looking for OGRE_Property...
-- Could not locate OGRE_Property
-- Looking for OGRE_RTShaderSystem...
-- Could not locate OGRE_RTShaderSystem
-- Looking for OGRE_Volume...
-- Could not locate OGRE_Volume
-- Looking for OGRE_Overlay...
-- Found OGRE_Overlay: optimized;/usr/local/lib/libOgreOverlay.so;debug;/usr/local/lib/libOgreOverlay_d.so
-- Looking for OGRE_HlmsPbs...
-- Found OGRE_HlmsPbs: optimized;/usr/local/lib/libOgreHlmsPbs.so;debug;/usr/local/lib/libOgreHlmsPbs_d.so
-- Looking for OGRE_HlmsPbsMobile...
-- Found OGRE_HlmsPbsMobile: optimized;/usr/local/lib/libOgreHlmsPbsMobile.so;debug;/usr/local/lib/libOgreHlmsPbsMobile_d.so
-- Looking for OGRE_HlmsUnlit...
-- Found OGRE_HlmsUnlit: optimized;/usr/local/lib/libOgreHlmsUnlit.so;debug;/usr/local/lib/libOgreHlmsUnlit_d.so
-- Looking for OGRE_HlmsUnlitMobile...
-- Found OGRE_HlmsUnlitMobile: optimized;/usr/local/lib/libOgreHlmsUnlitMobile.so;debug;/usr/local/lib/libOgreHlmsUnlitMobile_d.so
-- Configuring done
-- Generating done
-- Build files have been written to: /home/user/development/BtOgre21
User avatar
Ybalrid
Halfling
Posts: 89
Joined: Thu Jul 10, 2014 6:52 pm
Location: France
x 31

Re: BtOgre21, forked for Ogre 2.1that uses Item. + debug dra

Post by Ybalrid »

hedphelym wrote:getting closer.

Now I end up with this:

Code: Select all

[ 25%] Building CXX object CMakeFiles/BtOgre21.dir/sources/BtOgreGP.cpp.o
In file included from /development/BtOgre21/include/BtOgreGP.h:34:0,
                 from /development/BtOgre21/sources/BtOgreGP.cpp:17:
/development/BtOgre21/include/BtOgre.hpp:9:113: note: #pragma message: You are using OGRE 2.1 Tindalos
 #pragma message ("You are using OGRE " STR(OGRE_VERSION_MAJOR) "." STR(OGRE_VERSION_MINOR) " " OGRE_VERSION_NAME)
                                                                                                                 ^
/development/BtOgre21/include/BtOgre.hpp:14:54: note: #pragma message: Your version of Ogre is compatible
 #pragma message ("Your version of Ogre is compatible")
                                                      ^
/development/BtOgre21/sources/BtOgreGP.cpp: In member function ‘void BtOgre::StaticMeshToShapeConverter::addMesh(const Ogre::Mesh*, const Ogre::Matrix4&)’:
/development/BtOgre21/sources/BtOgreGP.cpp:556:15: error: no matching function for call to ‘BtOgre::StaticMeshToShapeConverter::extractV2SubMeshIndexBuffer(size_t, std::initializer_list<unsigned int>&, bool, Ogre::IndexBufferPacked* const&)’
    indexBuffer);
               ^
/development/BtOgre21/sources/BtOgreGP.cpp:556:15: note: candidate is:
/development/BtOgre21/sources/BtOgreGP.cpp:485:6: note: void BtOgre::VertexIndexToShape::extractV2SubMeshIndexBuffer(const size_t&, const size_t&, const bool&, Ogre::IndexBufferPacked*)
 void VertexIndexToShape::extractV2SubMeshIndexBuffer(const size_t& previousSize, const size_t& offset, const bool& indices32, IndexBufferPacked* indexBuffer)
      ^
/development/BtOgre21/sources/BtOgreGP.cpp:485:6: note:   no known conversion for argument 2 from ‘std::initializer_list<unsigned int>’ to ‘const size_t& {aka const long unsigned int&}’
/development/BtOgre21/sources/BtOgreGP.cpp:559:15: error: no match for ‘operator+=’ (operand types are ‘std::initializer_list<unsigned int>’ and ‘Ogre::uint32 {aka unsigned int}’)
   indexOffset += vertexBuffers[0]->getNumElements();
               ^
make[2]: *** [CMakeFiles/BtOgre21.dir/sources/BtOgreGP.cpp.o] Error 1
make[1]: *** [CMakeFiles/BtOgre21.dir/all] Error 2
Okay, that''s interesting. You have a conversion error on an argument in a function call...

Its seems the correct tipe of "indexOffset" hasn't been deduced correctly when initializing it at line 523. Should be an array of ints or unsigned ints, not an std::initializer_list<> of ints. It's probably just a syntax problem or a small confusion between C++11 and C++14. in that case, it's supported in GCC since version 5.

However, it should be an easy fix in my side. I've already done it. Can you please pull the repo and retry?
Ogre_glTF Ogre v2-1 GLTF2 loader : topic link github repo
BtOgre21 Fork of btOgre, for Ogre v2-1 : topic link github repo
OIS Current maintainer : Official repository
Annwvyn VR focused game engine using Ogre : https://github.com/Ybalrid/Annwvyn https://annwvyn.org/
hedphelym
Gremlin
Posts: 180
Joined: Tue Nov 25, 2008 10:58 am
Location: Kristiansand, Norway
x 23

Re: BtOgre21, forked for Ogre 2.1that uses Item. + debug dra

Post by hedphelym »

BtOgre21 compiles now! Thank you so much.
The last fix seems to be the demo (I guess it's the same kind of issue)?


compile output:

Code: Select all

In file included from /usr/include/c++/4.8.2/thread:35:0,
                 from /home/user/development/BtOgre21/demo/main.cpp:28:
/usr/include/c++/4.8.2/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
 #error This file requires compiler and library support for the \
  ^
In file included from /home/user/development/BtOgre21/demo/main.cpp:26:0:
/usr/local/include/BtOgre21/BtOgre.hpp:9:113: note: #pragma message: You are using OGRE 2.1 Tindalos
 #pragma message ("You are using OGRE " STR(OGRE_VERSION_MAJOR) "." STR(OGRE_VERSION_MINOR) " " OGRE_VERSION_NAME)
                                                                                                                 ^
/usr/local/include/BtOgre21/BtOgre.hpp:14:54: note: #pragma message: Your version of Ogre is compatible
 #pragma message ("Your version of Ogre is compatible")
                                                      ^
In file included from /usr/local/include/BtOgre21/BtOgreGP.h:33:0,
                 from /usr/local/include/BtOgre21/BtOgre.hpp:21,
                 from /home/user/development/BtOgre21/demo/main.cpp:26:
/usr/local/include/BtOgre21/BtOgreExtras.h:34:8: error: expected nested-name-specifier before ‘Vector3Array’
  using Vector3Array = std::vector<Ogre::Vector3>;
        ^
/usr/local/include/BtOgre21/BtOgreExtras.h:34:8: error: ‘Vector3Array’ has not been declared
/usr/local/include/BtOgre21/BtOgreExtras.h:34:21: error: expected ‘;’ before ‘=’ token
  using Vector3Array = std::vector<Ogre::Vector3>;
                     ^
/usr/local/include/BtOgre21/BtOgreExtras.h:34:21: error: expected unqualified-id before ‘=’ token
/usr/local/include/BtOgre21/BtOgreExtras.h:40:15: warning: defaulted and deleted functions only available with -std=c++11 or -std=gnu++11 [enabled by default]
   Convert() = delete;
               ^
/usr/local/include/BtOgre21/BtOgreExtras.h:119:10: error: ‘constexpr’ does not name a type
   static constexpr const char* unlitDatablockName{ "DebugLinesGenerated" };
          ^
/usr/local/include/BtOgre21/BtOgreExtras.h:119:10: note: C++11 ‘constexpr’ only available with -std=c++11 or -std=gnu++11
In file included from /usr/local/include/BtOgre21/BtOgreGP.h:33:0,
                 from /usr/local/include/BtOgre21/BtOgre.hpp:21,
                 from /home/user/development/BtOgre21/demo/main.cpp:26:
/usr/local/include/BtOgre21/BtOgreExtras.h:146:10: error: ‘constexpr’ does not name a type
   static constexpr const char* BtOgre21ResourceGroup{ "BtOgre21" };
          ^
/usr/local/include/BtOgre21/BtOgreExtras.h:146:10: note: C++11 ‘constexpr’ only available with -std=c++11 or -std=gnu++11
/usr/local/include/BtOgre21/BtOgreExtras.h:162:28: warning: defaulted and deleted functions only available with -std=c++11 or -std=gnu++11 [enabled by default]
   virtual ~DebugDrawer() = default;
                            ^
/usr/local/include/BtOgre21/BtOgreExtras.h:168:83: warning: override controls (override/final) only available with -std=c++11 or -std=gnu++11 [enabled by default]
   void drawLine(const btVector3& from, const btVector3& to, const btVector3& color) override;
                                                                                   ^
/usr/local/include/BtOgre21/BtOgreExtras.h:171:68: warning: override controls (override/final) only available with -std=c++11 or -std=gnu++11 [enabled by default]
   void draw3dText(const btVector3& location, const char* textString) override;
                                                                    ^
/usr/local/include/BtOgre21/BtOgreExtras.h:174:135: warning: override controls (override/final) only available with -std=c++11 or -std=gnu++11 [enabled by default]
   void drawContactPoint(const btVector3& PointOnB, const btVector3& normalOnB, btScalar distance, int lifeTime, const btVector3& color) override;
                                                                                                                                       ^
/usr/local/include/BtOgre21/BtOgreExtras.h:177:52: warning: override controls (override/final) only available with -std=c++11 or -std=gnu++11 [enabled by default]
   void reportErrorWarning(const char* warningString) override;
                                                    ^
/usr/local/include/BtOgre21/BtOgreExtras.h:180:29: warning: override controls (override/final) only available with -std=c++11 or -std=gnu++11 [enabled by default]
   void setDebugMode(int isOn) override;
                             ^
/usr/local/include/BtOgre21/BtOgreExtras.h:183:22: warning: override controls (override/final) only available with -std=c++11 or -std=gnu++11 [enabled by default]
   int getDebugMode() const override;
                      ^
In file included from /usr/local/include/BtOgre21/BtOgre.hpp:21:0,
                 from /home/user/development/BtOgre21/demo/main.cpp:26:
/usr/local/include/BtOgre21/BtOgreGP.h:38:8: error: expected nested-name-specifier before ‘BoneIndex’
  using BoneIndex = std::map<unsigned, Vector3Array*>;
        ^
/usr/local/include/BtOgre21/BtOgreGP.h:38:8: error: ‘BoneIndex’ has not been declared
/usr/local/include/BtOgre21/BtOgreGP.h:38:18: error: expected ‘;’ before ‘=’ token
  using BoneIndex = std::map<unsigned, Vector3Array*>;
                  ^
/usr/local/include/BtOgre21/BtOgreGP.h:38:18: error: expected unqualified-id before ‘=’ token
/usr/local/include/BtOgre21/BtOgreGP.h:39:8: error: expected nested-name-specifier before ‘BoneKeyIndex’
  using BoneKeyIndex = std::pair<unsigned, Vector3Array*>;
        ^
/usr/local/include/BtOgre21/BtOgreGP.h:39:8: error: ‘BoneKeyIndex’ has not been declared
/usr/local/include/BtOgre21/BtOgreGP.h:39:21: error: expected ‘;’ before ‘=’ token
  using BoneKeyIndex = std::pair<unsigned, Vector3Array*>;
                     ^
/usr/local/include/BtOgre21/BtOgreGP.h:39:21: error: expected unqualified-id before ‘=’ token
/usr/local/include/BtOgre21/BtOgreGP.h:42:8: error: expected nested-name-specifier before ‘VertexBuffer’
  using VertexBuffer = std::vector<Ogre::Vector3>;
        ^
/usr/local/include/BtOgre21/BtOgreGP.h:42:8: error: ‘VertexBuffer’ has not been declared
/usr/local/include/BtOgre21/BtOgreGP.h:42:21: error: expected ‘;’ before ‘=’ token
  using VertexBuffer = std::vector<Ogre::Vector3>;
                     ^
/usr/local/include/BtOgre21/BtOgreGP.h:42:21: error: expected unqualified-id before ‘=’ token
/usr/local/include/BtOgre21/BtOgreGP.h:45:8: error: expected nested-name-specifier before ‘IndexBuffer’
  using IndexBuffer = std::vector<unsigned int>;
        ^
/usr/local/include/BtOgre21/BtOgreGP.h:45:8: error: ‘IndexBuffer’ has not been declared
/usr/local/include/BtOgre21/BtOgreGP.h:45:20: error: expected ‘;’ before ‘=’ token
  using IndexBuffer = std::vector<unsigned int>;
                    ^
/usr/local/include/BtOgre21/BtOgreGP.h:45:20: error: expected unqualified-id before ‘=’ token
In file included from /usr/local/include/BtOgre21/BtOgre.hpp:21:0,
                 from /home/user/development/BtOgre21/demo/main.cpp:26:
/usr/local/include/BtOgre21/BtOgreGP.h:149:3: error: ‘VertexBuffer’ does not name a type
   VertexBuffer mVertexBuffer;
   ^
/usr/local/include/BtOgre21/BtOgreGP.h:152:3: error: ‘IndexBuffer’ does not name a type
   IndexBuffer  mIndexBuffer;
   ^
/usr/local/include/BtOgre21/BtOgreGP.h:160:3: error: ‘BoneIndex’ does not name a type
   BoneIndex*  mBoneIndex;
   ^
/usr/local/include/BtOgre21/BtOgreGP.h: In member function ‘void BtOgre::VertexIndexToShape::loadV1IndexBuffer(Ogre::v1::HardwareIndexBufferSharedPtr, const size_t&, const size_t&, const size_t&)’:
/usr/local/include/BtOgre21/BtOgreGP.h:109:9: error: ‘pointerData’ does not name a type
    auto pointerData = static_cast<const T*>(ibuf->lock(Ogre::v1::HardwareBuffer::HBL_READ_ONLY));
         ^
/usr/local/include/BtOgre21/BtOgreGP.h:110:14: error: ‘i’ does not name a type
    for (auto i = 0u; i < appendedIndexes; ++i)
              ^
/usr/local/include/BtOgre21/BtOgreGP.h:110:22: error: expected ‘;’ before ‘i’
    for (auto i = 0u; i < appendedIndexes; ++i)
                      ^
/usr/local/include/BtOgre21/BtOgreGP.h:110:22: error: ‘i’ was not declared in this scope
/usr/local/include/BtOgre21/BtOgreGP.h:112:5: error: ‘mIndexBuffer’ was not declared in this scope
     mIndexBuffer[previousSize + i] = static_cast<unsigned>(offset + pointerData[i]);
     ^
/usr/local/include/BtOgre21/BtOgreGP.h:112:69: error: ‘pointerData’ was not declared in this scope
     mIndexBuffer[previousSize + i] = static_cast<unsigned>(offset + pointerData[i]);
                                                                     ^
/usr/local/include/BtOgre21/BtOgreGP.h: In member function ‘void BtOgre::VertexIndexToShape::loadV2IndexBuffer(Ogre::AsyncTicketPtr, const size_t&, const size_t&, const size_t&)’:
/usr/local/include/BtOgre21/BtOgreGP.h:135:9: error: ‘pointerData’ does not name a type
    auto pointerData = static_cast<const T*>(asyncTicket->map());
         ^
/usr/local/include/BtOgre21/BtOgreGP.h:136:14: error: ‘i’ does not name a type
    for (auto i = 0; i < appendedIndexes; ++i)
              ^
/usr/local/include/BtOgre21/BtOgreGP.h:136:21: error: expected ‘;’ before ‘i’
    for (auto i = 0; i < appendedIndexes; ++i)
                     ^
/usr/local/include/BtOgre21/BtOgreGP.h:136:21: error: ‘i’ was not declared in this scope
/usr/local/include/BtOgre21/BtOgreGP.h:138:5: error: ‘mIndexBuffer’ was not declared in this scope
     mIndexBuffer[perviousSize + i] = static_cast<unsigned>(offset + pointerData[i]);
     ^
/usr/local/include/BtOgre21/BtOgreGP.h:138:69: error: ‘pointerData’ was not declared in this scope
     mIndexBuffer[perviousSize + i] = static_cast<unsigned>(offset + pointerData[i]);
                                                                     ^
/usr/local/include/BtOgre21/BtOgreGP.h: At global scope:
/usr/local/include/BtOgre21/BtOgreGP.h:189:43: warning: defaulted and deleted functions only available with -std=c++11 or -std=gnu++11 [enabled by default]
   virtual ~StaticMeshToShapeConverter() = default;
                                           ^
In file included from /usr/local/include/BtOgre21/BtOgre.hpp:22:0,
                 from /home/user/development/BtOgre21/demo/main.cpp:26:
/usr/local/include/BtOgre21/BtOgrePG.h:51:44: warning: override controls (override/final) only available with -std=c++11 or -std=gnu++11 [enabled by default]
   void getWorldTransform(btTransform& ret) const override;
                                            ^
/usr/local/include/BtOgre21/BtOgrePG.h:55:47: warning: override controls (override/final) only available with -std=c++11 or -std=gnu++11 [enabled by default]
   void setWorldTransform(const btTransform& in) override;
                                               ^
/home/user/development/BtOgre21/demo/main.cpp:67:9: error: ‘constexpr’ does not name a type
  static constexpr const char* const SL{ "GLSL" };
         ^
/home/user/development/BtOgre21/demo/main.cpp:67:9: note: C++11 ‘constexpr’ only available with -std=c++11 or -std=gnu++11
/home/user/development/BtOgre21/demo/main.cpp:68:9: error: ‘constexpr’ does not name a type
  static constexpr const char* const GL3PLUS_RENDERSYSTEM{ "OpenGL 3+ Rendering Subsystem" };
         ^
/home/user/development/BtOgre21/demo/main.cpp:68:9: note: C++11 ‘constexpr’ only available with -std=c++11 or -std=gnu++11
/home/user/development/BtOgre21/demo/main.cpp:69:9: error: ‘constexpr’ does not name a type
  static constexpr const size_t SMGR_WORKERS{ 4 };
         ^
/home/user/development/BtOgre21/demo/main.cpp:69:9: note: C++11 ‘constexpr’ only available with -std=c++11 or -std=gnu++11
/home/user/development/BtOgre21/demo/main.cpp:71:26: warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [enabled by default]
  volatile bool running = true;
                          ^
/home/user/development/BtOgre21/demo/main.cpp:142:38: error: expected ‘,’ or ‘...’ before ‘&&’ token
  void declareHlmsLibrary(const String&& path)
                                      ^
/home/user/development/BtOgre21/demo/main.cpp: In constructor ‘BtOgreTestApplication::BtOgreTestApplication()’:
/home/user/development/BtOgre21/demo/main.cpp:78:3: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
   milliNow{ 0 },
   ^
/home/user/development/BtOgre21/demo/main.cpp:79:3: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
   milliLast{ 0 }
   ^
/home/user/development/BtOgre21/demo/main.cpp: In member function ‘Ogre::MeshPtr BtOgreTestApplication::asV2mesh(const String&, const String&, const String&, const bool&, const bool&, const bool&)’:
/home/user/development/BtOgre21/demo/main.cpp:128:8: error: ‘v1mesh’ does not name a type
   auto v1mesh = loadV1mesh(meshName);
        ^
/home/user/development/BtOgre21/demo/main.cpp:131:14: error: ‘mesh’ does not name a type
   const auto mesh = MeshManager::getSingletonPtr()->createManual(meshName + sufix, ResourceGroup);
              ^
/home/user/development/BtOgre21/demo/main.cpp:132:3: error: ‘mesh’ was not declared in this scope
   mesh->importV1(v1mesh.get(), halfPos, halfTextCoords, qTangents);
   ^
/home/user/development/BtOgre21/demo/main.cpp:132:18: error: ‘v1mesh’ was not declared in this scope
   mesh->importV1(v1mesh.get(), halfPos, halfTextCoords, qTangents);
                  ^
/home/user/development/BtOgre21/demo/main.cpp: In member function ‘void BtOgreTestApplication::declareHlmsLibrary(Ogre::String)’:
/home/user/development/BtOgre21/demo/main.cpp:148:8: error: ‘hlmsFolder’ does not name a type
   auto hlmsFolder = path;
        ^
/home/user/development/BtOgre21/demo/main.cpp:151:7: error: ‘hlmsFolder’ was not declared in this scope
   if (hlmsFolder.empty()) hlmsFolder = "./";
       ^
/home/user/development/BtOgre21/demo/main.cpp:155:8: error: ‘hlmsManager’ does not name a type
   auto hlmsManager = Root::getSingleton().getHlmsManager();
        ^
/home/user/development/BtOgre21/demo/main.cpp:158:8: error: ‘library’ does not name a type
   auto library = ArchiveVec{};
        ^
/home/user/development/BtOgre21/demo/main.cpp:159:8: error: ‘archiveLibrary’ does not name a type
   auto archiveLibrary = ArchiveManager::getSingletonPtr()->load(hlmsFolder + "Hlms/Common/" + SL, "FileSystem", true);
        ^
/home/user/development/BtOgre21/demo/main.cpp:160:3: error: ‘library’ was not declared in this scope
   library.push_back(archiveLibrary);
   ^
/home/user/development/BtOgre21/demo/main.cpp:160:21: error: ‘archiveLibrary’ was not declared in this scope
   library.push_back(archiveLibrary);
                     ^
/home/user/development/BtOgre21/demo/main.cpp:163:8: error: ‘archiveUnlit’ does not name a type
   auto archiveUnlit = ArchiveManager::getSingletonPtr()->load(hlmsFolder + "Hlms/Unlit/" + SL, "FileSystem", true);
        ^
/home/user/development/BtOgre21/demo/main.cpp:164:8: error: ‘archivePbs’ does not name a type
   auto archivePbs = ArchiveManager::getSingletonPtr()->load(hlmsFolder + "Hlms/Pbs/" + SL, "FileSystem", true);
        ^
/home/user/development/BtOgre21/demo/main.cpp:165:8: error: ‘hlmsUnlit’ does not name a type
   auto hlmsUnlit = OGRE_NEW HlmsUnlit{ archiveUnlit, &library };
        ^
/home/user/development/BtOgre21/demo/main.cpp:166:8: error: ‘hlmsPbs’ does not name a type
   auto hlmsPbs = OGRE_NEW HlmsPbs{ archivePbs, &library };
        ^
/home/user/development/BtOgre21/demo/main.cpp:167:3: error: ‘hlmsManager’ was not declared in this scope
   hlmsManager->registerHlms(hlmsUnlit);
   ^
/home/user/development/BtOgre21/demo/main.cpp:167:29: error: ‘hlmsUnlit’ was not declared in this scope
   hlmsManager->registerHlms(hlmsUnlit);
                             ^
/home/user/development/BtOgre21/demo/main.cpp:168:29: error: ‘hlmsPbs’ was not declared in this scope
   hlmsManager->registerHlms(hlmsPbs);
                             ^
/home/user/development/BtOgre21/demo/main.cpp: In member function ‘void BtOgreTestApplication::createScene()’:
/home/user/development/BtOgre21/demo/main.cpp:180:8: error: ‘light’ does not name a type
   auto light = mSceneMgr->createLight();
        ^
/home/user/development/BtOgre21/demo/main.cpp:181:8: error: ‘lightNode’ does not name a type
   auto lightNode = mSceneMgr->getRootSceneNode()->createChildSceneNode();
        ^
/home/user/development/BtOgre21/demo/main.cpp:182:3: error: ‘lightNode’ was not declared in this scope
   lightNode->attachObject(light);
   ^
/home/user/development/BtOgre21/demo/main.cpp:182:27: error: ‘light’ was not declared in this scope
   lightNode->attachObject(light);
                           ^
/home/user/development/BtOgre21/demo/main.cpp:184:22: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
   light->setDirection({ 0, -1, 0.25f });
                      ^
/home/user/development/BtOgre21/demo/main.cpp:190:25: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
   dbgdraw = new BtOgre::DebugDrawer{ mSceneMgr->getRootSceneNode(), phyWorld, mSceneMgr};
                         ^
/home/user/development/BtOgre21/demo/main.cpp:197:8: error: ‘pos’ does not name a type
   auto pos = Vector3{ 0, 10, 0 };
        ^
/home/user/development/BtOgre21/demo/main.cpp:198:8: error: ‘rot’ does not name a type
   auto rot = Quaternion::IDENTITY;
        ^
/home/user/development/BtOgre21/demo/main.cpp:204:8: error: ‘ninjaMesh’ does not name a type
   auto ninjaMesh = asV2mesh("Player.mesh");
        ^
/home/user/development/BtOgre21/demo/main.cpp:205:38: error: ‘ninjaMesh’ was not declared in this scope
   mNinjaItem = mSceneMgr->createItem(ninjaMesh);
                                      ^
/home/user/development/BtOgre21/demo/main.cpp:207:83: error: ‘pos’ was not declared in this scope
   mNinjaNode = mSceneMgr->getRootSceneNode()->createChildSceneNode(SCENE_DYNAMIC, pos, rot);
                                                                                   ^
/home/user/development/BtOgre21/demo/main.cpp:207:88: error: ‘rot’ was not declared in this scope
   mNinjaNode = mSceneMgr->getRootSceneNode()->createChildSceneNode(SCENE_DYNAMIC, pos, rot);
                                                                                        ^
/home/user/development/BtOgre21/demo/main.cpp:220:8: error: ‘ninjaState’ does not name a type
   auto ninjaState = new BtOgre::RigidBodyState(mNinjaNode);
        ^
/home/user/development/BtOgre21/demo/main.cpp:223:38: error: ‘ninjaState’ was not declared in this scope
   mNinjaBody = new btRigidBody(mass, ninjaState, mNinjaShape, inertia);
                                      ^
/home/user/development/BtOgre21/demo/main.cpp:234:14: error: ‘groundMesh’ does not name a type
   const auto groundMesh = asV2mesh("TestLevel_b0.mesh");
              ^
/home/user/development/BtOgre21/demo/main.cpp:236:39: error: ‘groundMesh’ was not declared in this scope
   mGroundItem = mSceneMgr->createItem(groundMesh);
                                       ^
/home/user/development/BtOgre21/demo/main.cpp:246:14: error: ‘groundState’ does not name a type
   const auto groundState = new btDefaultMotionState(
              ^
/home/user/development/BtOgre21/demo/main.cpp:250:36: error: ‘groundState’ was not declared in this scope
   mGroundBody = new btRigidBody(0, groundState, mGroundShape, btVector3(0, 0, 0));
                                    ^
/home/user/development/BtOgre21/demo/main.cpp: In member function ‘void BtOgreTestApplication::setup()’:
/home/user/development/BtOgre21/demo/main.cpp:264:8: error: ‘resourceGroupManager’ does not name a type
   auto resourceGroupManager = ResourceGroupManager::getSingletonPtr();
        ^
/home/user/development/BtOgre21/demo/main.cpp:265:3: error: ‘resourceGroupManager’ was not declared in this scope
   resourceGroupManager->addResourceLocation("./data/OgreCore.zip", "Zip");
   ^
/home/user/development/BtOgre21/demo/main.cpp:276:53: error: ‘SMGR_WORKERS’ was not declared in this scope
   mSceneMgr = mRoot->createSceneManager(ST_GENERIC, SMGR_WORKERS, INSTANCING_CULLING_THREADED, "MAIN_SMGR");
                                                     ^
/home/user/development/BtOgre21/demo/main.cpp:284:8: error: ‘compositorManager’ does not name a type
   auto compositorManager = mRoot->getCompositorManager2();
        ^
/home/user/development/BtOgre21/demo/main.cpp:285:12: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
   IdString mainWorkspace{ "MainWorkspace" };
            ^
/home/user/development/BtOgre21/demo/main.cpp:285:43: error: in C++98 ‘mainWorkspace’ must be initialized by constructor, not by ‘{...}’
   IdString mainWorkspace{ "MainWorkspace" };
                                           ^
/home/user/development/BtOgre21/demo/main.cpp:286:8: error: ‘compositorManager’ was not declared in this scope
   if (!compositorManager->hasWorkspaceDefinition(mainWorkspace))
        ^
/home/user/development/BtOgre21/demo/main.cpp:288:3: error: ‘compositorManager’ was not declared in this scope
   compositorManager->addWorkspace(mSceneMgr, mWindow, mCamera, mainWorkspace, true);
   ^
/home/user/development/BtOgre21/demo/main.cpp: In member function ‘void BtOgreTestApplication::frame()’:
/home/user/development/BtOgre21/demo/main.cpp:310:8: error: ‘std::this_thread’ has not been declared
   std::this_thread::sleep_for(std::chrono::milliseconds(1));
        ^
/home/user/development/BtOgre21/demo/main.cpp:310:36: error: ‘std::chrono’ has not been declared
   std::this_thread::sleep_for(std::chrono::milliseconds(1));
                                    ^
make[2]: *** [CMakeFiles/BtOgre21DEMO.dir/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/BtOgre21DEMO.dir/all] Error 2
make: *** [all] Error 2
User avatar
Ybalrid
Halfling
Posts: 89
Joined: Thu Jul 10, 2014 6:52 pm
Location: France
x 31

Re: BtOgre21, forked for Ogre 2.1that uses Item. + debug dra

Post by Ybalrid »

Oh, yeah, same basic issue and same fix. already pushed to GitHub...

It should be good for the "compiler configuration side" for you, but it may have some "code" problems like last time, so I'm waiting for you to report me that ^^"

Also the "demo" is really minimal and has a lot of dead code that was using an old Ogre "(tutorial) application framework" that I didn't bother to replace by the thing used in the new Ogre's samples, I just hacked together something that will work.
Ogre_glTF Ogre v2-1 GLTF2 loader : topic link github repo
BtOgre21 Fork of btOgre, for Ogre v2-1 : topic link github repo
OIS Current maintainer : Official repository
Annwvyn VR focused game engine using Ogre : https://github.com/Ybalrid/Annwvyn https://annwvyn.org/
User avatar
Ybalrid
Halfling
Posts: 89
Joined: Thu Jul 10, 2014 6:52 pm
Location: France
x 31

Re: BtOgre21, forked for Ogre 2.1that uses Item. + debug dra

Post by Ybalrid »

Sorry to double post; I just wanted to point out that hedphelym helped me to find some issues both in configuration and code that prevented the library and the demo to build properly on some Linux distros.

Contrary to Ogre, this is written in C++11 and assume you have access to an actual C++11 compliant compiler (it's 2017 ^^").

I"ll update the first post, but if anybody want to try the lib, you should either build the master branch (or the latest release : https://github.com/Ybalrid/BtOgre21/rel ... ag/1.1.122) from source, and link against with the latest version of Ogre 2.1 available.

The demo now call the new "getDefaultPaths" on the HlmsPbs and HlmsUnlit classes to get the list of paths to construct the archives for these HLMS without hard-coding them you the "library user side". I had some breakage when the shader templates where refactored. Twice. (those pesky "any" folder. :P). To "properly" use theses methods, don't look at my example here, go check the tutorial/samples, they have been updated to demonstrate this ^^"
Ogre_glTF Ogre v2-1 GLTF2 loader : topic link github repo
BtOgre21 Fork of btOgre, for Ogre v2-1 : topic link github repo
OIS Current maintainer : Official repository
Annwvyn VR focused game engine using Ogre : https://github.com/Ybalrid/Annwvyn https://annwvyn.org/
hedphelym
Gremlin
Posts: 180
Joined: Tue Nov 25, 2008 10:58 am
Location: Kristiansand, Norway
x 23

Re: BtOgre21, forked for Ogre 2.1that uses Item. + debug drawer

Post by hedphelym »

I helped Ybalrid a bit by adding some features to the demo project included with BtOgre21,
the latest feature added is 'wasd + mouselook' for camera, and hit spacebar to spawn dynamic shapes into the scene, I'll help out by adding more things soon.

Screenshot from the demo (running on Debian testing):
Image