Skip to content

Commit

Permalink
BROKEN moves from widget to zincwidget
Browse files Browse the repository at this point in the history
  • Loading branch information
LafCorentin committed Jul 30, 2020
1 parent 6e96bd6 commit c126263
Show file tree
Hide file tree
Showing 6 changed files with 282 additions and 141 deletions.
1 change: 1 addition & 0 deletions src/plugins/editing/MappingView/CMakeLists.txt
Expand Up @@ -15,6 +15,7 @@ add_plugin(MappingView
src/mappingvieweditingwidget.cpp
src/mappingviewplugin.cpp
src/mappingviewwidget.cpp
src/mappingviewzincwidget.cpp
src/meshreader.cpp
PLUGINS
Core
Expand Down
132 changes: 10 additions & 122 deletions src/plugins/editing/MappingView/src/mappingviewwidget.cpp
Expand Up @@ -58,9 +58,7 @@ namespace MappingView {

MappingViewWidget::MappingViewWidget(QWidget *pParent) :
Core::SplitterWidget(pParent),
mAxesFontPointSize(0),
mZincContext(nullptr),
mZincSceneViewerDescription(nullptr)
mAxesFontPointSize(0)
{
// Set our orientation

Expand Down Expand Up @@ -92,33 +90,27 @@ MappingViewWidget::MappingViewWidget(QWidget *pParent) :

// Create and add a Zinc widget

mZincWidget = new ZincWidget::ZincWidget(this);
mMappingViewZincWidget = new MappingViewZincWidget(this);

connect(mZincWidget, SIGNAL(contextAboutToBeDestroyed()),
//TODO change syntax
connect(mMappingViewZincWidget, SIGNAL(contextAboutToBeDestroyed()),
this, SLOT(createAndSetZincContext()));
connect(mZincWidget, SIGNAL(graphicsInitialized()),
this, SLOT(graphicsInitialized()));
connect(mZincWidget, SIGNAL(devicePixelRatioChanged(const int &)),
connect(mMappingViewZincWidget, SIGNAL(devicePixelRatioChanged(const int &)),
this, SLOT(devicePixelRatioChanged(const int &)));

addWidget(mZincWidget);
addWidget(mMappingViewZincWidget);

// Create and set our Zinc context

//TODO move into zincwidget
createAndSetZincContext();

}

//==============================================================================

MappingViewWidget::~MappingViewWidget()
{

delete mZincContext;

QFile::remove(mExNodeFileName);
QFile::remove(mExElemFileName);

}

//==============================================================================
Expand Down Expand Up @@ -226,126 +218,22 @@ void MappingViewWidget::fileRenamed(const QString &pOldFileName, const QString &

//==============================================================================

void MappingViewWidget::createAndSetZincContext()
{
// Keep track of our current scene viewer's description

mZincSceneViewerDescription = mZincWidget->sceneViewer().writeDescription();

// Create and set our Zinc context

mZincContext = new OpenCMISS::Zinc::Context("TestZinc");

mZincContext->getMaterialmodule().defineStandardMaterials();
mZincContext->getGlyphmodule().defineStandardGlyphs();

mZincWidget->setContext(mZincContext);
}

//==============================================================================

void MappingViewWidget::graphicsInitialized()
{
// Set our 'new' scene viewer's description

OpenCMISS::Zinc::Sceneviewer sceneViewer = mZincWidget->sceneViewer();

//sceneViewer.readDescription(mZincSceneViewerDescription);

// Our Zinc widget has had its graphics initialised, so now we can set its
// background colour

std::array<double, 4> backgroundColor = { 0.85, 0.85, 0.85, 1.0 };

sceneViewer.setBackgroundColourRGBA(backgroundColor.data());

// Our initial look at and eye positions, and up vector
/* TODO free when it works
sceneViewer.setViewingVolume(-1.922499, 1.922499, -1.922499, 1.922499, 0.632076, 22.557219);
//TODO adapt to the model
std::array<const double, 3> lookAtPosition = { -63.005, -64.247, 189.21 };
std::array<const double, 3> eyePosition = { -50, -64, 180 };
std::array<const double, 3> upVector = { -1.000000, 0.000000, 0.000000 };
sceneViewer.setLookatPosition(lookAtPosition.data());
sceneViewer.setEyePosition(eyePosition.data());
sceneViewer.setUpVector(upVector.data());
*/
OpenCMISS::Zinc::Region defaultRegion = mZincContext->getDefaultRegion();

sceneViewer.setScene(defaultRegion.getScene());


//===== Do stuff to fold later

OpenCMISS::Zinc::Region region = mZincContext->getDefaultRegion();

region.readFile(qPrintable("../opencor/meshes/circulation.exnode"));
region.readFile(qPrintable("../opencor/meshes/circulation.exelem"));

mFieldModule = region.getFieldmodule();

mFieldModule.beginChange();
OpenCMISS::Zinc::Field coordinates = mFieldModule.findFieldByName("Coordinates");
mFieldModule.endChange();

OpenCMISS::Zinc::Scene scene = region.getScene();

scene.beginChange();
OpenCMISS::Zinc::Materialmodule materialModule = scene.getMaterialmodule();

//Black lines

OpenCMISS::Zinc::GraphicsLines lines = scene.createGraphicsLines();

lines.setCoordinateField(coordinates);
lines.setMaterial(materialModule.findMaterialByName("red"));

// Green spheres limiting our scene

OpenCMISS::Zinc::GraphicsPoints nodePoints = scene.createGraphicsPoints();

nodePoints.setCoordinateField(coordinates);
nodePoints.setFieldDomainType(OpenCMISS::Zinc::Field::DOMAIN_TYPE_NODES);
nodePoints.setMaterial(materialModule.findMaterialByName("green"));

// Size of our green spheres

mNodeSize = 20.;

OpenCMISS::Zinc::Graphicspointattributes pointAttr = nodePoints.getGraphicspointattributes();

pointAttr.setBaseSize(1, &mNodeSize);
pointAttr.setGlyphShapeType(OpenCMISS::Zinc::Glyph::SHAPE_TYPE_SPHERE);

scene.endChange();

// adding view all command

sceneViewer.viewAll();


}

//==============================================================================

void MappingViewWidget::devicePixelRatioChanged(const int &pDevicePixelRatio)
{
Q_UNUSED(pDevicePixelRatio);
//TODO to confirm
// Update our scene using the given devide pixel ratio

/*
OpenCMISS::Zinc::Scene scene = mZincContext->getDefaultRegion().getScene();
scene.beginChange();
scene.createGraphicsPoints().getGraphicspointattributes().getFont().setPointSize(pDevicePixelRatio*mAxesFontPointSize);
scene.endChange();
*/
}

//==============================================================================



} // namespace MappingView
} // namespace OpenCOR

Expand Down
20 changes: 2 additions & 18 deletions src/plugins/editing/MappingView/src/mappingviewwidget.h
Expand Up @@ -28,6 +28,7 @@ along with this program. If not, see <https://gnu.org/licenses>.
#include "viewwidget.h"
#include "cellmlfile.h"
#include "mappingvieweditingwidget.h"
#include "mappingviewzincwidget.h"

//==============================================================================

Expand All @@ -36,13 +37,6 @@ along with this program. If not, see <https://gnu.org/licenses>.
#include <QMap>
#include <QListWidget>

//=============================================================================

#include "zincbegin.h"
#include "opencmiss/zinc/fieldfiniteelement.hpp"
#include "opencmiss/zinc/timekeeper.hpp"
#include "zincend.h"

//==============================================================================

namespace Ui {
Expand Down Expand Up @@ -88,10 +82,8 @@ class MappingViewWidget : public Core::SplitterWidget
int mAxesFontPointSize;

private:
double mNodeSize;

ZincWidget::ZincWidget *mZincWidget;
OpenCMISS::Zinc::Context *mZincContext;
MappingViewZincWidget *mMappingViewZincWidget;

QListWidget *mListWidgetVariables;
QListWidget *mListWidgetOutput;
Expand All @@ -102,14 +94,6 @@ class MappingViewWidget : public Core::SplitterWidget
QString mExNodeFileName;
QString mExElemFileName;


OpenCMISS::Zinc::Fieldmodule mFieldModule;

char *mZincSceneViewerDescription;




private slots:
void createAndSetZincContext();
void graphicsInitialized();
Expand Down

0 comments on commit c126263

Please sign in to comment.