File add-vsxu-support.patch of Package cal3d

From 663bfdd55000b17aeb4f236f23cc8abf5cd108d3 Mon Sep 17 00:00:00 2001
From: "Jonatan \"jaw\" Wallmander" <jonatan@vovoid.com>
Date: Sun, 15 Mar 2015 19:04:14 -0700
Subject: [PATCH] Updated cal3d for building as vsxu module

---
 cal3d/src/cal3d/calxmlbindings.cpp | 11 ++++++++++
 cal3d/src/cal3d/loader.h           |  2 +-
 cal3d/src/cal3d/tinybind.cpp       | 45 ++++++++++++++++++++++++++++++++++++--
 3 files changed, 55 insertions(+), 3 deletions(-)

diff --git a/cal3d/src/cal3d/calxmlbindings.cpp b/cal3d/src/cal3d/calxmlbindings.cpp
index 5b7368c..b8b65e7 100644
--- a/cal3d/src/cal3d/calxmlbindings.cpp
+++ b/cal3d/src/cal3d/calxmlbindings.cpp
@@ -275,6 +275,17 @@ ConvertFromString( char const * inStr, CalIndex (*vertexId)[2] )
   str >> *vertexId[0] >> *vertexId[1] ;
 }
 
+void
+ConvertFromString( char const * inStr, int *vertexId )
+{
+  static std::stringstream str;
+  str.str("");
+  str << inStr;
+  str >> *vertexId ;
+}
+
+
+
 TiXmlBinding<CalCoreSubmesh::Influence> const *
 GetTiXmlBinding( CalCoreSubmesh::Influence const &,IdentityBase  )
 {
diff --git a/cal3d/src/cal3d/loader.h b/cal3d/src/cal3d/loader.h
index 43f847d..b8656c9 100644
--- a/cal3d/src/cal3d/loader.h
+++ b/cal3d/src/cal3d/loader.h
@@ -162,7 +162,6 @@ class CAL3D_API CalLoader
 
   static CalCoreMaterialPtr loadXmlCoreMaterial(const void *);
 
-private:
   static CalCoreBone *loadCoreBones(CalDataSource& dataSrc, int version);
   static CalCoreKeyframe *loadCoreKeyframe(CalDataSource& dataSrc, CalCoreBone * coreboneOrNull, 
                                              int version, CalCoreKeyframe * lastCoreKeyframe, 
@@ -177,6 +176,7 @@ class CAL3D_API CalLoader
   static CalCoreMeshPtr loadXmlCoreMesh(cal3d::TiXmlDocument& doc);
   static CalCoreMaterialPtr loadXmlCoreMaterial(cal3d::TiXmlDocument& doc);
 
+private:
   static int loadingMode;
   static double translationTolerance;
   static double rotationToleranceDegrees;
diff --git a/cal3d/src/cal3d/tinybind.cpp b/cal3d/src/cal3d/tinybind.cpp
index c887a62..fe56e49 100644
--- a/cal3d/src/cal3d/tinybind.cpp
+++ b/cal3d/src/cal3d/tinybind.cpp
@@ -91,7 +91,26 @@ char const *
 ConvertToString<long>(long const & d )
 {
   static char buffer[2048];
-  sprintf(buffer, "%l", d);
+  sprintf(buffer, "%ld", d);
+  return buffer;
+}
+
+template<>
+char const *
+ConvertToString< int[2] >(int const (&d) [2] )
+{
+  static char buffer[2048];
+  sprintf(buffer, "%d %d", d[0], d[1] );
+  return buffer;
+}
+
+template<>
+char const *
+ConvertToString< int[3] >(int const (&d) [3] )
+{
+
+  static char buffer[2048];
+  sprintf(buffer, "%d %d %d", d[0], d[1], d[2]);
   return buffer;
 }
 
@@ -161,6 +180,28 @@ ConvertFromString<float>( char const * strIn,  float * dataOut )
 {
   *dataOut = (float)atof(strIn);
 }
+
+
+template<>
+void
+ConvertFromString< int[2] >( char const * strIn,  int (*dataOut)[2] )
+{
+  static std::stringstream str;
+  str.str("");
+  str << strIn;
+  str >> *dataOut[0] >> *dataOut[1] ;
+}
+
+template<>
+void
+ConvertFromString< int[3] >( char const * strIn,  int (*dataOut)[3] )
+{
+  static std::stringstream str;
+  str.str("");
+  str << strIn;
+  str >> *dataOut[0] >> *dataOut[1] >> *dataOut[2];
+}
+
 //#endif
 
 
@@ -262,4 +303,4 @@ namespace {
     }
   } _;
 
-}
\ No newline at end of file
+}
openSUSE Build Service is sponsored by