//License: See LICENSE.txt for copy of source license (AGPLv3) //Copyright: Author: Richard Bruce Baxter Copyright (c) 2005-2016 Baxter AI (baxterai.com) //Release Notes: Ensure ORrules.xml and all input files are formatted for your operating system, e.g. Linux: dos2unix ORrules.xml Windows: toDos.exe ORrules.xml (http://www.textpad.com/add-ons/files/utilities/convert.zip) //Change Record: OpenOR 29-July-2012 - first public release OpenOR 05-August-2012 - added file system database (OR_USE_DATABASE) to efficiently store object image data OpenOR 28-September-2012a - source comments clean up / OpenCS compatibility updates. Add -dbfolder parameter to ORmain OpenOR 11-October-2012a - upgrade all svg code to use XMLParserClass OpenOR 19-October-2012a - OR_USE_DATABASE support Windows OpenOR 16-November-2012a - remove appending '/' requirement on user definition of -dbfolder parameters OpenOR 18-November-2012a - manually decapitalise first letter of each word in function before abbreviations (ie double capitalisation), remove appending '/' condition on database folder specification ... OpenOR 15-July-2013a - update SHAREDvars.cpp getCharArgument() - change malloc(256) to malloc(4096)... OpenOR 20-July-2013a - update SHAREDvars.cpp with getStringArgument()/getStringArrayArgument()/changeDirectory()/getCurrentDirectory() OpenOR 22-July-2013a - ORdatabaseDecisionTree.cpp: change preprocessor if statement to standard if statement OpenOR 06-February-2014c - created the following functions in SHAREDvars.cpp and updated source appropriately; void getCurrentDirectory(char * folder); void setCurrentDirectory(const char * folder); void createDirectory(const char * folder); bool directoryExists(const char * folder); OpenOR 06-February-2014c - compile source on Ubuntu; change -lWN to -lwordnet OpenOR 06-February-2014c - compile source on Ubuntu; move $(LDFLAGS) after $(OBJECTS) OpenOR 06-February-2014c - update ORglobalDefs.h and GIAglobalDefs.h dependencies installation instructions.. OpenOR 06-February-2014c - update all EL6 compilation/make files; disable unused X11 libraries OpenOR 17-May-2014b - update ORglobalDefs.h dependencies comments OpenOR 8-June-2014a - update header license intro OpenOR 18-July-2014a - update RTparser.cpp/RTppm.cpp to conform to BAI code layout standards OpenOR 18-July-2014a - change all magic -1 integers to either INT_ARRAY_DEFAULT_VALUE or CPP_STRING_FIND_RESULT_FAIL_VALUE OpenOR 18-July-2014a - move convertStringToLowerCase()/isWhiteSpace()/convertIntToString()/convertBoolToString()/textInTextArray() to SHAREDvars.cpp OpenOR 29-August-2014a - move all definitions of writeByteArrayToFile/writeStringToFileObject/writeStringToFileObject2 to SHAREDvars.cpp, and delete writeStringToFileObject2 OpenOR 29-August-2014a - change LDopengl.cpp/.h draw functions to static OpenOR 01-September-2014a - upgrade all C char* strings to C++ strings OpenOR 01-September-2014a - ORmethodTrainOrTest(): remove "delete firstReferenceInInterpolatedMesh;" - this cannot be deleted because it is still used by glutDisplayFunc OpenOR 01-September-2014a - [partially reverted] FREEGLUT_MUST_ENTER_MAINLOOP: introduce exitOpenGL(): glutDestroyWindow(glutGetWindow())/glutMainLoop()/glutLeaveMainLoop() - required for ATI only? - sourceforge Freeglut bug #206 OpenOR 02-September-2014a - ORcomparison.cpp: compareNormalisedSnapshots(): only delete currentTestFeature if(!OR_IMAGE_COMPARISON_SQL_GET_TEST_DATA_FROM_SQL && !OR_IMAGE_COMPARISON_GEOMETRIC_COMPARISON_BINNING) OpenOR 02-September-2014a - CS compatiblity update; readDCTcoeffIndividualArraysAndConvertToConcatonatedSignedDCTcoeffArray() header OpenOR 03-September-2014a - LDopengl.cpp; update initiateOpenGL()/exitOpenGL(); return result; OpenOR 03-September-2014a - LDopengl.cpp; update exitOpenGL(); remove FREEGLUT_MUST_ENTER_MAINLOOP (Attempt to work around Sourceforge freeglut bug #206) - apply freeglut patch instead [partially revert change 3e3b] ... OpenOR 07-September-2014a - SHAREDvars.cpp: add convertLongToString() OpenOR 27-January-2015a - move writeStringToFile() from CSgenerateObjectOrientedCode.cpp to SHAREDvars.cpp OpenOR 27-January-2015a - normalise pointer syntax OpenOR 27-January-2015a - change all class names to prepend their project name OpenOR 27-January-2015a - move all libraries to SHAREDglobalDefs.h OpenOR 28-January-2015a - change all "=* " to "= *" OpenOR 31-January-2015a - move getFileContents to SHAREDvars.cpp OpenOR 14-February-2015a - add intInIntArray() OpenOR 10-May-2015a - replace all (): with {}: OpenOR 10-May-2015a - replace all ()" with {}" OpenOR 12-June-2015a - USE_NLC: update XMLrules.cpp: support NLCrules.xml via parseNLCrulesXMLfile() OpenOR 22-June-2015a - change all "() error" to "{} error" OpenOR 09-July-2015a - [TESTHIS] rename all working/exe/tempFolderCharStar to working/exe/tempFolder OpenOR 09-July-2015a - [TESTHIS] change all file manipulation functions to support string type instead of charStar OpenOR 10-July-2015a - replace all atof\(([^\.]*).c_str\(\)\) with convertStringToDouble(\1) OpenOR 10-July-2015a - replace all atoi\(([^\.]*).c_str\(\)\) with convertStringToInt(\1) OpenOR 10-July-2015a - replace all atol\(([^\.]*).c_str\(\)\) with convertStringToLong(\1) OpenOR 10-July-2015a - replace all sprintf\(([^,]*), "%d", ([^;]*)\); with \1 = convertIntToString(\2); OpenOR 10-July-2015a - replace all sprintf\(([^,]*), "%ld", ([^;]*)\); with \1 = convertLongToString(\2); OpenOR 10-July-2015a - replace all sprintf\(([^,]*), "([^f]*)f", ([^;]*)\); with \1 = convertDoubleToString(\3, "\2f"); OpenOR 10-July-2015a - replace all atoi\(([^\.]*).c_str\(\)\) with convertStringToInt(\1) OpenOR 10-July-2015a - replace all atol\(([^\.]*).c_str\(\)\) with convertStringToLong(\1) OpenOR 10-July-2015a - update addSnapshotIDReferenceToList/parseSnapshotIDreferenceList to use string class instead of char* class OpenOR 10-July-2015a - update writeStringToFile fileName argument to non pointer OpenOR 10-July-2015a - update writeStringToFileObject and writeStringToFile to use standard write function OpenOR 21-July-2015a - update ORglobalDefs.h header instructions OpenOR 21-July-2015a - update ORglobalDefs.h header instructions OpenOR 21-July-2015a - fix typo in convertStringToBool OpenOR 21-July-2015a - fix DBgenerateFolderName; remove "string tempFolder = tempFolder;" (fix bug in 3f3a updates) OpenOR 27-July-2015a - no changes ... OpenOR 16-August-2015a - update SHAREDvars.cpp; create appendStringToFile() OpenOR 18-August-2015a - replace all string::npos with CPP_STRING_FIND_RESULT_FAIL_VALUE OpenOR 18-August-2015a - change CPP_STRING_FIND_RESULT_FAIL_VALUE to string::npos (instead of -1) OpenOR 20-August-2015a - update SHAREDglobalDefs.h; #include <limits> (required for quiet_NaN) OpenOR 23-August-2015a - update SHAREDglobalDefs.h comments change "compileGIA.bat -> OpenGIA.exe" to "compileOpenGIA.bat -> OpenGIA.exe" etc OpenOR 23-August-2015a - update SHAREDglobalDefs.h from "//current/active tests;" to "//current/active configurations;" OpenOR 23-August-2015a - copy "compileANN.bat/compileANNwithRT.bat/compileRT.bat" to "compileOpenANN/compileOpenANNwithRT.bat/compileOpenRT.bat" (and rename executables of non-openBAI compilations) OpenOR 06-September-2015a - ensure all BAI commercial only source files have BAI commercial header (CSgenerateObjectOrientedCode*.cpp/.h) ... OpenOR 14-October-2015a - rename XMLParserAttribute to XMLparserAttribute ... OpenOR 06-December-2015a - reorder XMLparserClass functions relative to header file OpenOR 06-December-2015a - remove ++treeLayer from XMLparserClass OpenOR 09-December-2015a - add function fileExists OpenOR 11-December-2015a - update all headers with .cpp instead of .c OpenOR 11-December-2015a - change ANNTHparseTestDataFile to ANNparseDataFile OpenOR 11-December-2015a - update SHAREDvars.cpp/.h with "char** argv" instead of "char* *argv" OpenOR 11-December-2015a - update SHAREDvars.cpp/.h extract getFileContents(string inputFileName, int* numberLines) from getFileContents(string inputFileName) ... OpenOR 28-April-2016a - add ***_DEBUG to all commented debug statements (ie "//cout...") OpenOR 28-April-2016a - SQL_MYSQL_VERSION_5_7_PLUS - update performSQLgetNumRowsQuery, using "SELECT COUNT(*) FROM tableName;" OpenOR 28-April-2016a - !XML_PARSER_DO_NOT_ALLOW_TAG_VALUE_TO_BE_DEFINED_AFTER_SUBTAG: fix up XML parse limitation; tag contains contain both tag and value text OpenOR 28-April-2016a - rename parseTagValueAssumingExistenceOfSubtabsAndClose to parseTagValueAssumingExistenceOfSubtagsAndClose