mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
pre-proto - Rename
This commit is contained in:
@@ -27,7 +27,7 @@
|
||||
#include "RimEclipseView.h"
|
||||
#include "RimFormationNames.h"
|
||||
#include "RimFormationNamesCollection.h"
|
||||
#include "RimFractureEllipseDefinition.h"
|
||||
#include "RimEllipseFractureTemplate.h"
|
||||
#include "RimGeoMechPropertyFilter.h"
|
||||
#include "RimGeoMechView.h"
|
||||
#include "RimIdenticalGridCaseGroup.h"
|
||||
@@ -79,7 +79,7 @@ bool isDeletable(PdmUiItem * uiItem)
|
||||
if (dynamic_cast<RimFormationNamesCollection*>(uiItem)) return true;
|
||||
if (dynamic_cast<RimWellPathFractureCollection*>(uiItem)) return true;
|
||||
if (dynamic_cast<RimWellPathFracture*>(uiItem)) return true;
|
||||
if (dynamic_cast<RimFractureEllipseDefinition*>(uiItem)) return true;
|
||||
if (dynamic_cast<RimEllipseFractureTemplate*>(uiItem)) return true;
|
||||
if (dynamic_cast<RimSimWellFractureCollection*>(uiItem)) return true;
|
||||
if (dynamic_cast<RimSimWellFracture*>(uiItem)) return true;
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
#include "RiaApplication.h"
|
||||
|
||||
#include "RimOilField.h"
|
||||
#include "RimFractureEllipseDefinition.h"
|
||||
#include "RimEllipseFractureTemplate.h"
|
||||
#include "RimFractureDefinitionCollection.h"
|
||||
#include "RimProject.h"
|
||||
|
||||
@@ -51,7 +51,7 @@ void RicNewFractureDefinitionFeature::onActionTriggered(bool isChecked)
|
||||
|
||||
if (fracDefColl)
|
||||
{
|
||||
RimFractureEllipseDefinition* fractureDef = new RimFractureEllipseDefinition();
|
||||
RimEllipseFractureTemplate* fractureDef = new RimEllipseFractureTemplate();
|
||||
fracDefColl->fractureDefinitions.push_back(fractureDef);
|
||||
fractureDef->name = "Fracture Template";
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
#include "RimCase.h"
|
||||
#include "RimEclipseWell.h"
|
||||
#include "RimFractureEllipseDefinition.h"
|
||||
#include "RimEllipseFractureTemplate.h"
|
||||
#include "RimFractureDefinitionCollection.h"
|
||||
#include "RimOilField.h"
|
||||
#include "RimProject.h"
|
||||
@@ -84,7 +84,7 @@ void RicNewSimWellFractureAtPosFeature::onActionTriggered(bool isChecked)
|
||||
|
||||
if (oilfield->fractureDefinitionCollection->fractureDefinitions.size() > 0)
|
||||
{
|
||||
RimFractureEllipseDefinition* fracDef = oilfield->fractureDefinitionCollection->fractureDefinitions[0];
|
||||
RimEllipseFractureTemplate* fracDef = oilfield->fractureDefinitionCollection->fractureDefinitions[0];
|
||||
fracture->fractureDefinition = fracDef;
|
||||
}
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
#include "RimCase.h"
|
||||
#include "RimEclipseWell.h"
|
||||
#include "RimFractureEllipseDefinition.h"
|
||||
#include "RimEllipseFractureTemplate.h"
|
||||
#include "RimFractureDefinitionCollection.h"
|
||||
#include "RimOilField.h"
|
||||
#include "RimProject.h"
|
||||
@@ -68,7 +68,7 @@ void RicNewSimWellFractureFeature::onActionTriggered(bool isChecked)
|
||||
|
||||
if (oilfield->fractureDefinitionCollection->fractureDefinitions.size() > 0)
|
||||
{
|
||||
RimFractureEllipseDefinition* fracDef = oilfield->fractureDefinitionCollection->fractureDefinitions[0];
|
||||
RimEllipseFractureTemplate* fracDef = oilfield->fractureDefinitionCollection->fractureDefinitions[0];
|
||||
fracture->fractureDefinition = fracDef;
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
#include "RiaApplication.h"
|
||||
|
||||
#include "RimCase.h"
|
||||
#include "RimFractureEllipseDefinition.h"
|
||||
#include "RimEllipseFractureTemplate.h"
|
||||
#include "RimFractureDefinitionCollection.h"
|
||||
#include "RimOilField.h"
|
||||
#include "RimProject.h"
|
||||
@@ -90,7 +90,7 @@ void RicNewWellPathFractureAtPosFeature::onActionTriggered(bool isChecked)
|
||||
|
||||
if (oilfield->fractureDefinitionCollection->fractureDefinitions.size() > 0)
|
||||
{
|
||||
RimFractureEllipseDefinition* fracDef = oilfield->fractureDefinitionCollection->fractureDefinitions[0];
|
||||
RimEllipseFractureTemplate* fracDef = oilfield->fractureDefinitionCollection->fractureDefinitions[0];
|
||||
fracture->fractureDefinition = fracDef;
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
#include "RiaApplication.h"
|
||||
|
||||
#include "RimCase.h"
|
||||
#include "RimFractureEllipseDefinition.h"
|
||||
#include "RimEllipseFractureTemplate.h"
|
||||
#include "RimFractureDefinitionCollection.h"
|
||||
#include "RimOilField.h"
|
||||
#include "RimProject.h"
|
||||
@@ -81,7 +81,7 @@ void RicNewWellPathFractureFeature::onActionTriggered(bool isChecked)
|
||||
|
||||
if (oilfield->fractureDefinitionCollection->fractureDefinitions.size() > 0)
|
||||
{
|
||||
RimFractureEllipseDefinition* fracDef = oilfield->fractureDefinitionCollection->fractureDefinitions[0];
|
||||
RimEllipseFractureTemplate* fracDef = oilfield->fractureDefinitionCollection->fractureDefinitions[0];
|
||||
fracture->fractureDefinition = fracDef;
|
||||
}
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
#include "RimEclipseView.h"
|
||||
#include "RimEclipseWell.h"
|
||||
#include "RimFracture.h"
|
||||
#include "RimFractureEllipseDefinition.h"
|
||||
#include "RimEllipseFractureTemplate.h"
|
||||
#include "RimWellPath.h"
|
||||
|
||||
#include "cafProgressInfo.h"
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
#include "RimFault.h"
|
||||
#include "RimFormationNames.h"
|
||||
#include "RimFormationNamesCollection.h"
|
||||
#include "RimFractureEllipseDefinition.h"
|
||||
#include "RimEllipseFractureTemplate.h"
|
||||
#include "RimFractureDefinitionCollection.h"
|
||||
#include "RimGeoMechCase.h"
|
||||
#include "RimGeoMechPropertyFilter.h"
|
||||
@@ -376,7 +376,7 @@ QStringList RimContextCommandBuilder::commandsFromSelection()
|
||||
commandIds << "RicSimWellFracturesDeleteAllFeature";
|
||||
}
|
||||
else if (dynamic_cast<RimFractureDefinitionCollection*>(uiItem) ||
|
||||
dynamic_cast<RimFractureEllipseDefinition*>(uiItem))
|
||||
dynamic_cast<RimEllipseFractureTemplate*>(uiItem))
|
||||
{
|
||||
commandIds << "RicNewFractureDefinitionFeature";
|
||||
commandIds << "RicFractureDefinitionsDeleteAllFeature";
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "RimFractureEllipseDefinition.h"
|
||||
#include "RimEllipseFractureTemplate.h"
|
||||
|
||||
#include "cafPdmObject.h"
|
||||
#include "RimProject.h"
|
||||
@@ -28,23 +28,23 @@ namespace caf
|
||||
{
|
||||
template<>
|
||||
|
||||
void caf::AppEnum< RimFractureEllipseDefinition::FracOrientationEnum>::setUp()
|
||||
void caf::AppEnum< RimEllipseFractureTemplate::FracOrientationEnum>::setUp()
|
||||
{
|
||||
addItem(RimFractureEllipseDefinition::AZIMUTH, "Az", "Azimuth");
|
||||
addItem(RimFractureEllipseDefinition::ALONG_WELL_PATH, "AlongWellPath", "Along Well Path");
|
||||
addItem(RimFractureEllipseDefinition::TRANSVERSE_WELL_PATH, "TransverseWellPath", "Transverse (normal) to Well Path");
|
||||
addItem(RimEllipseFractureTemplate::AZIMUTH, "Az", "Azimuth");
|
||||
addItem(RimEllipseFractureTemplate::ALONG_WELL_PATH, "AlongWellPath", "Along Well Path");
|
||||
addItem(RimEllipseFractureTemplate::TRANSVERSE_WELL_PATH, "TransverseWellPath", "Transverse (normal) to Well Path");
|
||||
|
||||
setDefault(RimFractureEllipseDefinition::TRANSVERSE_WELL_PATH);
|
||||
setDefault(RimEllipseFractureTemplate::TRANSVERSE_WELL_PATH);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
CAF_PDM_SOURCE_INIT(RimFractureEllipseDefinition, "FractureDefinition");
|
||||
CAF_PDM_SOURCE_INIT(RimEllipseFractureTemplate, "FractureDefinition");
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimFractureEllipseDefinition::RimFractureEllipseDefinition(void)
|
||||
RimEllipseFractureTemplate::RimEllipseFractureTemplate(void)
|
||||
{
|
||||
CAF_PDM_InitObject("Fracture Template", ":/FractureTemplate16x16.png", "", "");
|
||||
|
||||
@@ -62,7 +62,7 @@ RimFractureEllipseDefinition::RimFractureEllipseDefinition(void)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimFractureEllipseDefinition::~RimFractureEllipseDefinition()
|
||||
RimEllipseFractureTemplate::~RimEllipseFractureTemplate()
|
||||
{
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@ RimFractureEllipseDefinition::~RimFractureEllipseDefinition()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
caf::PdmFieldHandle* RimFractureEllipseDefinition::userDescriptionField()
|
||||
caf::PdmFieldHandle* RimEllipseFractureTemplate::userDescriptionField()
|
||||
{
|
||||
return &name;
|
||||
}
|
||||
@@ -78,7 +78,7 @@ caf::PdmFieldHandle* RimFractureEllipseDefinition::userDescriptionField()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimFractureEllipseDefinition::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
||||
void RimEllipseFractureTemplate::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
|
||||
{
|
||||
if (changedField == &halfLength || changedField == &height)
|
||||
{
|
||||
@@ -107,7 +107,7 @@ void RimFractureEllipseDefinition::fieldChangedByUi(const caf::PdmFieldHandle* c
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
double RimFractureEllipseDefinition::effectiveKh()
|
||||
double RimEllipseFractureTemplate::effectiveKh()
|
||||
{
|
||||
//TODO: Handle different units!
|
||||
return width * permeability;
|
||||
@@ -117,7 +117,7 @@ double RimFractureEllipseDefinition::effectiveKh()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimFractureEllipseDefinition::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
||||
void RimEllipseFractureTemplate::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
||||
{
|
||||
uiOrdering.add(&name);
|
||||
|
||||
@@ -28,13 +28,13 @@
|
||||
///
|
||||
///
|
||||
//==================================================================================================
|
||||
class RimFractureEllipseDefinition : public caf::PdmObject //TODO: Rename to RimFractureEllipseDefinition
|
||||
class RimEllipseFractureTemplate : public caf::PdmObject //Template i stedet for definition
|
||||
{
|
||||
CAF_PDM_HEADER_INIT;
|
||||
|
||||
public:
|
||||
RimFractureEllipseDefinition(void);
|
||||
virtual ~RimFractureEllipseDefinition(void);
|
||||
RimEllipseFractureTemplate(void);
|
||||
virtual ~RimEllipseFractureTemplate(void);
|
||||
|
||||
caf::PdmField<QString> name;
|
||||
|
||||
@@ -58,10 +58,17 @@ public:
|
||||
|
||||
double effectiveKh();
|
||||
|
||||
|
||||
|
||||
|
||||
//TODO: Method to get 2D geometry. Returning indexed triangles
|
||||
//Code from RimFracture::ComputeGeometry
|
||||
|
||||
//TODO: Method to return a polygon from indexed triangles.
|
||||
//clipper execute method, union
|
||||
//clipper execute method, union for general case.
|
||||
//FOr now: void RigEllipsisTesselator::computeCirclePoints(size_t numSlices) og gi ut rekke med punkter...
|
||||
//Return punkter std::vector<cvf::Vec3d>
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
@@ -21,7 +21,7 @@
|
||||
#include "RigFracture.h"
|
||||
#include "RigTesselatorTools.h"
|
||||
|
||||
#include "RimFractureEllipseDefinition.h"
|
||||
#include "RimEllipseFractureTemplate.h"
|
||||
#include "RimView.h"
|
||||
|
||||
#include "cafPdmUiDoubleSliderEditor.h"
|
||||
@@ -128,16 +128,18 @@ void RimFracture::computeGeometry()
|
||||
std::vector<cvf::Vec3f> nodeCoords;
|
||||
std::vector<cvf::uint> polygonIndices;
|
||||
|
||||
cvf::Vec3d center = centerPointForFracture();
|
||||
RimFractureEllipseDefinition* fractureDef = attachedFractureDefinition();
|
||||
if (fractureDef && !center.isUndefined())
|
||||
RimEllipseFractureTemplate* fractureDef = attachedFractureDefinition();
|
||||
if (fractureDef )
|
||||
{
|
||||
|
||||
//TODO: Move to fracture template
|
||||
RigEllipsisTesselator tesselator(20);
|
||||
|
||||
float a = fractureDef->height / 2.0f;
|
||||
float b = fractureDef->halfLength;
|
||||
|
||||
tesselator.tesselateEllipsis(a, b, &polygonIndices, &nodeCoords);
|
||||
|
||||
}
|
||||
|
||||
cvf::Mat4f m = transformMatrix();
|
||||
@@ -191,6 +193,7 @@ void RimFracture::computeTransmissibility()
|
||||
double area = 2.468;
|
||||
double fractureLength = 1.2345;
|
||||
double flowLength = 2.718281828;
|
||||
|
||||
double c = 0.008527; // TODO: Get value with units, is defined in RimReservoirCellResultsStorage
|
||||
|
||||
double transmissibility;
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
#include "cvfMatrix4.h"
|
||||
|
||||
|
||||
class RimFractureEllipseDefinition;
|
||||
class RimEllipseFractureTemplate;
|
||||
class RigFracture;
|
||||
|
||||
//==================================================================================================
|
||||
@@ -48,7 +48,7 @@ public:
|
||||
virtual cvf::Vec3d centerPointForFracture() = 0;
|
||||
cvf::Mat4f transformMatrix();
|
||||
|
||||
virtual RimFractureEllipseDefinition* attachedFractureDefinition() = 0;
|
||||
virtual RimEllipseFractureTemplate* attachedFractureDefinition() = 0;
|
||||
cvf::ref<RigFracture> attachedRigFracture();
|
||||
|
||||
bool hasValidGeometry() const;
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
#include "RimFractureDefinitionCollection.h"
|
||||
|
||||
#include "RimFractureEllipseDefinition.h"
|
||||
#include "RimEllipseFractureTemplate.h"
|
||||
#include "cafPdmObject.h"
|
||||
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
#include "cafPdmObject.h"
|
||||
#include "cafPdmChildArrayField.h"
|
||||
|
||||
class RimFractureEllipseDefinition;
|
||||
class RimEllipseFractureTemplate;
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
@@ -36,7 +36,7 @@ public:
|
||||
RimFractureDefinitionCollection(void);
|
||||
virtual ~RimFractureDefinitionCollection(void);
|
||||
|
||||
caf::PdmChildArrayField<RimFractureEllipseDefinition*> fractureDefinitions;
|
||||
caf::PdmChildArrayField<RimEllipseFractureTemplate*> fractureDefinitions;
|
||||
|
||||
caf::PdmField<bool> isActive;
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ class RigMainGrid;
|
||||
class RimCase;
|
||||
class RimCommandObject;
|
||||
class RimEclipseCase;
|
||||
class RimFractureEllipseDefinition;
|
||||
class RimEllipseFractureTemplate;
|
||||
class RimWellPathFractureCollection;
|
||||
class RimIdenticalGridCaseGroup;
|
||||
class RimMainPlotCollection;
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
#include "RimEclipseCase.h"
|
||||
#include "RimEclipseCaseCollection.h"
|
||||
#include "RimEclipseView.h"
|
||||
#include "RimFractureEllipseDefinition.h"
|
||||
#include "RimEllipseFractureTemplate.h"
|
||||
#include "RimFractureDefinitionCollection.h"
|
||||
#include "RimOilField.h"
|
||||
#include "RimProject.h"
|
||||
@@ -99,7 +99,7 @@ QList<caf::PdmOptionItemInfo> RimSimWellFracture::calculateValueOptions(const ca
|
||||
RimFractureDefinitionCollection* fracDefColl = oilField->fractureDefinitionCollection();
|
||||
if (fracDefColl == nullptr) return options;
|
||||
|
||||
for (RimFractureEllipseDefinition* fracDef : fracDefColl->fractureDefinitions())
|
||||
for (RimEllipseFractureTemplate* fracDef : fracDefColl->fractureDefinitions())
|
||||
{
|
||||
options.push_back(caf::PdmOptionItemInfo(fracDef->name(), fracDef));
|
||||
}
|
||||
@@ -137,7 +137,7 @@ cvf::Vec3d RimSimWellFracture::centerPointForFracture()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimFractureEllipseDefinition* RimSimWellFracture::attachedFractureDefinition()
|
||||
RimEllipseFractureTemplate* RimSimWellFracture::attachedFractureDefinition()
|
||||
{
|
||||
return fractureDefinition();
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
#include "cvfVector3.h"
|
||||
|
||||
|
||||
class RimFractureEllipseDefinition;
|
||||
class RimEllipseFractureTemplate;
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
@@ -46,7 +46,7 @@ public:
|
||||
virtual ~RimSimWellFracture(void);
|
||||
|
||||
caf::PdmField<QString> name;
|
||||
caf::PdmPtrField<RimFractureEllipseDefinition*> fractureDefinition;
|
||||
caf::PdmPtrField<RimEllipseFractureTemplate*> fractureDefinition;
|
||||
size_t gridindex;
|
||||
|
||||
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly) override;
|
||||
@@ -55,7 +55,7 @@ public:
|
||||
void setCellCenterPosition();
|
||||
// Overrides from RimFracture
|
||||
virtual cvf::Vec3d centerPointForFracture() override;
|
||||
virtual RimFractureEllipseDefinition* attachedFractureDefinition() override;
|
||||
virtual RimEllipseFractureTemplate* attachedFractureDefinition() override;
|
||||
|
||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
#include "RigTesselatorTools.h"
|
||||
|
||||
#include "RimFractureEllipseDefinition.h"
|
||||
#include "RimEllipseFractureTemplate.h"
|
||||
#include "RimFractureDefinitionCollection.h"
|
||||
#include "RimOilField.h"
|
||||
#include "RimProject.h"
|
||||
@@ -94,7 +94,7 @@ QList<caf::PdmOptionItemInfo> RimWellPathFracture::calculateValueOptions(const c
|
||||
RimFractureDefinitionCollection* fracDefColl = oilField->fractureDefinitionCollection();
|
||||
if (fracDefColl == nullptr) return options;
|
||||
|
||||
for (RimFractureEllipseDefinition* fracDef : fracDefColl->fractureDefinitions())
|
||||
for (RimEllipseFractureTemplate* fracDef : fracDefColl->fractureDefinitions())
|
||||
{
|
||||
options.push_back(caf::PdmOptionItemInfo(fracDef->name(), fracDef));
|
||||
}
|
||||
@@ -118,7 +118,7 @@ cvf::Vec3d RimWellPathFracture::centerPointForFracture()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimFractureEllipseDefinition* RimWellPathFracture::attachedFractureDefinition()
|
||||
RimEllipseFractureTemplate* RimWellPathFracture::attachedFractureDefinition()
|
||||
{
|
||||
return fractureDefinition();
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
#include "cafPdmProxyValueField.h"
|
||||
|
||||
class RimFractureEllipseDefinition;
|
||||
class RimEllipseFractureTemplate;
|
||||
class RimWellPath;
|
||||
|
||||
//==================================================================================================
|
||||
@@ -47,7 +47,7 @@ public:
|
||||
virtual ~RimWellPathFracture(void);
|
||||
|
||||
caf::PdmField<QString> name;
|
||||
caf::PdmPtrField<RimFractureEllipseDefinition* > fractureDefinition;
|
||||
caf::PdmPtrField<RimEllipseFractureTemplate* > fractureDefinition;
|
||||
|
||||
caf::PdmField<float> measuredDepth;
|
||||
caf::PdmField<cvf::Vec3d> positionAtWellpath;
|
||||
@@ -63,7 +63,7 @@ public:
|
||||
|
||||
// Overrides from RimFracture
|
||||
virtual cvf::Vec3d centerPointForFracture() override;
|
||||
virtual RimFractureEllipseDefinition* attachedFractureDefinition() override;
|
||||
virtual RimEllipseFractureTemplate* attachedFractureDefinition() override;
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
Reference in New Issue
Block a user