normalised cartographic camera

This commit is contained in:
robin committed 2024-05-05 14:50:26 +02:00
1 parent 06315a3d52
commit 346e44da48
8 files changed
+128 -65

No files matched your search

+11 -6
View File
@@ -13,6 +13,7 @@
#include <vtkVertexGlyphFilter.h>
#include <netcdf>
#include <vtkArrowSource.h>
#include "NormalisedCartographicCamera.h"
using namespace netCDF;
using namespace std;
@@ -64,11 +65,15 @@ void EGlyphLayer::readCoordinates() {
this->direction->SetNumberOfTuples(numLats*numLons);
points->Allocate(numLats*numLons);
auto camera = createNormalisedCartographicCamera();
ren->SetActiveCamera(camera);
int i = 0;
for (double lat : lats) {
for (double lon : lons) {
cout << "lon: " << lon << " lat: " << lat << endl;
direction->SetTuple3(i, 0.45, 0.90, 0); //FIXME: read this info from file
points->InsertPoint(i++, (lat*1000-46125)/25, (lon*1000+15875)/43.5, 0); // FIXME: counts on fixed window geometry to map properly; refactor to make use of active window geometry.
points->InsertPoint(i++, lon, lat, 0); // FIXME: counts on fixed window geometry to map properly; refactor to make use of active window geometry.
// see also https://vtk.org/doc/nightly/html/classvtkPolyDataMapper2D.html
}
}
@@ -78,7 +83,7 @@ void EGlyphLayer::readCoordinates() {
vtkNew<vtkGlyphSource2D> arrowSource;
arrowSource->SetGlyphTypeToArrow();
arrowSource->SetScale(8); //TODO: set this properly
arrowSource->SetScale(0.2); //TODO: set this properly
arrowSource->Update();
vtkNew<vtkGlyph2D> glyph2D;
@@ -90,15 +95,15 @@ void EGlyphLayer::readCoordinates() {
glyph2D->SetVectorModeToUseVector();
glyph2D->Update();
vtkNew<vtkCoordinate> coordinate;
coordinate->SetCoordinateSystemToWorld();
// vtkNew<vtkCoordinate> coordinate;
// coordinate->SetCoordinateSystemToWorld();
vtkNew<vtkPolyDataMapper2D>(mapper);
vtkNew<vtkPolyDataMapper>(mapper);
// mapper->SetTransformCoordinate(coordinate);
mapper->SetInputConnection(glyph2D->GetOutputPort());
mapper->Update();
vtkNew<vtkActor2D> actor;
vtkNew<vtkActor> actor;
actor->SetMapper(mapper);
actor->GetProperty()->SetColor(0,0,0);
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.