X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Fterrain.cpp;h=072a6e5a26b322066e2818873dd6b8b026332b25;hb=fa5708850ec8b4d7d9795501d1bba7b83aa5a30b;hp=e84c7cdc1c360102a89fb60d92af868363e27d2f;hpb=2220ba2f11705ea9a4e480603d43ab7ed4cf5a89;p=r2c2.git diff --git a/source/libr2c2/terrain.cpp b/source/libr2c2/terrain.cpp index e84c7cd..072a6e5 100644 --- a/source/libr2c2/terrain.cpp +++ b/source/libr2c2/terrain.cpp @@ -97,7 +97,7 @@ void Terrain::set_node_elevation(const NodeCoordinates &c, float elev, bool join Tile &tile = tiles[x+y*width]; if(tile.nodes[i].elevation==ref) { - tile.nodes[i].elevation = elev; + tile.set_node_elevation(i, elev); signal_tile_changed.emit(x, y); } } @@ -105,7 +105,7 @@ void Terrain::set_node_elevation(const NodeCoordinates &c, float elev, bool join } else { - tiles[c.x+c.y*width].nodes[c.i].elevation = elev; + tiles[c.x+c.y*width].set_node_elevation(c.i, elev); signal_tile_changed.emit(c.x, c.y); } } @@ -132,6 +132,11 @@ Vector Terrain::get_node_position(const NodeCoordinates &c) const Terrain::NodeCoordinates Terrain::get_closest_node(const Ray &ray) const { + Transform reverse_trans = Transform::rotation(rotation, Vector(0, 0, -1))* + Transform::translation(-position); + Ray local_ray = reverse_trans.transform(ray); + + float ts = type.get_tile_size(); NodeCoordinates coords; float closest_dist = -1; for(unsigned y=0; y &st) const { bool flat = true;