summaryrefslogtreecommitdiffstats
path: root/matlab
diff options
context:
space:
mode:
authorWillem Jan Palenstijn <wjp@usecode.org>2015-03-20 15:32:25 +0100
committerWillem Jan Palenstijn <wjp@usecode.org>2015-03-20 15:32:25 +0100
commit8d9ddc51076ce0da3d0a4216b1bc495783f3733c (patch)
tree200d43d0356f052fe23da463330e43b37138386e /matlab
parent2d55fd38b4a8ef5076c0591ae4147f81c1107ee3 (diff)
parent9ba78fcfa3dec88928df33be26821e3fd5a10727 (diff)
downloadastra-8d9ddc51076ce0da3d0a4216b1bc495783f3733c.tar.gz
astra-8d9ddc51076ce0da3d0a4216b1bc495783f3733c.tar.bz2
astra-8d9ddc51076ce0da3d0a4216b1bc495783f3733c.tar.xz
astra-8d9ddc51076ce0da3d0a4216b1bc495783f3733c.zip
Merge pull request #30 from dmpelt/logging
New logging API
Diffstat (limited to 'matlab')
-rw-r--r--matlab/mex/astra_mex.cpp3
-rw-r--r--matlab/mex/astra_mex_algorithm_c.cpp3
-rw-r--r--matlab/mex/astra_mex_algorithm_vc09.vcproj8
-rw-r--r--matlab/mex/astra_mex_algorithm_vc11.vcxproj2
-rw-r--r--matlab/mex/astra_mex_c.cpp3
-rw-r--r--matlab/mex/astra_mex_data2d_c.cpp3
-rw-r--r--matlab/mex/astra_mex_data2d_vc09.vcproj8
-rw-r--r--matlab/mex/astra_mex_data2d_vc11.vcxproj2
-rw-r--r--matlab/mex/astra_mex_data3d_c.cpp3
-rw-r--r--matlab/mex/astra_mex_data3d_vc09.vcproj8
-rw-r--r--matlab/mex/astra_mex_data3d_vc11.vcxproj2
-rw-r--r--matlab/mex/astra_mex_log_c.cpp305
-rw-r--r--matlab/mex/astra_mex_log_vc09.vcproj612
-rw-r--r--matlab/mex/astra_mex_log_vc11.vcxproj306
-rw-r--r--matlab/mex/astra_mex_matrix_c.cpp3
-rw-r--r--matlab/mex/astra_mex_matrix_vc09.vcproj8
-rw-r--r--matlab/mex/astra_mex_matrix_vc11.vcxproj2
-rw-r--r--matlab/mex/astra_mex_projector3d_c.cpp3
-rw-r--r--matlab/mex/astra_mex_projector3d_vc09.vcproj8
-rw-r--r--matlab/mex/astra_mex_projector3d_vc11.vcxproj2
-rw-r--r--matlab/mex/astra_mex_projector_c.cpp3
-rw-r--r--matlab/mex/astra_mex_projector_vc09.vcproj8
-rw-r--r--matlab/mex/astra_mex_projector_vc11.vcxproj2
-rw-r--r--matlab/mex/astra_mex_vc09.vcproj8
-rw-r--r--matlab/mex/astra_mex_vc11.vcxproj2
-rw-r--r--matlab/mex/mexInitFunctions.cpp24
-rw-r--r--matlab/mex/mexInitFunctions.h6
-rw-r--r--matlab/tools/astra_mex_log.m33
28 files changed, 1380 insertions, 0 deletions
diff --git a/matlab/mex/astra_mex.cpp b/matlab/mex/astra_mex.cpp
index 0eb5662..4bf42dd 100644
--- a/matlab/mex/astra_mex.cpp
+++ b/matlab/mex/astra_mex.cpp
@@ -28,6 +28,7 @@ $Id$
#include <mex.h>
#include "mexHelpFunctions.h"
+#include "mexInitFunctions.h"
#include "astra/Globals.h"
@@ -104,6 +105,8 @@ void mexFunction(int nlhs, mxArray* plhs[],
return;
}
+ initASTRAMex();
+
// SWITCH (MODE)
if (sMode == std::string("version")) {
astra_mex_version(nlhs, plhs, nrhs, prhs);
diff --git a/matlab/mex/astra_mex_algorithm_c.cpp b/matlab/mex/astra_mex_algorithm_c.cpp
index 669af8c..e4afa63 100644
--- a/matlab/mex/astra_mex_algorithm_c.cpp
+++ b/matlab/mex/astra_mex_algorithm_c.cpp
@@ -32,6 +32,7 @@ $Id$
*/
#include <mex.h>
#include "mexHelpFunctions.h"
+#include "mexInitFunctions.h"
#include "astra/Globals.h"
#define USE_MATLAB_UNDOCUMENTED
@@ -325,6 +326,8 @@ void mexFunction(int nlhs, mxArray* plhs[],
return;
}
+ initASTRAMex();
+
// SWITCH (MODE)
if (sMode == "create") {
astra_mex_algorithm_create(nlhs, plhs, nrhs, prhs);
diff --git a/matlab/mex/astra_mex_algorithm_vc09.vcproj b/matlab/mex/astra_mex_algorithm_vc09.vcproj
index 40fcf62..d5cebc0 100644
--- a/matlab/mex/astra_mex_algorithm_vc09.vcproj
+++ b/matlab/mex/astra_mex_algorithm_vc09.vcproj
@@ -598,6 +598,14 @@
RelativePath=".\mexHelpFunctions.h"
>
</File>
+ <File
+ RelativePath=".\mexInitFunctions.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\mexInitFunctions.h"
+ >
+ </File>
</Files>
<Globals>
</Globals>
diff --git a/matlab/mex/astra_mex_algorithm_vc11.vcxproj b/matlab/mex/astra_mex_algorithm_vc11.vcxproj
index a297e6d..c133e26 100644
--- a/matlab/mex/astra_mex_algorithm_vc11.vcxproj
+++ b/matlab/mex/astra_mex_algorithm_vc11.vcxproj
@@ -294,9 +294,11 @@
<ItemGroup>
<ClCompile Include="astra_mex_algorithm_c.cpp" />
<ClCompile Include="mexHelpFunctions.cpp" />
+ <ClCompile Include="mexInitFunctions.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="mexHelpFunctions.h" />
+ <ClInclude Include="mexInitFunctions.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
diff --git a/matlab/mex/astra_mex_c.cpp b/matlab/mex/astra_mex_c.cpp
index 760bd51..4a331f5 100644
--- a/matlab/mex/astra_mex_c.cpp
+++ b/matlab/mex/astra_mex_c.cpp
@@ -33,6 +33,7 @@ $Id$
#include <mex.h>
#include "mexHelpFunctions.h"
+#include "mexInitFunctions.h"
#include "astra/Globals.h"
@@ -128,6 +129,8 @@ void mexFunction(int nlhs, mxArray* plhs[],
return;
}
+ initASTRAMex();
+
// SWITCH (MODE)
if (sMode == std::string("version")) {
astra_mex_version(nlhs, plhs, nrhs, prhs);
diff --git a/matlab/mex/astra_mex_data2d_c.cpp b/matlab/mex/astra_mex_data2d_c.cpp
index 5f79e98..9576896 100644
--- a/matlab/mex/astra_mex_data2d_c.cpp
+++ b/matlab/mex/astra_mex_data2d_c.cpp
@@ -32,6 +32,7 @@ $Id$
*/
#include <mex.h>
#include "mexHelpFunctions.h"
+#include "mexInitFunctions.h"
#include <list>
@@ -635,6 +636,8 @@ void mexFunction(int nlhs, mxArray* plhs[],
return;
}
+ initASTRAMex();
+
// SWITCH (MODE)
if (sMode == std::string("get")) {
astra_mex_data2d_get(nlhs, plhs, nrhs, prhs);
diff --git a/matlab/mex/astra_mex_data2d_vc09.vcproj b/matlab/mex/astra_mex_data2d_vc09.vcproj
index 5611ccc..2c8a63f 100644
--- a/matlab/mex/astra_mex_data2d_vc09.vcproj
+++ b/matlab/mex/astra_mex_data2d_vc09.vcproj
@@ -614,6 +614,14 @@
RelativePath=".\mexDataManagerHelpFunctions.h"
>
</File>
+ <File
+ RelativePath=".\mexInitFunctions.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\mexInitFunctions.h"
+ >
+ </File>
</Files>
<Globals>
</Globals>
diff --git a/matlab/mex/astra_mex_data2d_vc11.vcxproj b/matlab/mex/astra_mex_data2d_vc11.vcxproj
index 0ecc6ce..636780a 100644
--- a/matlab/mex/astra_mex_data2d_vc11.vcxproj
+++ b/matlab/mex/astra_mex_data2d_vc11.vcxproj
@@ -296,11 +296,13 @@
<ClCompile Include="mexHelpFunctions.cpp" />
<ClCompile Include="mexCopyDataHelpFunctions.cpp" />
<ClCompile Include="mexDataManagerHelpFunctions.cpp" />
+ <ClCompile Include="mexInitFunctions.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="mexHelpFunctions.h" />
<ClInclude Include="mexCopyDataHelpFunctions.h" />
<ClInclude Include="mexDataManagerHelpFunctions.h" />
+ <ClInclude Include="mexInitFunctions.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
diff --git a/matlab/mex/astra_mex_data3d_c.cpp b/matlab/mex/astra_mex_data3d_c.cpp
index 0a3f85d..32b0ba7 100644
--- a/matlab/mex/astra_mex_data3d_c.cpp
+++ b/matlab/mex/astra_mex_data3d_c.cpp
@@ -32,6 +32,7 @@ $Id$
*/
#include <mex.h>
#include "mexHelpFunctions.h"
+#include "mexInitFunctions.h"
#include "mexCopyDataHelpFunctions.h"
#include "mexDataManagerHelpFunctions.h"
@@ -371,6 +372,8 @@ void mexFunction(int nlhs, mxArray* plhs[],
return;
}
+ initASTRAMex();
+
// 3D data
if (sMode == std::string("create")) {
astra_mex_data3d_create(nlhs, plhs, nrhs, prhs);
diff --git a/matlab/mex/astra_mex_data3d_vc09.vcproj b/matlab/mex/astra_mex_data3d_vc09.vcproj
index 74a35f4..fd861a3 100644
--- a/matlab/mex/astra_mex_data3d_vc09.vcproj
+++ b/matlab/mex/astra_mex_data3d_vc09.vcproj
@@ -614,6 +614,14 @@
RelativePath=".\mexDataManagerHelpFunctions.h"
>
</File>
+ <File
+ RelativePath=".\mexInitFunctions.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\mexInitFunctions.h"
+ >
+ </File>
</Files>
<Globals>
</Globals>
diff --git a/matlab/mex/astra_mex_data3d_vc11.vcxproj b/matlab/mex/astra_mex_data3d_vc11.vcxproj
index 8ac6f7c..1c3c620 100644
--- a/matlab/mex/astra_mex_data3d_vc11.vcxproj
+++ b/matlab/mex/astra_mex_data3d_vc11.vcxproj
@@ -296,11 +296,13 @@
<ClCompile Include="mexHelpFunctions.cpp" />
<ClCompile Include="mexCopyDataHelpFunctions.cpp" />
<ClCompile Include="mexDataManagerHelpFunctions.cpp" />
+ <ClCompile Include="mexInitFunctions.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="mexHelpFunctions.h" />
<ClInclude Include="mexCopyDataHelpFunctions.h" />
<ClInclude Include="mexDataManagerHelpFunctions.h" />
+ <ClInclude Include="mexInitFunctions.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
diff --git a/matlab/mex/astra_mex_log_c.cpp b/matlab/mex/astra_mex_log_c.cpp
new file mode 100644
index 0000000..ea4621e
--- /dev/null
+++ b/matlab/mex/astra_mex_log_c.cpp
@@ -0,0 +1,305 @@
+/*
+-----------------------------------------------------------------------
+Copyright: 2010-2015, iMinds-Vision Lab, University of Antwerp
+ 2014-2015, CWI, Amsterdam
+
+Contact: astra@uantwerpen.be
+Website: http://sf.net/projects/astra-toolbox
+
+This file is part of the ASTRA Toolbox.
+
+
+The ASTRA Toolbox is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+The ASTRA Toolbox is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with the ASTRA Toolbox. If not, see <http://www.gnu.org/licenses/>.
+
+-----------------------------------------------------------------------
+$Id$
+*/
+
+/** \file astra_mex_log_c.cpp
+ *
+ * \brief Manages astra logging
+ */
+#include <mex.h>
+#include "mexHelpFunctions.h"
+#include "mexInitFunctions.h"
+
+#include "astra/Logging.h"
+
+using namespace std;
+using namespace astra;
+//-----------------------------------------------------------------------------------------
+/** astra_mex_log('debug', file, line, message);
+ *
+ * Log a debug message.
+ * file: Originating file name
+ * line: Originating line number
+ * message: Log message.
+ */
+void astra_mex_log_debug(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[])
+{
+ if (nrhs < 4) {
+ mexErrMsgTxt("Not enough arguments. See the help document for a detailed argument list. \n");
+ return;
+ }
+ string filename = mexToString(prhs[1]);
+ int linenumber = (int)mxGetScalar(prhs[2]);
+ string message = mexToString(prhs[3]);
+ astra::CLogger::debug(filename.c_str(),linenumber,message.c_str());
+}
+
+//-----------------------------------------------------------------------------------------
+/** astra_mex_log('info', file, line, message);
+ *
+ * Log an info message.
+ * file: Originating file name
+ * line: Originating line number
+ * message: Log message.
+ */
+void astra_mex_log_info(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[])
+{
+ if (nrhs < 4) {
+ mexErrMsgTxt("Not enough arguments. See the help document for a detailed argument list. \n");
+ return;
+ }
+ string filename = mexToString(prhs[1]);
+ int linenumber = (int)mxGetScalar(prhs[2]);
+ string message = mexToString(prhs[3]);
+ astra::CLogger::info(filename.c_str(),linenumber,message.c_str());
+}
+
+//-----------------------------------------------------------------------------------------
+/** astra_mex_log('warn', file, line, message);
+ *
+ * Log a warning message.
+ * file: Originating file name
+ * line: Originating line number
+ * message: Log message.
+ */
+void astra_mex_log_warn(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[])
+{
+ if (nrhs < 4) {
+ mexErrMsgTxt("Not enough arguments. See the help document for a detailed argument list. \n");
+ return;
+ }
+ string filename = mexToString(prhs[1]);
+ int linenumber = (int)mxGetScalar(prhs[2]);
+ string message = mexToString(prhs[3]);
+ astra::CLogger::warn(filename.c_str(),linenumber,message.c_str());
+}
+
+//-----------------------------------------------------------------------------------------
+/** astra_mex_log('error', file, line, message);
+ *
+ * Log an error message.
+ * file: Originating file name
+ * line: Originating line number
+ * message: Log message.
+ */
+void astra_mex_log_error(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[])
+{
+ if (nrhs < 4) {
+ mexErrMsgTxt("Not enough arguments. See the help document for a detailed argument list. \n");
+ return;
+ }
+ string filename = mexToString(prhs[1]);
+ int linenumber = (int)mxGetScalar(prhs[2]);
+ string message = mexToString(prhs[3]);
+ astra::CLogger::error(filename.c_str(),linenumber,message.c_str());
+}
+
+//-----------------------------------------------------------------------------------------
+/** astra_mex_log('enable', type);
+ *
+ * Enable logging.
+ * type: which output to enable ('all', 'file', 'screen')
+ */
+void astra_mex_log_enable(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[])
+{
+ if (nrhs < 2) {
+ mexErrMsgTxt("Not enough arguments. See the help document for a detailed argument list. \n");
+ return;
+ }
+ string sType = mexToString(prhs[1]);
+ if(sType == "all"){
+ astra::CLogger::enable();
+ }else if(sType == "file"){
+ astra::CLogger::enableFile();
+ }else if(sType == "screen"){
+ astra::CLogger::enableScreen();
+ } else {
+ mexErrMsgTxt("Specify which output to enable ('all', 'file', or 'screen')");
+ }
+}
+
+//-----------------------------------------------------------------------------------------
+/** astra_mex_log('disable', type);
+ *
+ * Disable logging.
+ * type: which output to disable ('all', 'file', 'screen')
+ */
+void astra_mex_log_disable(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[])
+{
+ if (nrhs < 2) {
+ mexErrMsgTxt("Not enough arguments. See the help document for a detailed argument list. \n");
+ return;
+ }
+ string sType = mexToString(prhs[1]);
+ if(sType == "all"){
+ astra::CLogger::disable();
+ }else if(sType == "file"){
+ astra::CLogger::disableFile();
+ }else if(sType == "screen"){
+ astra::CLogger::disableScreen();
+ } else {
+ mexErrMsgTxt("Specify which output to disable ('all', 'file', or 'screen')");
+ }
+}
+
+//-----------------------------------------------------------------------------------------
+/** astra_mex_log('format', type, fmt);
+ *
+ * Enable logging.
+ * type: which output to format ('file', 'screen')
+ * fmt: format string
+ * Here are the substitutions you may use:
+ * %f: Source file name generating the log call.
+ * %n: Source line number where the log call was made.
+ * %m: The message text sent to the logger (after printf formatting).
+ * %d: The current date, formatted using the logger's date format.
+ * %t: The current time, formatted using the logger's time format.
+ * %l: The log level (one of "DEBUG", "INFO", "WARN", or "ERROR").
+ * %%: A literal percent sign.
+ * The default format string is "%d %t %f(%n): %l: %m\n".
+ */
+void astra_mex_log_format(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[])
+{
+ if (nrhs < 3) {
+ mexErrMsgTxt("Not enough arguments. See the help document for a detailed argument list. \n");
+ return;
+ }
+ string sType = mexToString(prhs[1]);
+ string sFormat = mexToString(prhs[2]);
+ if (!sFormat.empty())
+ {
+ char lastChar = *sFormat.rbegin();
+ if (lastChar!='\n'){
+ sFormat += '\n';
+ }
+ }else{
+ sFormat += '\n';
+ }
+ if(sType == "file"){
+ astra::CLogger::setFormatFile(sFormat.c_str());
+ }else if(sType == "screen"){
+ astra::CLogger::setFormatScreen(sFormat.c_str());
+ } else {
+ mexErrMsgTxt("Specify which output to format ('file' or 'screen')");
+ }
+}
+
+//-----------------------------------------------------------------------------------------
+/** astra_mex_log('output', type, output, level);
+ *
+ * Set output file / output screen.
+ * type: which output to set ('file', 'screen')
+ * output: which output file / screen to use:
+ * 'file': filename
+ * 'screen': 'stdout' or 'stderr'
+ * level: logging level to use ('debug', 'info', 'warn', or 'error')
+ */
+void astra_mex_log_output(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[])
+{
+ if (nrhs < 4) {
+ mexErrMsgTxt("Not enough arguments. See the help document for a detailed argument list. \n");
+ return;
+ }
+ string sType = mexToString(prhs[1]);
+ string sOutput = mexToString(prhs[2]);
+ string sLevel = mexToString(prhs[3]);
+ log_level eLevel;
+ if(sLevel == "debug"){
+ eLevel = LOG_DEBUG;
+ }else if(sLevel == "info"){
+ eLevel = LOG_INFO;
+ }else if(sLevel == "warn"){
+ eLevel = LOG_WARN;
+ }else if(sLevel == "error"){
+ eLevel = LOG_ERROR;
+ }else{
+ mexErrMsgTxt("Specify which log level to use ('debug', 'info', 'warn', or 'error')");
+ }
+ if(sType == "file"){
+ astra::CLogger::setOutputFile(sOutput.c_str(),eLevel);
+ }else if(sType == "screen"){
+ int fd;
+ if(sOutput == "stdout"){
+ fd=1;
+ }else if(sOutput == "stderr"){
+ fd=2;
+ }else{
+ mexErrMsgTxt("Specify which screen to output to ('stdout' or 'stderr')");
+ }
+ astra::CLogger::setOutputScreen(fd,eLevel);
+ } else {
+ mexErrMsgTxt("Specify which output to set ('file' or 'screen')");
+ }
+}
+
+//-----------------------------------------------------------------------------------------
+static void printHelp()
+{
+ mexPrintf("Please specify a mode of operation.\n");
+ mexPrintf("Valid modes: debug, info, warn, error, enable, disable, format, output\n");
+}
+
+//-----------------------------------------------------------------------------------------
+/**
+ * ... = astra_mex_log(mode, ...);
+ */
+void mexFunction(int nlhs, mxArray* plhs[],
+ int nrhs, const mxArray* prhs[])
+{
+ // INPUT: Mode
+ string sMode = "";
+ if (1 <= nrhs) {
+ sMode = mexToString(prhs[0]);
+ } else {
+ printHelp();
+ return;
+ }
+
+ initASTRAMex();
+
+ // SWITCH (MODE)
+ if (sMode == "debug") {
+ astra_mex_log_debug(nlhs, plhs, nrhs, prhs);
+ }else if (sMode == "info") {
+ astra_mex_log_info(nlhs, plhs, nrhs, prhs);
+ }else if (sMode == "warn") {
+ astra_mex_log_warn(nlhs, plhs, nrhs, prhs);
+ }else if (sMode == "error") {
+ astra_mex_log_error(nlhs, plhs, nrhs, prhs);
+ }else if (sMode == "enable") {
+ astra_mex_log_enable(nlhs, plhs, nrhs, prhs);
+ }else if (sMode == "disable") {
+ astra_mex_log_disable(nlhs, plhs, nrhs, prhs);
+ }else if (sMode == "format") {
+ astra_mex_log_format(nlhs, plhs, nrhs, prhs);
+ }else if (sMode == "output") {
+ astra_mex_log_output(nlhs, plhs, nrhs, prhs);
+ } else {
+ printHelp();
+ }
+ return;
+}
diff --git a/matlab/mex/astra_mex_log_vc09.vcproj b/matlab/mex/astra_mex_log_vc09.vcproj
new file mode 100644
index 0000000..0e0d469
--- /dev/null
+++ b/matlab/mex/astra_mex_log_vc09.vcproj
@@ -0,0 +1,612 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="astra_mex_log"
+ ProjectGUID="{CA2840B3-DA68-41B5-AC57-F5DFD20ED8F8}"
+ RootNamespace="astraMatlab"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ <Platform
+ Name="x64"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug_CUDA|Win32"
+ OutputDirectory="$(SolutionDir)bin\$(PlatformName)\$(ConfigurationName)"
+ IntermediateDirectory="$(OutDir)\obj\$(ProjectName)"
+ ConfigurationType="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="$(MATLAB_ROOT)\extern\include\;&quot;$(CUDA_INC_PATH)&quot;;..\..\lib\include;..\..\include"
+ PreprocessorDefinitions="ASTRA_CUDA;__SSE2__"
+ Optimization="0"
+ RuntimeLibrary="3"
+ EnableEnhancedInstructionSet="2"
+ OpenMP="true"
+ AdditionalOptions="/MP"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="AstraCuda32D.lib libmex.lib libmx.lib libut.lib"
+ OutputFile="$(OutDir)\$(ProjectName)_c.mexw32"
+ AdditionalLibraryDirectories="..\..\bin\win32;$(MATLAB_ROOT)\extern\lib\win32\microsoft;..\..\lib\win32"
+ ModuleDefinitionFile="mex.def"
+ GenerateDebugInformation="true"
+ TargetMachine="1"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug_CUDA|x64"
+ OutputDirectory="$(SolutionDir)bin\$(PlatformName)\$(ConfigurationName)"
+ IntermediateDirectory="$(OutDir)\obj\$(ProjectName)"
+ ConfigurationType="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="$(MATLAB_ROOT)\extern\include\;&quot;$(CUDA_INC_PATH)&quot;;..\..\lib\include;..\..\include"
+ PreprocessorDefinitions="ASTRA_CUDA;__SSE2__"
+ Optimization="0"
+ RuntimeLibrary="3"
+ OpenMP="true"
+ AdditionalOptions="/MP"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="AstraCuda64D.lib libmex.lib libmx.lib libut.lib"
+ OutputFile="$(OutDir)\$(ProjectName)_c.mexw64"
+ AdditionalLibraryDirectories="..\..\bin\x64;$(MATLAB_ROOT)\extern\lib\win64\microsoft;..\..\lib\x64"
+ ModuleDefinitionFile="mex.def"
+ GenerateDebugInformation="true"
+ TargetMachine="17"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)bin\$(PlatformName)\$(ConfigurationName)"
+ IntermediateDirectory="$(OutDir)\obj\$(ProjectName)"
+ ConfigurationType="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="$(MATLAB_ROOT)\extern\include\;..\..\lib\include;..\..\include"
+ PreprocessorDefinitions="__SSE2__"
+ Optimization="0"
+ RuntimeLibrary="3"
+ EnableEnhancedInstructionSet="2"
+ OpenMP="true"
+ AdditionalOptions="/MP"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="Astra32D.lib libmex.lib libmx.lib libut.lib"
+ OutputFile="$(OutDir)\$(ProjectName)_c.mexw32"
+ AdditionalLibraryDirectories="..\..\bin\win32;$(MATLAB_ROOT)\extern\lib\win32\microsoft;..\..\lib\win32"
+ ModuleDefinitionFile="mex.def"
+ GenerateDebugInformation="true"
+ TargetMachine="1"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|x64"
+ OutputDirectory="$(SolutionDir)bin\$(PlatformName)\$(ConfigurationName)"
+ IntermediateDirectory="$(OutDir)\obj\$(ProjectName)"
+ ConfigurationType="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="$(MATLAB_ROOT)\extern\include\;..\..\lib\include;..\..\include"
+ PreprocessorDefinitions="__SSE2__"
+ Optimization="0"
+ RuntimeLibrary="3"
+ OpenMP="true"
+ AdditionalOptions="/MP"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="Astra64D.lib libmex.lib libmx.lib libut.lib"
+ OutputFile="$(OutDir)\$(ProjectName)_c.mexw64"
+ AdditionalLibraryDirectories="..\..\bin\x64;$(MATLAB_ROOT)\extern\lib\win64\microsoft;..\..\lib\x64"
+ ModuleDefinitionFile="mex.def"
+ GenerateDebugInformation="true"
+ TargetMachine="17"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release_CUDA|Win32"
+ OutputDirectory="$(SolutionDir)bin\$(PlatformName)\$(ConfigurationName)"
+ IntermediateDirectory="$(OutDir)\obj\$(ProjectName)"
+ ConfigurationType="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="$(MATLAB_ROOT)\extern\include\;&quot;$(CUDA_INC_PATH)&quot;;..\..\lib\include;..\..\include"
+ PreprocessorDefinitions="ASTRA_CUDA;__SSE2__"
+ Optimization="2"
+ RuntimeLibrary="2"
+ EnableEnhancedInstructionSet="2"
+ OpenMP="true"
+ AdditionalOptions="/MP"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="AstraCuda32.lib libmex.lib libmx.lib libut.lib"
+ OutputFile="$(OutDir)\$(ProjectName)_c.mexw32"
+ AdditionalLibraryDirectories="..\..\bin\win32;$(MATLAB_ROOT)\extern\lib\win32\microsoft;..\..\lib\win32"
+ ModuleDefinitionFile="mex.def"
+ GenerateDebugInformation="false"
+ TargetMachine="1"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release_CUDA|x64"
+ OutputDirectory="$(SolutionDir)bin\$(PlatformName)\$(ConfigurationName)"
+ IntermediateDirectory="$(OutDir)\obj\$(ProjectName)"
+ ConfigurationType="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="$(MATLAB_ROOT)\extern\include\;&quot;$(CUDA_INC_PATH)&quot;;..\..\lib\include;..\..\include"
+ PreprocessorDefinitions="ASTRA_CUDA;__SSE2__"
+ Optimization="2"
+ RuntimeLibrary="2"
+ OpenMP="true"
+ AdditionalOptions="/MP"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="AstraCuda64.lib libmex.lib libmx.lib libut.lib"
+ OutputFile="$(OutDir)\$(ProjectName)_c.mexw64"
+ AdditionalLibraryDirectories="..\..\bin\x64;$(MATLAB_ROOT)\extern\lib\win64\microsoft;..\..\lib\x64"
+ ModuleDefinitionFile="mex.def"
+ GenerateDebugInformation="false"
+ TargetMachine="17"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)bin\$(PlatformName)\$(ConfigurationName)"
+ IntermediateDirectory="$(OutDir)\obj\$(ProjectName)"
+ ConfigurationType="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="$(MATLAB_ROOT)\extern\include\;..\..\lib\include;..\..\include"
+ PreprocessorDefinitions="__SSE2__"
+ Optimization="2"
+ RuntimeLibrary="2"
+ EnableEnhancedInstructionSet="2"
+ OpenMP="true"
+ AdditionalOptions="/MP"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="Astra32.lib libmex.lib libmx.lib libut.lib"
+ OutputFile="$(OutDir)\$(ProjectName)_c.mexw32"
+ AdditionalLibraryDirectories="..\..\bin\win32;$(MATLAB_ROOT)\extern\lib\win32\microsoft;..\..\lib\win32"
+ ModuleDefinitionFile="mex.def"
+ GenerateDebugInformation="false"
+ TargetMachine="1"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|x64"
+ OutputDirectory="$(SolutionDir)bin\$(PlatformName)\$(ConfigurationName)"
+ IntermediateDirectory="$(OutDir)\obj\$(ProjectName)"
+ ConfigurationType="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="$(MATLAB_ROOT)\extern\include\;..\..\lib\include;..\..\include"
+ PreprocessorDefinitions="__SSE2__"
+ Optimization="2"
+ RuntimeLibrary="2"
+ OpenMP="true"
+ AdditionalOptions="/MP"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="Astra64.lib libmex.lib libmx.lib libut.lib"
+ OutputFile="$(OutDir)\$(ProjectName)_c.mexw64"
+ AdditionalLibraryDirectories="..\..\bin\x64;$(MATLAB_ROOT)\extern\lib\win64\microsoft;..\..\lib\x64"
+ ModuleDefinitionFile="mex.def"
+ GenerateDebugInformation="false"
+ TargetMachine="17"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <File
+ RelativePath=".\astra_mex_log_c.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\mexHelpFunctions.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\mexHelpFunctions.h"
+ >
+ </File>
+ <File
+ RelativePath=".\mexInitFunctions.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\mexInitFunctions.h"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/matlab/mex/astra_mex_log_vc11.vcxproj b/matlab/mex/astra_mex_log_vc11.vcxproj
new file mode 100644
index 0000000..0a939cf
--- /dev/null
+++ b/matlab/mex/astra_mex_log_vc11.vcxproj
@@ -0,0 +1,306 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug_CUDA|Win32">
+ <Configuration>Debug_CUDA</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug_CUDA|x64">
+ <Configuration>Debug_CUDA</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release_CUDA|Win32">
+ <Configuration>Release_CUDA</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release_CUDA|x64">
+ <Configuration>Release_CUDA</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectName>astra_mex_log</ProjectName>
+ <ProjectGuid>{03B833F5-4FD6-4FBE-AAF4-E3305CD56D2E}</ProjectGuid>
+ <RootNamespace>astraMatlab</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_CUDA|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_CUDA|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_CUDA|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_CUDA|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug_CUDA|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug_CUDA|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release_CUDA|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release_CUDA|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>11.0.60610.1</_ProjectFileVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_CUDA|Win32'">
+ <OutDir>$(SolutionDir)bin\$(Platform)\$(Configuration)\</OutDir>
+ <IntDir>$(OutDir)obj\$(ProjectName)\</IntDir>
+ <TargetName>$(ProjectName)_c</TargetName>
+ <TargetExt>.mexw32</TargetExt>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_CUDA|x64'">
+ <OutDir>$(SolutionDir)bin\$(Platform)\$(Configuration)\</OutDir>
+ <IntDir>$(OutDir)obj\$(ProjectName)\</IntDir>
+ <TargetName>$(ProjectName)_c</TargetName>
+ <TargetExt>.mexw64</TargetExt>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(SolutionDir)bin\$(Platform)\$(Configuration)\</OutDir>
+ <IntDir>$(OutDir)obj\$(ProjectName)\</IntDir>
+ <TargetName>$(ProjectName)_c</TargetName>
+ <TargetExt>.mexw32</TargetExt>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <OutDir>$(SolutionDir)bin\$(Platform)\$(Configuration)\</OutDir>
+ <IntDir>$(OutDir)obj\$(ProjectName)\</IntDir>
+ <TargetName>$(ProjectName)_c</TargetName>
+ <TargetExt>.mexw64</TargetExt>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_CUDA|Win32'">
+ <OutDir>$(SolutionDir)bin\$(Platform)\$(Configuration)\</OutDir>
+ <IntDir>$(OutDir)obj\$(ProjectName)\</IntDir>
+ <TargetName>$(ProjectName)_c</TargetName>
+ <TargetExt>.mexw32</TargetExt>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_CUDA|x64'">
+ <OutDir>$(SolutionDir)bin\$(Platform)\$(Configuration)\</OutDir>
+ <IntDir>$(OutDir)obj\$(ProjectName)\</IntDir>
+ <TargetName>$(ProjectName)_c</TargetName>
+ <TargetExt>.mexw64</TargetExt>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)bin\$(Platform)\$(Configuration)\</OutDir>
+ <IntDir>$(OutDir)obj\$(ProjectName)\</IntDir>
+ <TargetName>$(ProjectName)_c</TargetName>
+ <TargetExt>.mexw32</TargetExt>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>$(SolutionDir)bin\$(Platform)\$(Configuration)\</OutDir>
+ <IntDir>$(OutDir)obj\$(ProjectName)\</IntDir>
+ <TargetName>$(ProjectName)_c</TargetName>
+ <TargetExt>.mexw64</TargetExt>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_CUDA|Win32'">
+ <ClCompile>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <AdditionalIncludeDirectories>$(MATLAB_ROOT)\extern\include\;$(CUDA_PATH)\include;..\..\lib\include;..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <OpenMPSupport>true</OpenMPSupport>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>ASTRA_CUDA;__SSE2__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(OutDir)$(ProjectName)_c.mexw32</OutputFile>
+ <AdditionalDependencies>AstraCuda32D.lib;libmex.lib;libmx.lib;libut.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalLibraryDirectories>..\..\lib\win32\;..\..\bin\win32\Debug_CUDA;$(MATLAB_ROOT)\extern\lib\win32\microsoft;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <ModuleDefinitionFile>mex.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_CUDA|x64'">
+ <ClCompile>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <AdditionalIncludeDirectories>$(MATLAB_ROOT)\extern\include\;$(CUDA_PATH)\include;..\..\lib\include;..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <OpenMPSupport>true</OpenMPSupport>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>ASTRA_CUDA;__SSE2__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(OutDir)$(ProjectName)_c.mexw64</OutputFile>
+ <AdditionalDependencies>AstraCuda64D.lib;libmex.lib;libmx.lib;libut.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalLibraryDirectories>..\..\lib\x64\;..\..\bin\x64\Debug_CUDA;$(MATLAB_ROOT)\extern\lib\win64\microsoft;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <ModuleDefinitionFile>mex.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <AdditionalIncludeDirectories>$(MATLAB_ROOT)\extern\include\;$(CUDA_PATH)\include;..\..\lib\include;..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <OpenMPSupport>true</OpenMPSupport>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>__SSE2__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(OutDir)$(ProjectName)_c.mexw32</OutputFile>
+ <AdditionalDependencies>Astra32D.lib;libmex.lib;libmx.lib;libut.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalLibraryDirectories>..\..\lib\win32\;..\..\bin\win32\Debug;$(MATLAB_ROOT)\extern\lib\win32\microsoft;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <ModuleDefinitionFile>mex.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <AdditionalIncludeDirectories>$(MATLAB_ROOT)\extern\include\;$(CUDA_PATH)\include;..\..\lib\include;..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <OpenMPSupport>true</OpenMPSupport>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>__SSE2__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(OutDir)$(ProjectName)_c.mexw64</OutputFile>
+ <AdditionalDependencies>Astra64D.lib;libmex.lib;libmx.lib;libut.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalLibraryDirectories>..\..\lib\x64\;..\..\bin\x64\Debug;$(MATLAB_ROOT)\extern\lib\win64\microsoft;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <ModuleDefinitionFile>mex.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_CUDA|Win32'">
+ <ClCompile>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <AdditionalIncludeDirectories>$(MATLAB_ROOT)\extern\include\;$(CUDA_PATH)\include;..\..\lib\include;..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <OpenMPSupport>true</OpenMPSupport>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <Optimization>MaxSpeed</Optimization>
+ <PreprocessorDefinitions>ASTRA_CUDA;__SSE2__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(OutDir)$(ProjectName)_c.mexw32</OutputFile>
+ <AdditionalDependencies>AstraCuda32.lib;libmex.lib;libmx.lib;libut.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalLibraryDirectories>..\..\lib\win32\;..\..\bin\win32\Release_CUDA;$(MATLAB_ROOT)\extern\lib\win32\microsoft;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <ModuleDefinitionFile>mex.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_CUDA|x64'">
+ <ClCompile>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <AdditionalIncludeDirectories>$(MATLAB_ROOT)\extern\include\;$(CUDA_PATH)\include;..\..\lib\include;..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <OpenMPSupport>true</OpenMPSupport>
+ <Optimization>MaxSpeed</Optimization>
+ <PreprocessorDefinitions>ASTRA_CUDA;__SSE2__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(OutDir)$(ProjectName)_c.mexw64</OutputFile>
+ <AdditionalDependencies>AstraCuda64.lib;libmex.lib;libmx.lib;libut.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalLibraryDirectories>..\..\lib\x64\;..\..\bin\x64\Release_CUDA;$(MATLAB_ROOT)\extern\lib\win64\microsoft;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <ModuleDefinitionFile>mex.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <AdditionalIncludeDirectories>$(MATLAB_ROOT)\extern\include\;$(CUDA_PATH)\include;..\..\lib\include;..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <OpenMPSupport>true</OpenMPSupport>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <Optimization>MaxSpeed</Optimization>
+ <PreprocessorDefinitions>__SSE2__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(OutDir)$(ProjectName)_c.mexw32</OutputFile>
+ <AdditionalDependencies>Astra32.lib;libmex.lib;libmx.lib;libut.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalLibraryDirectories>..\..\lib\win32\;..\..\bin\win32\Release;$(MATLAB_ROOT)\extern\lib\win32\microsoft;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <ModuleDefinitionFile>mex.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <AdditionalIncludeDirectories>$(MATLAB_ROOT)\extern\include\;$(CUDA_PATH)\include;..\..\lib\include;..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <OpenMPSupport>true</OpenMPSupport>
+ <Optimization>MaxSpeed</Optimization>
+ <PreprocessorDefinitions>__SSE2__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(OutDir)$(ProjectName)_c.mexw64</OutputFile>
+ <AdditionalDependencies>Astra64.lib;libmex.lib;libmx.lib;libut.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalLibraryDirectories>..\..\lib\x64\;..\..\bin\x64\Release;$(MATLAB_ROOT)\extern\lib\win64\microsoft;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <ModuleDefinitionFile>mex.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="astra_mex_log_c.cpp" />
+ <ClCompile Include="mexHelpFunctions.cpp" />
+ <ClCompile Include="mexInitFunctions.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="mexHelpFunctions.h" />
+ <ClInclude Include="mexInitFunctions.h" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/matlab/mex/astra_mex_matrix_c.cpp b/matlab/mex/astra_mex_matrix_c.cpp
index 01ad08b..aa31383 100644
--- a/matlab/mex/astra_mex_matrix_c.cpp
+++ b/matlab/mex/astra_mex_matrix_c.cpp
@@ -32,6 +32,7 @@ $Id$
*/
#include <mex.h>
#include "mexHelpFunctions.h"
+#include "mexInitFunctions.h"
#include <list>
@@ -412,6 +413,8 @@ void mexFunction(int nlhs, mxArray* plhs[],
return;
}
+ initASTRAMex();
+
// SWITCH (MODE)
if (sMode == std::string("get")) {
astra_mex_matrix_get(nlhs, plhs, nrhs, prhs);
diff --git a/matlab/mex/astra_mex_matrix_vc09.vcproj b/matlab/mex/astra_mex_matrix_vc09.vcproj
index e4b57e9..3aa17a5 100644
--- a/matlab/mex/astra_mex_matrix_vc09.vcproj
+++ b/matlab/mex/astra_mex_matrix_vc09.vcproj
@@ -598,6 +598,14 @@
RelativePath=".\mexHelpFunctions.h"
>
</File>
+ <File
+ RelativePath=".\mexInitFunctions.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\mexInitFunctions.h"
+ >
+ </File>
</Files>
<Globals>
</Globals>
diff --git a/matlab/mex/astra_mex_matrix_vc11.vcxproj b/matlab/mex/astra_mex_matrix_vc11.vcxproj
index 91e32bd..abf86a7 100644
--- a/matlab/mex/astra_mex_matrix_vc11.vcxproj
+++ b/matlab/mex/astra_mex_matrix_vc11.vcxproj
@@ -294,9 +294,11 @@
<ItemGroup>
<ClCompile Include="astra_mex_matrix_c.cpp" />
<ClCompile Include="mexHelpFunctions.cpp" />
+ <ClCompile Include="mexInitFunctions.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="mexHelpFunctions.h" />
+ <ClInclude Include="mexInitFunctions.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
diff --git a/matlab/mex/astra_mex_projector3d_c.cpp b/matlab/mex/astra_mex_projector3d_c.cpp
index 5381cf6..c3b547f 100644
--- a/matlab/mex/astra_mex_projector3d_c.cpp
+++ b/matlab/mex/astra_mex_projector3d_c.cpp
@@ -33,6 +33,7 @@ $Id$
#include <mex.h>
#include "mexHelpFunctions.h"
+#include "mexInitFunctions.h"
#include "astra/Globals.h"
@@ -403,6 +404,8 @@ void mexFunction(int nlhs, mxArray* plhs[],
return;
}
+ initASTRAMex();
+
// SWITCH (MODE)
if (sMode == "create") {
astra_mex_projector3d_create(nlhs, plhs, nrhs, prhs);
diff --git a/matlab/mex/astra_mex_projector3d_vc09.vcproj b/matlab/mex/astra_mex_projector3d_vc09.vcproj
index 09fa3c6..b9464a2 100644
--- a/matlab/mex/astra_mex_projector3d_vc09.vcproj
+++ b/matlab/mex/astra_mex_projector3d_vc09.vcproj
@@ -598,6 +598,14 @@
RelativePath=".\mexHelpFunctions.h"
>
</File>
+ <File
+ RelativePath=".\mexInitFunctions.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\mexInitFunctions.h"
+ >
+ </File>
</Files>
<Globals>
</Globals>
diff --git a/matlab/mex/astra_mex_projector3d_vc11.vcxproj b/matlab/mex/astra_mex_projector3d_vc11.vcxproj
index b8e8001..42eb0f1 100644
--- a/matlab/mex/astra_mex_projector3d_vc11.vcxproj
+++ b/matlab/mex/astra_mex_projector3d_vc11.vcxproj
@@ -294,9 +294,11 @@
<ItemGroup>
<ClCompile Include="astra_mex_projector3d_c.cpp" />
<ClCompile Include="mexHelpFunctions.cpp" />
+ <ClCompile Include="mexInitFunctions.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="mexHelpFunctions.h" />
+ <ClInclude Include="mexInitFunctions.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
diff --git a/matlab/mex/astra_mex_projector_c.cpp b/matlab/mex/astra_mex_projector_c.cpp
index 58cd953..204ba8e 100644
--- a/matlab/mex/astra_mex_projector_c.cpp
+++ b/matlab/mex/astra_mex_projector_c.cpp
@@ -34,6 +34,7 @@ $Id$
#include <mex.h>
#include "mexHelpFunctions.h"
+#include "mexInitFunctions.h"
#include "astra/AstraObjectManager.h"
#include "astra/Projector2D.h"
@@ -476,6 +477,8 @@ void mexFunction(int nlhs, mxArray* plhs[],
return;
}
+ initASTRAMex();
+
// SWITCH (MODE)
if (sMode == "create") {
astra_mex_projector_create(nlhs, plhs, nrhs, prhs);
diff --git a/matlab/mex/astra_mex_projector_vc09.vcproj b/matlab/mex/astra_mex_projector_vc09.vcproj
index c0a5cd8..05c207f 100644
--- a/matlab/mex/astra_mex_projector_vc09.vcproj
+++ b/matlab/mex/astra_mex_projector_vc09.vcproj
@@ -598,6 +598,14 @@
RelativePath=".\mexHelpFunctions.h"
>
</File>
+ <File
+ RelativePath=".\mexInitFunctions.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\mexInitFunctions.h"
+ >
+ </File>
</Files>
<Globals>
</Globals>
diff --git a/matlab/mex/astra_mex_projector_vc11.vcxproj b/matlab/mex/astra_mex_projector_vc11.vcxproj
index 03a574d..e944949 100644
--- a/matlab/mex/astra_mex_projector_vc11.vcxproj
+++ b/matlab/mex/astra_mex_projector_vc11.vcxproj
@@ -294,9 +294,11 @@
<ItemGroup>
<ClCompile Include="astra_mex_projector_c.cpp" />
<ClCompile Include="mexHelpFunctions.cpp" />
+ <ClCompile Include="mexInitFunctions.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="mexHelpFunctions.h" />
+ <ClInclude Include="mexInitFunctions.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
diff --git a/matlab/mex/astra_mex_vc09.vcproj b/matlab/mex/astra_mex_vc09.vcproj
index 9615f53..e4d7d07 100644
--- a/matlab/mex/astra_mex_vc09.vcproj
+++ b/matlab/mex/astra_mex_vc09.vcproj
@@ -598,6 +598,14 @@
RelativePath=".\mexHelpFunctions.h"
>
</File>
+ <File
+ RelativePath=".\mexInitFunctions.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\mexInitFunctions.h"
+ >
+ </File>
</Files>
<Globals>
</Globals>
diff --git a/matlab/mex/astra_mex_vc11.vcxproj b/matlab/mex/astra_mex_vc11.vcxproj
index 04df41c..f1324b4 100644
--- a/matlab/mex/astra_mex_vc11.vcxproj
+++ b/matlab/mex/astra_mex_vc11.vcxproj
@@ -294,9 +294,11 @@
<ItemGroup>
<ClCompile Include="astra_mex_c.cpp" />
<ClCompile Include="mexHelpFunctions.cpp" />
+ <ClCompile Include="mexInitFunctions.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="mexHelpFunctions.h" />
+ <ClInclude Include="mexInitFunctions.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
diff --git a/matlab/mex/mexInitFunctions.cpp b/matlab/mex/mexInitFunctions.cpp
new file mode 100644
index 0000000..d8a50d7
--- /dev/null
+++ b/matlab/mex/mexInitFunctions.cpp
@@ -0,0 +1,24 @@
+#include <mex.h>
+#include "astra/Logging.h"
+
+bool mexIsInitialized=false;
+
+/**
+ * Callback to print log message to Matlab window.
+ *
+ */
+void logCallBack(const char *msg, size_t len){
+ mexPrintf(msg);
+}
+
+/**
+ * Initialize mex functions.
+ *
+ */
+void initASTRAMex(){
+ if(mexIsInitialized) return;
+ if(!astra::CLogger::setCallbackScreen(&logCallBack)){
+ mexErrMsgTxt("Error initializing mex functions.");
+ }
+ mexIsInitialized=true;
+}
diff --git a/matlab/mex/mexInitFunctions.h b/matlab/mex/mexInitFunctions.h
new file mode 100644
index 0000000..f16e9c9
--- /dev/null
+++ b/matlab/mex/mexInitFunctions.h
@@ -0,0 +1,6 @@
+#ifndef _INC_ASTRA_MEX_INITFUNCTIONS
+#define _INC_ASTRA_MEX_INITFUNCTIONS
+
+void initASTRAMex();
+
+#endif \ No newline at end of file
diff --git a/matlab/tools/astra_mex_log.m b/matlab/tools/astra_mex_log.m
new file mode 100644
index 0000000..28cfa18
--- /dev/null
+++ b/matlab/tools/astra_mex_log.m
@@ -0,0 +1,33 @@
+function [varargout] = astra_mex_log(varargin)
+%------------------------------------------------------------------------
+% Reference page in Help browser
+% <a href="matlab:docsearch('astra_mex_log' )">astra_mex_log</a>.
+%------------------------------------------------------------------------
+%------------------------------------------------------------------------
+% This file is part of the ASTRA Toolbox
+%
+% Copyright: 2010-2015, iMinds-Vision Lab, University of Antwerp
+% 2014-2015, CWI, Amsterdam
+% License: Open Source under GPLv3
+% Contact: astra@uantwerpen.be
+% Website: http://sf.net/projects/astra-toolbox
+%------------------------------------------------------------------------
+% $Id$
+if size(varargin,2)==2 && (strcmp(varargin{1},'debug') || strcmp(varargin{1},'info') || strcmp(varargin{1},'warn') || strcmp(varargin{1},'error'))
+ d = dbstack(1);
+ if size(d,1)==0
+ astra_mex_log_c(varargin{1},'Unknown',0,varargin{2})
+ else
+ astra_mex_log_c(varargin{1},d(1).file,d(1).line,varargin{2})
+ end
+else
+ if nargout == 0
+ astra_mex_log_c(varargin{:});
+ if exist('ans','var')
+ varargout{1} = ans;
+ end
+ else
+ varargout = cell(1,nargout);
+ [varargout{:}] = astra_mex_log_c(varargin{:});
+ end
+end \ No newline at end of file