Skip to content

Count Quantities

Count quantities store integers defined at just a few elements of a mesh, rather than at every element. These useful for visualizing special vertices or faces, e.g., singularities of a vector field.

count example

Example:

#include "polyscope/polyscope.h"
#include "polyscope/surface_mesh.h"

// Generate a random count quantity
std::vector<std::pair<size_t, int>> vCount;
for (size_t iV = 0; iV < nVertices; iV++) {
  if (polyscope::randomUnit() > 0.95) {
    vCount.push_back(std::make_pair(iV, 2));
  } 
}

// Add the count quantity
polyscope::getSurfaceMesh(/*mesh name */)->addVertexCountQuantity("sample count", vCount);

No adaptors here

Unlike almost all other quantity adders in Polyscope, these do not use the data adaptors, and must be explicitly given a std::vector<>.

SurfaceVertexCountQuantity* SurfaceMesh::addVertexCountQuantity(std::string name, const std::vector<std::pair<size_t, int>>& values)

Add a count quantity defined at vertices.

  • values is a list of pairs, where the first entry of each pair is a vertex index, and the second is an integer value at that vertex. This list may be any length.
SurfaceFaceCountQuantity* SurfaceMesh::addFaceCountQuantity(std::string name, const std::vector<std::pair<size_t, int>>& values)

Add a count quantity defined at faces.

  • values is a list of pairs, where the first entry of each pair is a face index, and the second is an integer value at that vertex. This list may be any length.
SurfaceVertexIsolatedScalarQuantity* SurfaceMesh::addVertexIsolatedScalarQuantity(std::string name, const std::vector<std::pair<size_t, double>>& values)

Add an isolated quantity defined at vertices. This is very similar to the SurfaceVertexCountQuantity, except the data is real-valued rather than integer-valued.

  • values is a list of pairs, where the first entry of each pair is a vertex index, and the second is an real value at that vertex. This list may be any length.

Options

Parameter Meaning Getter Setter Persistent?
enabled is the quantity enabled? bool isEnabled() setEnabled(bool newVal) yes
color map the color map to use std::string getColorMap() setColorMap(std::string newMap) yes
point radius radius of points double getPointRadius() setPointRadius(double newVal, bool isRelative) yes

(all setters return this to support chaining. setEnabled() returns generic quantity, so chain it last)