mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
to and from domain coord
This commit is contained in:
@@ -27,6 +27,7 @@
|
||||
#include "cafPdmFieldScriptingCapability.h"
|
||||
#include "cafPdmObjectScriptingCapability.h"
|
||||
|
||||
#include "cafDisplayCoordTransform.h"
|
||||
#include "cafPdmFieldScriptingCapabilityCvfVec3d.h"
|
||||
|
||||
CAF_PDM_OBJECT_METHOD_SOURCE_INIT( Rim3dView, Rimc3dView_cameraVectors, "CameraVectors" );
|
||||
@@ -183,3 +184,131 @@ bool Rimc3dView_setCameraVectors::isNullptrValidResult() const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
CAF_PDM_OBJECT_METHOD_SOURCE_INIT( Rim3dView, Rimc3dView_toDisplayCoord, "to_display_coord" );
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
Rimc3dView_toDisplayCoord::Rimc3dView_toDisplayCoord( caf::PdmObjectHandle* self )
|
||||
: caf::PdmObjectMethod( self )
|
||||
{
|
||||
CAF_PDM_InitScriptableFieldNoDefault( &m_domainCoord, "DomainCoord", "Domain Coordinate" );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
caf::PdmObjectHandle* Rimc3dView_toDisplayCoord::execute()
|
||||
{
|
||||
if ( auto view = self<Rim3dView>() )
|
||||
{
|
||||
auto transForm = view->displayCoordTransform();
|
||||
auto coordObj = new RimcCoordinate();
|
||||
auto coord = transForm->transformToDisplayCoord( m_domainCoord );
|
||||
coord.z() *= -1.0;
|
||||
|
||||
coordObj->setCoordinate( coord );
|
||||
return coordObj;
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool Rimc3dView_toDisplayCoord::resultIsPersistent() const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::unique_ptr<caf::PdmObjectHandle> Rimc3dView_toDisplayCoord::defaultResult() const
|
||||
{
|
||||
return std::unique_ptr<caf::PdmObjectHandle>( new RimcCoordinate() );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool Rimc3dView_toDisplayCoord::isNullptrValidResult() const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
CAF_PDM_SOURCE_INIT( RimcCoordinate, "RimcCoordinate" );
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimcCoordinate::RimcCoordinate()
|
||||
{
|
||||
CAF_PDM_InitScriptableObject( "Coordinate" );
|
||||
|
||||
CAF_PDM_InitScriptableFieldNoDefault( &m_coordinate, "Coordinate", "Coordinate" );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimcCoordinate::setCoordinate( const cvf::Vec3d& coordinate )
|
||||
{
|
||||
m_coordinate = coordinate;
|
||||
}
|
||||
|
||||
CAF_PDM_OBJECT_METHOD_SOURCE_INIT( Rim3dView, Rimc3dView_toDomainCoord, "to_domain_coord" );
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
Rimc3dView_toDomainCoord::Rimc3dView_toDomainCoord( caf::PdmObjectHandle* self )
|
||||
: caf::PdmObjectMethod( self )
|
||||
{
|
||||
CAF_PDM_InitScriptableFieldNoDefault( &m_displayCoord, "DisplayCoord", "Display Coordinate" );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
caf::PdmObjectHandle* Rimc3dView_toDomainCoord::execute()
|
||||
{
|
||||
if ( auto view = self<Rim3dView>() )
|
||||
{
|
||||
auto transForm = view->displayCoordTransform();
|
||||
auto coordObj = new RimcCoordinate();
|
||||
auto coord = transForm->transformToDomainCoord( m_displayCoord );
|
||||
coord.z() *= -1.0;
|
||||
|
||||
coordObj->setCoordinate( coord );
|
||||
return coordObj;
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool Rimc3dView_toDomainCoord::resultIsPersistent() const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::unique_ptr<caf::PdmObjectHandle> Rimc3dView_toDomainCoord::defaultResult() const
|
||||
{
|
||||
return std::unique_ptr<caf::PdmObjectHandle>( new RimcCoordinate() );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool Rimc3dView_toDomainCoord::isNullptrValidResult() const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
@@ -80,3 +80,57 @@ private:
|
||||
caf::PdmField<cvf::Vec3d> m_up;
|
||||
caf::PdmField<cvf::Vec3d> m_referencePoint;
|
||||
};
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
//==================================================================================================
|
||||
class RimcCoordinate : public caf::PdmObject
|
||||
{
|
||||
CAF_PDM_HEADER_INIT;
|
||||
|
||||
public:
|
||||
RimcCoordinate();
|
||||
|
||||
void setCoordinate( const cvf::Vec3d& coordinate );
|
||||
|
||||
private:
|
||||
caf::PdmField<cvf::Vec3d> m_coordinate;
|
||||
};
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
//==================================================================================================
|
||||
class Rimc3dView_toDisplayCoord : public caf::PdmObjectMethod
|
||||
{
|
||||
CAF_PDM_HEADER_INIT;
|
||||
|
||||
public:
|
||||
Rimc3dView_toDisplayCoord( caf::PdmObjectHandle* self );
|
||||
|
||||
caf::PdmObjectHandle* execute() override;
|
||||
bool resultIsPersistent() const override;
|
||||
std::unique_ptr<PdmObjectHandle> defaultResult() const override;
|
||||
bool isNullptrValidResult() const override;
|
||||
|
||||
private:
|
||||
caf::PdmField<cvf::Vec3d> m_domainCoord;
|
||||
};
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
//==================================================================================================
|
||||
class Rimc3dView_toDomainCoord : public caf::PdmObjectMethod
|
||||
{
|
||||
CAF_PDM_HEADER_INIT;
|
||||
|
||||
public:
|
||||
Rimc3dView_toDomainCoord( caf::PdmObjectHandle* self );
|
||||
|
||||
caf::PdmObjectHandle* execute() override;
|
||||
bool resultIsPersistent() const override;
|
||||
std::unique_ptr<PdmObjectHandle> defaultResult() const override;
|
||||
bool isNullptrValidResult() const override;
|
||||
|
||||
private:
|
||||
caf::PdmField<cvf::Vec3d> m_displayCoord;
|
||||
};
|
||||
|
Reference in New Issue
Block a user