├── BundlerCleaner ├── include │ └── BundlerCleaner.h ├── script │ └── BundlerCleaner.vcproj └── src │ ├── BundlerCleaner.cpp │ └── main.cpp ├── BundlerFocalExtractor ├── include │ ├── BundlerFocalExtractor.h │ └── CCDDatabase.h ├── script │ └── BundlerFocalExtractor.vcproj └── src │ ├── BundlerFocalExtractor.cpp │ ├── CCDDatabase.cpp │ └── main.cpp ├── BundlerMatcher ├── include │ └── BundlerMatcher.h ├── script │ └── BundlerMatcher.vcproj └── src │ ├── BundlerMatcher.cpp │ └── main.cpp ├── BundlerParser ├── include │ ├── BundlerParser.h │ └── BundlerStructures.h ├── script │ ├── BundlerParser.vcproj │ └── BundlerParser.vsprops └── src │ ├── BundlerParser.cpp │ └── BundlerStructures.cpp ├── BundlerToPly ├── include │ └── BundlerToPly.h ├── script │ └── BundlerToPly.vcproj └── src │ ├── BundlerToPly.cpp │ └── main.cpp ├── BundlerToTracking ├── include │ ├── BundlerToTracking.h │ └── Logic.h ├── script │ └── BundlerToTracking.vcproj └── src │ ├── BundlerToTracking.cpp │ ├── Logic.cpp │ └── main.cpp ├── BundlerViewer ├── include │ ├── BundlerParser.h │ ├── GPUBillboardSet.h │ ├── OgreApp.h │ ├── OgreAppFrameListener.h │ ├── OgreAppLogic.h │ └── StatsFrameListener.h ├── script │ └── BundlerViewer.vcproj └── src │ ├── BundlerParser.cpp │ ├── GPUBillboardSet.cpp │ ├── OgreApp.cpp │ ├── OgreAppFrameListener.cpp │ ├── OgreAppLogic.cpp │ ├── StatsFrameListener.cpp │ └── main.cpp ├── Dependencies ├── Exif │ ├── Cexif - CodeProject.url │ ├── include │ │ ├── ExifReader.h │ │ └── exif.h │ ├── script │ │ ├── Exif.vsprops │ │ └── exif.vcproj │ └── src │ │ ├── ExifReader.cpp │ │ └── exif.cpp ├── README.txt ├── SiftGPU │ ├── bin │ │ ├── Win32 │ │ │ ├── DevIL.dll │ │ │ ├── SiftGPU.dll │ │ │ └── glew32.dll │ │ └── x64 │ │ │ ├── DevIL.dll │ │ │ ├── SiftGPU.dll │ │ │ └── glew32.dll │ ├── include │ │ ├── GL │ │ │ ├── glew.h │ │ │ ├── glut.h │ │ │ └── wglew.h │ │ ├── GlobalUtil.h │ │ ├── IL │ │ │ ├── COPYING │ │ │ └── il.h │ │ └── SiftGPU.h │ ├── lib │ │ ├── Win32 │ │ │ ├── DevIL.lib │ │ │ ├── SIFTGPU.exp │ │ │ ├── SIFTGPU.lib │ │ │ └── glew32.lib │ │ └── x64 │ │ │ ├── DevIL.lib │ │ │ ├── SIFTGPU.exp │ │ │ ├── SIFTGPU.lib │ │ │ └── glew32.lib │ └── script │ │ ├── SiftGPU.vcproj │ │ └── SiftGPU.vsprops ├── jpeg │ ├── include │ │ ├── JpegGrayImage.h │ │ ├── JpegUtils.h │ │ ├── cderror.h │ │ ├── cdjpeg.h │ │ ├── jconfig.h │ │ ├── jdct.h │ │ ├── jerror.h │ │ ├── jinclude.h │ │ ├── jmemsys.h │ │ ├── jmorecfg.h │ │ ├── jpegint.h │ │ ├── jpeglib.h │ │ ├── jversion.h │ │ └── transupp.h │ ├── script │ │ ├── Jpeg.vsprops │ │ └── jpeg.vcproj │ └── src │ │ ├── JpegGrayImage.cpp │ │ ├── JpegUtils.cpp │ │ ├── jaricom.c │ │ ├── jcapimin.c │ │ ├── jcapistd.c │ │ ├── jcarith.c │ │ ├── jccoefct.c │ │ ├── jccolor.c │ │ ├── jcdctmgr.c │ │ ├── jchuff.c │ │ ├── jcinit.c │ │ ├── jcmainct.c │ │ ├── jcmarker.c │ │ ├── jcmaster.c │ │ ├── jcomapi.c │ │ ├── jcparam.c │ │ ├── jcprepct.c │ │ ├── jcsample.c │ │ ├── jctrans.c │ │ ├── jdapimin.c │ │ ├── jdapistd.c │ │ ├── jdarith.c │ │ ├── jdatadst.c │ │ ├── jdatasrc.c │ │ ├── jdcoefct.c │ │ ├── jdcolor.c │ │ ├── jddctmgr.c │ │ ├── jdhuff.c │ │ ├── jdinput.c │ │ ├── jdmainct.c │ │ ├── jdmarker.c │ │ ├── jdmaster.c │ │ ├── jdmerge.c │ │ ├── jdpostct.c │ │ ├── jdsample.c │ │ ├── jdtrans.c │ │ ├── jerror.c │ │ ├── jfdctflt.c │ │ ├── jfdctfst.c │ │ ├── jfdctint.c │ │ ├── jidctflt.c │ │ ├── jidctfst.c │ │ ├── jidctint.c │ │ ├── jmemmgr.c │ │ ├── jmemnobs.c │ │ ├── jquant1.c │ │ ├── jquant2.c │ │ ├── jutils.c │ │ ├── out │ │ ├── Makefile.am │ │ ├── Makefile.in │ │ ├── README │ │ ├── aclocal.m4 │ │ ├── ansi2knr.1 │ │ ├── change.log │ │ ├── cjpeg.1 │ │ ├── coderules.txt │ │ ├── config.guess │ │ ├── config.sub │ │ ├── configure │ │ ├── configure.ac │ │ ├── depcomp │ │ ├── djpeg.1 │ │ ├── filelist.txt │ │ ├── install-sh │ │ ├── install.txt │ │ ├── jconfig.bcc │ │ ├── jconfig.cfg │ │ ├── jconfig.dj │ │ ├── jconfig.mac │ │ ├── jconfig.manx │ │ ├── jconfig.mc6 │ │ ├── jconfig.sas │ │ ├── jconfig.st │ │ ├── jconfig.txt │ │ ├── jconfig.vc │ │ ├── jconfig.vms │ │ ├── jconfig.wat │ │ ├── jdosabcc.obj │ │ ├── jdosamsc.obj │ │ ├── jdosaobj.txt │ │ ├── jpegtran.1 │ │ ├── libjpeg.map │ │ ├── libjpeg.txt │ │ ├── ltmain.sh │ │ ├── makcjpeg.st │ │ ├── makdjpeg.st │ │ ├── makeadsw.vc6 │ │ ├── makeasln.v10 │ │ ├── makecdep.vc6 │ │ ├── makecdsp.vc6 │ │ ├── makecfil.v10 │ │ ├── makecmak.vc6 │ │ ├── makecvcx.v10 │ │ ├── makeddep.vc6 │ │ ├── makeddsp.vc6 │ │ ├── makedfil.v10 │ │ ├── makedmak.vc6 │ │ ├── makedvcx.v10 │ │ ├── makefile.ansi │ │ ├── makefile.bcc │ │ ├── makefile.dj │ │ ├── makefile.manx │ │ ├── makefile.mc6 │ │ ├── makefile.mms │ │ ├── makefile.sas │ │ ├── makefile.unix │ │ ├── makefile.vc │ │ ├── makefile.vms │ │ ├── makefile.wat │ │ ├── makejdep.vc6 │ │ ├── makejdsp.vc6 │ │ ├── makejdsw.vc6 │ │ ├── makejfil.v10 │ │ ├── makejmak.vc6 │ │ ├── makejsln.v10 │ │ ├── makejvcx.v10 │ │ ├── makeproj.mac │ │ ├── makerdep.vc6 │ │ ├── makerdsp.vc6 │ │ ├── makerfil.v10 │ │ ├── makermak.vc6 │ │ ├── makervcx.v10 │ │ ├── maketdep.vc6 │ │ ├── maketdsp.vc6 │ │ ├── maketfil.v10 │ │ ├── maketmak.vc6 │ │ ├── maketvcx.v10 │ │ ├── makewdep.vc6 │ │ ├── makewdsp.vc6 │ │ ├── makewfil.v10 │ │ ├── makewmak.vc6 │ │ ├── makewvcx.v10 │ │ ├── makljpeg.st │ │ ├── maktjpeg.st │ │ ├── makvms.opt │ │ ├── missing │ │ ├── rdjpgcom.1 │ │ ├── readme.dos │ │ ├── structure.txt │ │ ├── testimg.bmp │ │ ├── testimg.jpg │ │ ├── testimg.ppm │ │ ├── testimgp.jpg │ │ ├── testorig.jpg │ │ ├── testprog.jpg │ │ ├── usage.txt │ │ ├── wizard.txt │ │ └── wrjpgcom.1 │ │ ├── rdbmp.c │ │ ├── rdcolmap.c │ │ ├── rdgif.c │ │ ├── rdppm.c │ │ ├── rdrle.c │ │ ├── rdswitch.c │ │ ├── rdtarga.c │ │ ├── transupp.c │ │ ├── wrbmp.c │ │ ├── wrgif.c │ │ ├── wrppm.c │ │ ├── wrrle.c │ │ └── wrtarga.c └── tinyxml │ ├── include │ ├── tinystr.h │ └── tinyxml.h │ ├── script │ ├── tinyxml.vcproj │ └── tinyxml.vsprops │ └── src │ ├── tinystr.cpp │ ├── tinyxml.cpp │ ├── tinyxmlerror.cpp │ └── tinyxmlparser.cpp ├── Ogre.vsprops ├── README.txt ├── SFMToolkit.sln └── cameras.xml /BundlerCleaner/include/BundlerCleaner.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010 ASTRE Henri (http://www.visual-experiments.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #include 24 | 25 | union VertexIndex 26 | { 27 | VertexIndex(__int32 index); 28 | VertexIndex(unsigned int indexA, unsigned int indexB); 29 | 30 | struct 31 | { 32 | unsigned int indexA : 16; 33 | unsigned int indexB : 16; 34 | }; 35 | __int32 index; 36 | }; 37 | 38 | class BundlerCleaner 39 | { 40 | public: 41 | BundlerCleaner(const std::string& bundleSrcFilePath, const std::string& cleanedPlyFilePath); 42 | void save(const std::string& bundleDstFilePath); 43 | 44 | protected: 45 | void importPly(const std::string& filepath); 46 | 47 | Bundler::Parser mParser; 48 | std::vector mVertexVisibility; //if false this vertex has been deleted 49 | }; -------------------------------------------------------------------------------- /BundlerCleaner/script/BundlerCleaner.vcproj: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 14 | 15 | 16 | 17 | 18 | 26 | 29 | 32 | 35 | 38 | 41 | 51 | 54 | 57 | 60 | 66 | 69 | 72 | 75 | 78 | 81 | 84 | 87 | 88 | 97 | 100 | 103 | 106 | 109 | 112 | 122 | 125 | 128 | 131 | 139 | 142 | 145 | 148 | 151 | 154 | 157 | 160 | 161 | 162 | 163 | 164 | 165 | 170 | 173 | 174 | 177 | 178 | 179 | 184 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | -------------------------------------------------------------------------------- /BundlerCleaner/src/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010 ASTRE Henri (http://www.visual-experiments.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #include "BundlerCleaner.h" 24 | 25 | int main(int argc, char* argv[]) 26 | { 27 | if (argc != 4) 28 | { 29 | std::cout << "Usage " < 26 | 27 | #include "CCDDatabase.h" 28 | 29 | class BundlerFocalExtractor 30 | { 31 | public: 32 | BundlerFocalExtractor(const std::string& inputPath, const std::string& outputListPath, const std::string& outputFocalListPath); 33 | 34 | protected: 35 | void open(const std::string& inputPath); 36 | float getFocal(const std::string& inputJpegPath, int width, int height); 37 | 38 | CCDDatabaseManager mDatabase; 39 | std::vector mPictures; 40 | }; -------------------------------------------------------------------------------- /BundlerFocalExtractor/include/CCDDatabase.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010 ASTRE Henri (http://www.visual-experiments.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #pragma once 24 | 25 | #include 26 | #include 27 | 28 | class CCDDatabaseManager 29 | { 30 | public: 31 | CCDDatabaseManager(const std::string& filepath); 32 | float getCCDWidth(const std::string& make, const std::string& model) const; //return -1 if not found 33 | 34 | protected: 35 | bool fillCCDWidthDatabase(const std::string& filepath); 36 | std::map mCCDWidthDatabase; 37 | }; -------------------------------------------------------------------------------- /BundlerFocalExtractor/src/BundlerFocalExtractor.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010 ASTRE Henri (http://www.visual-experiments.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #include "BundlerFocalExtractor.h" 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | 30 | #include "ExifReader.h" 31 | #include "JpegUtils.h" 32 | 33 | namespace bf = boost::filesystem; 34 | 35 | BundlerFocalExtractor::BundlerFocalExtractor(const std::string& inputPath, const std::string& outputListPath, const std::string& outputFocalListPath) 36 | : mDatabase("cameras.xml") 37 | { 38 | open(inputPath); 39 | 40 | std::ofstream outputList(outputListPath.c_str()); 41 | std::ofstream outputFocalList(outputFocalListPath.c_str()); 42 | if (outputList.is_open() && outputFocalList.is_open()) 43 | { 44 | for (unsigned int i=0; istatus())) 73 | { 74 | std::string filename = it->filename(); 75 | std::string extension = bf::extension(*it).substr(1); //.JPG -> JPG 76 | boost::to_lower(extension); //jpg 77 | 78 | if (extension == "jpg") 79 | mPictures.push_back(filename); 80 | } 81 | } 82 | } 83 | 84 | float BundlerFocalExtractor::getFocal(const std::string& inputJpegPath, int width, int height) 85 | { 86 | Exif::Info exifInfo = Exif::Reader::read(inputJpegPath); 87 | if (exifInfo.isValid) 88 | { 89 | float focalInMM = exifInfo.focalLength; 90 | 91 | //try to find CCD width in database 92 | float ccdWidthInMM = mDatabase.getCCDWidth(exifInfo.cameraMake, exifInfo.cameraModel); 93 | 94 | //if CCD width not found in database, try to find it in Exif info 95 | if (ccdWidthInMM == -1) 96 | { 97 | std::cout << "Error: Missing CCD width in xml database for (" << exifInfo.cameraMake<< " " << exifInfo.cameraModel << ") in file " << inputJpegPath << std::endl; 98 | ccdWidthInMM = exifInfo.CCDWidth; 99 | } 100 | 101 | float largerSizeInPixel = (float) std::max(width, height); 102 | 103 | //compute focal in pixel if the CCD width was found 104 | if (ccdWidthInMM != 0 && ccdWidthInMM != -1) 105 | return largerSizeInPixel * (focalInMM/ccdWidthInMM); 106 | else 107 | { 108 | std::cout << "Error: Missing CCD width in Exif for " << inputJpegPath << std::endl; 109 | return 0; 110 | } 111 | } 112 | else 113 | { 114 | std::cout << "Error: Invalid Exif in file " << inputJpegPath << std::endl; 115 | return 0; 116 | } 117 | } -------------------------------------------------------------------------------- /BundlerFocalExtractor/src/CCDDatabase.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010 ASTRE Henri (http://www.visual-experiments.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #include 24 | 25 | #include "CCDDatabase.h" 26 | 27 | CCDDatabaseManager::CCDDatabaseManager(const std::string& filepath) 28 | { 29 | if (!fillCCDWidthDatabase(filepath)) 30 | { 31 | std::cerr << "CCD Database empty: " << filepath << " is missing" << std::endl; 32 | } 33 | } 34 | 35 | float CCDDatabaseManager::getCCDWidth(const std::string& make, const std::string& model) const 36 | { 37 | std::stringstream id; 38 | id << make << " " << model; 39 | 40 | std::map::const_iterator it = mCCDWidthDatabase.find(id.str()); 41 | 42 | if (it != mCCDWidthDatabase.end()) 43 | return it->second; 44 | else 45 | return -1; 46 | } 47 | 48 | bool CCDDatabaseManager::fillCCDWidthDatabase(const std::string& filepath) 49 | { 50 | TiXmlDocument doc; 51 | if (doc.LoadFile(filepath)) 52 | { 53 | TiXmlNode* root = doc.FirstChild("cameras"); 54 | if (root) 55 | { 56 | for (TiXmlNode* node = root->FirstChild(); node; node = node->NextSibling()) 57 | { 58 | //ignore comment 59 | if (node->Type() == TiXmlNode::ELEMENT) 60 | { 61 | //add cameras to the database 62 | if (std::string(node->ToElement()->Value()) == "camera") 63 | { 64 | std::string model = node->ToElement()->Attribute("model"); 65 | float ccdWidth = (float) atof(node->ToElement()->Attribute("ccdWidth")); 66 | 67 | mCCDWidthDatabase[model] = ccdWidth; 68 | } 69 | } 70 | } 71 | } 72 | return true; 73 | } 74 | else 75 | return false; 76 | } -------------------------------------------------------------------------------- /BundlerFocalExtractor/src/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010 ASTRE Henri (http://www.visual-experiments.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #include "BundlerFocalExtractor.h" 24 | #include 25 | 26 | int main(int argc, char* argv[]) 27 | { 28 | if (argc < 4) 29 | { 30 | std::cout << "Usage: " << argv[0]<< " "< 26 | #include 27 | #include 28 | #include 29 | #include 30 | 31 | #include "SiftGPU.h" 32 | 33 | typedef std::vector SiftKeyPoints; 34 | typedef std::vector SiftKeyDescriptors; 35 | 36 | typedef std::pair Match; 37 | 38 | struct MatchInfo 39 | { 40 | MatchInfo(int indexA, int indexB, std::vector& matches) 41 | { 42 | this->indexA = indexA; 43 | this->indexB = indexB; 44 | this->matches = matches; 45 | } 46 | 47 | int indexA; 48 | int indexB; 49 | std::vector matches; 50 | }; 51 | 52 | struct FeatureInfo 53 | { 54 | FeatureInfo(int width, int height, SiftKeyPoints& points, SiftKeyDescriptors& descriptors) 55 | { 56 | this->width = width; 57 | this->height = height; 58 | this->points = points; 59 | this->descriptors = descriptors; 60 | } 61 | 62 | int width; 63 | int height; 64 | SiftKeyPoints points; 65 | SiftKeyDescriptors descriptors; 66 | }; 67 | 68 | class BundlerMatcher 69 | { 70 | public: 71 | BundlerMatcher(float matchThreshold, int firstOctave = 1, bool binaryWritingEnabled = false, bool sequenceMatching = false, int sequenceMatchingLength = 5); 72 | ~BundlerMatcher(); 73 | 74 | //load list.txt and output gpu.matches.txt + one key file per pictures 75 | void open(const std::string& inputPath, const std::string& inputFilename, const std::string& outMatchFilename); 76 | 77 | protected: 78 | 79 | //Feature extraction 80 | int extractSiftFeature(int fileIndex); 81 | void saveAsciiKeyFile(int fileIndex); 82 | void saveBinaryKeyFile(int fileIndex); 83 | 84 | //Feature matching 85 | void matchSiftFeature(int fileIndexA, int fileIndexB); 86 | void saveMatches(const std::string& filename); 87 | 88 | //Helpers 89 | bool parseListFile(const std::string& filename); 90 | void clearScreen(); 91 | void saveMatrix(); 92 | void saveVector(); 93 | public: 94 | bool mIsInitialized; 95 | bool mBinaryKeyFileWritingEnabled; 96 | bool mSequenceMatchingEnabled; 97 | int mSequenceMatchingLength; 98 | SiftGPU* mSift; 99 | SiftMatchGPU* mMatcher; 100 | //int mMatchBuffer[4096][2]; 101 | float mMatchThreshold; 102 | std::string mInputPath; 103 | 104 | std::vector mFilenames; //N images 105 | std::vector mFeatureInfos; //N FeatureInfo 106 | std::vector mMatchInfos; //N(N-1)/2 MatchInfo 107 | }; -------------------------------------------------------------------------------- /BundlerMatcher/src/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010 ASTRE Henri (http://www.visual-experiments.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #include "BundlerMatcher.h" 24 | 25 | int main(int argc, char* argv[]) 26 | { 27 | if (argc < 6) 28 | { 29 | std::cout << "Usage: " << argv[0] << " " < : 0.0 means few match and 1.0 many match (float)" <: specify on which octave start sampling (int)" <: low value (0) means many features and high value (2) means less features" << std::endl; 33 | std::cout << "Optional feature:" << std::endl; 34 | std::cout << " - bin: generate binary files (needed for Augmented Reality tracking)" << std::endl; 35 | std::cout << " - sequence NUMBER: matching optimized for video sequence" << std::endl; 36 | std::cout << " -> example: sequence 3 (will match image N with N+1,N+2,N+3)" < 0) 57 | sequenceMatching = true; 58 | i++; 59 | } 60 | } 61 | } 62 | 63 | BundlerMatcher matcher((float) atof(argv[4]), atoi(argv[5]), binnaryWritingEnabled, sequenceMatching, sequenceMatchingLength); 64 | matcher.open(std::string(argv[1]), std::string(argv[2]), std::string(argv[3])); 65 | 66 | return 0; 67 | } 68 | -------------------------------------------------------------------------------- /BundlerParser/include/BundlerParser.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010 ASTRE Henri (http://www.visual-experiments.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #include "BundlerStructures.h" 24 | 25 | namespace Bundler 26 | { 27 | class Parser 28 | { 29 | public: 30 | Parser(const std::string& filename); 31 | 32 | unsigned int getNbCamera() const; 33 | const Camera& getCamera(unsigned int index) const; 34 | 35 | const std::vector& getVertices() const; 36 | 37 | protected: 38 | void parseBundlerFile(const std::string& filename); 39 | void parsePictureListFile(const std::string& filename); 40 | 41 | std::vector mVertices; 42 | std::vector mCameras; 43 | }; 44 | } -------------------------------------------------------------------------------- /BundlerParser/include/BundlerStructures.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010 ASTRE Henri (http://www.visual-experiments.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #include 24 | #include 25 | #include 26 | #include 27 | 28 | namespace Bundler 29 | { 30 | struct Vertex 31 | { 32 | Vertex(Ogre::Vector3 position, Ogre::ColourValue color, Ogre::Vector3 normal = Ogre::Vector3::UNIT_Z); 33 | 34 | Ogre::Vector3 position; 35 | Ogre::ColourValue color; 36 | Ogre::Vector3 normal; 37 | }; 38 | 39 | struct Camera 40 | { 41 | Camera(Ogre::Real focalLength, Ogre::Real radialDistort1, Ogre::Real radialDistort2, Ogre::Matrix3 rotation, Ogre::Vector3 translation); 42 | 43 | Ogre::Real focalLength; 44 | Ogre::Real radialDistort1; 45 | Ogre::Real radialDistort2; 46 | Ogre::Matrix3 rotation; 47 | Ogre::Vector3 translation; 48 | 49 | std::vector> viewlist; 50 | }; 51 | } -------------------------------------------------------------------------------- /BundlerParser/script/BundlerParser.vcproj: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 14 | 15 | 16 | 17 | 18 | 26 | 29 | 32 | 35 | 38 | 41 | 50 | 53 | 56 | 59 | 62 | 65 | 68 | 71 | 74 | 77 | 78 | 87 | 90 | 93 | 96 | 99 | 102 | 111 | 114 | 117 | 120 | 123 | 126 | 129 | 132 | 135 | 138 | 139 | 140 | 141 | 142 | 143 | 148 | 151 | 152 | 155 | 156 | 157 | 162 | 165 | 166 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | -------------------------------------------------------------------------------- /BundlerParser/script/BundlerParser.vsprops: -------------------------------------------------------------------------------- 1 | 2 | 7 | 11 | 15 | 16 | -------------------------------------------------------------------------------- /BundlerParser/src/BundlerParser.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010 ASTRE Henri (http://www.visual-experiments.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #include 24 | 25 | using namespace Bundler; 26 | 27 | Parser::Parser(const std::string& bundleFilePath) 28 | { 29 | parseBundlerFile(bundleFilePath); 30 | } 31 | 32 | void Parser::parseBundlerFile(const std::string& filepath) 33 | { 34 | std::ifstream input(filepath.c_str()); 35 | if (input.is_open()) 36 | { 37 | std::string line; 38 | std::getline(input, line); //eat first line : # Bundle file v0.3 39 | unsigned int nbCamera; 40 | unsigned int nbPoints; 41 | input >> nbCamera; 42 | input >> nbPoints; 43 | 44 | // 45 | // C A M E R A P A R S I N G 46 | // 47 | 48 | // [the focal length, followed by two radial distortion coeffs] 49 | // [a 3x3 matrix representing the camera rotation] 50 | // [a 3-vector describing the camera translation] 51 | for (unsigned int i=0; i> focalLength; 55 | input >> radialDistort1; 56 | input >> radialDistort2; 57 | 58 | Ogre::Matrix3 rotation; 59 | for (unsigned int j=0; j<3; ++j) 60 | for (unsigned int k=0; k<3; ++k) 61 | input >> rotation[j][k]; 62 | 63 | Ogre::Vector3 translation; 64 | input >> translation.x; 65 | input >> translation.y; 66 | input >> translation.z; 67 | 68 | Camera camera((float)focalLength, (float)radialDistort1, (float)radialDistort2, rotation, translation); 69 | mCameras.push_back(camera); 70 | } 71 | 72 | // 73 | // P O I N T S P A R S I N G 74 | // 75 | 76 | // [a 3-vector describing the 3D position of the point] 77 | // [a 3-vector describing the RGB color of the point] 78 | // [a list of views the point is visible in] 79 | for (unsigned int i=0; i> position.x; 83 | input >> position.y; 84 | input >> position.z; 85 | 86 | int r, g, b; 87 | input >> r; 88 | input >> g; 89 | input >> b; 90 | Ogre::ColourValue color(r/255.0f, g/255.0f, b/255.0f); 91 | 92 | Vertex point(position, color); 93 | mVertices.push_back(point); 94 | 95 | // 96 | // V I E W L I S T P A R S I N G 97 | // 98 | 99 | //The view list begins with the length of the list (i.e., the number of 100 | //cameras the point is visible in). The list is then given as a list of 101 | //quadruplets , where is a camera index, 102 | // the index of the SIFT keypoint where the point was detected in 103 | //that camera, and and are the detected positions of that 104 | //keypoint. 105 | unsigned int viewlistSize; 106 | input >> viewlistSize; 107 | for (unsigned int j=0; j> cameraIndex; 112 | input >> siftIndex; 113 | 114 | Ogre::Vector2 position; 115 | input >> position.x; 116 | input >> position.y; 117 | mCameras[cameraIndex].viewlist.push_back(std::pair(i, position)); 118 | } 119 | } 120 | } 121 | input.close(); 122 | } 123 | 124 | unsigned int Parser::getNbCamera() const 125 | { 126 | return mCameras.size(); 127 | } 128 | 129 | const Camera& Parser::getCamera(unsigned int index) const 130 | { 131 | return mCameras[index]; 132 | } 133 | 134 | const std::vector& Parser::getVertices() const 135 | { 136 | return mVertices; 137 | } -------------------------------------------------------------------------------- /BundlerParser/src/BundlerStructures.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010 ASTRE Henri (http://www.visual-experiments.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #include "BundlerStructures.h" 24 | 25 | using namespace Bundler; 26 | 27 | Vertex::Vertex(Ogre::Vector3 position, Ogre::ColourValue color, Ogre::Vector3 normal) 28 | { 29 | this->position = position; 30 | this->color = color; 31 | this->normal = normal; 32 | } 33 | 34 | Camera::Camera(Ogre::Real focalLength, Ogre::Real radialDistort1, Ogre::Real radialDistort2, Ogre::Matrix3 rotation, Ogre::Vector3 translation) 35 | { 36 | this->focalLength = focalLength; 37 | this->radialDistort1 = radialDistort1; 38 | this->radialDistort2 = radialDistort2; 39 | this->rotation = rotation; 40 | this->translation = translation; 41 | } -------------------------------------------------------------------------------- /BundlerToPly/include/BundlerToPly.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010 ASTRE Henri (http://www.visual-experiments.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #include 24 | 25 | union VertexIndex 26 | { 27 | VertexIndex(__int32 index); 28 | VertexIndex(unsigned int indexA, unsigned int indexB); 29 | 30 | struct 31 | { 32 | unsigned int indexA : 16; 33 | unsigned int indexB : 16; 34 | }; 35 | __int32 index; 36 | }; 37 | 38 | class BundlerToPly 39 | { 40 | public: 41 | BundlerToPly(const std::string& bundlerFilePath); 42 | void save(const std::string& plyFilePath); 43 | 44 | protected: 45 | Bundler::Parser mParser; 46 | }; -------------------------------------------------------------------------------- /BundlerToPly/script/BundlerToPly.vcproj: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 14 | 15 | 16 | 17 | 18 | 26 | 29 | 32 | 35 | 38 | 41 | 51 | 54 | 57 | 60 | 66 | 69 | 72 | 75 | 78 | 81 | 84 | 87 | 88 | 97 | 100 | 103 | 106 | 109 | 112 | 122 | 125 | 128 | 131 | 139 | 142 | 145 | 148 | 151 | 154 | 157 | 160 | 161 | 162 | 163 | 164 | 165 | 170 | 173 | 174 | 177 | 178 | 179 | 184 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | -------------------------------------------------------------------------------- /BundlerToPly/src/BundlerToPly.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010 ASTRE Henri (http://www.visual-experiments.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #include "BundlerToPly.h" 24 | 25 | VertexIndex::VertexIndex(__int32 index) 26 | { 27 | this->index = index; 28 | } 29 | 30 | VertexIndex::VertexIndex(unsigned int indexA, unsigned int indexB) 31 | { 32 | this->indexA = indexA; 33 | this->indexB = indexB; 34 | } 35 | 36 | BundlerToPly::BundlerToPly(const std::string& bundlerFilePath) 37 | : mParser(bundlerFilePath) 38 | {} 39 | 40 | void BundlerToPly::save(const std::string& plyFilePath) 41 | { 42 | const std::vector& vertices = mParser.getVertices(); 43 | unsigned int nbVertex = vertices.size(); 44 | 45 | std::ofstream output(plyFilePath.c_str(), std::ios::binary); 46 | if (output.is_open()) 47 | { 48 | output << "ply" << std::endl; 49 | output << "format binary_little_endian 1.0" << std::endl; 50 | output << "element vertex " << nbVertex << std::endl; 51 | output << "property float x" << std::endl; 52 | output << "property float y" << std::endl; 53 | output << "property float z" << std::endl; 54 | output << "property float nx" << std::endl; 55 | output << "property float ny" << std::endl; 56 | output << "property float nz" << std::endl; 57 | output << "property uchar red" << std::endl; 58 | output << "property uchar green" << std::endl; 59 | output << "property uchar blue" << std::endl; 60 | output << "property uchar alpha" << std::endl; 61 | output << "end_header" << std::endl; 62 | 63 | float* pos = new float[6]; 64 | unsigned char* color = new unsigned char[4]; 65 | 66 | for (unsigned int i=0; i " < 26 | 27 | struct BundlerCamera 28 | { 29 | BundlerCamera(Ogre::Real _focalLength, Ogre::Real _radialDistort1, Ogre::Real _radialDistort2, Ogre::Matrix3 _rotation, Ogre::Vector3 _translation); 30 | 31 | Ogre::Real focalLength; 32 | Ogre::Real radialDistort1; 33 | Ogre::Real radialDistort2; 34 | Ogre::Matrix3 rotation; 35 | Ogre::Vector3 translation; 36 | 37 | std::vector> viewlist; 38 | }; 39 | 40 | std::ostream& operator <<(std::ostream& output, const BundlerCamera& cam); 41 | 42 | struct BundlerFeature 43 | { 44 | BundlerFeature(Ogre::Vector2 position, float scale, float orientation, float* descriptor); 45 | 46 | Ogre::Vector2 position; 47 | float scale; 48 | float orientation; 49 | float descriptor[128]; 50 | }; 51 | 52 | struct BundlerViewPoint 53 | { 54 | BundlerViewPoint(unsigned int indexImg, unsigned int indexFeature); 55 | 56 | unsigned int indexImg; 57 | unsigned int indexFeature; 58 | }; 59 | 60 | struct Bundler3DPoint 61 | { 62 | Bundler3DPoint(Ogre::Vector3 _position, Ogre::ColourValue _color, std::vector _viewPoints); 63 | 64 | Ogre::Vector3 position; 65 | Ogre::ColourValue color; 66 | std::vector viewPoints; 67 | }; 68 | 69 | class BundlerToTracking 70 | { 71 | public: 72 | void open(const std::string& inputPath, const std::string& bundlerFilename, const std::string& bundlerListJpeg); //open .out file from Bundler 73 | void writeOutputFile(const std::string& binFilename, const std::string& txtFilename); 74 | 75 | protected: 76 | void writeBinFile(const std::string& filename); 77 | void writeTxtFile(const std::string& filename); 78 | void logerror(const std::string& reason); 79 | void parseFile(const std::string& filename); 80 | void parseFileList(const std::string& filename); 81 | std::vector getFeaturesBin(const std::string& baseFilename); 82 | 83 | std::vector mCameras; 84 | std::vector m3DPoints; 85 | 86 | std::vector mFilenames; 87 | std::vector> mFeatures; 88 | }; -------------------------------------------------------------------------------- /BundlerToTracking/include/Logic.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | struct Feature 7 | { 8 | Feature(float x, float y) 9 | { 10 | this->x = x; 11 | this->y = y; 12 | } 13 | float x; 14 | float y; 15 | }; 16 | 17 | class Logic 18 | { 19 | public: 20 | Logic(); 21 | ~Logic(); 22 | 23 | void open(const std::string& filename); 24 | 25 | protected: 26 | std::vector getFeatures(const std::string& filename); 27 | bool getDim(const std::string& filename, int& width, int& height); 28 | bool parseListFile(const std::string& filename); 29 | bool existFile(const std::string& filename); 30 | void createListKey(); 31 | void saveFeatures(); 32 | 33 | std::vector mFilenames; 34 | }; -------------------------------------------------------------------------------- /BundlerToTracking/script/BundlerToTracking.vcproj: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 14 | 15 | 16 | 17 | 18 | 26 | 29 | 32 | 35 | 38 | 41 | 51 | 54 | 57 | 60 | 67 | 70 | 73 | 76 | 79 | 82 | 85 | 88 | 89 | 98 | 101 | 104 | 107 | 110 | 113 | 123 | 126 | 129 | 132 | 141 | 144 | 147 | 150 | 153 | 156 | 159 | 162 | 163 | 164 | 165 | 166 | 167 | 172 | 175 | 176 | 179 | 180 | 181 | 186 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | -------------------------------------------------------------------------------- /BundlerToTracking/src/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010 ASTRE Henri (http://www.visual-experiments.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #include 24 | 25 | #include "BundlerToTracking.h" 26 | 27 | int main(int argc, char*argv[]) 28 | { 29 | if (argc != 6) 30 | { 31 | std::cout << "Usage " < 26 | #include 27 | #include 28 | 29 | namespace Bundler 30 | { 31 | struct Vertex 32 | { 33 | Vertex(Ogre::Vector3 position, Ogre::ColourValue color, Ogre::Vector3 normal = Ogre::Vector3::UNIT_Z); 34 | 35 | Ogre::Vector3 position; 36 | Ogre::ColourValue color; 37 | Ogre::Vector3 normal; 38 | }; 39 | 40 | struct Triangle 41 | { 42 | Triangle(unsigned int indexA, unsigned int indexB, unsigned int indexC); 43 | 44 | unsigned int indexA; 45 | unsigned int indexB; 46 | unsigned int indexC; 47 | }; 48 | 49 | struct Mesh 50 | { 51 | Mesh() {} 52 | Mesh(const std::vector& vertices, const std::vector& triangles = std::vector()); 53 | 54 | std::vector vertices; 55 | std::vector triangles; 56 | }; 57 | 58 | struct Camera 59 | { 60 | Camera(Ogre::Real focalLength, Ogre::Real radialDistort1, Ogre::Real radialDistort2, Ogre::Matrix3 rotation, Ogre::Vector3 translation, const std::string& filename = ""); 61 | 62 | std::string filename; 63 | Ogre::Real focalLength; 64 | Ogre::Real radialDistort1; 65 | Ogre::Real radialDistort2; 66 | Ogre::Matrix3 rotation; 67 | Ogre::Vector3 translation; 68 | 69 | std::vector> viewlist; 70 | }; 71 | 72 | class Parser 73 | { 74 | public: 75 | Parser(const std::string& bundleFilePath, const std::string& pictureListFilePath); 76 | 77 | unsigned int getNbCamera() const; 78 | const Camera& getCamera(unsigned int index) const; 79 | 80 | const std::vector& getVertices() const; 81 | 82 | protected: 83 | void parseBundlerFile(const std::string& filename); 84 | void parsePictureListFile(const std::string& filename); 85 | 86 | std::vector mVertices; 87 | std::vector mCameras; 88 | }; 89 | 90 | const Mesh& importPly(const std::string& filepath); 91 | } -------------------------------------------------------------------------------- /BundlerViewer/include/GPUBillboardSet.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010 ASTRE Henri (http://www.visual-experiments.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #pragma once 24 | 25 | #include 26 | #include "BundlerParser.h" 27 | 28 | class GPUBillboardSet : public Ogre::SimpleRenderable 29 | { 30 | public: 31 | GPUBillboardSet(const Ogre::String& name, const std::vector& vertices, bool useGeometryShader, Ogre::Vector2& billboardSize = Ogre::Vector2(0.01f, 0.01f)); 32 | virtual ~GPUBillboardSet(); 33 | 34 | void setBillboardSize(Ogre::Vector2 size); 35 | Ogre::Vector2 getBillboardSize() const; 36 | 37 | void setBillboards(const std::vector& vertices, bool useGeometryShader); 38 | 39 | protected: 40 | virtual void getWorldTransforms(Ogre::Matrix4* xform) const; 41 | virtual Ogre::Real getSquaredViewDepth(const Ogre::Camera* cam) const; 42 | virtual Ogre::Real getBoundingRadius() const; 43 | virtual const Ogre::String& getMovableType() const; 44 | 45 | private: 46 | void createVertexDataForVertexShaderOnly(const std::vector& vertices); 47 | void createVertexDataForVertexAndGeometryShaders(const std::vector& vertices); 48 | void updateBoundingBoxAndSphereFromBillboards(const std::vector& vertices); 49 | static Ogre::AxisAlignedBox calculateBillboardsBoundingBox(const std::vector& vertices); 50 | 51 | static const Ogre::String mMovableType; 52 | 53 | Ogre::Real mBBRadius; 54 | Ogre::Vector2 mBillboardSize; 55 | }; -------------------------------------------------------------------------------- /BundlerViewer/include/OgreApp.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010 ASTRE Henri (http://www.visual-experiments.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #ifndef OGREAPP_H 24 | #define OGREAPP_H 25 | 26 | #include 27 | #include 28 | #include 29 | #include 30 | 31 | class OgreAppLogic; 32 | 33 | class OgreApp : public Ogre::Singleton 34 | { 35 | public: 36 | 37 | OgreApp(); 38 | ~OgreApp(); 39 | 40 | void setAppLogic(OgreAppLogic *appLogic); 41 | 42 | void run(void); 43 | bool update(Ogre::Real deltaTime); 44 | void notifyWindowMetrics(Ogre::RenderWindow* rw, int left, int top, int width, int height); 45 | void notifyWindowClosed(Ogre::RenderWindow* rw); 46 | 47 | void setCommandLine(const Ogre::String &commandLine); 48 | void setCommandLine(int argc, char *argv[]); 49 | 50 | inline Ogre::RenderWindow *getRenderWindow(void) const { return mWindow; } 51 | inline Ogre::Root *getOgreRoot(void) const { return mRoot; } 52 | 53 | inline OIS::Mouse *getMouse(void) const { return mMouse; } 54 | inline OIS::Keyboard *getKeyboard(void) const { return mKeyboard; } 55 | protected: 56 | 57 | bool init(void); 58 | void shutdown(void); 59 | 60 | void createInputDevices(bool exclusive); 61 | void updateInputDevices(void); 62 | void destroyInputDevices(void); 63 | 64 | void setupResources(void); 65 | 66 | // Config 67 | bool mInitialisationBegun; 68 | bool mInitialisationComplete; 69 | 70 | Ogre::String mCommandLine; 71 | Ogre::StringVector mCommandLineArgs; 72 | 73 | // OGRE 74 | Ogre::Root *mRoot; 75 | Ogre::FrameListener *mFrameListener; 76 | Ogre::RenderWindow *mWindow; 77 | 78 | // OIS 79 | OIS::InputManager *mInputMgr; 80 | OIS::Keyboard* mKeyboard; 81 | OIS::Mouse* mMouse; 82 | 83 | // Classes supplied by the user 84 | OgreAppLogic *mAppLogic; 85 | }; 86 | 87 | #endif // OGREAPP_H -------------------------------------------------------------------------------- /BundlerViewer/include/OgreAppFrameListener.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010 ASTRE Henri (http://www.visual-experiments.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #ifndef OGREOGREAPPFRAMELISTENER_H 24 | #define OGREOGREAPPFRAMELISTENER_H 25 | 26 | #include 27 | 28 | class OgreApp; 29 | 30 | class OgreAppFrameListener : public Ogre::FrameListener, public Ogre::WindowEventListener 31 | { 32 | public: 33 | // Constructor takes a RenderWindow because it uses that to determine input context 34 | OgreAppFrameListener(OgreApp* app); 35 | virtual ~OgreAppFrameListener(); 36 | 37 | //Adjust mouse clipping area 38 | virtual void windowResized(Ogre::RenderWindow* rw); 39 | virtual void windowMoved(Ogre::RenderWindow* rw); 40 | 41 | //Unattach OIS before window shutdown (very important under Linux) 42 | virtual void windowClosed(Ogre::RenderWindow* rw); 43 | 44 | // Override frameStarted event to process that (don't care about frameEnded) 45 | //bool frameStarted(const Ogre::FrameEvent& evt); 46 | bool frameRenderingQueued(const Ogre::FrameEvent& evt); 47 | 48 | protected: 49 | OgreApp *mApplication; 50 | bool mWindowClosed; 51 | }; 52 | 53 | #endif // OGREOGREAPPFRAMELISTENER_H -------------------------------------------------------------------------------- /BundlerViewer/include/OgreAppLogic.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010 ASTRE Henri (http://www.visual-experiments.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #ifndef OGREAPPLOGIC_H 24 | #define OGREAPPLOGIC_H 25 | 26 | #include 27 | #include 28 | #include 29 | 30 | #include "BundlerParser.h" 31 | #include "GPUBillboardSet.h" 32 | 33 | class OgreApp; 34 | class StatsFrameListener; 35 | 36 | class OgreAppLogic 37 | { 38 | public: 39 | OgreAppLogic(); 40 | ~OgreAppLogic(); 41 | 42 | void setParentApp(OgreApp *app) { mApplication = app; } 43 | 44 | /// Called before Ogre and everything in the framework is initialized 45 | /// Configure the framework here 46 | bool preInit(const Ogre::StringVector &commandArgs); 47 | /// Called when Ogre and the framework is initialized 48 | /// Init the logic here 49 | bool init(void); 50 | 51 | /// Called before everything in the framework is updated 52 | bool preUpdate(Ogre::Real deltaTime); 53 | /// Called when the framework is updated 54 | /// update the logic here 55 | bool update(Ogre::Real deltaTime); 56 | 57 | /// Called before Ogre and the framework are shut down 58 | /// shutdown the logic here 59 | void shutdown(void); 60 | /// Called when Ogre and the framework are shut down 61 | void postShutdown(void); 62 | 63 | protected: 64 | void createSceneManager(void); 65 | void createViewport(void); 66 | void createCamera(void); 67 | void createScene(void); 68 | 69 | 70 | bool processInputs(Ogre::Real deltaTime); 71 | 72 | // OGRE 73 | OgreApp *mApplication; 74 | Ogre::SceneManager *mSceneMgr; 75 | Ogre::Viewport *mViewport; 76 | Ogre::Camera *mCamera; 77 | Ogre::SceneNode* mCameraNode; 78 | Ogre::SceneNode* mObjectNode; 79 | Ogre::AnimationState* mAnimState; 80 | Ogre::SceneNode* mAxesNode; 81 | Ogre::SceneNode* mCameraPlaneNode; 82 | Ogre::Real mDistanceFromCamera; 83 | Bundler::Parser* mBundlerParser; 84 | GPUBillboardSet* mSparsePointCloud; 85 | GPUBillboardSet* mDensePointCloud; 86 | std::string mProjectPath; 87 | std::string mDensePointCloudFilePath; 88 | 89 | void adaptPlaneToCamera(const Bundler::Camera& cam); 90 | void createCameraPlane(); 91 | void createCameraMaterial(); 92 | 93 | void nextCamera(); 94 | void previousCamera(); 95 | void setCamera(unsigned int index); 96 | int mCameraIndex; 97 | 98 | void increaseBillboardSize(); 99 | void decreaseBillboardSize(); 100 | void setBillboardSize(Ogre::Real size); 101 | Ogre::Real mBillboardSize; 102 | Ogre::Real mBillboardInterval; 103 | 104 | void toggleSparseDensePointCloud(); 105 | bool mIsSparsePointCloudVisible; 106 | 107 | void toggleCameraPlaneVisibility(); 108 | bool mIsCameraPlaneVisible; 109 | 110 | Ogre::Real mTimeUntilNextToggle; 111 | StatsFrameListener *mStatsFrameListener; 112 | 113 | // OIS 114 | class OISListener : public OIS::MouseListener, public OIS::KeyListener 115 | { 116 | public: 117 | virtual bool mouseMoved(const OIS::MouseEvent &arg); 118 | virtual bool mousePressed(const OIS::MouseEvent &arg, OIS::MouseButtonID id); 119 | virtual bool mouseReleased(const OIS::MouseEvent &arg, OIS::MouseButtonID id); 120 | virtual bool keyPressed(const OIS::KeyEvent &arg); 121 | virtual bool keyReleased(const OIS::KeyEvent &arg); 122 | OgreAppLogic *mParent; 123 | }; 124 | friend class OISListener; 125 | OISListener mOISListener; 126 | }; 127 | 128 | #endif // OGREAPPLOGIC_H -------------------------------------------------------------------------------- /BundlerViewer/include/StatsFrameListener.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010 ASTRE Henri (http://www.visual-experiments.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #include 24 | 25 | 26 | class StatsFrameListener : public Ogre::FrameListener 27 | { 28 | public: 29 | StatsFrameListener(Ogre::RenderTarget *window); 30 | ~StatsFrameListener(); 31 | virtual bool frameRenderingQueued(const Ogre::FrameEvent& evt); 32 | virtual bool frameEnded(const Ogre::FrameEvent& evt); 33 | 34 | void showDebugOverlay(bool show); 35 | void setDebugText(const Ogre::String &debugText) { mDebugText = debugText; } 36 | 37 | protected: 38 | void updateStats(void); 39 | 40 | Ogre::String mDebugText; 41 | Ogre::Overlay* mDebugOverlay; 42 | Ogre::RenderTarget *mWindow; 43 | bool mIsAttached; 44 | }; 45 | -------------------------------------------------------------------------------- /BundlerViewer/src/OgreApp.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/BundlerViewer/src/OgreApp.cpp -------------------------------------------------------------------------------- /BundlerViewer/src/OgreAppFrameListener.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010 ASTRE Henri (http://www.visual-experiments.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #include "OgreAppFrameListener.h" 24 | #include "OgreApp.h" 25 | #include 26 | 27 | using namespace Ogre; 28 | 29 | // Constructor takes a RenderWindow because it uses that to determine input context 30 | OgreAppFrameListener::OgreAppFrameListener(OgreApp* app) : mApplication(app) 31 | { 32 | Ogre::RenderWindow *window = mApplication->getRenderWindow(); 33 | 34 | if(window) 35 | { 36 | windowResized(window); 37 | WindowEventUtilities::addWindowEventListener(window, this); 38 | } 39 | 40 | mWindowClosed = false; 41 | } 42 | 43 | OgreAppFrameListener::~OgreAppFrameListener() 44 | { 45 | Ogre::RenderWindow *window = mApplication->getRenderWindow(); 46 | 47 | WindowEventUtilities::removeWindowEventListener(window, this); 48 | if(!window->isClosed()) 49 | windowClosed(window); 50 | } 51 | 52 | 53 | //Adjust mouse clipping area 54 | void OgreAppFrameListener::windowResized(RenderWindow* rw) 55 | { 56 | windowMoved(rw); 57 | } 58 | 59 | void OgreAppFrameListener::windowMoved(RenderWindow* rw) 60 | { 61 | unsigned int width, height, depth; 62 | int left, top; 63 | rw->getMetrics(width, height, depth, left, top); 64 | mApplication->notifyWindowMetrics(rw, left, top, width, height); 65 | } 66 | 67 | //Unattach OIS before window shutdown (very important under Linux) 68 | void OgreAppFrameListener::windowClosed(RenderWindow* rw) 69 | { 70 | mApplication->notifyWindowClosed(rw); 71 | mWindowClosed = true; 72 | } 73 | 74 | // Override frameStarted event to process that (don't care about frameEnded) 75 | //bool OgreAppFrameListener::frameStarted(const FrameEvent& evt) 76 | bool OgreAppFrameListener::frameRenderingQueued(const FrameEvent& evt) 77 | { 78 | if(mWindowClosed) 79 | return false; 80 | 81 | if(!mApplication->update(evt.timeSinceLastFrame)) 82 | return false; 83 | 84 | return true; 85 | } 86 | -------------------------------------------------------------------------------- /BundlerViewer/src/OgreAppLogic.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/BundlerViewer/src/OgreAppLogic.cpp -------------------------------------------------------------------------------- /BundlerViewer/src/StatsFrameListener.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010 ASTRE Henri (http://www.visual-experiments.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #include "StatsFrameListener.h" 24 | #include 25 | 26 | using namespace Ogre; 27 | 28 | StatsFrameListener::StatsFrameListener(RenderTarget *window) 29 | { 30 | mWindow = window; 31 | mDebugText = ""; 32 | mDebugOverlay = OverlayManager::getSingleton().getByName("Core/DebugOverlay"); 33 | mIsAttached = false; 34 | showDebugOverlay(true); 35 | } 36 | 37 | 38 | StatsFrameListener::~StatsFrameListener() 39 | { 40 | showDebugOverlay(false); 41 | } 42 | 43 | bool StatsFrameListener::frameRenderingQueued(const FrameEvent& evt) 44 | { 45 | return true; 46 | } 47 | 48 | bool StatsFrameListener::frameEnded(const FrameEvent& evt) 49 | { 50 | if(mDebugOverlay) 51 | updateStats(); 52 | return true; 53 | } 54 | 55 | void StatsFrameListener::showDebugOverlay(bool show) 56 | { 57 | if (mDebugOverlay) 58 | { 59 | if (show) 60 | { 61 | if(!mIsAttached) 62 | { 63 | Ogre::Root::getSingleton().addFrameListener(this); 64 | mIsAttached = true; 65 | } 66 | mDebugOverlay->show(); 67 | } 68 | else 69 | { 70 | if(mIsAttached) 71 | { 72 | Ogre::Root::getSingleton().removeFrameListener(this); 73 | mIsAttached = false; 74 | } 75 | mDebugOverlay->hide(); 76 | } 77 | } 78 | } 79 | 80 | void StatsFrameListener::updateStats(void) 81 | { 82 | static String currFps = "Current FPS: "; 83 | static String avgFps = "Average FPS: "; 84 | static String bestFps = "Best FPS: "; 85 | static String worstFps = "Worst FPS: "; 86 | static String tris = "Triangle Count: "; 87 | static String batches = "Batch Count: "; 88 | 89 | // update stats when necessary 90 | try { 91 | OverlayElement* guiAvg = OverlayManager::getSingleton().getOverlayElement("Core/AverageFps"); 92 | OverlayElement* guiCurr = OverlayManager::getSingleton().getOverlayElement("Core/CurrFps"); 93 | OverlayElement* guiBest = OverlayManager::getSingleton().getOverlayElement("Core/BestFps"); 94 | OverlayElement* guiWorst = OverlayManager::getSingleton().getOverlayElement("Core/WorstFps"); 95 | 96 | const RenderTarget::FrameStats& stats = mWindow->getStatistics(); 97 | guiAvg->setCaption(avgFps + StringConverter::toString(stats.avgFPS)); 98 | guiCurr->setCaption(currFps + StringConverter::toString(stats.lastFPS)); 99 | guiBest->setCaption(bestFps + StringConverter::toString(stats.bestFPS) 100 | +" "+StringConverter::toString(stats.bestFrameTime)+" ms"); 101 | guiWorst->setCaption(worstFps + StringConverter::toString(stats.worstFPS) 102 | +" "+StringConverter::toString(stats.worstFrameTime)+" ms"); 103 | 104 | OverlayElement* guiTris = OverlayManager::getSingleton().getOverlayElement("Core/NumTris"); 105 | guiTris->setCaption(tris + StringConverter::toString(stats.triangleCount)); 106 | 107 | OverlayElement* guiBatches = OverlayManager::getSingleton().getOverlayElement("Core/NumBatches"); 108 | guiBatches->setCaption(batches + StringConverter::toString(stats.batchCount)); 109 | 110 | OverlayElement* guiDbg = OverlayManager::getSingleton().getOverlayElement("Core/DebugText"); 111 | guiDbg->setCaption(mDebugText); 112 | } 113 | catch(...) { /* ignore */ } 114 | } -------------------------------------------------------------------------------- /BundlerViewer/src/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010 ASTRE Henri (http://www.visual-experiments.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #include "OgreApp.h" 24 | #include "OgreAppLogic.h" 25 | #include 26 | 27 | #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 28 | #define WIN32_LEAN_AND_MEAN 29 | #include "windows.h" 30 | #endif 31 | 32 | #ifdef __cplusplus 33 | extern "C" { 34 | #endif 35 | 36 | #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 37 | INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT ) 38 | #else 39 | int main(int argc, char **argv) 40 | #endif 41 | { 42 | try 43 | { 44 | OgreApp app; 45 | OgreAppLogic appLogic; 46 | app.setAppLogic(&appLogic); 47 | #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 48 | app.setCommandLine(Ogre::String(strCmdLine)); 49 | #else 50 | app.setCommandLine(argc, argv); 51 | #endif 52 | app.run(); 53 | } 54 | catch (Ogre::Exception& e) 55 | { 56 | MessageBox(NULL, e.getFullDescription().c_str(), "An exception has occured!", MB_OK | MB_ICONERROR | MB_TASKMODAL); 57 | return -1; 58 | } 59 | 60 | return 0; 61 | } 62 | 63 | #ifdef __cplusplus 64 | } 65 | #endif -------------------------------------------------------------------------------- /Dependencies/Exif/Cexif - CodeProject.url: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=http://www.codeproject.com/KB/graphics/cexif.aspx#xx453189xx 3 | -------------------------------------------------------------------------------- /Dependencies/Exif/include/ExifReader.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010 ASTRE Henri (http://www.visual-experiments.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #pragma once 24 | 25 | #include 26 | 27 | namespace Exif 28 | { 29 | struct Info 30 | { 31 | Info(); 32 | 33 | int width; 34 | int height; 35 | std::string cameraMake; 36 | std::string cameraModel; 37 | float focalLength; 38 | float CCDWidth; 39 | 40 | bool isValid; 41 | }; 42 | 43 | class Reader 44 | { 45 | public: 46 | static Info read(const std::string& jpegPath); 47 | }; 48 | } 49 | 50 | 51 | -------------------------------------------------------------------------------- /Dependencies/Exif/include/exif.h: -------------------------------------------------------------------------------- 1 | /* 2 | * File: exif.h 3 | * Purpose: cpp EXIF reader 4 | * 16/Mar/2003 5 | * based on jhead-1.8 by Matthias Wandel 6 | * http://www.codeproject.com/KB/graphics/cexif.aspx 7 | */ 8 | 9 | #pragma once 10 | 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | 18 | #define MAX_COMMENT 1000 19 | #define MAX_SECTIONS 20 20 | 21 | typedef struct tag_ExifInfo { 22 | char Version [5]; 23 | char CameraMake [32]; 24 | char CameraModel [40]; 25 | char DateTime [20]; 26 | int Height, Width; 27 | int Orientation; 28 | int IsColor; 29 | int Process; 30 | int FlashUsed; 31 | float FocalLength; 32 | float ExposureTime; 33 | float ApertureFNumber; 34 | float Distance; 35 | float CCDWidth; 36 | float ExposureBias; 37 | int Whitebalance; 38 | int MeteringMode; 39 | int ExposureProgram; 40 | int ISOequivalent; 41 | int CompressionLevel; 42 | float FocalplaneXRes; 43 | float FocalplaneYRes; 44 | float FocalplaneUnits; 45 | float Xresolution; 46 | float Yresolution; 47 | float ResolutionUnit; 48 | float Brightness; 49 | char Comments[MAX_COMMENT]; 50 | 51 | unsigned char * ThumbnailPointer; /* Pointer at the thumbnail */ 52 | unsigned ThumbnailSize; /* Size of thumbnail. */ 53 | 54 | bool IsExif; 55 | } EXIFINFO; 56 | 57 | //-------------------------------------------------------------------------- 58 | // JPEG markers consist of one or more 0xFF unsigned chars, followed by a marker 59 | // code unsigned char (which is not an FF). Here are the marker codes of interest 60 | // in this program. (See jdmarker.c for a more complete list.) 61 | //-------------------------------------------------------------------------- 62 | 63 | #define M_SOF0 0xC0 // Start Of Frame N 64 | #define M_SOF1 0xC1 // N indicates which compression process 65 | #define M_SOF2 0xC2 // Only SOF0-SOF2 are now in common use 66 | #define M_SOF3 0xC3 67 | #define M_SOF5 0xC5 // NB: codes C4 and CC are NOT SOF markers 68 | #define M_SOF6 0xC6 69 | #define M_SOF7 0xC7 70 | #define M_SOF9 0xC9 71 | #define M_SOF10 0xCA 72 | #define M_SOF11 0xCB 73 | #define M_SOF13 0xCD 74 | #define M_SOF14 0xCE 75 | #define M_SOF15 0xCF 76 | #define M_SOI 0xD8 // Start Of Image (beginning of datastream) 77 | #define M_EOI 0xD9 // End Of Image (end of datastream) 78 | #define M_SOS 0xDA // Start Of Scan (begins compressed data) 79 | #define M_JFIF 0xE0 // Jfif marker 80 | #define M_EXIF 0xE1 // Exif marker 81 | #define M_COM 0xFE // Comment 82 | 83 | class Cexif 84 | { 85 | typedef struct tag_Section_t 86 | { 87 | unsigned char* Data; 88 | int Type; 89 | unsigned Size; 90 | } Section_t; 91 | 92 | public: 93 | EXIFINFO* m_exifinfo; 94 | char m_szLastError[256]; 95 | Cexif(EXIFINFO* info = NULL); 96 | ~Cexif(); 97 | bool DecodeExif(FILE* hFile); 98 | 99 | protected: 100 | bool process_EXIF(unsigned char * CharBuf, unsigned int length); 101 | void process_COM (const unsigned char * Data, int length); 102 | void process_SOFn (const unsigned char * Data, int marker); 103 | int Get16u(void * Short); 104 | int Get16m(void * Short); 105 | long Get32s(void * Long); 106 | unsigned long Get32u(void * Long); 107 | double ConvertAnyFormat(void * ValuePtr, int Format); 108 | bool ProcessExifDir(unsigned char * DirStart, unsigned char * OffsetBase, unsigned ExifLength, 109 | EXIFINFO * const pInfo, unsigned char ** const LastExifRefdP, int NestingLevel=0); 110 | int ExifImageWidth; 111 | int MotorolaOrder; 112 | Section_t Sections[MAX_SECTIONS]; 113 | int SectionsRead; 114 | bool freeinfo; 115 | }; -------------------------------------------------------------------------------- /Dependencies/Exif/script/Exif.vsprops: -------------------------------------------------------------------------------- 1 | 2 | 7 | 11 | 15 | 16 | -------------------------------------------------------------------------------- /Dependencies/Exif/script/exif.vcproj: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 14 | 15 | 16 | 17 | 18 | 26 | 29 | 32 | 35 | 38 | 41 | 52 | 55 | 58 | 61 | 64 | 67 | 70 | 73 | 76 | 79 | 80 | 89 | 92 | 95 | 98 | 101 | 104 | 115 | 118 | 121 | 124 | 127 | 130 | 133 | 136 | 139 | 142 | 143 | 144 | 145 | 146 | 147 | 152 | 155 | 156 | 159 | 160 | 161 | 166 | 169 | 170 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | -------------------------------------------------------------------------------- /Dependencies/Exif/src/ExifReader.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010 ASTRE Henri (http://www.visual-experiments.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #include "ExifReader.h" 24 | #include "exif.h" 25 | 26 | using namespace Exif; 27 | 28 | Info::Info() 29 | { 30 | isValid = false; 31 | width = 0; 32 | height = 0; 33 | cameraMake = ""; 34 | cameraModel = ""; 35 | focalLength = 0; 36 | CCDWidth = 0; 37 | } 38 | 39 | Info Reader::read(const std::string& jpegPath) 40 | { 41 | Info info; 42 | 43 | FILE* fp = fopen(jpegPath.c_str(), "rb"); 44 | if (fp) 45 | { 46 | Cexif exif; 47 | exif.DecodeExif(fp); 48 | info.width = exif.m_exifinfo->Width; 49 | info.height = exif.m_exifinfo->Height; 50 | info.cameraMake = exif.m_exifinfo->CameraMake; 51 | info.cameraModel = exif.m_exifinfo->CameraModel; 52 | info.focalLength = exif.m_exifinfo->FocalLength; 53 | info.CCDWidth = exif.m_exifinfo->CCDWidth*2.54*10; //inches -> mm 54 | info.isValid = true; 55 | 56 | if (info.cameraMake == "") 57 | info.isValid = false; 58 | 59 | fclose(fp); 60 | } 61 | 62 | return info; 63 | } 64 | -------------------------------------------------------------------------------- /Dependencies/README.txt: -------------------------------------------------------------------------------- 1 | Dependencies needed : 2 | --------------------- 3 | 4 | Ogre3D v1.7.x: 5 | -------------- 6 | 7 | - You can downdload Ogre3D from http://www.ogre3d.org/ 8 | - Install the 32-bit SDK wherether you want then you just need to update the $(SolutionDir)\Ogre.vsprops with your SDK location. -------------------------------------------------------------------------------- /Dependencies/SiftGPU/bin/Win32/DevIL.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/SiftGPU/bin/Win32/DevIL.dll -------------------------------------------------------------------------------- /Dependencies/SiftGPU/bin/Win32/SiftGPU.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/SiftGPU/bin/Win32/SiftGPU.dll -------------------------------------------------------------------------------- /Dependencies/SiftGPU/bin/Win32/glew32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/SiftGPU/bin/Win32/glew32.dll -------------------------------------------------------------------------------- /Dependencies/SiftGPU/bin/x64/DevIL.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/SiftGPU/bin/x64/DevIL.dll -------------------------------------------------------------------------------- /Dependencies/SiftGPU/bin/x64/SiftGPU.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/SiftGPU/bin/x64/SiftGPU.dll -------------------------------------------------------------------------------- /Dependencies/SiftGPU/bin/x64/glew32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/SiftGPU/bin/x64/glew32.dll -------------------------------------------------------------------------------- /Dependencies/SiftGPU/lib/Win32/DevIL.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/SiftGPU/lib/Win32/DevIL.lib -------------------------------------------------------------------------------- /Dependencies/SiftGPU/lib/Win32/SIFTGPU.exp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/SiftGPU/lib/Win32/SIFTGPU.exp -------------------------------------------------------------------------------- /Dependencies/SiftGPU/lib/Win32/SIFTGPU.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/SiftGPU/lib/Win32/SIFTGPU.lib -------------------------------------------------------------------------------- /Dependencies/SiftGPU/lib/Win32/glew32.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/SiftGPU/lib/Win32/glew32.lib -------------------------------------------------------------------------------- /Dependencies/SiftGPU/lib/x64/DevIL.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/SiftGPU/lib/x64/DevIL.lib -------------------------------------------------------------------------------- /Dependencies/SiftGPU/lib/x64/SIFTGPU.exp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/SiftGPU/lib/x64/SIFTGPU.exp -------------------------------------------------------------------------------- /Dependencies/SiftGPU/lib/x64/SIFTGPU.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/SiftGPU/lib/x64/SIFTGPU.lib -------------------------------------------------------------------------------- /Dependencies/SiftGPU/lib/x64/glew32.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/SiftGPU/lib/x64/glew32.lib -------------------------------------------------------------------------------- /Dependencies/SiftGPU/script/SiftGPU.vsprops: -------------------------------------------------------------------------------- 1 | 2 | 7 | 11 | 16 | 20 | 21 | -------------------------------------------------------------------------------- /Dependencies/jpeg/include/JpegGrayImage.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010 ASTRE Henri (http://www.visual-experiments.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #pragma once 24 | 25 | #include 26 | #include 27 | #include 28 | 29 | typedef unsigned char byte; 30 | 31 | class JpegGrayImage 32 | { 33 | int w; 34 | int h; 35 | byte *pixels; 36 | byte **rows; 37 | 38 | void alloc_mem (int wid, int hig); // allocate and init memory (internal) 39 | void init_attributes(); // initialize (internal) 40 | 41 | public: 42 | JpegGrayImage(); 43 | JpegGrayImage(int wid, int hig); 44 | 45 | 46 | virtual ~JpegGrayImage (); 47 | 48 | int width() const { return w; } 49 | int height() const { return h; } 50 | 51 | /// return pointer to array of row pointers in byte**p = (byte**)img; 52 | operator byte ** () { return rows; } 53 | 54 | /// constructor: Read PGM image (depth 255) from file. 55 | /// Reads a PGM file into this object. 56 | /// The value range for the pixels must be 0..255. 57 | /// @param filename name of image file 58 | JpegGrayImage(const std::string& filename); 59 | 60 | /// read only index operator 61 | /// image[i] will return a pointer to the image row i 62 | /// thuss offering access to pixel[y][x] 63 | const byte * operator [] (int i) const; // access row[i] 64 | 65 | /// index operator 66 | /// image[i] will return a pointer to the image row i 67 | /// thuss offering access to pixel[y][x] 68 | byte * operator [] (int i); // access row[i] 69 | 70 | /// Write image to file in PGM format. 71 | /// @param filename name of image file to be written 72 | void writeToFile (const std::string& filename) const; 73 | 74 | /// Resize the image to the given size. 75 | /// The pixels are not initialized. 76 | /// @param wid new desired width 77 | /// @param hid new desired heigth 78 | void resize(int wid, int hig); 79 | }; -------------------------------------------------------------------------------- /Dependencies/jpeg/include/JpegUtils.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010 ASTRE Henri (http://www.visual-experiments.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | #pragma once 24 | 25 | #include 26 | 27 | namespace Jpeg 28 | { 29 | struct Image 30 | { 31 | Image(); 32 | 33 | unsigned char* buffer; 34 | int width; 35 | int height; 36 | int nbComponent; //3: RGB, 1: luminance 37 | 38 | size_t getBufferSize(); 39 | }; 40 | 41 | bool load(const std::string& filename, Image& img); //load jpeg from file (this function allocate the buffer of img struct) 42 | bool write(const std::string& filename, Image& img, int quality = 75); //write jpeg (quality 0: bad, 100: good) 43 | bool writeRaw(const std::string& filename, Image& img); //save image as raw binary 44 | bool getDimension(const std::string& filename, int& width, int& height); //get dimension from header only 45 | } -------------------------------------------------------------------------------- /Dependencies/jpeg/include/jconfig.h: -------------------------------------------------------------------------------- 1 | /* jconfig.vc --- jconfig.h for Microsoft Visual C++ on Windows 95 or NT. */ 2 | /* see jconfig.txt for explanations */ 3 | 4 | #define HAVE_PROTOTYPES 5 | #define HAVE_UNSIGNED_CHAR 6 | #define HAVE_UNSIGNED_SHORT 7 | /* #define void char */ 8 | /* #define const */ 9 | #undef CHAR_IS_UNSIGNED 10 | #define HAVE_STDDEF_H 11 | #define HAVE_STDLIB_H 12 | #undef NEED_BSD_STRINGS 13 | #undef NEED_SYS_TYPES_H 14 | #undef NEED_FAR_POINTERS /* we presume a 32-bit flat memory model */ 15 | #undef NEED_SHORT_EXTERNAL_NAMES 16 | #undef INCOMPLETE_TYPES_BROKEN 17 | 18 | /* Define "boolean" as unsigned char, not int, per Windows custom */ 19 | #ifndef __RPCNDR_H__ /* don't conflict if rpcndr.h already read */ 20 | typedef unsigned char boolean; 21 | #endif 22 | #define HAVE_BOOLEAN /* prevent jmorecfg.h from redefining it */ 23 | 24 | 25 | #ifdef JPEG_INTERNALS 26 | 27 | #undef RIGHT_SHIFT_IS_UNSIGNED 28 | 29 | #endif /* JPEG_INTERNALS */ 30 | 31 | #ifdef JPEG_CJPEG_DJPEG 32 | 33 | #define BMP_SUPPORTED /* BMP image file format */ 34 | #define GIF_SUPPORTED /* GIF image file format */ 35 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 36 | #undef RLE_SUPPORTED /* Utah RLE image file format */ 37 | #define TARGA_SUPPORTED /* Targa image file format */ 38 | 39 | #define TWO_FILE_COMMANDLINE /* optional */ 40 | #define USE_SETMODE /* Microsoft has setmode() */ 41 | #undef NEED_SIGNAL_CATCHER 42 | #undef DONT_USE_B_MODE 43 | #undef PROGRESS_REPORT /* optional */ 44 | 45 | #endif /* JPEG_CJPEG_DJPEG */ 46 | -------------------------------------------------------------------------------- /Dependencies/jpeg/include/jinclude.h: -------------------------------------------------------------------------------- 1 | /* 2 | * jinclude.h 3 | * 4 | * Copyright (C) 1991-1994, Thomas G. Lane. 5 | * This file is part of the Independent JPEG Group's software. 6 | * For conditions of distribution and use, see the accompanying README file. 7 | * 8 | * This file exists to provide a single place to fix any problems with 9 | * including the wrong system include files. (Common problems are taken 10 | * care of by the standard jconfig symbols, but on really weird systems 11 | * you may have to edit this file.) 12 | * 13 | * NOTE: this file is NOT intended to be included by applications using the 14 | * JPEG library. Most applications need only include jpeglib.h. 15 | */ 16 | 17 | 18 | /* Include auto-config file to find out which system include files we need. */ 19 | 20 | #include "jconfig.h" /* auto configuration options */ 21 | #define JCONFIG_INCLUDED /* so that jpeglib.h doesn't do it again */ 22 | 23 | /* 24 | * We need the NULL macro and size_t typedef. 25 | * On an ANSI-conforming system it is sufficient to include . 26 | * Otherwise, we get them from or ; we may have to 27 | * pull in as well. 28 | * Note that the core JPEG library does not require ; 29 | * only the default error handler and data source/destination modules do. 30 | * But we must pull it in because of the references to FILE in jpeglib.h. 31 | * You can remove those references if you want to compile without . 32 | */ 33 | 34 | #ifdef HAVE_STDDEF_H 35 | #include 36 | #endif 37 | 38 | #ifdef HAVE_STDLIB_H 39 | #include 40 | #endif 41 | 42 | #ifdef NEED_SYS_TYPES_H 43 | #include 44 | #endif 45 | 46 | #include 47 | 48 | /* 49 | * We need memory copying and zeroing functions, plus strncpy(). 50 | * ANSI and System V implementations declare these in . 51 | * BSD doesn't have the mem() functions, but it does have bcopy()/bzero(). 52 | * Some systems may declare memset and memcpy in . 53 | * 54 | * NOTE: we assume the size parameters to these functions are of type size_t. 55 | * Change the casts in these macros if not! 56 | */ 57 | 58 | #ifdef NEED_BSD_STRINGS 59 | 60 | #include 61 | #define MEMZERO(target,size) bzero((void *)(target), (size_t)(size)) 62 | #define MEMCOPY(dest,src,size) bcopy((const void *)(src), (void *)(dest), (size_t)(size)) 63 | 64 | #else /* not BSD, assume ANSI/SysV string lib */ 65 | 66 | #include 67 | #define MEMZERO(target,size) memset((void *)(target), 0, (size_t)(size)) 68 | #define MEMCOPY(dest,src,size) memcpy((void *)(dest), (const void *)(src), (size_t)(size)) 69 | 70 | #endif 71 | 72 | /* 73 | * In ANSI C, and indeed any rational implementation, size_t is also the 74 | * type returned by sizeof(). However, it seems there are some irrational 75 | * implementations out there, in which sizeof() returns an int even though 76 | * size_t is defined as long or unsigned long. To ensure consistent results 77 | * we always use this SIZEOF() macro in place of using sizeof() directly. 78 | */ 79 | 80 | #define SIZEOF(object) ((size_t) sizeof(object)) 81 | 82 | /* 83 | * The modules that use fread() and fwrite() always invoke them through 84 | * these macros. On some systems you may need to twiddle the argument casts. 85 | * CAUTION: argument order is different from underlying functions! 86 | */ 87 | 88 | #define JFREAD(file,buf,sizeofbuf) \ 89 | ((size_t) fread((void *) (buf), (size_t) 1, (size_t) (sizeofbuf), (file))) 90 | #define JFWRITE(file,buf,sizeofbuf) \ 91 | ((size_t) fwrite((const void *) (buf), (size_t) 1, (size_t) (sizeofbuf), (file))) 92 | -------------------------------------------------------------------------------- /Dependencies/jpeg/include/jversion.h: -------------------------------------------------------------------------------- 1 | /* 2 | * jversion.h 3 | * 4 | * Copyright (C) 1991-2010, Thomas G. Lane, Guido Vollbeding. 5 | * This file is part of the Independent JPEG Group's software. 6 | * For conditions of distribution and use, see the accompanying README file. 7 | * 8 | * This file contains software version identification. 9 | */ 10 | 11 | 12 | #define JVERSION "8b 16-May-2010" 13 | 14 | #define JCOPYRIGHT "Copyright (C) 2010, Thomas G. Lane, Guido Vollbeding" 15 | -------------------------------------------------------------------------------- /Dependencies/jpeg/script/Jpeg.vsprops: -------------------------------------------------------------------------------- 1 | 2 | 7 | 11 | 15 | 16 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/JpegGrayImage.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2010 ASTRE Henri (http://www.visual-experiments.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | */ 22 | 23 | /** @file SimpleGrayImage.cc 24 | * Image Processing Lecture, WS 07/08, Uni Koblenz. 25 | * Simple image class to read and write PGM Images. 26 | * 27 | * @author Detlev Droege 28 | * @author Frank Schmitt 29 | * @created November 2007 30 | */ 31 | #include 32 | #include 33 | #include 34 | #include 35 | #include 36 | #include 37 | #include 38 | #include 39 | #include 40 | 41 | #include "JpegGrayImage.h" 42 | #include "JpegUtils.h" 43 | 44 | void JpegGrayImage::alloc_mem(int wid, int hig) 45 | { 46 | if (pixels) delete[] pixels; //delete old pixel data 47 | if (rows) delete[] rows; //delete old row pointers 48 | pixels = new byte[wid * hig]; // get memory for pixels 49 | rows = new byte*[h]; // get memory for row pointers 50 | byte *pp = pixels; // let pp point to 1. pixel row 51 | for (int i = 0; i < h; i++) { // for every row i 52 | rows[i] = pp; // make rows[i] point to it 53 | pp += w; // advance pp to next row 54 | } 55 | } 56 | 57 | void JpegGrayImage::init_attributes() 58 | { 59 | w = h = 0; 60 | pixels = NULL; 61 | rows = NULL; 62 | } 63 | 64 | JpegGrayImage::JpegGrayImage() 65 | { 66 | init_attributes(); 67 | } 68 | 69 | JpegGrayImage::~JpegGrayImage() 70 | { 71 | delete [] pixels; 72 | delete [] rows; 73 | pixels = NULL; 74 | rows = NULL; 75 | } 76 | 77 | JpegGrayImage::JpegGrayImage(int wid, int hig) 78 | { 79 | init_attributes(); 80 | resize(wid, hig); 81 | } 82 | 83 | void JpegGrayImage::resize(int wid, int hig) 84 | { 85 | assert ((wid > 0) && (hig > 0)); 86 | w = wid; 87 | h = hig; 88 | alloc_mem(wid, hig); 89 | } 90 | 91 | 92 | JpegGrayImage::JpegGrayImage(const std::string& filename) 93 | { 94 | init_attributes(); 95 | 96 | Jpeg::Image img; 97 | Jpeg::load(filename, img); 98 | w = img.width; 99 | h = img.height; 100 | 101 | 102 | alloc_mem(w, h); 103 | 104 | unsigned int widthInBytes = w*3; 105 | for (int i=0; i= 0) && (i < h))){ 122 | std::cerr << "oops: access to row " << i << ", but " << h-1 << " is maximum\n" << std::endl; 123 | } 124 | assert ((i >= 0) && (i < h)); 125 | return rows[i]; 126 | } 127 | 128 | byte * JpegGrayImage::operator [] (int i) 129 | { 130 | if (! ((i >= 0) && (i < h))){ 131 | std::cerr << "oops: access to row " << i << ", but " << h-1 << " is maximum\n" << std::endl; 132 | } 133 | assert ((i >= 0) && (i < h)); 134 | return rows[i]; 135 | } 136 | 137 | void JpegGrayImage::writeToFile(const std::string& filename) const 138 | { 139 | Jpeg::Image img; 140 | img.width = w; 141 | img.height = h; 142 | img.nbComponent = 1; 143 | img.buffer = pixels; 144 | Jpeg::writeRaw(filename, img); 145 | } 146 | 147 | 148 | 149 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/jcinit.c: -------------------------------------------------------------------------------- 1 | /* 2 | * jcinit.c 3 | * 4 | * Copyright (C) 1991-1997, Thomas G. Lane. 5 | * This file is part of the Independent JPEG Group's software. 6 | * For conditions of distribution and use, see the accompanying README file. 7 | * 8 | * This file contains initialization logic for the JPEG compressor. 9 | * This routine is in charge of selecting the modules to be executed and 10 | * making an initialization call to each one. 11 | * 12 | * Logically, this code belongs in jcmaster.c. It's split out because 13 | * linking this routine implies linking the entire compression library. 14 | * For a transcoding-only application, we want to be able to use jcmaster.c 15 | * without linking in the whole library. 16 | */ 17 | 18 | #define JPEG_INTERNALS 19 | #include "jinclude.h" 20 | #include "jpeglib.h" 21 | 22 | 23 | /* 24 | * Master selection of compression modules. 25 | * This is done once at the start of processing an image. We determine 26 | * which modules will be used and give them appropriate initialization calls. 27 | */ 28 | 29 | GLOBAL(void) 30 | jinit_compress_master (j_compress_ptr cinfo) 31 | { 32 | /* Initialize master control (includes parameter checking/processing) */ 33 | jinit_c_master_control(cinfo, FALSE /* full compression */); 34 | 35 | /* Preprocessing */ 36 | if (! cinfo->raw_data_in) { 37 | jinit_color_converter(cinfo); 38 | jinit_downsampler(cinfo); 39 | jinit_c_prep_controller(cinfo, FALSE /* never need full buffer here */); 40 | } 41 | /* Forward DCT */ 42 | jinit_forward_dct(cinfo); 43 | /* Entropy encoding: either Huffman or arithmetic coding. */ 44 | if (cinfo->arith_code) 45 | jinit_arith_encoder(cinfo); 46 | else { 47 | jinit_huff_encoder(cinfo); 48 | } 49 | 50 | /* Need a full-image coefficient buffer in any multi-pass mode. */ 51 | jinit_c_coef_controller(cinfo, 52 | (boolean) (cinfo->num_scans > 1 || cinfo->optimize_coding)); 53 | jinit_c_main_controller(cinfo, FALSE /* never need full buffer here */); 54 | 55 | jinit_marker_writer(cinfo); 56 | 57 | /* We can now tell the memory manager to allocate virtual arrays. */ 58 | (*cinfo->mem->realize_virt_arrays) ((j_common_ptr) cinfo); 59 | 60 | /* Write the datastream header (SOI) immediately. 61 | * Frame and scan headers are postponed till later. 62 | * This lets application insert special markers after the SOI. 63 | */ 64 | (*cinfo->marker->write_file_header) (cinfo); 65 | } 66 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/jcomapi.c: -------------------------------------------------------------------------------- 1 | /* 2 | * jcomapi.c 3 | * 4 | * Copyright (C) 1994-1997, Thomas G. Lane. 5 | * This file is part of the Independent JPEG Group's software. 6 | * For conditions of distribution and use, see the accompanying README file. 7 | * 8 | * This file contains application interface routines that are used for both 9 | * compression and decompression. 10 | */ 11 | 12 | #define JPEG_INTERNALS 13 | #include "jinclude.h" 14 | #include "jpeglib.h" 15 | 16 | 17 | /* 18 | * Abort processing of a JPEG compression or decompression operation, 19 | * but don't destroy the object itself. 20 | * 21 | * For this, we merely clean up all the nonpermanent memory pools. 22 | * Note that temp files (virtual arrays) are not allowed to belong to 23 | * the permanent pool, so we will be able to close all temp files here. 24 | * Closing a data source or destination, if necessary, is the application's 25 | * responsibility. 26 | */ 27 | 28 | GLOBAL(void) 29 | jpeg_abort (j_common_ptr cinfo) 30 | { 31 | int pool; 32 | 33 | /* Do nothing if called on a not-initialized or destroyed JPEG object. */ 34 | if (cinfo->mem == NULL) 35 | return; 36 | 37 | /* Releasing pools in reverse order might help avoid fragmentation 38 | * with some (brain-damaged) malloc libraries. 39 | */ 40 | for (pool = JPOOL_NUMPOOLS-1; pool > JPOOL_PERMANENT; pool--) { 41 | (*cinfo->mem->free_pool) (cinfo, pool); 42 | } 43 | 44 | /* Reset overall state for possible reuse of object */ 45 | if (cinfo->is_decompressor) { 46 | cinfo->global_state = DSTATE_START; 47 | /* Try to keep application from accessing now-deleted marker list. 48 | * A bit kludgy to do it here, but this is the most central place. 49 | */ 50 | ((j_decompress_ptr) cinfo)->marker_list = NULL; 51 | } else { 52 | cinfo->global_state = CSTATE_START; 53 | } 54 | } 55 | 56 | 57 | /* 58 | * Destruction of a JPEG object. 59 | * 60 | * Everything gets deallocated except the master jpeg_compress_struct itself 61 | * and the error manager struct. Both of these are supplied by the application 62 | * and must be freed, if necessary, by the application. (Often they are on 63 | * the stack and so don't need to be freed anyway.) 64 | * Closing a data source or destination, if necessary, is the application's 65 | * responsibility. 66 | */ 67 | 68 | GLOBAL(void) 69 | jpeg_destroy (j_common_ptr cinfo) 70 | { 71 | /* We need only tell the memory manager to release everything. */ 72 | /* NB: mem pointer is NULL if memory mgr failed to initialize. */ 73 | if (cinfo->mem != NULL) 74 | (*cinfo->mem->self_destruct) (cinfo); 75 | cinfo->mem = NULL; /* be safe if jpeg_destroy is called twice */ 76 | cinfo->global_state = 0; /* mark it destroyed */ 77 | } 78 | 79 | 80 | /* 81 | * Convenience routines for allocating quantization and Huffman tables. 82 | * (Would jutils.c be a more reasonable place to put these?) 83 | */ 84 | 85 | GLOBAL(JQUANT_TBL *) 86 | jpeg_alloc_quant_table (j_common_ptr cinfo) 87 | { 88 | JQUANT_TBL *tbl; 89 | 90 | tbl = (JQUANT_TBL *) 91 | (*cinfo->mem->alloc_small) (cinfo, JPOOL_PERMANENT, SIZEOF(JQUANT_TBL)); 92 | tbl->sent_table = FALSE; /* make sure this is false in any new table */ 93 | return tbl; 94 | } 95 | 96 | 97 | GLOBAL(JHUFF_TBL *) 98 | jpeg_alloc_huff_table (j_common_ptr cinfo) 99 | { 100 | JHUFF_TBL *tbl; 101 | 102 | tbl = (JHUFF_TBL *) 103 | (*cinfo->mem->alloc_small) (cinfo, JPOOL_PERMANENT, SIZEOF(JHUFF_TBL)); 104 | tbl->sent_table = FALSE; /* make sure this is false in any new table */ 105 | return tbl; 106 | } 107 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/jmemnobs.c: -------------------------------------------------------------------------------- 1 | /* 2 | * jmemnobs.c 3 | * 4 | * Copyright (C) 1992-1996, Thomas G. Lane. 5 | * This file is part of the Independent JPEG Group's software. 6 | * For conditions of distribution and use, see the accompanying README file. 7 | * 8 | * This file provides a really simple implementation of the system- 9 | * dependent portion of the JPEG memory manager. This implementation 10 | * assumes that no backing-store files are needed: all required space 11 | * can be obtained from malloc(). 12 | * This is very portable in the sense that it'll compile on almost anything, 13 | * but you'd better have lots of main memory (or virtual memory) if you want 14 | * to process big images. 15 | * Note that the max_memory_to_use option is ignored by this implementation. 16 | */ 17 | 18 | #define JPEG_INTERNALS 19 | #include "jinclude.h" 20 | #include "jpeglib.h" 21 | #include "jmemsys.h" /* import the system-dependent declarations */ 22 | 23 | #ifndef HAVE_STDLIB_H /* should declare malloc(),free() */ 24 | extern void * malloc JPP((size_t size)); 25 | extern void free JPP((void *ptr)); 26 | #endif 27 | 28 | 29 | /* 30 | * Memory allocation and freeing are controlled by the regular library 31 | * routines malloc() and free(). 32 | */ 33 | 34 | GLOBAL(void *) 35 | jpeg_get_small (j_common_ptr cinfo, size_t sizeofobject) 36 | { 37 | return (void *) malloc(sizeofobject); 38 | } 39 | 40 | GLOBAL(void) 41 | jpeg_free_small (j_common_ptr cinfo, void * object, size_t sizeofobject) 42 | { 43 | free(object); 44 | } 45 | 46 | 47 | /* 48 | * "Large" objects are treated the same as "small" ones. 49 | * NB: although we include FAR keywords in the routine declarations, 50 | * this file won't actually work in 80x86 small/medium model; at least, 51 | * you probably won't be able to process useful-size images in only 64KB. 52 | */ 53 | 54 | GLOBAL(void FAR *) 55 | jpeg_get_large (j_common_ptr cinfo, size_t sizeofobject) 56 | { 57 | return (void FAR *) malloc(sizeofobject); 58 | } 59 | 60 | GLOBAL(void) 61 | jpeg_free_large (j_common_ptr cinfo, void FAR * object, size_t sizeofobject) 62 | { 63 | free(object); 64 | } 65 | 66 | 67 | /* 68 | * This routine computes the total memory space available for allocation. 69 | * Here we always say, "we got all you want bud!" 70 | */ 71 | 72 | GLOBAL(long) 73 | jpeg_mem_available (j_common_ptr cinfo, long min_bytes_needed, 74 | long max_bytes_needed, long already_allocated) 75 | { 76 | return max_bytes_needed; 77 | } 78 | 79 | 80 | /* 81 | * Backing store (temporary file) management. 82 | * Since jpeg_mem_available always promised the moon, 83 | * this should never be called and we can just error out. 84 | */ 85 | 86 | GLOBAL(void) 87 | jpeg_open_backing_store (j_common_ptr cinfo, backing_store_ptr info, 88 | long total_bytes_needed) 89 | { 90 | ERREXIT(cinfo, JERR_NO_BACKING_STORE); 91 | } 92 | 93 | 94 | /* 95 | * These routines take care of any system-dependent initialization and 96 | * cleanup required. Here, there isn't any. 97 | */ 98 | 99 | GLOBAL(long) 100 | jpeg_mem_init (j_common_ptr cinfo) 101 | { 102 | return 0; /* just set max_memory_to_use to 0 */ 103 | } 104 | 105 | GLOBAL(void) 106 | jpeg_mem_term (j_common_ptr cinfo) 107 | { 108 | /* no work */ 109 | } 110 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/ansi2knr.1: -------------------------------------------------------------------------------- 1 | .TH ANSI2KNR 1 "19 Jan 1996" 2 | .SH NAME 3 | ansi2knr \- convert ANSI C to Kernighan & Ritchie C 4 | .SH SYNOPSIS 5 | .I ansi2knr 6 | [--varargs] input_file [output_file] 7 | .SH DESCRIPTION 8 | If no output_file is supplied, output goes to stdout. 9 | .br 10 | There are no error messages. 11 | .sp 12 | .I ansi2knr 13 | recognizes function definitions by seeing a non-keyword identifier at the left 14 | margin, followed by a left parenthesis, with a right parenthesis as the last 15 | character on the line, and with a left brace as the first token on the 16 | following line (ignoring possible intervening comments). It will recognize a 17 | multi-line header provided that no intervening line ends with a left or right 18 | brace or a semicolon. These algorithms ignore whitespace and comments, except 19 | that the function name must be the first thing on the line. 20 | .sp 21 | The following constructs will confuse it: 22 | .br 23 | - Any other construct that starts at the left margin and follows the 24 | above syntax (such as a macro or function call). 25 | .br 26 | - Some macros that tinker with the syntax of the function header. 27 | .sp 28 | The --varargs switch is obsolete, and is recognized only for 29 | backwards compatibility. The present version of 30 | .I ansi2knr 31 | will always attempt to convert a ... argument to va_alist and va_dcl. 32 | .SH AUTHOR 33 | L. Peter Deutsch wrote the original ansi2knr and 34 | continues to maintain the current version; most of the code in the current 35 | version is his work. ansi2knr also includes contributions by Francois 36 | Pinard and Jim Avera . 37 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/jconfig.bcc: -------------------------------------------------------------------------------- 1 | /* jconfig.bcc --- jconfig.h for Borland C (Turbo C) on MS-DOS or OS/2. */ 2 | /* see jconfig.txt for explanations */ 3 | 4 | #define HAVE_PROTOTYPES 5 | #define HAVE_UNSIGNED_CHAR 6 | #define HAVE_UNSIGNED_SHORT 7 | /* #define void char */ 8 | /* #define const */ 9 | #undef CHAR_IS_UNSIGNED 10 | #define HAVE_STDDEF_H 11 | #define HAVE_STDLIB_H 12 | #undef NEED_BSD_STRINGS 13 | #undef NEED_SYS_TYPES_H 14 | #ifdef __MSDOS__ 15 | #define NEED_FAR_POINTERS /* for small or medium memory model */ 16 | #endif 17 | #undef NEED_SHORT_EXTERNAL_NAMES 18 | #undef INCOMPLETE_TYPES_BROKEN /* this assumes you have -w-stu in CFLAGS */ 19 | 20 | #ifdef JPEG_INTERNALS 21 | 22 | #undef RIGHT_SHIFT_IS_UNSIGNED 23 | 24 | #ifdef __MSDOS__ 25 | #define USE_MSDOS_MEMMGR /* Define this if you use jmemdos.c */ 26 | #define MAX_ALLOC_CHUNK 65520L /* Maximum request to malloc() */ 27 | #define USE_FMEM /* Borland has _fmemcpy() and _fmemset() */ 28 | #endif 29 | 30 | #endif /* JPEG_INTERNALS */ 31 | 32 | #ifdef JPEG_CJPEG_DJPEG 33 | 34 | #define BMP_SUPPORTED /* BMP image file format */ 35 | #define GIF_SUPPORTED /* GIF image file format */ 36 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 37 | #undef RLE_SUPPORTED /* Utah RLE image file format */ 38 | #define TARGA_SUPPORTED /* Targa image file format */ 39 | 40 | #define TWO_FILE_COMMANDLINE 41 | #define USE_SETMODE /* Borland has setmode() */ 42 | #ifdef __MSDOS__ 43 | #define NEED_SIGNAL_CATCHER /* Define this if you use jmemdos.c */ 44 | #endif 45 | #undef DONT_USE_B_MODE 46 | #undef PROGRESS_REPORT /* optional */ 47 | 48 | #endif /* JPEG_CJPEG_DJPEG */ 49 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/jconfig.cfg: -------------------------------------------------------------------------------- 1 | /* jconfig.cfg --- source file edited by configure script */ 2 | /* see jconfig.txt for explanations */ 3 | 4 | #undef HAVE_PROTOTYPES 5 | #undef HAVE_UNSIGNED_CHAR 6 | #undef HAVE_UNSIGNED_SHORT 7 | #undef void 8 | #undef const 9 | #undef CHAR_IS_UNSIGNED 10 | #undef HAVE_STDDEF_H 11 | #undef HAVE_STDLIB_H 12 | #undef HAVE_LOCALE_H 13 | #undef NEED_BSD_STRINGS 14 | #undef NEED_SYS_TYPES_H 15 | #undef NEED_FAR_POINTERS 16 | #undef NEED_SHORT_EXTERNAL_NAMES 17 | /* Define this if you get warnings about undefined structures. */ 18 | #undef INCOMPLETE_TYPES_BROKEN 19 | 20 | /* Define "boolean" as unsigned char, not int, on Windows systems. */ 21 | #ifdef _WIN32 22 | #ifndef __RPCNDR_H__ /* don't conflict if rpcndr.h already read */ 23 | typedef unsigned char boolean; 24 | #endif 25 | #define HAVE_BOOLEAN /* prevent jmorecfg.h from redefining it */ 26 | #endif 27 | 28 | #ifdef JPEG_INTERNALS 29 | 30 | #undef RIGHT_SHIFT_IS_UNSIGNED 31 | #undef INLINE 32 | /* These are for configuring the JPEG memory manager. */ 33 | #undef DEFAULT_MAX_MEM 34 | #undef NO_MKTEMP 35 | 36 | #endif /* JPEG_INTERNALS */ 37 | 38 | #ifdef JPEG_CJPEG_DJPEG 39 | 40 | #define BMP_SUPPORTED /* BMP image file format */ 41 | #define GIF_SUPPORTED /* GIF image file format */ 42 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 43 | #undef RLE_SUPPORTED /* Utah RLE image file format */ 44 | #define TARGA_SUPPORTED /* Targa image file format */ 45 | 46 | #undef TWO_FILE_COMMANDLINE 47 | #undef NEED_SIGNAL_CATCHER 48 | #undef DONT_USE_B_MODE 49 | 50 | /* Define this if you want percent-done progress reports from cjpeg/djpeg. */ 51 | #undef PROGRESS_REPORT 52 | 53 | #endif /* JPEG_CJPEG_DJPEG */ 54 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/jconfig.dj: -------------------------------------------------------------------------------- 1 | /* jconfig.dj --- jconfig.h for DJGPP (Delorie's GNU C port) on MS-DOS. */ 2 | /* see jconfig.txt for explanations */ 3 | 4 | #define HAVE_PROTOTYPES 5 | #define HAVE_UNSIGNED_CHAR 6 | #define HAVE_UNSIGNED_SHORT 7 | /* #define void char */ 8 | /* #define const */ 9 | #undef CHAR_IS_UNSIGNED 10 | #define HAVE_STDDEF_H 11 | #define HAVE_STDLIB_H 12 | #undef NEED_BSD_STRINGS 13 | #undef NEED_SYS_TYPES_H 14 | #undef NEED_FAR_POINTERS /* DJGPP uses flat 32-bit addressing */ 15 | #undef NEED_SHORT_EXTERNAL_NAMES 16 | #undef INCOMPLETE_TYPES_BROKEN 17 | 18 | #ifdef JPEG_INTERNALS 19 | 20 | #undef RIGHT_SHIFT_IS_UNSIGNED 21 | 22 | #endif /* JPEG_INTERNALS */ 23 | 24 | #ifdef JPEG_CJPEG_DJPEG 25 | 26 | #define BMP_SUPPORTED /* BMP image file format */ 27 | #define GIF_SUPPORTED /* GIF image file format */ 28 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 29 | #undef RLE_SUPPORTED /* Utah RLE image file format */ 30 | #define TARGA_SUPPORTED /* Targa image file format */ 31 | 32 | #undef TWO_FILE_COMMANDLINE /* optional */ 33 | #define USE_SETMODE /* Needed to make one-file style work in DJGPP */ 34 | #undef NEED_SIGNAL_CATCHER /* Define this if you use jmemname.c */ 35 | #undef DONT_USE_B_MODE 36 | #undef PROGRESS_REPORT /* optional */ 37 | 38 | #endif /* JPEG_CJPEG_DJPEG */ 39 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/jconfig.mac: -------------------------------------------------------------------------------- 1 | /* jconfig.mac --- jconfig.h for CodeWarrior on Apple Macintosh */ 2 | /* see jconfig.txt for explanations */ 3 | 4 | #define HAVE_PROTOTYPES 5 | #define HAVE_UNSIGNED_CHAR 6 | #define HAVE_UNSIGNED_SHORT 7 | /* #define void char */ 8 | /* #define const */ 9 | #undef CHAR_IS_UNSIGNED 10 | #define HAVE_STDDEF_H 11 | #define HAVE_STDLIB_H 12 | #undef NEED_BSD_STRINGS 13 | #undef NEED_SYS_TYPES_H 14 | #undef NEED_FAR_POINTERS 15 | #undef NEED_SHORT_EXTERNAL_NAMES 16 | #undef INCOMPLETE_TYPES_BROKEN 17 | 18 | #ifdef JPEG_INTERNALS 19 | 20 | #undef RIGHT_SHIFT_IS_UNSIGNED 21 | 22 | #define USE_MAC_MEMMGR /* Define this if you use jmemmac.c */ 23 | 24 | #define ALIGN_TYPE long /* Needed for 680x0 Macs */ 25 | 26 | #endif /* JPEG_INTERNALS */ 27 | 28 | #ifdef JPEG_CJPEG_DJPEG 29 | 30 | #define BMP_SUPPORTED /* BMP image file format */ 31 | #define GIF_SUPPORTED /* GIF image file format */ 32 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 33 | #undef RLE_SUPPORTED /* Utah RLE image file format */ 34 | #define TARGA_SUPPORTED /* Targa image file format */ 35 | 36 | #define USE_CCOMMAND /* Command line reader for Macintosh */ 37 | #define TWO_FILE_COMMANDLINE /* Binary I/O thru stdin/stdout doesn't work */ 38 | 39 | #undef NEED_SIGNAL_CATCHER 40 | #undef DONT_USE_B_MODE 41 | #undef PROGRESS_REPORT /* optional */ 42 | 43 | #endif /* JPEG_CJPEG_DJPEG */ 44 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/jconfig.manx: -------------------------------------------------------------------------------- 1 | /* jconfig.manx --- jconfig.h for Amiga systems using Manx Aztec C ver 5.x. */ 2 | /* see jconfig.txt for explanations */ 3 | 4 | #define HAVE_PROTOTYPES 5 | #define HAVE_UNSIGNED_CHAR 6 | #define HAVE_UNSIGNED_SHORT 7 | /* #define void char */ 8 | /* #define const */ 9 | #undef CHAR_IS_UNSIGNED 10 | #define HAVE_STDDEF_H 11 | #define HAVE_STDLIB_H 12 | #undef NEED_BSD_STRINGS 13 | #undef NEED_SYS_TYPES_H 14 | #undef NEED_FAR_POINTERS 15 | #undef NEED_SHORT_EXTERNAL_NAMES 16 | #undef INCOMPLETE_TYPES_BROKEN 17 | 18 | #ifdef JPEG_INTERNALS 19 | 20 | #undef RIGHT_SHIFT_IS_UNSIGNED 21 | 22 | #define TEMP_DIRECTORY "JPEGTMP:" /* recommended setting for Amiga */ 23 | 24 | #define SHORTxSHORT_32 /* produces better DCT code with Aztec C */ 25 | 26 | #endif /* JPEG_INTERNALS */ 27 | 28 | #ifdef JPEG_CJPEG_DJPEG 29 | 30 | #define BMP_SUPPORTED /* BMP image file format */ 31 | #define GIF_SUPPORTED /* GIF image file format */ 32 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 33 | #undef RLE_SUPPORTED /* Utah RLE image file format */ 34 | #define TARGA_SUPPORTED /* Targa image file format */ 35 | 36 | #define TWO_FILE_COMMANDLINE 37 | #define NEED_SIGNAL_CATCHER 38 | #undef DONT_USE_B_MODE 39 | #undef PROGRESS_REPORT /* optional */ 40 | 41 | #define signal_catcher _abort /* hack for Aztec C naming requirements */ 42 | 43 | #endif /* JPEG_CJPEG_DJPEG */ 44 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/jconfig.mc6: -------------------------------------------------------------------------------- 1 | /* jconfig.mc6 --- jconfig.h for Microsoft C on MS-DOS, version 6.00A & up. */ 2 | /* see jconfig.txt for explanations */ 3 | 4 | #define HAVE_PROTOTYPES 5 | #define HAVE_UNSIGNED_CHAR 6 | #define HAVE_UNSIGNED_SHORT 7 | /* #define void char */ 8 | /* #define const */ 9 | #undef CHAR_IS_UNSIGNED 10 | #define HAVE_STDDEF_H 11 | #define HAVE_STDLIB_H 12 | #undef NEED_BSD_STRINGS 13 | #undef NEED_SYS_TYPES_H 14 | #define NEED_FAR_POINTERS /* for small or medium memory model */ 15 | #undef NEED_SHORT_EXTERNAL_NAMES 16 | #undef INCOMPLETE_TYPES_BROKEN 17 | 18 | #ifdef JPEG_INTERNALS 19 | 20 | #undef RIGHT_SHIFT_IS_UNSIGNED 21 | 22 | #define USE_MSDOS_MEMMGR /* Define this if you use jmemdos.c */ 23 | 24 | #define MAX_ALLOC_CHUNK 65520L /* Maximum request to malloc() */ 25 | 26 | #define USE_FMEM /* Microsoft has _fmemcpy() and _fmemset() */ 27 | 28 | #define NEED_FHEAPMIN /* far heap management routines are broken */ 29 | 30 | #define SHORTxLCONST_32 /* enable compiler-specific DCT optimization */ 31 | /* Note: the above define is known to improve the code with Microsoft C 6.00A. 32 | * I do not know whether it is good for later compiler versions. 33 | * Please report any info on this point to jpeg-info@uc.ag. 34 | */ 35 | 36 | #endif /* JPEG_INTERNALS */ 37 | 38 | #ifdef JPEG_CJPEG_DJPEG 39 | 40 | #define BMP_SUPPORTED /* BMP image file format */ 41 | #define GIF_SUPPORTED /* GIF image file format */ 42 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 43 | #undef RLE_SUPPORTED /* Utah RLE image file format */ 44 | #define TARGA_SUPPORTED /* Targa image file format */ 45 | 46 | #define TWO_FILE_COMMANDLINE 47 | #define USE_SETMODE /* Microsoft has setmode() */ 48 | #define NEED_SIGNAL_CATCHER /* Define this if you use jmemdos.c */ 49 | #undef DONT_USE_B_MODE 50 | #undef PROGRESS_REPORT /* optional */ 51 | 52 | #endif /* JPEG_CJPEG_DJPEG */ 53 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/jconfig.sas: -------------------------------------------------------------------------------- 1 | /* jconfig.sas --- jconfig.h for Amiga systems using SAS C 6.0 and up. */ 2 | /* see jconfig.txt for explanations */ 3 | 4 | #define HAVE_PROTOTYPES 5 | #define HAVE_UNSIGNED_CHAR 6 | #define HAVE_UNSIGNED_SHORT 7 | /* #define void char */ 8 | /* #define const */ 9 | #undef CHAR_IS_UNSIGNED 10 | #define HAVE_STDDEF_H 11 | #define HAVE_STDLIB_H 12 | #undef NEED_BSD_STRINGS 13 | #undef NEED_SYS_TYPES_H 14 | #undef NEED_FAR_POINTERS 15 | #undef NEED_SHORT_EXTERNAL_NAMES 16 | #undef INCOMPLETE_TYPES_BROKEN 17 | 18 | #ifdef JPEG_INTERNALS 19 | 20 | #undef RIGHT_SHIFT_IS_UNSIGNED 21 | 22 | #define TEMP_DIRECTORY "JPEGTMP:" /* recommended setting for Amiga */ 23 | 24 | #define NO_MKTEMP /* SAS C doesn't have mktemp() */ 25 | 26 | #define SHORTxSHORT_32 /* produces better DCT code with SAS C */ 27 | 28 | #endif /* JPEG_INTERNALS */ 29 | 30 | #ifdef JPEG_CJPEG_DJPEG 31 | 32 | #define BMP_SUPPORTED /* BMP image file format */ 33 | #define GIF_SUPPORTED /* GIF image file format */ 34 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 35 | #undef RLE_SUPPORTED /* Utah RLE image file format */ 36 | #define TARGA_SUPPORTED /* Targa image file format */ 37 | 38 | #define TWO_FILE_COMMANDLINE 39 | #define NEED_SIGNAL_CATCHER 40 | #undef DONT_USE_B_MODE 41 | #undef PROGRESS_REPORT /* optional */ 42 | 43 | #endif /* JPEG_CJPEG_DJPEG */ 44 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/jconfig.st: -------------------------------------------------------------------------------- 1 | /* jconfig.st --- jconfig.h for Atari ST/STE/TT using Pure C or Turbo C. */ 2 | /* see jconfig.txt for explanations */ 3 | 4 | #define HAVE_PROTOTYPES 5 | #define HAVE_UNSIGNED_CHAR 6 | #define HAVE_UNSIGNED_SHORT 7 | /* #define void char */ 8 | /* #define const */ 9 | #undef CHAR_IS_UNSIGNED 10 | #define HAVE_STDDEF_H 11 | #define HAVE_STDLIB_H 12 | #undef NEED_BSD_STRINGS 13 | #undef NEED_SYS_TYPES_H 14 | #undef NEED_FAR_POINTERS 15 | #undef NEED_SHORT_EXTERNAL_NAMES 16 | #define INCOMPLETE_TYPES_BROKEN /* suppress undefined-structure warnings */ 17 | 18 | #ifdef JPEG_INTERNALS 19 | 20 | #undef RIGHT_SHIFT_IS_UNSIGNED 21 | 22 | #define ALIGN_TYPE long /* apparently double is a weird size? */ 23 | 24 | #endif /* JPEG_INTERNALS */ 25 | 26 | #ifdef JPEG_CJPEG_DJPEG 27 | 28 | #define BMP_SUPPORTED /* BMP image file format */ 29 | #define GIF_SUPPORTED /* GIF image file format */ 30 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 31 | #undef RLE_SUPPORTED /* Utah RLE image file format */ 32 | #define TARGA_SUPPORTED /* Targa image file format */ 33 | 34 | #define TWO_FILE_COMMANDLINE /* optional -- undef if you like Unix style */ 35 | /* Note: if you undef TWO_FILE_COMMANDLINE, you may need to define 36 | * USE_SETMODE. Some Atari compilers require it, some do not. 37 | */ 38 | #define NEED_SIGNAL_CATCHER /* needed if you use jmemname.c */ 39 | #undef DONT_USE_B_MODE 40 | #undef PROGRESS_REPORT /* optional */ 41 | 42 | #endif /* JPEG_CJPEG_DJPEG */ 43 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/jconfig.vc: -------------------------------------------------------------------------------- 1 | /* jconfig.vc --- jconfig.h for Microsoft Visual C++ on Windows 95 or NT. */ 2 | /* see jconfig.txt for explanations */ 3 | 4 | #define HAVE_PROTOTYPES 5 | #define HAVE_UNSIGNED_CHAR 6 | #define HAVE_UNSIGNED_SHORT 7 | /* #define void char */ 8 | /* #define const */ 9 | #undef CHAR_IS_UNSIGNED 10 | #define HAVE_STDDEF_H 11 | #define HAVE_STDLIB_H 12 | #undef NEED_BSD_STRINGS 13 | #undef NEED_SYS_TYPES_H 14 | #undef NEED_FAR_POINTERS /* we presume a 32-bit flat memory model */ 15 | #undef NEED_SHORT_EXTERNAL_NAMES 16 | #undef INCOMPLETE_TYPES_BROKEN 17 | 18 | /* Define "boolean" as unsigned char, not int, per Windows custom */ 19 | #ifndef __RPCNDR_H__ /* don't conflict if rpcndr.h already read */ 20 | typedef unsigned char boolean; 21 | #endif 22 | #define HAVE_BOOLEAN /* prevent jmorecfg.h from redefining it */ 23 | 24 | 25 | #ifdef JPEG_INTERNALS 26 | 27 | #undef RIGHT_SHIFT_IS_UNSIGNED 28 | 29 | #endif /* JPEG_INTERNALS */ 30 | 31 | #ifdef JPEG_CJPEG_DJPEG 32 | 33 | #define BMP_SUPPORTED /* BMP image file format */ 34 | #define GIF_SUPPORTED /* GIF image file format */ 35 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 36 | #undef RLE_SUPPORTED /* Utah RLE image file format */ 37 | #define TARGA_SUPPORTED /* Targa image file format */ 38 | 39 | #define TWO_FILE_COMMANDLINE /* optional */ 40 | #define USE_SETMODE /* Microsoft has setmode() */ 41 | #undef NEED_SIGNAL_CATCHER 42 | #undef DONT_USE_B_MODE 43 | #undef PROGRESS_REPORT /* optional */ 44 | 45 | #endif /* JPEG_CJPEG_DJPEG */ 46 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/jconfig.vms: -------------------------------------------------------------------------------- 1 | /* jconfig.vms --- jconfig.h for use on Digital VMS. */ 2 | /* see jconfig.txt for explanations */ 3 | 4 | #define HAVE_PROTOTYPES 5 | #define HAVE_UNSIGNED_CHAR 6 | #define HAVE_UNSIGNED_SHORT 7 | /* #define void char */ 8 | /* #define const */ 9 | #undef CHAR_IS_UNSIGNED 10 | #define HAVE_STDDEF_H 11 | #define HAVE_STDLIB_H 12 | #undef NEED_BSD_STRINGS 13 | #undef NEED_SYS_TYPES_H 14 | #undef NEED_FAR_POINTERS 15 | #undef NEED_SHORT_EXTERNAL_NAMES 16 | #undef INCOMPLETE_TYPES_BROKEN 17 | 18 | #ifdef JPEG_INTERNALS 19 | 20 | #undef RIGHT_SHIFT_IS_UNSIGNED 21 | 22 | #endif /* JPEG_INTERNALS */ 23 | 24 | #ifdef JPEG_CJPEG_DJPEG 25 | 26 | #define BMP_SUPPORTED /* BMP image file format */ 27 | #define GIF_SUPPORTED /* GIF image file format */ 28 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 29 | #undef RLE_SUPPORTED /* Utah RLE image file format */ 30 | #define TARGA_SUPPORTED /* Targa image file format */ 31 | 32 | #define TWO_FILE_COMMANDLINE /* Needed on VMS */ 33 | #undef NEED_SIGNAL_CATCHER 34 | #undef DONT_USE_B_MODE 35 | #undef PROGRESS_REPORT /* optional */ 36 | 37 | #endif /* JPEG_CJPEG_DJPEG */ 38 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/jconfig.wat: -------------------------------------------------------------------------------- 1 | /* jconfig.wat --- jconfig.h for Watcom C/C++ on MS-DOS or OS/2. */ 2 | /* see jconfig.txt for explanations */ 3 | 4 | #define HAVE_PROTOTYPES 5 | #define HAVE_UNSIGNED_CHAR 6 | #define HAVE_UNSIGNED_SHORT 7 | /* #define void char */ 8 | /* #define const */ 9 | #define CHAR_IS_UNSIGNED 10 | #define HAVE_STDDEF_H 11 | #define HAVE_STDLIB_H 12 | #undef NEED_BSD_STRINGS 13 | #undef NEED_SYS_TYPES_H 14 | #undef NEED_FAR_POINTERS /* Watcom uses flat 32-bit addressing */ 15 | #undef NEED_SHORT_EXTERNAL_NAMES 16 | #undef INCOMPLETE_TYPES_BROKEN 17 | 18 | #ifdef JPEG_INTERNALS 19 | 20 | #undef RIGHT_SHIFT_IS_UNSIGNED 21 | 22 | #endif /* JPEG_INTERNALS */ 23 | 24 | #ifdef JPEG_CJPEG_DJPEG 25 | 26 | #define BMP_SUPPORTED /* BMP image file format */ 27 | #define GIF_SUPPORTED /* GIF image file format */ 28 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 29 | #undef RLE_SUPPORTED /* Utah RLE image file format */ 30 | #define TARGA_SUPPORTED /* Targa image file format */ 31 | 32 | #undef TWO_FILE_COMMANDLINE /* optional */ 33 | #define USE_SETMODE /* Needed to make one-file style work in Watcom */ 34 | #undef NEED_SIGNAL_CATCHER /* Define this if you use jmemname.c */ 35 | #undef DONT_USE_B_MODE 36 | #undef PROGRESS_REPORT /* optional */ 37 | 38 | #endif /* JPEG_CJPEG_DJPEG */ 39 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/jdosabcc.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/jpeg/src/out/jdosabcc.obj -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/jdosamsc.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/jpeg/src/out/jdosamsc.obj -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/jdosaobj.txt: -------------------------------------------------------------------------------- 1 | This archive contains already-assembled object files for JMEMDOSA.ASM 2 | of the Independent JPEG Group's JPEG package. These files will be helpful 3 | if you want to compile the IJG code for DOS, but don't have an assembler. 4 | 5 | These files were prepared from the 3/13/1992 version of JMEMDOSA.ASM, 6 | which is still unchanged as of mid-1998. You can use these files with 7 | releases 3 through 6 of the IJG code, and probably future releases too. 8 | 9 | To use these files, copy the proper version to JMEMDOSA.OBJ. Make sure 10 | this file has a newer date than JMEMDOSA.ASM. Then compile the code as 11 | usual. 12 | 13 | Object files included: 14 | 15 | JDOSAMSC.OBJ For Microsoft C version 5 or later. 16 | JDOSABCC.OBJ For Borland C version 3.0 or later. 17 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/libjpeg.map: -------------------------------------------------------------------------------- 1 | LIBJPEG_8.0 { 2 | global: 3 | *; 4 | }; 5 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makcjpeg.st: -------------------------------------------------------------------------------- 1 | ; Project file for Independent JPEG Group's software 2 | ; 3 | ; This project file is for Atari ST/STE/TT systems using Pure C or Turbo C. 4 | ; Thanks to Frank Moehle, B. Setzepfandt, and Guido Vollbeding. 5 | ; 6 | ; To use this file, rename it to cjpeg.prj. 7 | ; If you are using Turbo C, change filenames beginning with "pc..." to "tc..." 8 | ; Read installation instructions before trying to make the program! 9 | ; 10 | ; 11 | ; * * * Output file * * * 12 | cjpeg.ttp 13 | ; 14 | ; * * * COMPILER OPTIONS * * * 15 | .C[-P] ; absolute calls 16 | .C[-M] ; and no string merging, folks 17 | .C[-w-cln] ; no "constant is long" warnings 18 | .C[-w-par] ; no "parameter xxxx unused" 19 | .C[-w-rch] ; no "unreachable code" 20 | .C[-wsig] ; warn if significant digits may be lost 21 | = 22 | ; * * * * List of modules * * * * 23 | pcstart.o 24 | cjpeg.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h,jversion.h) 25 | cdjpeg.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 26 | rdswitch.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 27 | rdppm.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 28 | rdgif.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 29 | rdtarga.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 30 | rdbmp.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 31 | rdrle.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 32 | libjpeg.lib ; built by libjpeg.prj 33 | pcfltlib.lib ; floating point library 34 | ; the float library can be omitted if you've turned off DCT_FLOAT_SUPPORTED 35 | pcstdlib.lib ; standard library 36 | pcextlib.lib ; extended library 37 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makdjpeg.st: -------------------------------------------------------------------------------- 1 | ; Project file for Independent JPEG Group's software 2 | ; 3 | ; This project file is for Atari ST/STE/TT systems using Pure C or Turbo C. 4 | ; Thanks to Frank Moehle, B. Setzepfandt, and Guido Vollbeding. 5 | ; 6 | ; To use this file, rename it to djpeg.prj. 7 | ; If you are using Turbo C, change filenames beginning with "pc..." to "tc..." 8 | ; Read installation instructions before trying to make the program! 9 | ; 10 | ; 11 | ; * * * Output file * * * 12 | djpeg.ttp 13 | ; 14 | ; * * * COMPILER OPTIONS * * * 15 | .C[-P] ; absolute calls 16 | .C[-M] ; and no string merging, folks 17 | .C[-w-cln] ; no "constant is long" warnings 18 | .C[-w-par] ; no "parameter xxxx unused" 19 | .C[-w-rch] ; no "unreachable code" 20 | .C[-wsig] ; warn if significant digits may be lost 21 | = 22 | ; * * * * List of modules * * * * 23 | pcstart.o 24 | djpeg.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h,jversion.h) 25 | cdjpeg.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 26 | rdcolmap.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 27 | wrppm.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 28 | wrgif.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 29 | wrtarga.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 30 | wrbmp.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 31 | wrrle.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 32 | libjpeg.lib ; built by libjpeg.prj 33 | pcfltlib.lib ; floating point library 34 | ; the float library can be omitted if you've turned off DCT_FLOAT_SUPPORTED 35 | pcstdlib.lib ; standard library 36 | pcextlib.lib ; extended library 37 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makeadsw.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/jpeg/src/out/makeadsw.vc6 -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makeasln.v10: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual C++ Express 2010 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cjpeg", "cjpeg.vcxproj", "{2E7FAAD9-2F58-4BDE-81F2-1D6D3FB8BF57}" 5 | EndProject 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "djpeg", "djpeg.vcxproj", "{11043137-B453-4DFA-9010-4D2B9DC1545C}" 7 | EndProject 8 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jpegtran", "jpegtran.vcxproj", "{025BAC50-51B5-4FFE-BC47-3F920BB4047E}" 9 | EndProject 10 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rdjpgcom", "rdjpgcom.vcxproj", "{C81513DB-78DC-46BC-BC98-82E745203976}" 11 | EndProject 12 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wrjpgcom", "wrjpgcom.vcxproj", "{B57065D4-DDDA-4668-BAF5-2D49270C973C}" 13 | EndProject 14 | Global 15 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 16 | Release|Win32 = Release|Win32 17 | EndGlobalSection 18 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 19 | {2E7FAAD9-2F58-4BDE-81F2-1D6D3FB8BF57}.Release|Win32.ActiveCfg = Release|Win32 20 | {2E7FAAD9-2F58-4BDE-81F2-1D6D3FB8BF57}.Release|Win32.Build.0 = Release|Win32 21 | {11043137-B453-4DFA-9010-4D2B9DC1545C}.Release|Win32.ActiveCfg = Release|Win32 22 | {11043137-B453-4DFA-9010-4D2B9DC1545C}.Release|Win32.Build.0 = Release|Win32 23 | {025BAC50-51B5-4FFE-BC47-3F920BB4047E}.Release|Win32.ActiveCfg = Release|Win32 24 | {025BAC50-51B5-4FFE-BC47-3F920BB4047E}.Release|Win32.Build.0 = Release|Win32 25 | {C81513DB-78DC-46BC-BC98-82E745203976}.Release|Win32.ActiveCfg = Release|Win32 26 | {C81513DB-78DC-46BC-BC98-82E745203976}.Release|Win32.Build.0 = Release|Win32 27 | {B57065D4-DDDA-4668-BAF5-2D49270C973C}.Release|Win32.ActiveCfg = Release|Win32 28 | {B57065D4-DDDA-4668-BAF5-2D49270C973C}.Release|Win32.Build.0 = Release|Win32 29 | EndGlobalSection 30 | GlobalSection(SolutionProperties) = preSolution 31 | HideSolutionNode = FALSE 32 | EndGlobalSection 33 | EndGlobal 34 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makecdep.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/jpeg/src/out/makecdep.vc6 -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makecdsp.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/jpeg/src/out/makecdsp.vc6 -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makecfil.v10: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Header Files 20 | 21 | 22 | Header Files 23 | 24 | 25 | Header Files 26 | 27 | 28 | Header Files 29 | 30 | 31 | Header Files 32 | 33 | 34 | Header Files 35 | 36 | 37 | Header Files 38 | 39 | 40 | Header Files 41 | 42 | 43 | 44 | 45 | Source Files 46 | 47 | 48 | Source Files 49 | 50 | 51 | Source Files 52 | 53 | 54 | Source Files 55 | 56 | 57 | Source Files 58 | 59 | 60 | Source Files 61 | 62 | 63 | Source Files 64 | 65 | 66 | Source Files 67 | 68 | 69 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makecmak.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/jpeg/src/out/makecmak.vc6 -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makecvcx.v10: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Release 6 | Win32 7 | 8 | 9 | 10 | {2E7FAAD9-2F58-4BDE-81F2-1D6D3FB8BF57} 11 | Win32Proj 12 | cjpeg 13 | 14 | 15 | 16 | Application 17 | false 18 | true 19 | Unicode 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | false 30 | $(ProjectName)\$(Configuration)\ 31 | $(ProjectName)\$(Configuration)\ 32 | 33 | 34 | 35 | Level3 36 | NotUsing 37 | Full 38 | true 39 | false 40 | WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS 41 | true 42 | true 43 | 4996 44 | 45 | 46 | Console 47 | true 48 | true 49 | true 50 | Release\jpeg.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makeddep.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/jpeg/src/out/makeddep.vc6 -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makeddsp.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/jpeg/src/out/makeddsp.vc6 -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makedfil.v10: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Header Files 20 | 21 | 22 | Header Files 23 | 24 | 25 | Header Files 26 | 27 | 28 | Header Files 29 | 30 | 31 | Header Files 32 | 33 | 34 | Header Files 35 | 36 | 37 | Header Files 38 | 39 | 40 | Header Files 41 | 42 | 43 | 44 | 45 | Source Files 46 | 47 | 48 | Source Files 49 | 50 | 51 | Source Files 52 | 53 | 54 | Source Files 55 | 56 | 57 | Source Files 58 | 59 | 60 | Source Files 61 | 62 | 63 | Source Files 64 | 65 | 66 | Source Files 67 | 68 | 69 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makedmak.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/jpeg/src/out/makedmak.vc6 -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makedvcx.v10: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Release 6 | Win32 7 | 8 | 9 | 10 | {11043137-B453-4DFA-9010-4D2B9DC1545C} 11 | Win32Proj 12 | djpeg 13 | 14 | 15 | 16 | Application 17 | false 18 | true 19 | Unicode 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | false 30 | $(ProjectName)\$(Configuration)\ 31 | $(ProjectName)\$(Configuration)\ 32 | 33 | 34 | 35 | Level3 36 | NotUsing 37 | Full 38 | true 39 | false 40 | WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS 41 | true 42 | true 43 | 4996 44 | 45 | 46 | Console 47 | true 48 | true 49 | true 50 | Release\jpeg.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makejdep.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/jpeg/src/out/makejdep.vc6 -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makejdsp.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/jpeg/src/out/makejdsp.vc6 -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makejdsw.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/jpeg/src/out/makejdsw.vc6 -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makejmak.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/jpeg/src/out/makejmak.vc6 -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makejsln.v10: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual C++ Express 2010 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jpeg", "jpeg.vcxproj", "{019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Release|Win32 = Release|Win32 9 | EndGlobalSection 10 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 11 | {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release|Win32.ActiveCfg = Release|Win32 12 | {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release|Win32.Build.0 = Release|Win32 13 | EndGlobalSection 14 | GlobalSection(SolutionProperties) = preSolution 15 | HideSolutionNode = FALSE 16 | EndGlobalSection 17 | EndGlobal 18 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makerdep.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/jpeg/src/out/makerdep.vc6 -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makerdsp.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/jpeg/src/out/makerdsp.vc6 -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makerfil.v10: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Header Files 20 | 21 | 22 | Header Files 23 | 24 | 25 | 26 | 27 | Source Files 28 | 29 | 30 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makermak.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/jpeg/src/out/makermak.vc6 -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makervcx.v10: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Release 6 | Win32 7 | 8 | 9 | 10 | {C81513DB-78DC-46BC-BC98-82E745203976} 11 | Win32Proj 12 | rdjpgcom 13 | 14 | 15 | 16 | Application 17 | false 18 | true 19 | Unicode 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | false 30 | $(ProjectName)\$(Configuration)\ 31 | $(ProjectName)\$(Configuration)\ 32 | 33 | 34 | 35 | Level3 36 | NotUsing 37 | Full 38 | true 39 | false 40 | WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS 41 | true 42 | true 43 | 4996 44 | 45 | 46 | Console 47 | true 48 | true 49 | true 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/maketdep.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/jpeg/src/out/maketdep.vc6 -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/maketdsp.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/jpeg/src/out/maketdsp.vc6 -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/maketfil.v10: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Header Files 20 | 21 | 22 | Header Files 23 | 24 | 25 | Header Files 26 | 27 | 28 | Header Files 29 | 30 | 31 | Header Files 32 | 33 | 34 | Header Files 35 | 36 | 37 | Header Files 38 | 39 | 40 | Header Files 41 | 42 | 43 | Header Files 44 | 45 | 46 | Header Files 47 | 48 | 49 | 50 | 51 | Source Files 52 | 53 | 54 | Source Files 55 | 56 | 57 | Source Files 58 | 59 | 60 | Source Files 61 | 62 | 63 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/maketmak.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/jpeg/src/out/maketmak.vc6 -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/maketvcx.v10: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Release 6 | Win32 7 | 8 | 9 | 10 | {025BAC50-51B5-4FFE-BC47-3F920BB4047E} 11 | Win32Proj 12 | jpegtran 13 | 14 | 15 | 16 | Application 17 | false 18 | true 19 | Unicode 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | false 30 | $(ProjectName)\$(Configuration)\ 31 | $(ProjectName)\$(Configuration)\ 32 | 33 | 34 | 35 | Level3 36 | NotUsing 37 | Full 38 | true 39 | false 40 | WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS 41 | true 42 | true 43 | 4996 44 | 45 | 46 | Console 47 | true 48 | true 49 | true 50 | Release\jpeg.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makewdep.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/jpeg/src/out/makewdep.vc6 -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makewdsp.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/jpeg/src/out/makewdsp.vc6 -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makewfil.v10: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Header Files 20 | 21 | 22 | Header Files 23 | 24 | 25 | 26 | 27 | Source Files 28 | 29 | 30 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makewmak.vc6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/jpeg/src/out/makewmak.vc6 -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makewvcx.v10: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Release 6 | Win32 7 | 8 | 9 | 10 | {B57065D4-DDDA-4668-BAF5-2D49270C973C} 11 | Win32Proj 12 | wrjpgcom 13 | 14 | 15 | 16 | Application 17 | false 18 | true 19 | Unicode 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | false 30 | $(ProjectName)\$(Configuration)\ 31 | $(ProjectName)\$(Configuration)\ 32 | 33 | 34 | 35 | Level3 36 | NotUsing 37 | Full 38 | true 39 | false 40 | WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS 41 | true 42 | true 43 | 4996 44 | 45 | 46 | Console 47 | true 48 | true 49 | true 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makljpeg.st: -------------------------------------------------------------------------------- 1 | ; Project file for Independent JPEG Group's software 2 | ; 3 | ; This project file is for Atari ST/STE/TT systems using Pure C or Turbo C. 4 | ; Thanks to Frank Moehle, B. Setzepfandt, and Guido Vollbeding. 5 | ; 6 | ; To use this file, rename it to libjpeg.prj. 7 | ; Read installation instructions before trying to make the program! 8 | ; 9 | ; 10 | ; * * * Output file * * * 11 | libjpeg.lib 12 | ; 13 | ; * * * COMPILER OPTIONS * * * 14 | .C[-P] ; absolute calls 15 | .C[-M] ; and no string merging, folks 16 | .C[-w-cln] ; no "constant is long" warnings 17 | .C[-w-par] ; no "parameter xxxx unused" 18 | .C[-w-rch] ; no "unreachable code" 19 | .C[-wsig] ; warn if significant digits may be lost 20 | .L[-J] ; link new Obj-format (so we get a library) 21 | = 22 | ; * * * * List of modules * * * * 23 | jaricom.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 24 | jcapimin.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 25 | jcapistd.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 26 | jcarith.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 27 | jccoefct.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 28 | jccolor.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 29 | jcdctmgr.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h,jdct.h) 30 | jchuff.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 31 | jcinit.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 32 | jcmainct.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 33 | jcmarker.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 34 | jcmaster.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 35 | jcomapi.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 36 | jcparam.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 37 | jcprepct.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 38 | jcsample.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 39 | jctrans.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 40 | jdapimin.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 41 | jdapistd.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 42 | jdarith.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 43 | jdatadst.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h) 44 | jdatasrc.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h) 45 | jdcoefct.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 46 | jdcolor.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 47 | jddctmgr.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h,jdct.h) 48 | jdhuff.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 49 | jdinput.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 50 | jdmainct.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 51 | jdmarker.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 52 | jdmaster.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 53 | jdmerge.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 54 | jdpostct.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 55 | jdsample.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 56 | jdtrans.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 57 | jerror.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jversion.h,jerror.h) 58 | jfdctflt.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h,jdct.h) 59 | jfdctfst.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h,jdct.h) 60 | jfdctint.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h,jdct.h) 61 | jidctflt.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h,jdct.h) 62 | jidctfst.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h,jdct.h) 63 | jidctint.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h,jdct.h) 64 | jquant1.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 65 | jquant2.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 66 | jutils.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h) 67 | jmemmgr.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h,jmemsys.h) 68 | jmemansi.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h,jmemsys.h) 69 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/maktjpeg.st: -------------------------------------------------------------------------------- 1 | ; Project file for Independent JPEG Group's software 2 | ; 3 | ; This project file is for Atari ST/STE/TT systems using Pure C or Turbo C. 4 | ; Thanks to Frank Moehle, B. Setzepfandt, and Guido Vollbeding. 5 | ; 6 | ; To use this file, rename it to jpegtran.prj. 7 | ; If you are using Turbo C, change filenames beginning with "pc..." to "tc..." 8 | ; Read installation instructions before trying to make the program! 9 | ; 10 | ; 11 | ; * * * Output file * * * 12 | jpegtran.ttp 13 | ; 14 | ; * * * COMPILER OPTIONS * * * 15 | .C[-P] ; absolute calls 16 | .C[-M] ; and no string merging, folks 17 | .C[-w-cln] ; no "constant is long" warnings 18 | .C[-w-par] ; no "parameter xxxx unused" 19 | .C[-w-rch] ; no "unreachable code" 20 | .C[-wsig] ; warn if significant digits may be lost 21 | = 22 | ; * * * * List of modules * * * * 23 | pcstart.o 24 | jpegtran.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h,transupp.h,jversion.h) 25 | cdjpeg.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 26 | rdswitch.c (cdjpeg.h,jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jerror.h,cderror.h) 27 | transupp.c (jinclude.h,jconfig.h,jpeglib.h,jmorecfg.h,jpegint.h,jerror.h,transupp.h) 28 | libjpeg.lib ; built by libjpeg.prj 29 | pcstdlib.lib ; standard library 30 | pcextlib.lib ; extended library 31 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/makvms.opt: -------------------------------------------------------------------------------- 1 | ! A pointer to the VAX/VMS C Run-Time Shareable Library. 2 | ! This file is needed by makefile.mms and makefile.vms, 3 | ! but only for the older VAX C compiler. DEC C does not need it. 4 | Sys$Library:VAXCRTL.EXE /Share 5 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/rdjpgcom.1: -------------------------------------------------------------------------------- 1 | .TH RDJPGCOM 1 "02 April 2009" 2 | .SH NAME 3 | rdjpgcom \- display text comments from a JPEG file 4 | .SH SYNOPSIS 5 | .B rdjpgcom 6 | [ 7 | .B \-raw 8 | ] 9 | [ 10 | .B \-verbose 11 | ] 12 | [ 13 | .I filename 14 | ] 15 | .LP 16 | .SH DESCRIPTION 17 | .LP 18 | .B rdjpgcom 19 | reads the named JPEG/JFIF file, or the standard input if no file is named, 20 | and prints any text comments found in the file on the standard output. 21 | .PP 22 | The JPEG standard allows "comment" (COM) blocks to occur within a JPEG file. 23 | Although the standard doesn't actually define what COM blocks are for, they 24 | are widely used to hold user-supplied text strings. This lets you add 25 | annotations, titles, index terms, etc to your JPEG files, and later retrieve 26 | them as text. COM blocks do not interfere with the image stored in the JPEG 27 | file. The maximum size of a COM block is 64K, but you can have as many of 28 | them as you like in one JPEG file. 29 | .SH OPTIONS 30 | .TP 31 | .B \-raw 32 | Normally 33 | .B rdjpgcom 34 | escapes non-printable characters in comments, for security reasons. 35 | This option avoids that. 36 | .PP 37 | .B \-verbose 38 | Causes 39 | .B rdjpgcom 40 | to also display the JPEG image dimensions. 41 | .PP 42 | Switch names may be abbreviated, and are not case sensitive. 43 | .SH HINTS 44 | .B rdjpgcom 45 | does not depend on the IJG JPEG library. Its source code is intended as an 46 | illustration of the minimum amount of code required to parse a JPEG file 47 | header correctly. 48 | .PP 49 | In 50 | .B \-verbose 51 | mode, 52 | .B rdjpgcom 53 | will also attempt to print the contents of any "APP12" markers as text. 54 | Some digital cameras produce APP12 markers containing useful textual 55 | information. If you like, you can modify the source code to print 56 | other APPn marker types as well. 57 | .SH SEE ALSO 58 | .BR cjpeg (1), 59 | .BR djpeg (1), 60 | .BR jpegtran (1), 61 | .BR wrjpgcom (1) 62 | .SH AUTHOR 63 | Independent JPEG Group 64 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/readme.dos: -------------------------------------------------------------------------------- 1 | This archive contains a DOS-friendly version of the Independent JPEG Group's 2 | source code. It differs from the normal distribution in that: 3 | 4 | 1. The archive format is zip rather than tar+gzip. You should be able to 5 | unpack it with PKUNZIP (2.04g or later) or Info-Zip's unzip or 7-Zip. 6 | 7 | 2. Newlines have been converted from Unix (LF) to DOS (CR/LF) style in all 8 | text files, but not in the binary files (test*.*). 9 | 10 | 3. Object files have been included for jmemdosa.asm. See jdosaobj.txt. 11 | 12 | Please see the main README file for the primary documentation. 13 | 14 | If you'd rather have a non-DOSified archive, see the ARCHIVE LOCATIONS section 15 | of README. 16 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/testimg.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/jpeg/src/out/testimg.bmp -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/testimg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/jpeg/src/out/testimg.jpg -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/testimg.ppm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/jpeg/src/out/testimg.ppm -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/testimgp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/jpeg/src/out/testimgp.jpg -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/testorig.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/jpeg/src/out/testorig.jpg -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/testprog.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/jpeg/src/out/testprog.jpg -------------------------------------------------------------------------------- /Dependencies/jpeg/src/out/wrjpgcom.1: -------------------------------------------------------------------------------- 1 | .TH WRJPGCOM 1 "15 June 1995" 2 | .SH NAME 3 | wrjpgcom \- insert text comments into a JPEG file 4 | .SH SYNOPSIS 5 | .B wrjpgcom 6 | [ 7 | .B \-replace 8 | ] 9 | [ 10 | .BI \-comment " text" 11 | ] 12 | [ 13 | .BI \-cfile " name" 14 | ] 15 | [ 16 | .I filename 17 | ] 18 | .LP 19 | .SH DESCRIPTION 20 | .LP 21 | .B wrjpgcom 22 | reads the named JPEG/JFIF file, or the standard input if no file is named, 23 | and generates a new JPEG/JFIF file on standard output. A comment block is 24 | added to the file. 25 | .PP 26 | The JPEG standard allows "comment" (COM) blocks to occur within a JPEG file. 27 | Although the standard doesn't actually define what COM blocks are for, they 28 | are widely used to hold user-supplied text strings. This lets you add 29 | annotations, titles, index terms, etc to your JPEG files, and later retrieve 30 | them as text. COM blocks do not interfere with the image stored in the JPEG 31 | file. The maximum size of a COM block is 64K, but you can have as many of 32 | them as you like in one JPEG file. 33 | .PP 34 | .B wrjpgcom 35 | adds a COM block, containing text you provide, to a JPEG file. 36 | Ordinarily, the COM block is added after any existing COM blocks; but you 37 | can delete the old COM blocks if you wish. 38 | .SH OPTIONS 39 | Switch names may be abbreviated, and are not case sensitive. 40 | .TP 41 | .B \-replace 42 | Delete any existing COM blocks from the file. 43 | .TP 44 | .BI \-comment " text" 45 | Supply text for new COM block on command line. 46 | .TP 47 | .BI \-cfile " name" 48 | Read text for new COM block from named file. 49 | .PP 50 | If you have only one line of comment text to add, you can provide it on the 51 | command line with 52 | .BR \-comment . 53 | The comment text must be surrounded with quotes so that it is treated as a 54 | single argument. Longer comments can be read from a text file. 55 | .PP 56 | If you give neither 57 | .B \-comment 58 | nor 59 | .BR \-cfile , 60 | then 61 | .B wrjpgcom 62 | will read the comment text from standard input. (In this case an input image 63 | file name MUST be supplied, so that the source JPEG file comes from somewhere 64 | else.) You can enter multiple lines, up to 64KB worth. Type an end-of-file 65 | indicator (usually control-D) to terminate the comment text entry. 66 | .PP 67 | .B wrjpgcom 68 | will not add a COM block if the provided comment string is empty. Therefore 69 | \fB\-replace \-comment ""\fR can be used to delete all COM blocks from a file. 70 | .SH EXAMPLES 71 | .LP 72 | Add a short comment to in.jpg, producing out.jpg: 73 | .IP 74 | .B wrjpgcom \-c 75 | \fI"View of my back yard" in.jpg 76 | .B > 77 | .I out.jpg 78 | .PP 79 | Attach a long comment previously stored in comment.txt: 80 | .IP 81 | .B wrjpgcom 82 | .I in.jpg 83 | .B < 84 | .I comment.txt 85 | .B > 86 | .I out.jpg 87 | .PP 88 | or equivalently 89 | .IP 90 | .B wrjpgcom 91 | .B -cfile 92 | .I comment.txt 93 | .B < 94 | .I in.jpg 95 | .B > 96 | .I out.jpg 97 | .SH SEE ALSO 98 | .BR cjpeg (1), 99 | .BR djpeg (1), 100 | .BR jpegtran (1), 101 | .BR rdjpgcom (1) 102 | .SH AUTHOR 103 | Independent JPEG Group 104 | -------------------------------------------------------------------------------- /Dependencies/jpeg/src/rdgif.c: -------------------------------------------------------------------------------- 1 | /* 2 | * rdgif.c 3 | * 4 | * Copyright (C) 1991-1997, Thomas G. Lane. 5 | * This file is part of the Independent JPEG Group's software. 6 | * For conditions of distribution and use, see the accompanying README file. 7 | * 8 | * This file contains routines to read input images in GIF format. 9 | * 10 | ***************************************************************************** 11 | * NOTE: to avoid entanglements with Unisys' patent on LZW compression, * 12 | * the ability to read GIF files has been removed from the IJG distribution. * 13 | * Sorry about that. * 14 | ***************************************************************************** 15 | * 16 | * We are required to state that 17 | * "The Graphics Interchange Format(c) is the Copyright property of 18 | * CompuServe Incorporated. GIF(sm) is a Service Mark property of 19 | * CompuServe Incorporated." 20 | */ 21 | 22 | #include "cdjpeg.h" /* Common decls for cjpeg/djpeg applications */ 23 | 24 | #ifdef GIF_SUPPORTED 25 | 26 | /* 27 | * The module selection routine for GIF format input. 28 | */ 29 | 30 | GLOBAL(cjpeg_source_ptr) 31 | jinit_read_gif (j_compress_ptr cinfo) 32 | { 33 | fprintf(stderr, "GIF input is unsupported for legal reasons. Sorry.\n"); 34 | exit(EXIT_FAILURE); 35 | return NULL; /* keep compiler happy */ 36 | } 37 | 38 | #endif /* GIF_SUPPORTED */ 39 | -------------------------------------------------------------------------------- /Dependencies/tinyxml/script/tinyxml.vcproj: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 14 | 15 | 16 | 17 | 18 | 26 | 29 | 32 | 35 | 38 | 41 | 50 | 53 | 56 | 59 | 62 | 65 | 68 | 71 | 74 | 77 | 78 | 87 | 90 | 93 | 96 | 99 | 102 | 111 | 114 | 117 | 120 | 123 | 126 | 129 | 132 | 135 | 138 | 139 | 140 | 141 | 142 | 143 | 148 | 151 | 152 | 155 | 156 | 159 | 160 | 163 | 164 | 165 | 170 | 173 | 174 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | -------------------------------------------------------------------------------- /Dependencies/tinyxml/script/tinyxml.vsprops: -------------------------------------------------------------------------------- 1 | 2 | 7 | 12 | 16 | 17 | -------------------------------------------------------------------------------- /Dependencies/tinyxml/src/tinystr.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dddExperiments/SFMToolkit/7680df38b583641a90d97962ea8da40666e43822/Dependencies/tinyxml/src/tinystr.cpp -------------------------------------------------------------------------------- /Dependencies/tinyxml/src/tinyxmlerror.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | www.sourceforge.net/projects/tinyxml 3 | Original code (2.0 and earlier )copyright (c) 2000-2006 Lee Thomason (www.grinninglizard.com) 4 | 5 | This software is provided 'as-is', without any express or implied 6 | warranty. In no event will the authors be held liable for any 7 | damages arising from the use of this software. 8 | 9 | Permission is granted to anyone to use this software for any 10 | purpose, including commercial applications, and to alter it and 11 | redistribute it freely, subject to the following restrictions: 12 | 13 | 1. The origin of this software must not be misrepresented; you must 14 | not claim that you wrote the original software. If you use this 15 | software in a product, an acknowledgment in the product documentation 16 | would be appreciated but is not required. 17 | 18 | 2. Altered source versions must be plainly marked as such, and 19 | must not be misrepresented as being the original software. 20 | 21 | 3. This notice may not be removed or altered from any source 22 | distribution. 23 | */ 24 | 25 | #include "tinyxml.h" 26 | 27 | // The goal of the seperate error file is to make the first 28 | // step towards localization. tinyxml (currently) only supports 29 | // english error messages, but the could now be translated. 30 | // 31 | // It also cleans up the code a bit. 32 | // 33 | 34 | const char* TiXmlBase::errorString[ TIXML_ERROR_STRING_COUNT ] = 35 | { 36 | "No error", 37 | "Error", 38 | "Failed to open file", 39 | "Memory allocation failed.", 40 | "Error parsing Element.", 41 | "Failed to read Element name", 42 | "Error reading Element value.", 43 | "Error reading Attributes.", 44 | "Error: empty tag.", 45 | "Error reading end tag.", 46 | "Error parsing Unknown.", 47 | "Error parsing Comment.", 48 | "Error parsing Declaration.", 49 | "Error document empty.", 50 | "Error null (0) or unexpected EOF found in input stream.", 51 | "Error parsing CDATA.", 52 | "Error when TiXmlDocument added to document, because TiXmlDocument can only be at the root.", 53 | }; 54 | -------------------------------------------------------------------------------- /Ogre.vsprops: -------------------------------------------------------------------------------- 1 | 2 | 7 | 11 | 15 | 20 | 21 | -------------------------------------------------------------------------------- /README.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2010 ASTRE Henri (http://www.visual-experiments.com) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | 21 | Structure from motion toolkit [http://www.visual-experiments.com/demos/sfmtoolkit/]: 22 | ------------------------------------------------------------------------------------ 23 | 24 | - BundlerFocalExtractor : extract CCD width from Exif using XML database 25 | - BundlerMatcher : extract and match feature using SiftGPU 26 | - Bundler : http://phototour.cs.washington.edu/bundler/ created by Noah Snavely 27 | - CMVS : http://grail.cs.washington.edu/software/cmvs/ created by Yasutaka Furukawa 28 | - PMVS2 : http://grail.cs.washington.edu/software/pmvs/ created by Yasutaka Furukawa 29 | - BundlerViewer : Ogre3D Bundler and PMVS2 output viewer 30 | 31 | - BundlerToTracking : generate file to be used for AR tracking [beta] 32 | - BundlerToPly : generate ply file from Bundler output (indexes of 3D points are store in normals) [beta] 33 | - BundlerCleaner : removed 3D points from the tracking file according to ply file [beta] 34 | 35 | The full package is available at http://www.visual-experiments.com/blog/?sdmon=downloads/SFMToolkit3.zip 36 | Created by Henri Astre http://www.visual-experiments.com released under MIT license. 37 | 38 | Dependencies used: 39 | ------------------ 40 | 41 | jpeg8b http://www.ijg.org/ created by Thomas G. Lane, Guido Vollbeding 42 | SiftGPU http://www.cs.unc.edu/~ccwu/siftgpu/ created by Changchang Wu 43 | TinyXMl http://sourceforge.net/projects/tinyxml/ created by Lee Thomason 44 | Cexif: http://www.codeproject.com/KB/graphics/cexif.aspx#xx453189xx created by Davide Pizzolato 45 | Ogre3D: http://www.ogre3d.org/ --------------------------------------------------------------------------------