Commit 551e238b authored by Dipl.-Ing. Jonas Stienen's avatar Dipl.-Ing. Jonas Stienen

Merge branch 'ma_2018/erraji' of...

Merge branch 'ma_2018/erraji' of https://git.rwth-aachen.de/ita/ITAPropagationPathSim into ma_2018/erraji
parents 0d3b0220 fabb0f5c
......@@ -6,12 +6,12 @@
#include <ITAGeo/Base.h>
#include <ITAGeo/Halfedge/MeshModel.h>
#include <ITAGeo/Utils.h>
#include<ITAPropagationPathSim/CombinatedModel/PropagationShapes.h>
#include<ITAPropagationPathSim/CombinedModel/PropagationShapes.h>
namespace ITAPropagationPathSim
{
namespace CombinatedModel
namespace CombinedModel
{
using namespace ITAGeo;
using namespace std;
......
......@@ -3,7 +3,7 @@
#include<ITAPropagationPathSim/CombinatedModel/PropagationShapes.h>
#include<ITAPropagationPathSim/CombinedModel/PropagationShapes.h>
// ITA includes
#include <ITAGeo/Base.h>
......@@ -12,7 +12,7 @@
namespace ITAPropagationPathSim
{
namespace CombinatedModel
namespace CombinedModel
{
using namespace ITAGeo;
using namespace std;
......
#ifndef INCLUDE_WATCHER_COMBINED_PROPAGATION_ENGINE
#define INCLUDE_WATCHER_COMBINED_PROPAGATION_ENGINE
#include<ITAPropagationPathSim/CombinatedModel/PropagationShapes.h>
#include<ITAPropagationPathSim/CombinedModel/PropagationShapes.h>
// ITA includes
#include <ITAGeo/Base.h>
......@@ -10,7 +10,7 @@
namespace ITAPropagationPathSim
{
namespace CombinatedModel
namespace CombinedModel
{
using namespace ITAGeo;
......@@ -43,7 +43,7 @@ namespace ITAPropagationPathSim
void CreateVisibilityMap();
bool CanPointIlluminateFace(const VistaVector3D & v3Point, const string & sMeshModelName, CITAMesh::FaceHandle hFace);
void CanEdgeIlluminateFace(bool & bCanEdgeIlluminateFaceOut, ITAPropagationPathSim::CombinatedModel::CPropagationFaceShared & pPropagationFace, ITAPropagationPathSim::CombinatedModel::CPropagationEdgeShared & pPropagationEdge);
void CanEdgeIlluminateFace(bool & bCanEdgeIlluminateFaceOut, ITAPropagationPathSim::CombinedModel::CPropagationFaceShared & pPropagationFace, ITAPropagationPathSim::CombinedModel::CPropagationEdgeShared & pPropagationEdge);
void CanFaceIlluminateEdge(bool & bCanFaceIlluminateEdgeOut, CPropagationFaceShared & pPropagationFace, CPropagationEdgeShared & pPropagationEdge);
void CanFaceIlluminateFace(bool & bCanFaceIlluminateFaceOut, CPropagationFaceShared & pPropagationFaceStart, CPropagationFaceShared & pPropagationFaceEnd);
void CanEdgeIlluminateEdge(bool & bCanEdgeIlluminateEdgeOut, CPropagationEdgeShared & pPropagationEdgeStart, CPropagationEdgeShared & pPropagationEdgeEnd);
......
......@@ -15,7 +15,7 @@ using namespace std;
namespace ITAPropagationPathSim
{
namespace CombinatedModel
namespace CombinedModel
{
// Typedefs
class CPropagationShape;
......
......@@ -6,14 +6,14 @@
#include <ITAGeo/Base.h>
#include <ITAGeo/Halfedge/MeshModel.h>
#include <ITAGeo/Utils.h>
#include<ITAPropagationPathSim/CombinatedModel/PropagationShapes.h>
#include<ITAPropagationPathSim/CombinedModel/PropagationShapes.h>
namespace ITAPropagationPathSim
{
namespace CombinatedModel
namespace CombinedModel
{
using namespace std;
......
# $Id:$
set( RelativeDir "include/ITAPropagationPathSim/CombinatedModel" )
set( RelativeSourceGroup "Header Files\\ITAPropagationPathSim\\CombinatedModel" )
set( RelativeDir "include/ITAPropagationPathSim/CombinedModel" )
set( RelativeSourceGroup "Header Files\\ITAPropagationPathSim\\CombinedModel" )
set( DirFiles
DiffractionLocator.h
ImageConstructor.h
PropagationEngine.h
PropagationConstructor.h
PropagationShapes.h
ReflectionLocator.h
)
......
......@@ -2,7 +2,7 @@
set( RelativeDir "include/ITAPropagationPathSim" )
set( RelativeSourceGroup "Header Files\\ITAPropagationPathSim" )
set( SubDirs MirrorImage ConvexDiffraction CombinatedModel BaseEngine UrbanEngine)
set( SubDirs MirrorImage ConvexDiffraction CombinedModel BaseEngine UrbanEngine)
set( DirFiles
Definitions.h
......
#include <ITAPropagationPathSim\CombinatedModel\DiffractionLocator.h>
#include <ITAPropagationPathSim\CombinedModel\DiffractionLocator.h>
using namespace std;
using namespace ITAGeo;
bool ITAPropagationPathSim::CombinatedModel::Diffraction::ConstructAperturePoints(shared_ptr<const CEmitter> pEmitter, shared_ptr<const CSensor> pSensor, vector<CPropagationShapeShared>& pPropagationLists)
bool ITAPropagationPathSim::CombinedModel::Diffraction::ConstructAperturePoints(shared_ptr<const CEmitter> pEmitter, shared_ptr<const CSensor> pSensor, vector<CPropagationShapeShared>& pPropagationLists)
{
for (auto& pPropagationStartPoint : pPropagationLists)
{
......@@ -109,7 +109,7 @@ bool ITAPropagationPathSim::CombinatedModel::Diffraction::ConstructAperturePoint
vpVertexDiff.push_back(make_shared<VistaVector3D>(*v3LastFromVertex - v3SensorPosition));
//Iterative a given number of times to get the exact position of the diffraction apertures
const size_t iNumIterations = 10;
const size_t iNumIterations = 5;
for(size_t iCurrentIteration = 0; iCurrentIteration< iNumIterations; iCurrentIteration++)
{
......
#include <ITAPropagationPathSim/CombinatedModel/ImageConstructor.h>
#include <ITAPropagationPathSim/CombinedModel/ImageConstructor.h>
using namespace ITAPropagationPathSim::CombinatedModel;
using namespace ITAPropagationPathSim::CombinedModel;
namespace ITAPropagationPathSim
{
namespace CombinatedModel
namespace CombinedModel
{
namespace ImageConstruction
{
......@@ -97,7 +97,7 @@ namespace ITAPropagationPathSim
return true;
}
void RecursivePrepareImageReceivers(ITAPropagationPathSim::CombinatedModel::CShapesMap &vpVisibilityMap, CPropagationShapeShared &vpShapeParent, std::shared_ptr<ImageReceiverMap> &pParentImageReceiverMap, int iOrder, int iMaxOrder)
void RecursivePrepareImageReceivers(ITAPropagationPathSim::CombinedModel::CShapesMap &vpVisibilityMap, CPropagationShapeShared &vpShapeParent, std::shared_ptr<ImageReceiverMap> &pParentImageReceiverMap, int iOrder, int iMaxOrder)
{
auto vpShapeChildren = vpVisibilityMap[vpShapeParent];
......
#include <ITAPropagationPathSim\CombinatedModel\PropagationEngine.h>
#include <ITAPropagationPathSim\CombinatedModel\ImageConstructor.h>
#include <ITAPropagationPathSim\CombinatedModel\DiffractionLocator.h>
#include <ITAPropagationPathSim\CombinatedModel\ReflectionLocator.h>
#include <ITAPropagationPathSim\CombinedModel\PropagationEngine.h>
#include <ITAPropagationPathSim\CombinedModel\ImageConstructor.h>
#include <ITAPropagationPathSim\CombinedModel\DiffractionLocator.h>
#include <ITAPropagationPathSim\CombinedModel\ReflectionLocator.h>
//Typedefs
typedef OpenMesh::PolyMesh_ArrayKernelT<> CITAMesh;
......@@ -10,7 +10,7 @@ struct CITAMeshPtr
CITAMesh* pMesh;
};
ITAPropagationPathSim::CombinatedModel::CPathEngine::CPathEngine(shared_ptr<const ITAGeo::Halfedge::CMeshModelList> pMeshModelList)
ITAPropagationPathSim::CombinedModel::CPathEngine::CPathEngine(shared_ptr<const ITAGeo::Halfedge::CMeshModelList> pMeshModelList)
{
m_pMeshModelList = pMeshModelList;
......@@ -33,7 +33,7 @@ ITAPropagationPathSim::CombinatedModel::CPathEngine::CPathEngine(shared_ptr<cons
}
void ITAPropagationPathSim::CombinatedModel::CPathEngine::ApplyEmitter(shared_ptr<ITAGeo::CEmitter> pEmitter, const int iMaxDiffractions, const int iMaxReflections, const int iMaxCombinedOrder)
void ITAPropagationPathSim::CombinedModel::CPathEngine::ApplyEmitter(shared_ptr<ITAGeo::CEmitter> pEmitter, const int iMaxDiffractions, const int iMaxReflections, const int iMaxCombinedOrder)
{
//Set emitter
m_pEmitter = pEmitter;
......@@ -53,7 +53,7 @@ void ITAPropagationPathSim::CombinatedModel::CPathEngine::ApplyEmitter(shared_pt
ImageConstruction::ConstructImageEdges(m_pEmitter, m_vpPropagationTree);
}
void ITAPropagationPathSim::CombinatedModel::CPathEngine::ApplySensor(shared_ptr<ITAGeo::CSensor> pSensor)
void ITAPropagationPathSim::CombinedModel::CPathEngine::ApplySensor(shared_ptr<ITAGeo::CSensor> pSensor)
{
//Set sensor
m_pSensor = pSensor;
......@@ -65,7 +65,7 @@ void ITAPropagationPathSim::CombinatedModel::CPathEngine::ApplySensor(shared_ptr
ImageConstruction::ConstructImageReceivers(m_pSensor, m_vpPropagationLists, m_mvpShapeVisibilityMap, *m_pMaxReflectionOrder);
}
void ITAPropagationPathSim::CombinatedModel::CPathEngine::ConstructPropagationPaths(ITAGeo::CPropagationPathList& oPaths)
void ITAPropagationPathSim::CombinedModel::CPathEngine::ConstructPropagationPaths(ITAGeo::CPropagationPathList& oPaths)
{
int iCounter = 0;
for (auto& pPropagationList : m_vpPropagationLists)
......@@ -114,7 +114,7 @@ void ITAPropagationPathSim::CombinatedModel::CPathEngine::ConstructPropagationPa
}
void ITAPropagationPathSim::CombinatedModel::CPathEngine::ConvertShapeListsToPropagationPaths(ITAGeo::CPropagationPathList& oPathsOut)
void ITAPropagationPathSim::CombinedModel::CPathEngine::ConvertShapeListsToPropagationPaths(ITAGeo::CPropagationPathList& oPathsOut)
{
//Add direct path
CPropagationPath oDirectPath;
......@@ -186,7 +186,7 @@ void ITAPropagationPathSim::CombinatedModel::CPathEngine::ConvertShapeListsToPro
}
void ITAPropagationPathSim::CombinatedModel::CPathEngine::CreatePropagationTree()
void ITAPropagationPathSim::CombinedModel::CPathEngine::CreatePropagationTree()
{
//Set initial values for number of diffractions/reflections
......@@ -269,7 +269,7 @@ void ITAPropagationPathSim::CombinatedModel::CPathEngine::CreatePropagationTree(
}
}
void ITAPropagationPathSim::CombinatedModel::CPathEngine::CreatePropagationLists()
void ITAPropagationPathSim::CombinedModel::CPathEngine::CreatePropagationLists()
{
for (auto& pPropagationShape : m_vpPropagationTree)
{
......@@ -277,7 +277,7 @@ void ITAPropagationPathSim::CombinatedModel::CPathEngine::CreatePropagationLists
}
}
void ITAPropagationPathSim::CombinatedModel::CPathEngine::RecursiveAddShapesToPropagationLists(shared_ptr<CPropagationShape>& pPropagationShapeIn)
void ITAPropagationPathSim::CombinedModel::CPathEngine::RecursiveAddShapesToPropagationLists(shared_ptr<CPropagationShape>& pPropagationShapeIn)
{
if (pPropagationShapeIn == nullptr)
return;
......@@ -395,7 +395,7 @@ void ITAPropagationPathSim::CombinatedModel::CPathEngine::RecursiveAddShapesToPr
}
}
void ITAPropagationPathSim::CombinatedModel::CPathEngine::RecursiveAddChildrenToTree(const CPropagationShapeShared & pPropagationShapeChildIn, CPropagationShapeShared& vpShapeChildCopyOut, int iReflectionOrder, int iDiffractionOrder, int iCombinedOrder)
void ITAPropagationPathSim::CombinedModel::CPathEngine::RecursiveAddChildrenToTree(const CPropagationShapeShared & pPropagationShapeChildIn, CPropagationShapeShared& vpShapeChildCopyOut, int iReflectionOrder, int iDiffractionOrder, int iCombinedOrder)
{
switch (pPropagationShapeChildIn->iShapeType)
......@@ -463,7 +463,7 @@ void ITAPropagationPathSim::CombinatedModel::CPathEngine::RecursiveAddChildrenTo
}
}
void ITAPropagationPathSim::CombinatedModel::CPathEngine::CreateVisibilityMap()
void ITAPropagationPathSim::CombinedModel::CPathEngine::CreateVisibilityMap()
{
//Create a visibility map
for (auto& pPropagationShapeFrom : m_vpPropagationShapes)
......@@ -534,14 +534,14 @@ void ITAPropagationPathSim::CombinatedModel::CPathEngine::CreateVisibilityMap()
}
}
bool ITAPropagationPathSim::CombinatedModel::CPathEngine::CanPointIlluminateFace(const VistaVector3D& v3Point, const string& sMeshModelName, CITAMesh::FaceHandle hFace)
bool ITAPropagationPathSim::CombinedModel::CPathEngine::CanPointIlluminateFace(const VistaVector3D& v3Point, const string& sMeshModelName, CITAMesh::FaceHandle hFace)
{
auto& pFaceMesh = m_pMeshModelList->GetMeshModel(sMeshModelName)->GetMesh()->pMesh;
return ITAGeoUtils::CanFaceBeIlluminated(*pFaceMesh, hFace, v3Point);
}
void ITAPropagationPathSim::CombinatedModel::CPathEngine::CanEdgeIlluminateFace(bool &bCanEdgeIlluminateFaceOut, CPropagationFaceShared & pPropagationFace, CPropagationEdgeShared & pPropagationEdge)
void ITAPropagationPathSim::CombinedModel::CPathEngine::CanEdgeIlluminateFace(bool &bCanEdgeIlluminateFaceOut, CPropagationFaceShared & pPropagationFace, CPropagationEdgeShared & pPropagationEdge)
{
auto& pFaceMesh = m_pMeshModelList->GetMeshModel(*pPropagationFace->sMeshModelName)->GetMesh()->pMesh;
......@@ -551,7 +551,7 @@ void ITAPropagationPathSim::CombinatedModel::CPathEngine::CanEdgeIlluminateFace(
bCanEdgeIlluminateFaceOut |= ITAGeoUtils::CanFaceBeIlluminated(*pFaceMesh, pPropagationFace->hFace, (1 - eps)*(*pPropagationEdge->v3ToVertex) + (eps)*(*pPropagationEdge->v3FromVertex));
}
void ITAPropagationPathSim::CombinatedModel::CPathEngine::CanFaceIlluminateEdge(bool &bCanFaceIlluminateEdgeOut, CPropagationFaceShared & pPropagationFace, CPropagationEdgeShared & pPropagationEdge)
void ITAPropagationPathSim::CombinedModel::CPathEngine::CanFaceIlluminateEdge(bool &bCanFaceIlluminateEdgeOut, CPropagationFaceShared & pPropagationFace, CPropagationEdgeShared & pPropagationEdge)
{
auto& pEdgeMesh = m_pMeshModelList->GetMeshModel(*pPropagationEdge->sMeshModelName)->GetMesh()->pMesh;
......@@ -567,7 +567,7 @@ void ITAPropagationPathSim::CombinatedModel::CPathEngine::CanFaceIlluminateEdge(
}
}
void ITAPropagationPathSim::CombinatedModel::CPathEngine::CanFaceIlluminateFace(bool &bCanFaceIlluminateFaceOut, CPropagationFaceShared & pPropagationFaceStart, CPropagationFaceShared & pPropagationFaceEnd)
void ITAPropagationPathSim::CombinedModel::CPathEngine::CanFaceIlluminateFace(bool &bCanFaceIlluminateFaceOut, CPropagationFaceShared & pPropagationFaceStart, CPropagationFaceShared & pPropagationFaceEnd)
{
auto& pFaceEndMesh = m_pMeshModelList->GetMeshModel(*pPropagationFaceEnd->sMeshModelName)->GetMesh()->pMesh;
......@@ -582,7 +582,7 @@ void ITAPropagationPathSim::CombinatedModel::CPathEngine::CanFaceIlluminateFace(
}
}
void ITAPropagationPathSim::CombinatedModel::CPathEngine::CanEdgeIlluminateEdge(bool &bCanEdgeIlluminateEdgeOut, CPropagationEdgeShared & pPropagationEdgeStart, CPropagationEdgeShared & pPropagationEdgeEnd)
void ITAPropagationPathSim::CombinedModel::CPathEngine::CanEdgeIlluminateEdge(bool &bCanEdgeIlluminateEdgeOut, CPropagationEdgeShared & pPropagationEdgeStart, CPropagationEdgeShared & pPropagationEdgeEnd)
{
auto& pEdgeEndMesh = m_pMeshModelList->GetMeshModel(*pPropagationEdgeEnd->sMeshModelName)->GetMesh()->pMesh;
......@@ -594,7 +594,7 @@ void ITAPropagationPathSim::CombinatedModel::CPathEngine::CanEdgeIlluminateEdge(
bCanEdgeIlluminateEdgeOut |= ITAGeoUtils::CanFaceBeIlluminated(*pEdgeEndMesh, pPropagationEdgeEnd->hOppositeFace, (1 - eps)*(*pPropagationEdgeStart->v3ToVertex) + (eps)*(*pPropagationEdgeStart->v3FromVertex));
}
void ITAPropagationPathSim::CombinatedModel::CPathEngine::ConstructPropagationShapes()
void ITAPropagationPathSim::CombinedModel::CPathEngine::ConstructPropagationShapes()
{
for (auto& pMeshModel : *m_pMeshModelList)
......
#include <ITAPropagationPathSim/CombinatedModel/PropagationShapes.h>
#include <ITAPropagationPathSim/CombinedModel/PropagationShapes.h>
using namespace ITAPropagationPathSim::CombinatedModel;
using namespace ITAPropagationPathSim::CombinedModel;
void CPropagationShape::CopyFrom(const CPropagationShape & oPropagationShapeIn)
......
#include <ITAPropagationPathSim\CombinatedModel\ReflectionLocator.h>
#include <ITAPropagationPathSim\CombinedModel\ReflectionLocator.h>
bool ITAPropagationPathSim::CombinatedModel::Reflection::ConstructPointsOfReflection(vector<CPropagationShapeShared>& pPropagationLists, shared_ptr<const ITAGeo::CSensor> pSensor)
bool ITAPropagationPathSim::CombinedModel::Reflection::ConstructPointsOfReflection(vector<CPropagationShapeShared>& pPropagationLists, shared_ptr<const ITAGeo::CSensor> pSensor)
{
for (auto& pStartShape : pPropagationLists)
{
......
# $Id:$
set( RelativeDir "src/ITAPropagationPathSim/CombinatedModel" )
set( RelativeSourceGroup "Source Files\\ITAPropagationPathSim\\CombinatedModel" )
set( RelativeDir "src/ITAPropagationPathSim/CombinedModel" )
set( RelativeSourceGroup "Source Files\\ITAPropagationPathSim\\CombinedModel" )
set( DirFiles
DiffractionLocator.cpp
ImageConstructor.cpp
PropagationEngine.cpp
PropagationConstructor.cpp
PropagationShapes.cpp
ReflectionLocator.cpp
)
......
......@@ -2,7 +2,7 @@
set( RelativeDir "src/ITAPropagationPathSim" )
set( RelativeSourceGroup "Source Files\\ITAPropagationPathSim" )
set( SubDirs MirrorImage ConvexDiffraction CombinatedModel BaseEngine UrbanEngine)
set( SubDirs MirrorImage ConvexDiffraction CombinedModel BaseEngine UrbanEngine)
set( DirFiles
#_SourceFiles.cmake
......
......@@ -3,6 +3,6 @@ cmake_minimum_required( VERSION 2.8 )
add_subdirectory( "ImageModel" )
add_subdirectory( "ConvexDiffraction" )
add_subdirectory( "MeshModelList")
add_subdirectory( "CombinatedModel")
add_subdirectory( "CombinedModel")
add_subdirectory( "UrbanDiffraction" )
#add_subdirectory( "IndoorDiffraction" )
\ No newline at end of file
......@@ -15,11 +15,11 @@ if( ITA_GEOMETRICAL_ACOUSTICS_BUILD_STATIC )
add_definitions( -DITA_PROPAGATION_PATH_SIM_STATIC -DITA_GEO_STATIC )
endif( )
add_executable( CombinatedModelTest CombinatedModelTest.cpp )
target_link_libraries( CombinatedModelTest ${VISTA_USE_PACKAGE_LIBRARIES} )
add_executable( CombinedModelTest CombinedModelTest.cpp )
target_link_libraries( CombinedModelTest ${VISTA_USE_PACKAGE_LIBRARIES} )
vista_configure_app( CombinatedModelTest )
vista_install( CombinatedModelTest )
vista_create_default_info_file( CombinatedModelTest )
vista_configure_app( CombinedModelTest )
vista_install( CombinedModelTest )
vista_create_default_info_file( CombinedModelTest )
set_property( TARGET CombinatedModelTest PROPERTY FOLDER "ITAGeometricalAcoustics/Tests/ITAPropagationPathSim/CombinatedModel" )
set_property( TARGET CombinedModelTest PROPERTY FOLDER "ITAGeometricalAcoustics/Tests/ITAPropagationPathSim/CombinedModel" )
......@@ -21,7 +21,7 @@
#include <ITAStopWatch.h>
#include <ITAStringUtils.h>
#include <ITAPropagationPathSim/CombinatedModel/PropagationEngine.h>
#include <ITAPropagationPathSim/CombinedModel/PropagationEngine.h>
#include <ITAGeo/Base.h>
#include <ITAGeo/Utils.h>
#include <ITAGeo/SketchUp/Model.h>
......@@ -84,12 +84,12 @@ int main( int iNumInArgs, char* pcInArgs[] )
ITAStopWatch sw; sw.start();
auto pPathEngine = make_shared<CombinatedModel::CPathEngine>(pMeshModelList);
auto pPathEngine = make_shared<CombinedModel::CPathEngine>(pMeshModelList);
cout << "Calculation time initialization path engine: " << timeToString(sw.stop()) << endl;
sw.start();
pPathEngine->ApplyEmitter(pEmitter,ITAGeo::DIFFRACTION_ORDER_2,ORDER_4,ORDER_6);
pPathEngine->ApplyEmitter(pEmitter,ITAGeo::DIFFRACTION_ORDER_2,ORDER_2,ORDER_3);
cout << "Calculation time applying emitter: " << timeToString(sw.stop()) << endl;
sw.start();
......@@ -113,30 +113,19 @@ int main( int iNumInArgs, char* pcInArgs[] )
for (auto& path : oPathListVisible)
for (auto& oPath : oPathListVisible)
{
long iNumReflections = 0, iNumDiffractions = 0;
for (auto& anchor : path)
{
if (anchor->iAnchorType == ITAGeo::CPropagationAnchor::SPECULAR_REFLECTION)
{
iNumReflections++;
}
else if (anchor->iAnchorType == ITAGeo::CPropagationAnchor::DIFFRACTION_OUTER_APEX)
{
iNumDiffractions++;
}
}
long iNumReflections = (long) oPath.GetNumReflections();
long iNumDiffractions = (long) oPath.GetNumDiffractions();
string sPathName = "Paths_Refl_Order_" + to_string(iNumReflections) + "_Diffr_Order_" + to_string(iNumDiffractions);
oGeoModel.AddPropagationPathVisualization(path, sPathName);
oGeoModel.AddPropagationPathVisualization(oPath, sPathName);
}
oPathListVisible.Store("CombinatedModelTest_" + sInFile + ".json");
oPathListVisible.Store("CombinedModelTest_" + sInFile + ".json");
oGeoModel.Store(sSubFolder +"CombinatedModelTest_"+ sInFile);
oGeoModel.Store(sSubFolder +"CombinedModelTest_"+ sInFile);
return 0;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment