diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..b65d131a4 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,25 @@ +FROM ubuntu:14.04 + +RUN apt-get update && apt-get install -y \ + git cmake build-essential software-properties-common + +RUN add-apt-repository ppa:ubuntu-toolchain-r/test && apt-get update && apt-get install -y gcc-4.9 g++-4.9 && \ + cd /usr/bin && \ + rm gcc g++ cpp && \ + ln -s gcc-4.9 gcc && \ + ln -s g++-4.9 g++ && \ + ln -s cpp-4.9 cpp + +WORKDIR /opt + +# Build Assimp +RUN git clone https://github.com/assimp/assimp.git /opt/assimp + +WORKDIR /opt/assimp + +RUN git checkout master \ + && mkdir build && cd build && \ + cmake \ + -DCMAKE_BUILD_TYPE=Release \ + .. && \ + make && make install diff --git a/code/AssetLib/3DS/3DSExporter.cpp b/code/AssetLib/3DS/3DSExporter.cpp index 32d45c039..108d917d1 100644 --- a/code/AssetLib/3DS/3DSExporter.cpp +++ b/code/AssetLib/3DS/3DSExporter.cpp @@ -444,7 +444,7 @@ void Discreet3DSExporter::WriteMeshes() { const uint16_t count = static_cast(mesh.mNumVertices); writer.PutU2(count); for (unsigned int i = 0; i < mesh.mNumVertices; ++i) { - const aiVector3D &v = trafo * mesh.mVertices[i]; + const aiVector3D &v = mesh.mVertices[i]; writer.PutF4(v.x); writer.PutF4(v.y); writer.PutF4(v.z); @@ -506,11 +506,16 @@ void Discreet3DSExporter::WriteMeshes() { // Transformation matrix by which the mesh vertices have been pre-transformed with. { ChunkWriter curChunk(writer, Discreet3DS::CHUNK_TRMATRIX); - for (unsigned int r = 0; r < 4; ++r) { + // Store rotation 3x3 matrix row wise + for (unsigned int r = 0; r < 3; ++r) { for (unsigned int c = 0; c < 3; ++c) { writer.PutF4(trafo[r][c]); } } + // Store translation sub vector column wise + for (unsigned int r = 0; r < 3; ++r) { + writer.PutF4(trafo[r][3]); + } } } }