Merge branch 'main' into djairo-vtk-camera

This commit is contained in:
Djairo
2024-05-06 12:15:50 +00:00
committed by GitHub
33 changed files with 272 additions and 431 deletions

View File

@@ -9,11 +9,11 @@
#include "../CartographicTransformation.h"
void convertDisplayToWorld(vtkRenderer* renderer, int x, int y, double *worldPos) {
double displayPos[3] = {static_cast<double>(x), static_cast<double>(y), 0.0};
renderer->SetDisplayPoint(displayPos);
renderer->DisplayToWorld();
renderer->GetWorldPoint(worldPos);
void convertDisplayToWorld(vtkRenderer *renderer, int x, int y, double *worldPos) {
double displayPos[3] = {static_cast<double>(x), static_cast<double>(y), 0.0};
renderer->SetDisplayPoint(displayPos);
renderer->DisplayToWorld();
renderer->GetWorldPoint(worldPos);
}
void SpawnPointCallback::Execute(vtkObject *caller, unsigned long evId, void *callData) {
@@ -54,23 +54,29 @@ void SpawnPointCallback::Execute(vtkObject *caller, unsigned long evId, void *ca
}
SpawnPointCallback::SpawnPointCallback() : data(nullptr), points(nullptr), inverseCartographicProjection(nullptr) {
inverseCartographicProjection = getCartographicTransformMatrix();
inverseCartographicProjection->Invert();
}
SpawnPointCallback::SpawnPointCallback() : data(nullptr),
points(nullptr),
inverseCartographicProjection(nullptr),
uvGrid(nullptr) { }
SpawnPointCallback *SpawnPointCallback::New() {
return new SpawnPointCallback;
}
void SpawnPointCallback::setData(const vtkSmartPointer<vtkPolyData> &data) {
this->data = data;
this->data = data;
}
void SpawnPointCallback::setPoints(const vtkSmartPointer<vtkPoints> &points) {
this->points = points;
this->points = points;
}
void SpawnPointCallback::setRen(const vtkSmartPointer<vtkRenderer> &ren) {
this->ren = ren;
this->ren = ren;
}
void SpawnPointCallback::setUVGrid(const std::shared_ptr<UVGrid> &uvGrid) {
this->uvGrid = uvGrid;
inverseCartographicProjection = getCartographicTransformMatrix(uvGrid);
inverseCartographicProjection->Invert();
}

View File

@@ -2,31 +2,39 @@
#define VTKBASE_SPAWNPOINTCALLBACK_H
#include <memory>
#include <vtkCallbackCommand.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkPoints.h>
#include <vtkPolyData.h>
#include <vtkMatrix4x4.h>
#include "../advection/UVGrid.h"
class SpawnPointCallback : public vtkCallbackCommand {
public:
static SpawnPointCallback *New();
SpawnPointCallback();
static SpawnPointCallback *New();
void setPoints(const vtkSmartPointer<vtkPoints> &points);
SpawnPointCallback();
void setData(const vtkSmartPointer<vtkPolyData> &data);
void setPoints(const vtkSmartPointer<vtkPoints> &points);
void setData(const vtkSmartPointer<vtkPolyData> &data);
void setRen(const vtkSmartPointer<vtkRenderer> &ren);
void setUVGrid(const std::shared_ptr<UVGrid> &uvGrid);
void setRen(const vtkSmartPointer<vtkRenderer> &ren);
private:
vtkSmartPointer<vtkPolyData> data;
vtkSmartPointer<vtkPoints> points;
vtkSmartPointer<vtkRenderer> ren;
vtkSmartPointer<vtkMatrix4x4> inverseCartographicProjection;
vtkSmartPointer<vtkPolyData> data;
vtkSmartPointer<vtkPoints> points;
vtkSmartPointer<vtkRenderer> ren;
std::shared_ptr<UVGrid> uvGrid;
vtkSmartPointer<vtkMatrix4x4> inverseCartographicProjection;
void Execute(vtkObject *caller, unsigned long evId, void *callData) override;
bool dragging = false;
void Execute(vtkObject *caller, unsigned long evId, void *callData) override;
bool dragging = false;
};

View File

@@ -37,3 +37,7 @@ void TimerCallbackCommand::setProgram(Program *program) {
void TimerCallbackCommand::setPaused(const bool val) {
this->paused = val;
}
void TimerCallbackCommand::setDt(int dt) {
this->dt = dt;
}

View File

@@ -13,6 +13,8 @@ public:
void setProgram(Program *program);
void setPaused(const bool val);
void setDt(int dt);
private:
int time;
int dt;