Commit f9f5df68 authored by Cédric Traizet's avatar Cédric Traizet
Browse files

Merge branch '2040-RPC_model' of...

Merge branch '2040-RPC_model' of https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb into 2040-RPC_model
parents 04b9160a 7cbd515c
......@@ -111,7 +111,6 @@ public:
/**
* Set/Get input & output projections.
* Set/Get input & output keywordlist
* The macro are not used here cause the input and the output are
* inversed.
*/
......@@ -140,21 +139,21 @@ public:
/** Set/Get ImageMetadata*/
const ImageMetadata* GetInputImageMetadata() const
{
return m_Transform->GetInputImageMetadata();
return m_Transform->GetOutputImageMetadata();
}
void SetInputImageMetadata(const ImageMetadata* imd)
{
m_Transform->SetInputImageMetadata(imd);
m_Transform->SetOutputImageMetadata(imd);
this->Modified();
}
const ImageMetadata* GetOutputImageMetadata() const
{
return m_Transform->GetOutputImageMetadata();
return m_Transform->GetInputImageMetadata();
}
void SetOutputImageMetadata(const ImageMetadata* imd)
{
m_Transform->SetOutputImageMetadata(imd);
m_Transform->SetInputImageMetadata(imd);
this->Modified();
}
......
......@@ -111,7 +111,6 @@ int otbDEMToImageGeneratorFromImageTest(int argc, char* argv[])
{
char* outputName2 = argv[4];
generatorFilter2->SetOutputParametersFromImage(reader->GetOutput());
generatorFilter2->InstantiateTransform();
extract2->SetInput(generatorFilter2->GetOutput());
extract2->SetSizeX(atoi(argv[7]));
......
......@@ -133,6 +133,7 @@ bool GDALRPCTransformer::ForwardTransform(double* x, double* y, double* z, int n
if (this->m_Modified)
this->Update();
std::vector<int> success(nPointCount);
const std::lock_guard<std::mutex> lock(m_Mutex);
GDALRPCTransform(this->m_TransformArg, false, nPointCount, x, y, z, success.data());
bool finalSuccess = std::all_of(success.begin(), success.end(), [](int i){return i;});
return finalSuccess;
......@@ -143,6 +144,7 @@ GDALRPCTransformer::PointType GDALRPCTransformer::ForwardTransform(GDALRPCTransf
if (m_Modified)
this->Update();
int success;
const std::lock_guard<std::mutex> lock(m_Mutex);
GDALRPCTransform(this->m_TransformArg, false, 1, &p[0], &p[1], &p[2], &success);
if (!success)
throw std::runtime_error("GDALRPCTransform was not able to process the ForwardTransform.");
......@@ -158,6 +160,7 @@ bool GDALRPCTransformer::InverseTransform(double* x, double* y, double* z, int n
if (this->m_Modified)
this->Update();
std::vector<int> success(nPointCount);
const std::lock_guard<std::mutex> lock(m_Mutex);
GDALRPCTransform(this->m_TransformArg, true, nPointCount, x, y, z, success.data());
bool finalSuccess = std::all_of(success.begin(), success.end(), [](int i){return i;});
return finalSuccess;
......@@ -168,6 +171,7 @@ GDALRPCTransformer::PointType GDALRPCTransformer::InverseTransform(GDALRPCTransf
if (m_Modified)
this->Update();
int success;
const std::lock_guard<std::mutex> lock(m_Mutex);
GDALRPCTransform(this->m_TransformArg, true, 1, &p[0], &p[1], &p[2], &success);
if (!success)
throw std::runtime_error("GDALRPCTransform was not able to process the InverseTransform.");
......
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