This example shows how to render a scalar field defined on vertices of a mesh.
27#include <easy3d/viewer/viewer.h>
28#include <easy3d/core/surface_mesh.h>
29#include <easy3d/renderer/renderer.h>
30#include <easy3d/renderer/drawable_triangles.h>
31#include <easy3d/renderer/texture_manager.h>
32#include <easy3d/fileio/surface_mesh_io.h>
33#include <easy3d/util/resource.h>
34#include <easy3d/util/initializer.h>
44int main(
int argc,
char **argv) {
48 const std::string file_name = resource::directory() +
"/data/building.off";
52 Viewer viewer(EXAMPLE_TITLE);
55 auto mesh =
dynamic_cast<SurfaceMesh *
>(viewer.add_model(file_name));
57 LOG(ERROR) <<
"failed to load model. Please make sure the file exists and format is correct.";
65 auto elevation = mesh->add_vertex_property<
float>(
"v:elevation");
66 for (
auto v : mesh->vertices())
67 elevation[v] = mesh->position(v).z;
70 auto drawable = mesh->renderer()->get_triangles_drawable(
"faces");
71 drawable->set_scalar_coloring(State::VERTEX,
"v:elevation",
nullptr, 0.0f, 0.0f);
A halfedge data structure for polygonal meshes of 2-manifold.
Definition surface_mesh.h:51
The built-in Easy3D viewer.
Definition viewer.h:63
Definition collider.cpp:182