From 40a3fe9b123822e60a63fd6291236b2b8224bab3 Mon Sep 17 00:00:00 2001 From: Nicholas Sharp Date: Sun, 26 Nov 2023 01:53:32 -0800 Subject: [PATCH 1/2] store scalar buffers as float32 for consistency with others --- include/polyscope/curve_network.h | 4 +-- include/polyscope/curve_network.ipp | 4 +-- .../polyscope/curve_network_scalar_quantity.h | 6 ++--- include/polyscope/histogram.h | 6 ++--- include/polyscope/implicit_helpers.ipp | 6 +---- include/polyscope/point_cloud.h | 2 +- include/polyscope/point_cloud.ipp | 2 +- .../polyscope/point_cloud_scalar_quantity.h | 2 +- include/polyscope/scalar_image_quantity.h | 2 +- include/polyscope/scalar_quantity.h | 6 ++--- include/polyscope/scalar_quantity.ipp | 4 +-- .../polyscope/scalar_render_image_quantity.h | 4 +-- include/polyscope/structure.h | 4 +-- include/polyscope/structure.ipp | 12 ++++----- include/polyscope/surface_mesh.h | 26 +++++++++---------- include/polyscope/surface_mesh.ipp | 18 ++++++------- include/polyscope/surface_scalar_quantity.h | 14 +++++----- include/polyscope/surface_vector_quantity.h | 4 +-- include/polyscope/volume_grid.h | 4 +-- include/polyscope/volume_grid.ipp | 4 +-- .../polyscope/volume_grid_scalar_quantity.h | 4 +-- include/polyscope/volume_mesh.h | 4 +-- include/polyscope/volume_mesh.ipp | 4 +-- .../polyscope/volume_mesh_scalar_quantity.h | 6 ++--- src/curve_network.cpp | 8 +++--- src/curve_network_scalar_quantity.cpp | 6 ++--- src/histogram.cpp | 4 +-- src/marching_cubes.cpp | 1 - src/point_cloud.cpp | 2 +- src/point_cloud_scalar_quantity.cpp | 2 +- src/render/managed_buffer.cpp | 2 +- src/scalar_image_quantity.cpp | 4 +-- src/scalar_render_image_quantity.cpp | 4 +-- src/surface_mesh.cpp | 18 ++++++------- src/surface_scalar_quantity.cpp | 14 +++++----- src/surface_vector_quantity.cpp | 6 ++--- src/volume_grid.cpp | 4 +-- src/volume_grid_scalar_quantity.cpp | 5 ++-- src/volume_mesh.cpp | 6 ++--- src/volume_mesh_scalar_quantity.cpp | 14 +++++----- 40 files changed, 123 insertions(+), 129 deletions(-) diff --git a/include/polyscope/curve_network.h b/include/polyscope/curve_network.h index ffe73d4e..1a83fa40 100644 --- a/include/polyscope/curve_network.h +++ b/include/polyscope/curve_network.h @@ -187,8 +187,8 @@ class CurveNetwork : public QuantityStructure { // === Quantity adder implementations // clang-format off - CurveNetworkNodeScalarQuantity* addNodeScalarQuantityImpl(std::string name, const std::vector& data, DataType type); - CurveNetworkEdgeScalarQuantity* addEdgeScalarQuantityImpl(std::string name, const std::vector& data, DataType type); + CurveNetworkNodeScalarQuantity* addNodeScalarQuantityImpl(std::string name, const std::vector& data, DataType type); + CurveNetworkEdgeScalarQuantity* addEdgeScalarQuantityImpl(std::string name, const std::vector& data, DataType type); CurveNetworkNodeColorQuantity* addNodeColorQuantityImpl(std::string name, const std::vector& colors); CurveNetworkEdgeColorQuantity* addEdgeColorQuantityImpl(std::string name, const std::vector& colors); CurveNetworkNodeVectorQuantity* addNodeVectorQuantityImpl(std::string name, const std::vector& vectors, VectorType vectorType); diff --git a/include/polyscope/curve_network.ipp b/include/polyscope/curve_network.ipp index 2bfd2b2a..dc0dc906 100644 --- a/include/polyscope/curve_network.ipp +++ b/include/polyscope/curve_network.ipp @@ -218,13 +218,13 @@ CurveNetworkEdgeColorQuantity* CurveNetwork::addEdgeColorQuantity(std::string na template CurveNetworkNodeScalarQuantity* CurveNetwork::addNodeScalarQuantity(std::string name, const T& data, DataType type) { validateSize(data, nNodes(), "curve network node scalar quantity " + name); - return addNodeScalarQuantityImpl(name, standardizeArray(data), type); + return addNodeScalarQuantityImpl(name, standardizeArray(data), type); } template CurveNetworkEdgeScalarQuantity* CurveNetwork::addEdgeScalarQuantity(std::string name, const T& data, DataType type) { validateSize(data, nEdges(), "curve network edge scalar quantity " + name); - return addEdgeScalarQuantityImpl(name, standardizeArray(data), type); + return addEdgeScalarQuantityImpl(name, standardizeArray(data), type); } diff --git a/include/polyscope/curve_network_scalar_quantity.h b/include/polyscope/curve_network_scalar_quantity.h index 97e3b86f..27c79bed 100644 --- a/include/polyscope/curve_network_scalar_quantity.h +++ b/include/polyscope/curve_network_scalar_quantity.h @@ -13,7 +13,7 @@ namespace polyscope { class CurveNetworkScalarQuantity : public CurveNetworkQuantity, public ScalarQuantity { public: CurveNetworkScalarQuantity(std::string name, CurveNetwork& network_, std::string definedOn, - const std::vector& values, DataType dataType); + const std::vector& values, DataType dataType); virtual void draw() override; virtual void buildCustomUI() override; @@ -36,7 +36,7 @@ class CurveNetworkScalarQuantity : public CurveNetworkQuantity, public ScalarQua class CurveNetworkNodeScalarQuantity : public CurveNetworkScalarQuantity { public: - CurveNetworkNodeScalarQuantity(std::string name, const std::vector& values_, CurveNetwork& network_, + CurveNetworkNodeScalarQuantity(std::string name, const std::vector& values_, CurveNetwork& network_, DataType dataType_ = DataType::STANDARD); virtual void createProgram() override; @@ -51,7 +51,7 @@ class CurveNetworkNodeScalarQuantity : public CurveNetworkScalarQuantity { class CurveNetworkEdgeScalarQuantity : public CurveNetworkScalarQuantity { public: - CurveNetworkEdgeScalarQuantity(std::string name, const std::vector& values_, CurveNetwork& network_, + CurveNetworkEdgeScalarQuantity(std::string name, const std::vector& values_, CurveNetwork& network_, DataType dataType_ = DataType::STANDARD); virtual void createProgram() override; diff --git a/include/polyscope/histogram.h b/include/polyscope/histogram.h index 6c7561d4..aa33592e 100644 --- a/include/polyscope/histogram.h +++ b/include/polyscope/histogram.h @@ -13,12 +13,12 @@ namespace polyscope { // A histogram that shows up in ImGUI class Histogram { public: - Histogram(); // must call buildHistogram() with data after - Histogram(std::vector& values); // internally calls buildHistogram() + Histogram(); // must call buildHistogram() with data after + Histogram(std::vector& values); // internally calls buildHistogram() ~Histogram(); - void buildHistogram(const std::vector& values); + void buildHistogram(const std::vector& values); void updateColormap(const std::string& newColormap); // Width = -1 means set automatically diff --git a/include/polyscope/implicit_helpers.ipp b/include/polyscope/implicit_helpers.ipp index 825f37e3..aa95ad3a 100644 --- a/include/polyscope/implicit_helpers.ipp +++ b/include/polyscope/implicit_helpers.ipp @@ -459,11 +459,7 @@ ScalarRenderImageQuantity* renderImplicitSurfaceScalarBatch(QuantityStructure // rather than creating a whole new one // here, we bypass the conversion adaptor since we have explicitly filled matching types - std::vector scalarOutD(rayPosOut.size()); - for (size_t i = 0; i < scalarOut.size(); i++) { - scalarOutD[i] = scalarOut[i]; - } - return parent->addScalarRenderImageQuantityImpl(name, opts.dimX, opts.dimY, rayDepthOut, normalOut, scalarOutD, + return parent->addScalarRenderImageQuantityImpl(name, opts.dimX, opts.dimY, rayDepthOut, normalOut, scalarOut, ImageOrigin::UpperLeft, dataType); } diff --git a/include/polyscope/point_cloud.h b/include/polyscope/point_cloud.h index 170a21f7..c58efea8 100644 --- a/include/polyscope/point_cloud.h +++ b/include/polyscope/point_cloud.h @@ -163,7 +163,7 @@ class PointCloud : public QuantityStructure { void ensurePickProgramPrepared(); // === Quantity adder implementations - PointCloudScalarQuantity* addScalarQuantityImpl(std::string name, const std::vector& data, DataType type); + PointCloudScalarQuantity* addScalarQuantityImpl(std::string name, const std::vector& data, DataType type); PointCloudParameterizationQuantity* addParameterizationQuantityImpl(std::string name, const std::vector& param, ParamCoordsType type); PointCloudParameterizationQuantity* diff --git a/include/polyscope/point_cloud.ipp b/include/polyscope/point_cloud.ipp index 136958b6..dd705aa6 100644 --- a/include/polyscope/point_cloud.ipp +++ b/include/polyscope/point_cloud.ipp @@ -77,7 +77,7 @@ PointCloudColorQuantity* PointCloud::addColorQuantity(std::string name, const T& template PointCloudScalarQuantity* PointCloud::addScalarQuantity(std::string name, const T& data, DataType type) { validateSize(data, nPoints(), "point cloud scalar quantity " + name); - return addScalarQuantityImpl(name, standardizeArray(data), type); + return addScalarQuantityImpl(name, standardizeArray(data), type); } diff --git a/include/polyscope/point_cloud_scalar_quantity.h b/include/polyscope/point_cloud_scalar_quantity.h index 9aea822c..903b9ed7 100644 --- a/include/polyscope/point_cloud_scalar_quantity.h +++ b/include/polyscope/point_cloud_scalar_quantity.h @@ -15,7 +15,7 @@ namespace polyscope { class PointCloudScalarQuantity : public PointCloudQuantity, public ScalarQuantity { public: - PointCloudScalarQuantity(std::string name, const std::vector& values, PointCloud& pointCloud_, + PointCloudScalarQuantity(std::string name, const std::vector& values, PointCloud& pointCloud_, DataType dataType); virtual void draw() override; diff --git a/include/polyscope/scalar_image_quantity.h b/include/polyscope/scalar_image_quantity.h index 7286b493..9d2dddbc 100644 --- a/include/polyscope/scalar_image_quantity.h +++ b/include/polyscope/scalar_image_quantity.h @@ -14,7 +14,7 @@ namespace polyscope { class ScalarImageQuantity : public ImageQuantity, public ScalarQuantity { public: - ScalarImageQuantity(Structure& parent_, std::string name, size_t dimX, size_t dimY, const std::vector& data, + ScalarImageQuantity(Structure& parent_, std::string name, size_t dimX, size_t dimY, const std::vector& data, ImageOrigin imageOrigin, DataType dataType); virtual void buildCustomUI() override; diff --git a/include/polyscope/scalar_quantity.h b/include/polyscope/scalar_quantity.h index 54aafdec..167eb3bc 100644 --- a/include/polyscope/scalar_quantity.h +++ b/include/polyscope/scalar_quantity.h @@ -18,7 +18,7 @@ namespace polyscope { template class ScalarQuantity { public: - ScalarQuantity(QuantityT& quantity, const std::vector& values, DataType dataType); + ScalarQuantity(QuantityT& quantity, const std::vector& values, DataType dataType); // Build the ImGUI UIs for scalars void buildScalarUI(); @@ -38,7 +38,7 @@ class ScalarQuantity { // Wrapper around the actual buffer of scalar data stored in the class. // Interaction with the data (updating it on CPU or GPU side, accessing it, etc) happens through this wrapper. - render::ManagedBuffer values; + render::ManagedBuffer values; // === Get/set visualization parameters @@ -61,7 +61,7 @@ class ScalarQuantity { double getIsolineDarkness(); protected: - std::vector valuesData; + std::vector valuesData; const DataType dataType; // === Visualization parameters diff --git a/include/polyscope/scalar_quantity.ipp b/include/polyscope/scalar_quantity.ipp index 436313d6..550dba2d 100644 --- a/include/polyscope/scalar_quantity.ipp +++ b/include/polyscope/scalar_quantity.ipp @@ -5,7 +5,7 @@ namespace polyscope { template -ScalarQuantity::ScalarQuantity(QuantityT& quantity_, const std::vector& values_, DataType dataType_) +ScalarQuantity::ScalarQuantity(QuantityT& quantity_, const std::vector& values_, DataType dataType_) : quantity(quantity_), values(&quantity, quantity.uniquePrefix() + "values", valuesData), valuesData(values_), dataType(dataType_), dataRange(robustMinMax(values.data, 1e-5)), cMap(quantity.uniquePrefix() + "cmap", defaultColorMap(dataType)), @@ -194,7 +194,7 @@ template template void ScalarQuantity::updateData(const V& newValues) { validateSize(newValues, values.size(), "scalar quantity " + quantity.name); - values.data = standardizeArray(newValues); + values.data = standardizeArray(newValues); values.markHostBufferUpdated(); } diff --git a/include/polyscope/scalar_render_image_quantity.h b/include/polyscope/scalar_render_image_quantity.h index 1ee51507..9614a0c0 100644 --- a/include/polyscope/scalar_render_image_quantity.h +++ b/include/polyscope/scalar_render_image_quantity.h @@ -17,7 +17,7 @@ class ScalarRenderImageQuantity : public RenderImageQuantityBase, public ScalarQ public: ScalarRenderImageQuantity(Structure& parent_, std::string name, size_t dimX, size_t dimY, const std::vector& depthData, const std::vector& normalData, - const std::vector& scalarData, ImageOrigin imageOrigin, DataType dataType); + const std::vector& scalarData, ImageOrigin imageOrigin, DataType dataType); virtual void draw() override; virtual void drawDelayed() override; @@ -52,7 +52,7 @@ void ScalarRenderImageQuantity::updateBuffers(const T1& depthData, const T2& nor // standardize std::vector standardDepth(standardizeArray(depthData)); std::vector standardNormal(standardizeVectorArray(normalData)); - std::vector standardScalar(standardizeArray(scalarData)); + std::vector standardScalar(standardizeArray(scalarData)); values.data = standardScalar; values.markHostBufferUpdated(); diff --git a/include/polyscope/structure.h b/include/polyscope/structure.h index b55c03f9..121d1a7f 100644 --- a/include/polyscope/structure.h +++ b/include/polyscope/structure.h @@ -250,7 +250,7 @@ class QuantityStructure : public Structure { // === Floating Quantity impls ScalarImageQuantity* addScalarImageQuantityImpl(std::string name, size_t dimX, size_t dimY, - const std::vector& values, ImageOrigin imageOrigin, + const std::vector& values, ImageOrigin imageOrigin, DataType type); ColorImageQuantity* addColorImageQuantityImpl(std::string name, size_t dimX, size_t dimY, @@ -270,7 +270,7 @@ class QuantityStructure : public Structure { ScalarRenderImageQuantity* addScalarRenderImageQuantityImpl(std::string name, size_t dimX, size_t dimY, const std::vector& depthData, const std::vector& normalData, - const std::vector& scalarData, + const std::vector& scalarData, ImageOrigin imageOrigin, DataType type); RawColorRenderImageQuantity* addRawColorRenderImageQuantityImpl(std::string name, size_t dimX, size_t dimY, diff --git a/include/polyscope/structure.ipp b/include/polyscope/structure.ipp index 58bc8683..ca3169de 100644 --- a/include/polyscope/structure.ipp +++ b/include/polyscope/structure.ipp @@ -190,7 +190,7 @@ ScalarImageQuantity* QuantityStructure::addScalarImageQuantity(std::string na const T& values, ImageOrigin imageOrigin, DataType type) { validateSize(values, dimX * dimY, "floating scalar image " + name); - return this->addScalarImageQuantityImpl(name, dimX, dimY, standardizeArray(values), imageOrigin, type); + return this->addScalarImageQuantityImpl(name, dimX, dimY, standardizeArray(values), imageOrigin, type); } @@ -271,7 +271,7 @@ QuantityStructure::addScalarRenderImageQuantity(std::string name, size_t dimX // standardize std::vector standardDepth(standardizeArray(depthData)); std::vector standardNormal(standardizeVectorArray(normalData)); - std::vector standardScalar(standardizeArray(scalarData)); + std::vector standardScalar(standardizeArray(scalarData)); return this->addScalarRenderImageQuantityImpl(name, dimX, dimY, standardDepth, standardNormal, standardScalar, imageOrigin, type); @@ -314,7 +314,7 @@ RawColorAlphaRenderImageQuantity* QuantityStructure::addRawColorAlphaRenderIm // Otherwise, we would have to include their respective headers here, and create some really gnarly header dependency // chains. ScalarImageQuantity* createScalarImageQuantity(Structure& parent, std::string name, size_t dimX, size_t dimY, - const std::vector& data, ImageOrigin imageOrigin, + const std::vector& data, ImageOrigin imageOrigin, DataType dataType); ColorImageQuantity* createColorImageQuantity(Structure& parent, std::string name, size_t dimX, size_t dimY, const std::vector& data, ImageOrigin imageOrigin); @@ -342,12 +342,12 @@ RawColorAlphaRenderImageQuantity* createRawColorAlphaRenderImage(Structure& pare ScalarRenderImageQuantity* createScalarRenderImage(Structure& parent, std::string name, size_t dimX, size_t dimY, const std::vector& depthData, const std::vector& normalData, - const std::vector& scalarData, ImageOrigin imageOrigin, + const std::vector& scalarData, ImageOrigin imageOrigin, DataType type); template ScalarImageQuantity* QuantityStructure::addScalarImageQuantityImpl(std::string name, size_t dimX, size_t dimY, - const std::vector& values, + const std::vector& values, ImageOrigin imageOrigin, DataType type) { checkForQuantityWithNameAndDeleteOrError(name); ScalarImageQuantity* q = createScalarImageQuantity(*this, name, dimX, dimY, values, imageOrigin, type); @@ -389,7 +389,7 @@ ColorRenderImageQuantity* QuantityStructure::addColorRenderImageQuantityImpl( template ScalarRenderImageQuantity* QuantityStructure::addScalarRenderImageQuantityImpl( std::string name, size_t dimX, size_t dimY, const std::vector& depthData, - const std::vector& normalData, const std::vector& scalarData, ImageOrigin imageOrigin, + const std::vector& normalData, const std::vector& scalarData, ImageOrigin imageOrigin, DataType type) { checkForQuantityWithNameAndDeleteOrError(name); ScalarRenderImageQuantity* q = diff --git a/include/polyscope/surface_mesh.h b/include/polyscope/surface_mesh.h index 6b1ccc22..e614d797 100644 --- a/include/polyscope/surface_mesh.h +++ b/include/polyscope/surface_mesh.h @@ -111,9 +111,9 @@ class SurfaceMesh : public QuantityStructure { // other internally-computed geometry render::ManagedBuffer faceNormals; render::ManagedBuffer faceCenters; - render::ManagedBuffer faceAreas; + render::ManagedBuffer faceAreas; render::ManagedBuffer vertexNormals; - render::ManagedBuffer vertexAreas; + render::ManagedBuffer vertexAreas; // render::ManagedBuffer edgeLengths; // tangent spaces @@ -317,9 +317,9 @@ class SurfaceMesh : public QuantityStructure { // other internally-computed geometry std::vector faceNormalsData; std::vector faceCentersData; - std::vector faceAreasData; + std::vector faceAreasData; std::vector vertexNormalsData; - std::vector vertexAreasData; + std::vector vertexAreasData; // std::vector edgeLengthsData; // tangent spaces @@ -396,14 +396,14 @@ class SurfaceMesh : public QuantityStructure { SurfaceVertexColorQuantity* addVertexColorQuantityImpl(std::string name, const std::vector& colors); SurfaceFaceColorQuantity* addFaceColorQuantityImpl(std::string name, const std::vector& colors); SurfaceTextureColorQuantity* addTextureColorQuantityImpl(std::string name, SurfaceParameterizationQuantity& param, size_t dimX, size_t dimY, const std::vector& colors, ImageOrigin imageOrigin); - SurfaceVertexScalarQuantity* addVertexScalarQuantityImpl(std::string name, const std::vector& data, DataType type); - SurfaceFaceScalarQuantity* addFaceScalarQuantityImpl(std::string name, const std::vector& data, DataType type); - SurfaceEdgeScalarQuantity* addEdgeScalarQuantityImpl(std::string name, const std::vector& data, DataType type); - SurfaceHalfedgeScalarQuantity* addHalfedgeScalarQuantityImpl(std::string name, const std::vector& data, DataType type); - SurfaceCornerScalarQuantity* addCornerScalarQuantityImpl(std::string name, const std::vector& data, DataType type); - SurfaceTextureScalarQuantity* addTextureScalarQuantityImpl(std::string name, SurfaceParameterizationQuantity& param, size_t dimX, size_t dimY, const std::vector& data, ImageOrigin imageOrigin, DataType type); - SurfaceVertexScalarQuantity* addVertexDistanceQuantityImpl(std::string name, const std::vector& data); - SurfaceVertexScalarQuantity* addVertexSignedDistanceQuantityImpl(std::string name, const std::vector& data); + SurfaceVertexScalarQuantity* addVertexScalarQuantityImpl(std::string name, const std::vector& data, DataType type); + SurfaceFaceScalarQuantity* addFaceScalarQuantityImpl(std::string name, const std::vector& data, DataType type); + SurfaceEdgeScalarQuantity* addEdgeScalarQuantityImpl(std::string name, const std::vector& data, DataType type); + SurfaceHalfedgeScalarQuantity* addHalfedgeScalarQuantityImpl(std::string name, const std::vector& data, DataType type); + SurfaceCornerScalarQuantity* addCornerScalarQuantityImpl(std::string name, const std::vector& data, DataType type); + SurfaceTextureScalarQuantity* addTextureScalarQuantityImpl(std::string name, SurfaceParameterizationQuantity& param, size_t dimX, size_t dimY, const std::vector& data, ImageOrigin imageOrigin, DataType type); + SurfaceVertexScalarQuantity* addVertexDistanceQuantityImpl(std::string name, const std::vector& data); + SurfaceVertexScalarQuantity* addVertexSignedDistanceQuantityImpl(std::string name, const std::vector& data); SurfaceCornerParameterizationQuantity* addParameterizationQuantityImpl(std::string name, const std::vector& coords, ParamCoordsType type); SurfaceVertexParameterizationQuantity* addVertexParameterizationQuantityImpl(std::string name, const std::vector& coords, ParamCoordsType type); SurfaceVertexParameterizationQuantity* addLocalParameterizationQuantityImpl(std::string name, const std::vector& coords, ParamCoordsType type); @@ -411,7 +411,7 @@ class SurfaceMesh : public QuantityStructure { SurfaceFaceVectorQuantity* addFaceVectorQuantityImpl(std::string name, const std::vector& vectors, VectorType vectorType); SurfaceFaceTangentVectorQuantity* addFaceTangentVectorQuantityImpl(std::string name, const std::vector& vectors, const std::vector& basisX, const std::vector& basisY, int nSym, VectorType vectorType); SurfaceVertexTangentVectorQuantity* addVertexTangentVectorQuantityImpl(std::string name, const std::vector& vectors, const std::vector& basisX, const std::vector& basisY, int nSym, VectorType vectorType); - SurfaceOneFormTangentVectorQuantity* addOneFormTangentVectorQuantityImpl(std::string name, const std::vector& data, const std::vector& orientations); + SurfaceOneFormTangentVectorQuantity* addOneFormTangentVectorQuantityImpl(std::string name, const std::vector& data, const std::vector& orientations); // === Helper implementations diff --git a/include/polyscope/surface_mesh.ipp b/include/polyscope/surface_mesh.ipp index 0552948c..a34e005d 100644 --- a/include/polyscope/surface_mesh.ipp +++ b/include/polyscope/surface_mesh.ipp @@ -240,13 +240,13 @@ SurfaceTextureColorQuantity* SurfaceMesh::addTextureColorQuantity(std::string na template SurfaceVertexScalarQuantity* SurfaceMesh::addVertexDistanceQuantity(std::string name, const T& distances) { validateSize(distances, vertexDataSize, "distance quantity " + name); - return addVertexDistanceQuantityImpl(name, standardizeArray(distances)); + return addVertexDistanceQuantityImpl(name, standardizeArray(distances)); } template SurfaceVertexScalarQuantity* SurfaceMesh::addVertexSignedDistanceQuantity(std::string name, const T& distances) { validateSize(distances, vertexDataSize, "signed distance quantity " + name); - return addVertexSignedDistanceQuantityImpl(name, standardizeArray(distances)); + return addVertexSignedDistanceQuantityImpl(name, standardizeArray(distances)); } // Standard a parameterization, defined at corners @@ -276,13 +276,13 @@ SurfaceVertexParameterizationQuantity* SurfaceMesh::addLocalParameterizationQuan template SurfaceVertexScalarQuantity* SurfaceMesh::addVertexScalarQuantity(std::string name, const T& data, DataType type) { validateSize(data, vertexDataSize, "vertex scalar quantity " + name); - return addVertexScalarQuantityImpl(name, standardizeArray(data), type); + return addVertexScalarQuantityImpl(name, standardizeArray(data), type); } template SurfaceFaceScalarQuantity* SurfaceMesh::addFaceScalarQuantity(std::string name, const T& data, DataType type) { validateSize(data, faceDataSize, "face scalar quantity " + name); - return addFaceScalarQuantityImpl(name, standardizeArray(data), type); + return addFaceScalarQuantityImpl(name, standardizeArray(data), type); } @@ -293,19 +293,19 @@ SurfaceEdgeScalarQuantity* SurfaceMesh::addEdgeScalarQuantity(std::string name, " attempted to set edge-valued data, but this requires an edge ordering. Call setEdgePermutation()."); } validateSize(data, edgeDataSize, "edge scalar quantity " + name); - return addEdgeScalarQuantityImpl(name, standardizeArray(data), type); + return addEdgeScalarQuantityImpl(name, standardizeArray(data), type); } template SurfaceHalfedgeScalarQuantity* SurfaceMesh::addHalfedgeScalarQuantity(std::string name, const T& data, DataType type) { validateSize(data, halfedgeDataSize, "halfedge scalar quantity " + name); - return addHalfedgeScalarQuantityImpl(name, standardizeArray(data), type); + return addHalfedgeScalarQuantityImpl(name, standardizeArray(data), type); } template SurfaceCornerScalarQuantity* SurfaceMesh::addCornerScalarQuantity(std::string name, const T& data, DataType type) { validateSize(data, cornerDataSize, "corner scalar quantity " + name); - return addCornerScalarQuantityImpl(name, standardizeArray(data), type); + return addCornerScalarQuantityImpl(name, standardizeArray(data), type); } template @@ -313,7 +313,7 @@ SurfaceTextureScalarQuantity* SurfaceMesh::addTextureScalarQuantity(std::string name, SurfaceParameterizationQuantity& param, size_t dimX, size_t dimY, const T& values, ImageOrigin imageOrigin, DataType type) { validateSize(values, dimX * dimY, "texture color quantity " + name); - return addTextureScalarQuantityImpl(name, param, dimX, dimY, standardizeArray(values), imageOrigin, type); + return addTextureScalarQuantityImpl(name, param, dimX, dimY, standardizeArray(values), imageOrigin, type); } template @@ -401,7 +401,7 @@ SurfaceOneFormTangentVectorQuantity* SurfaceMesh::addOneFormTangentVectorQuantit " attempted to set edge-valued data, but this requires an edge ordering. Call setEdgePermutation()."); } validateSize(data, edgeDataSize, "one form tangent vector quantity " + name); - return addOneFormTangentVectorQuantityImpl(name, standardizeArray(data), + return addOneFormTangentVectorQuantityImpl(name, standardizeArray(data), standardizeArray(orientations)); } diff --git a/include/polyscope/surface_scalar_quantity.h b/include/polyscope/surface_scalar_quantity.h index 36ab03fd..9cf9969f 100644 --- a/include/polyscope/surface_scalar_quantity.h +++ b/include/polyscope/surface_scalar_quantity.h @@ -20,7 +20,7 @@ class SurfaceParameterizationQuantity; class SurfaceScalarQuantity : public SurfaceMeshQuantity, public ScalarQuantity { public: - SurfaceScalarQuantity(std::string name, SurfaceMesh& mesh_, std::string definedOn, const std::vector& values_, + SurfaceScalarQuantity(std::string name, SurfaceMesh& mesh_, std::string definedOn, const std::vector& values_, DataType dataType); virtual void draw() override; @@ -42,7 +42,7 @@ class SurfaceScalarQuantity : public SurfaceMeshQuantity, public ScalarQuantity< class SurfaceVertexScalarQuantity : public SurfaceScalarQuantity { public: - SurfaceVertexScalarQuantity(std::string name, const std::vector& values_, SurfaceMesh& mesh_, + SurfaceVertexScalarQuantity(std::string name, const std::vector& values_, SurfaceMesh& mesh_, DataType dataType_ = DataType::STANDARD); virtual void createProgram() override; @@ -57,7 +57,7 @@ class SurfaceVertexScalarQuantity : public SurfaceScalarQuantity { class SurfaceFaceScalarQuantity : public SurfaceScalarQuantity { public: - SurfaceFaceScalarQuantity(std::string name, const std::vector& values_, SurfaceMesh& mesh_, + SurfaceFaceScalarQuantity(std::string name, const std::vector& values_, SurfaceMesh& mesh_, DataType dataType_ = DataType::STANDARD); virtual void createProgram() override; @@ -72,7 +72,7 @@ class SurfaceFaceScalarQuantity : public SurfaceScalarQuantity { class SurfaceEdgeScalarQuantity : public SurfaceScalarQuantity { public: - SurfaceEdgeScalarQuantity(std::string name, const std::vector& values_, SurfaceMesh& mesh_, + SurfaceEdgeScalarQuantity(std::string name, const std::vector& values_, SurfaceMesh& mesh_, DataType dataType_ = DataType::STANDARD); virtual void createProgram() override; @@ -86,7 +86,7 @@ class SurfaceEdgeScalarQuantity : public SurfaceScalarQuantity { class SurfaceHalfedgeScalarQuantity : public SurfaceScalarQuantity { public: - SurfaceHalfedgeScalarQuantity(std::string name, const std::vector& values_, SurfaceMesh& mesh_, + SurfaceHalfedgeScalarQuantity(std::string name, const std::vector& values_, SurfaceMesh& mesh_, DataType dataType_ = DataType::STANDARD); virtual void createProgram() override; @@ -100,7 +100,7 @@ class SurfaceHalfedgeScalarQuantity : public SurfaceScalarQuantity { class SurfaceCornerScalarQuantity : public SurfaceScalarQuantity { public: - SurfaceCornerScalarQuantity(std::string name, const std::vector& values_, SurfaceMesh& mesh_, + SurfaceCornerScalarQuantity(std::string name, const std::vector& values_, SurfaceMesh& mesh_, DataType dataType_ = DataType::STANDARD); virtual void createProgram() override; @@ -115,7 +115,7 @@ class SurfaceCornerScalarQuantity : public SurfaceScalarQuantity { class SurfaceTextureScalarQuantity : public SurfaceScalarQuantity { public: SurfaceTextureScalarQuantity(std::string name, SurfaceMesh& mesh_, SurfaceParameterizationQuantity& param_, - size_t dimX, size_t dimY, const std::vector& values_, ImageOrigin origin_, + size_t dimX, size_t dimY, const std::vector& values_, ImageOrigin origin_, DataType dataType_ = DataType::STANDARD); virtual void createProgram() override; diff --git a/include/polyscope/surface_vector_quantity.h b/include/polyscope/surface_vector_quantity.h index 2574fa7a..00b99d89 100644 --- a/include/polyscope/surface_vector_quantity.h +++ b/include/polyscope/surface_vector_quantity.h @@ -99,7 +99,7 @@ class SurfaceVertexTangentVectorQuantity : public SurfaceVectorQuantity, class SurfaceOneFormTangentVectorQuantity : public SurfaceVectorQuantity, public TangentVectorQuantity { public: - SurfaceOneFormTangentVectorQuantity(std::string name, std::vector oneForm_, std::vector orientations_, + SurfaceOneFormTangentVectorQuantity(std::string name, std::vector oneForm_, std::vector orientations_, SurfaceMesh& mesh_); virtual void draw() override; @@ -107,7 +107,7 @@ class SurfaceOneFormTangentVectorQuantity : public SurfaceVectorQuantity, virtual void refresh() override; virtual std::string niceName() override; - std::vector oneForm; + std::vector oneForm; std::vector canonicalOrientation; void buildEdgeInfoGUI(size_t eInd) override; diff --git a/include/polyscope/volume_grid.h b/include/polyscope/volume_grid.h index 98addb93..71bcdb8c 100644 --- a/include/polyscope/volume_grid.h +++ b/include/polyscope/volume_grid.h @@ -185,8 +185,8 @@ class VolumeGrid : public QuantityStructure { // === Quantity adder implementations // clang-format off - VolumeGridNodeScalarQuantity* addNodeScalarQuantityImpl(std::string name, const std::vector& data, DataType dataType_); - VolumeGridCellScalarQuantity* addCellScalarQuantityImpl(std::string name, const std::vector& data, DataType dataType_); + VolumeGridNodeScalarQuantity* addNodeScalarQuantityImpl(std::string name, const std::vector& data, DataType dataType_); + VolumeGridCellScalarQuantity* addCellScalarQuantityImpl(std::string name, const std::vector& data, DataType dataType_); // clang-format on }; diff --git a/include/polyscope/volume_grid.ipp b/include/polyscope/volume_grid.ipp index 1472bfb8..ba820071 100644 --- a/include/polyscope/volume_grid.ipp +++ b/include/polyscope/volume_grid.ipp @@ -102,7 +102,7 @@ inline void removeVolumeGrid(std::string name, bool errorIfAbsent) { template VolumeGridNodeScalarQuantity* VolumeGrid::addNodeScalarQuantity(std::string name, const T& values, DataType dataType_) { validateSize(values, nNodes(), "grid node scalar quantity " + name); - return addNodeScalarQuantityImpl(name, standardizeArray(values), dataType_); + return addNodeScalarQuantityImpl(name, standardizeArray(values), dataType_); } @@ -145,7 +145,7 @@ VolumeGridNodeScalarQuantity* VolumeGrid::addNodeScalarQuantityFromBatchCallable template VolumeGridCellScalarQuantity* VolumeGrid::addCellScalarQuantity(std::string name, const T& values, DataType dataType_) { validateSize(values, nCells(), "grid cell scalar quantity " + name); - return addCellScalarQuantityImpl(name, standardizeArray(values), dataType_); + return addCellScalarQuantityImpl(name, standardizeArray(values), dataType_); } diff --git a/include/polyscope/volume_grid_scalar_quantity.h b/include/polyscope/volume_grid_scalar_quantity.h index b694324c..503c046a 100644 --- a/include/polyscope/volume_grid_scalar_quantity.h +++ b/include/polyscope/volume_grid_scalar_quantity.h @@ -20,7 +20,7 @@ namespace polyscope { class VolumeGridNodeScalarQuantity : public VolumeGridQuantity, public ScalarQuantity { public: - VolumeGridNodeScalarQuantity(std::string name, VolumeGrid& grid_, const std::vector& values_, + VolumeGridNodeScalarQuantity(std::string name, VolumeGrid& grid_, const std::vector& values_, DataType dataType_); virtual void draw() override; @@ -83,7 +83,7 @@ class VolumeGridNodeScalarQuantity : public VolumeGridQuantity, public ScalarQua class VolumeGridCellScalarQuantity : public VolumeGridQuantity, public ScalarQuantity { public: - VolumeGridCellScalarQuantity(std::string name, VolumeGrid& grid_, const std::vector& values_, + VolumeGridCellScalarQuantity(std::string name, VolumeGrid& grid_, const std::vector& values_, DataType dataType_); virtual void draw() override; diff --git a/include/polyscope/volume_mesh.h b/include/polyscope/volume_mesh.h index 1f29d85d..50598879 100644 --- a/include/polyscope/volume_mesh.h +++ b/include/polyscope/volume_mesh.h @@ -263,8 +263,8 @@ class VolumeMesh : public QuantityStructure { VolumeMeshVertexColorQuantity* addVertexColorQuantityImpl(std::string name, const std::vector& colors); VolumeMeshCellColorQuantity* addCellColorQuantityImpl(std::string name, const std::vector& colors); - VolumeMeshVertexScalarQuantity* addVertexScalarQuantityImpl(std::string name, const std::vector& data, DataType type); - VolumeMeshCellScalarQuantity* addCellScalarQuantityImpl(std::string name, const std::vector& data, DataType type); + VolumeMeshVertexScalarQuantity* addVertexScalarQuantityImpl(std::string name, const std::vector& data, DataType type); + VolumeMeshCellScalarQuantity* addCellScalarQuantityImpl(std::string name, const std::vector& data, DataType type); VolumeMeshVertexVectorQuantity* addVertexVectorQuantityImpl(std::string name, const std::vector& vectors, VectorType vectorType); VolumeMeshCellVectorQuantity* addCellVectorQuantityImpl(std::string name, const std::vector& vectors, VectorType vectorType); diff --git a/include/polyscope/volume_mesh.ipp b/include/polyscope/volume_mesh.ipp index 9b21936e..d06f3640 100644 --- a/include/polyscope/volume_mesh.ipp +++ b/include/polyscope/volume_mesh.ipp @@ -145,13 +145,13 @@ VolumeMeshCellColorQuantity* VolumeMesh::addCellColorQuantity(std::string name, template VolumeMeshVertexScalarQuantity* VolumeMesh::addVertexScalarQuantity(std::string name, const T& data, DataType type) { validateSize(data, nVertices(), "vertex scalar quantity " + name); - return addVertexScalarQuantityImpl(name, standardizeArray(data), type); + return addVertexScalarQuantityImpl(name, standardizeArray(data), type); } template VolumeMeshCellScalarQuantity* VolumeMesh::addCellScalarQuantity(std::string name, const T& data, DataType type) { validateSize(data, nCells(), "cell scalar quantity " + name); - return addCellScalarQuantityImpl(name, standardizeArray(data), type); + return addCellScalarQuantityImpl(name, standardizeArray(data), type); } diff --git a/include/polyscope/volume_mesh_scalar_quantity.h b/include/polyscope/volume_mesh_scalar_quantity.h index c0783809..a31be7a0 100644 --- a/include/polyscope/volume_mesh_scalar_quantity.h +++ b/include/polyscope/volume_mesh_scalar_quantity.h @@ -16,7 +16,7 @@ namespace polyscope { class VolumeMeshScalarQuantity : public VolumeMeshQuantity, public ScalarQuantity { public: VolumeMeshScalarQuantity(std::string name, VolumeMesh& mesh_, std::string definedOn, - const std::vector& values_, DataType dataType); + const std::vector& values_, DataType dataType); virtual void draw() override; virtual void buildCustomUI() override; @@ -38,7 +38,7 @@ class VolumeMeshScalarQuantity : public VolumeMeshQuantity, public ScalarQuantit class VolumeMeshVertexScalarQuantity : public VolumeMeshScalarQuantity { public: - VolumeMeshVertexScalarQuantity(std::string name, const std::vector& values_, VolumeMesh& mesh_, + VolumeMeshVertexScalarQuantity(std::string name, const std::vector& values_, VolumeMesh& mesh_, DataType dataType_ = DataType::STANDARD); virtual void createProgram() override; @@ -74,7 +74,7 @@ class VolumeMeshVertexScalarQuantity : public VolumeMeshScalarQuantity { class VolumeMeshCellScalarQuantity : public VolumeMeshScalarQuantity { public: - VolumeMeshCellScalarQuantity(std::string name, const std::vector& values_, VolumeMesh& mesh_, + VolumeMeshCellScalarQuantity(std::string name, const std::vector& values_, VolumeMesh& mesh_, DataType dataType_ = DataType::STANDARD); virtual void createProgram() override; diff --git a/src/curve_network.cpp b/src/curve_network.cpp index c8f9a18b..52a69347 100644 --- a/src/curve_network.cpp +++ b/src/curve_network.cpp @@ -527,16 +527,16 @@ CurveNetworkEdgeColorQuantity* CurveNetwork::addEdgeColorQuantityImpl(std::strin } -CurveNetworkNodeScalarQuantity* -CurveNetwork::addNodeScalarQuantityImpl(std::string name, const std::vector& data, DataType type) { +CurveNetworkNodeScalarQuantity* CurveNetwork::addNodeScalarQuantityImpl(std::string name, + const std::vector& data, DataType type) { checkForQuantityWithNameAndDeleteOrError(name); CurveNetworkNodeScalarQuantity* q = new CurveNetworkNodeScalarQuantity(name, data, *this, type); addQuantity(q); return q; } -CurveNetworkEdgeScalarQuantity* -CurveNetwork::addEdgeScalarQuantityImpl(std::string name, const std::vector& data, DataType type) { +CurveNetworkEdgeScalarQuantity* CurveNetwork::addEdgeScalarQuantityImpl(std::string name, + const std::vector& data, DataType type) { checkForQuantityWithNameAndDeleteOrError(name); CurveNetworkEdgeScalarQuantity* q = new CurveNetworkEdgeScalarQuantity(name, data, *this, type); addQuantity(q); diff --git a/src/curve_network_scalar_quantity.cpp b/src/curve_network_scalar_quantity.cpp index 3183d8b0..e346debf 100644 --- a/src/curve_network_scalar_quantity.cpp +++ b/src/curve_network_scalar_quantity.cpp @@ -13,7 +13,7 @@ using std::endl; namespace polyscope { CurveNetworkScalarQuantity::CurveNetworkScalarQuantity(std::string name, CurveNetwork& network_, std::string definedOn_, - const std::vector& values_, DataType dataType_) + const std::vector& values_, DataType dataType_) : CurveNetworkQuantity(name, network_, true), ScalarQuantity(*this, values_, dataType_), definedOn(definedOn_) {} void CurveNetworkScalarQuantity::draw() { @@ -69,7 +69,7 @@ std::string CurveNetworkScalarQuantity::niceName() { return name + " (" + define // ========== Node Scalar ========== // ======================================================== -CurveNetworkNodeScalarQuantity::CurveNetworkNodeScalarQuantity(std::string name, const std::vector& values_, +CurveNetworkNodeScalarQuantity::CurveNetworkNodeScalarQuantity(std::string name, const std::vector& values_, CurveNetwork& network_, DataType dataType_) : CurveNetworkScalarQuantity(name, network_, "node", values_, dataType_) @@ -130,7 +130,7 @@ void CurveNetworkNodeScalarQuantity::buildNodeInfoGUI(size_t nInd) { // ========== Edge Scalar ========== // ======================================================== -CurveNetworkEdgeScalarQuantity::CurveNetworkEdgeScalarQuantity(std::string name, const std::vector& values_, +CurveNetworkEdgeScalarQuantity::CurveNetworkEdgeScalarQuantity(std::string name, const std::vector& values_, CurveNetwork& network_, DataType dataType_) : CurveNetworkScalarQuantity(name, network_, "edge", values_, dataType_), nodeAverageValues(this, uniquePrefix() + "#nodeAverageValues", nodeAverageValuesData) {} diff --git a/src/histogram.cpp b/src/histogram.cpp index ef0d83cb..d3870773 100644 --- a/src/histogram.cpp +++ b/src/histogram.cpp @@ -15,11 +15,11 @@ namespace polyscope { Histogram::Histogram() {} -Histogram::Histogram(std::vector& values) { buildHistogram(values); } +Histogram::Histogram(std::vector& values) { buildHistogram(values); } Histogram::~Histogram() {} -void Histogram::buildHistogram(const std::vector& values) { +void Histogram::buildHistogram(const std::vector& values) { // Build arrays of values size_t N = values.size(); diff --git a/src/marching_cubes.cpp b/src/marching_cubes.cpp index 5cccf1b6..3971d48e 100644 --- a/src/marching_cubes.cpp +++ b/src/marching_cubes.cpp @@ -1,3 +1,2 @@ #define MC_IMPLEM_ENABLE -#define MC_CPP_USE_DOUBLE_PRECISION #include "MarchingCube/MC.h" diff --git a/src/point_cloud.cpp b/src/point_cloud.cpp index 6c8887a5..aa9dd198 100644 --- a/src/point_cloud.cpp +++ b/src/point_cloud.cpp @@ -381,7 +381,7 @@ PointCloudColorQuantity* PointCloud::addColorQuantityImpl(std::string name, cons return q; } -PointCloudScalarQuantity* PointCloud::addScalarQuantityImpl(std::string name, const std::vector& data, +PointCloudScalarQuantity* PointCloud::addScalarQuantityImpl(std::string name, const std::vector& data, DataType type) { checkForQuantityWithNameAndDeleteOrError(name); PointCloudScalarQuantity* q = new PointCloudScalarQuantity(name, data, *this, type); diff --git a/src/point_cloud_scalar_quantity.cpp b/src/point_cloud_scalar_quantity.cpp index 08d86585..045ff44e 100644 --- a/src/point_cloud_scalar_quantity.cpp +++ b/src/point_cloud_scalar_quantity.cpp @@ -9,7 +9,7 @@ namespace polyscope { -PointCloudScalarQuantity::PointCloudScalarQuantity(std::string name, const std::vector& values_, +PointCloudScalarQuantity::PointCloudScalarQuantity(std::string name, const std::vector& values_, PointCloud& pointCloud_, DataType dataType_) : PointCloudQuantity(name, pointCloud_, true), ScalarQuantity(*this, values_, dataType_) {} diff --git a/src/render/managed_buffer.cpp b/src/render/managed_buffer.cpp index 2a91a0d7..ecba28e6 100644 --- a/src/render/managed_buffer.cpp +++ b/src/render/managed_buffer.cpp @@ -591,7 +591,7 @@ template<> ManagedBufferMap& ManagedBufferMap& data_, ImageOrigin imageOrigin_, DataType dataType_) + const std::vector& data_, ImageOrigin imageOrigin_, DataType dataType_) : ImageQuantity(parent_, name, dimX, dimY, imageOrigin_), ScalarQuantity(*this, data_, dataType_) { values.setTextureSize(dimX, dimY); } @@ -165,7 +165,7 @@ ScalarImageQuantity* ScalarImageQuantity::setEnabled(bool newEnabled) { // Instantiate a construction helper which is used to avoid header dependencies. See forward declaration and note in // structure.ipp. ScalarImageQuantity* createScalarImageQuantity(Structure& parent, std::string name, size_t dimX, size_t dimY, - const std::vector& data, ImageOrigin imageOrigin, + const std::vector& data, ImageOrigin imageOrigin, DataType dataType) { return new ScalarImageQuantity(parent, name, dimX, dimY, data, imageOrigin, dataType); } diff --git a/src/scalar_render_image_quantity.cpp b/src/scalar_render_image_quantity.cpp index 429bf1e0..83c812d9 100644 --- a/src/scalar_render_image_quantity.cpp +++ b/src/scalar_render_image_quantity.cpp @@ -13,7 +13,7 @@ namespace polyscope { ScalarRenderImageQuantity::ScalarRenderImageQuantity(Structure& parent_, std::string name, size_t dimX, size_t dimY, const std::vector& depthData, const std::vector& normalData, - const std::vector& scalarData_, ImageOrigin imageOrigin, + const std::vector& scalarData_, ImageOrigin imageOrigin, DataType dataType_) : RenderImageQuantityBase(parent_, name, dimX, dimY, depthData, normalData, imageOrigin), ScalarQuantity(*this, scalarData_, dataType_) { @@ -113,7 +113,7 @@ std::string ScalarRenderImageQuantity::niceName() { return name + " (scalar rend ScalarRenderImageQuantity* createScalarRenderImage(Structure& parent, std::string name, size_t dimX, size_t dimY, const std::vector& depthData, const std::vector& normalData, - const std::vector& scalarData, ImageOrigin imageOrigin, + const std::vector& scalarData, ImageOrigin imageOrigin, DataType dataType) { return new ScalarRenderImageQuantity(parent, name, dimX, dimY, depthData, normalData, scalarData, imageOrigin, diff --git a/src/surface_mesh.cpp b/src/surface_mesh.cpp index 5db8fae6..08b7d23f 100644 --- a/src/surface_mesh.cpp +++ b/src/surface_mesh.cpp @@ -1532,7 +1532,7 @@ SurfaceMesh::addTextureColorQuantityImpl(std::string name, SurfaceParameterizati } SurfaceVertexScalarQuantity* SurfaceMesh::addVertexDistanceQuantityImpl(std::string name, - const std::vector& data) { + const std::vector& data) { checkForQuantityWithNameAndDeleteOrError(name); SurfaceVertexScalarQuantity* q = new SurfaceVertexScalarQuantity(name, data, *this, DataType::MAGNITUDE); @@ -1544,7 +1544,7 @@ SurfaceVertexScalarQuantity* SurfaceMesh::addVertexDistanceQuantityImpl(std::str } SurfaceVertexScalarQuantity* SurfaceMesh::addVertexSignedDistanceQuantityImpl(std::string name, - const std::vector& data) { + const std::vector& data) { checkForQuantityWithNameAndDeleteOrError(name); SurfaceVertexScalarQuantity* q = new SurfaceVertexScalarQuantity(name, data, *this, DataType::SYMMETRIC); @@ -1588,7 +1588,7 @@ SurfaceMesh::addLocalParameterizationQuantityImpl(std::string name, const std::v return q; } -SurfaceVertexScalarQuantity* SurfaceMesh::addVertexScalarQuantityImpl(std::string name, const std::vector& data, +SurfaceVertexScalarQuantity* SurfaceMesh::addVertexScalarQuantityImpl(std::string name, const std::vector& data, DataType type) { checkForQuantityWithNameAndDeleteOrError(name); SurfaceVertexScalarQuantity* q = new SurfaceVertexScalarQuantity(name, data, *this, type); @@ -1596,7 +1596,7 @@ SurfaceVertexScalarQuantity* SurfaceMesh::addVertexScalarQuantityImpl(std::strin return q; } -SurfaceFaceScalarQuantity* SurfaceMesh::addFaceScalarQuantityImpl(std::string name, const std::vector& data, +SurfaceFaceScalarQuantity* SurfaceMesh::addFaceScalarQuantityImpl(std::string name, const std::vector& data, DataType type) { checkForQuantityWithNameAndDeleteOrError(name); SurfaceFaceScalarQuantity* q = new SurfaceFaceScalarQuantity(name, data, *this, type); @@ -1605,7 +1605,7 @@ SurfaceFaceScalarQuantity* SurfaceMesh::addFaceScalarQuantityImpl(std::string na } -SurfaceEdgeScalarQuantity* SurfaceMesh::addEdgeScalarQuantityImpl(std::string name, const std::vector& data, +SurfaceEdgeScalarQuantity* SurfaceMesh::addEdgeScalarQuantityImpl(std::string name, const std::vector& data, DataType type) { checkForQuantityWithNameAndDeleteOrError(name); SurfaceEdgeScalarQuantity* q = new SurfaceEdgeScalarQuantity(name, data, *this, type); @@ -1615,7 +1615,7 @@ SurfaceEdgeScalarQuantity* SurfaceMesh::addEdgeScalarQuantityImpl(std::string na } SurfaceHalfedgeScalarQuantity* -SurfaceMesh::addHalfedgeScalarQuantityImpl(std::string name, const std::vector& data, DataType type) { +SurfaceMesh::addHalfedgeScalarQuantityImpl(std::string name, const std::vector& data, DataType type) { checkForQuantityWithNameAndDeleteOrError(name); SurfaceHalfedgeScalarQuantity* q = new SurfaceHalfedgeScalarQuantity(name, data, *this, type); addQuantity(q); @@ -1623,7 +1623,7 @@ SurfaceMesh::addHalfedgeScalarQuantityImpl(std::string name, const std::vector& data, +SurfaceCornerScalarQuantity* SurfaceMesh::addCornerScalarQuantityImpl(std::string name, const std::vector& data, DataType type) { checkForQuantityWithNameAndDeleteOrError(name); SurfaceCornerScalarQuantity* q = new SurfaceCornerScalarQuantity(name, data, *this, type); @@ -1636,7 +1636,7 @@ SurfaceCornerScalarQuantity* SurfaceMesh::addCornerScalarQuantityImpl(std::strin SurfaceTextureScalarQuantity* SurfaceMesh::addTextureScalarQuantityImpl(std::string name, SurfaceParameterizationQuantity& param, size_t dimX, size_t dimY, - const std::vector& data, + const std::vector& data, ImageOrigin imageOrigin, DataType type) { checkForQuantityWithNameAndDeleteOrError(name); SurfaceTextureScalarQuantity* q = @@ -1691,7 +1691,7 @@ SurfaceMesh::addVertexTangentVectorQuantityImpl(std::string name, const std::vec // Orientations is `true` if the canonical orientation of the edge points from the lower-indexed vertex to the // higher-indexed vertex, and `false` otherwise. SurfaceOneFormTangentVectorQuantity* -SurfaceMesh::addOneFormTangentVectorQuantityImpl(std::string name, const std::vector& data, +SurfaceMesh::addOneFormTangentVectorQuantityImpl(std::string name, const std::vector& data, const std::vector& orientations) { checkForQuantityWithNameAndDeleteOrError(name); SurfaceOneFormTangentVectorQuantity* q = new SurfaceOneFormTangentVectorQuantity(name, data, orientations, *this); diff --git a/src/surface_scalar_quantity.cpp b/src/surface_scalar_quantity.cpp index 535e5845..6d060041 100644 --- a/src/surface_scalar_quantity.cpp +++ b/src/surface_scalar_quantity.cpp @@ -11,7 +11,7 @@ namespace polyscope { SurfaceScalarQuantity::SurfaceScalarQuantity(std::string name, SurfaceMesh& mesh_, std::string definedOn_, - const std::vector& values_, DataType dataType_) + const std::vector& values_, DataType dataType_) : SurfaceMeshQuantity(name, mesh_, true), ScalarQuantity(*this, values_, dataType_), definedOn(definedOn_) {} void SurfaceScalarQuantity::draw() { @@ -59,7 +59,7 @@ std::string SurfaceScalarQuantity::niceName() { return name + " (" + definedOn + // ========== Vertex Scalar ========== // ======================================================== -SurfaceVertexScalarQuantity::SurfaceVertexScalarQuantity(std::string name, const std::vector& values_, +SurfaceVertexScalarQuantity::SurfaceVertexScalarQuantity(std::string name, const std::vector& values_, SurfaceMesh& mesh_, DataType dataType_) : SurfaceScalarQuantity(name, mesh_, "vertex", values_, dataType_) @@ -101,7 +101,7 @@ void SurfaceVertexScalarQuantity::buildVertexInfoGUI(size_t vInd) { // ========== Face Scalar ========== // ======================================================== -SurfaceFaceScalarQuantity::SurfaceFaceScalarQuantity(std::string name, const std::vector& values_, +SurfaceFaceScalarQuantity::SurfaceFaceScalarQuantity(std::string name, const std::vector& values_, SurfaceMesh& mesh_, DataType dataType_) : SurfaceScalarQuantity(name, mesh_, "face", values_, dataType_) @@ -147,7 +147,7 @@ void SurfaceFaceScalarQuantity::buildFaceInfoGUI(size_t fInd) { // TODO need to do something about values for internal edges in triangulated polygons -SurfaceEdgeScalarQuantity::SurfaceEdgeScalarQuantity(std::string name, const std::vector& values_, +SurfaceEdgeScalarQuantity::SurfaceEdgeScalarQuantity(std::string name, const std::vector& values_, SurfaceMesh& mesh_, DataType dataType_) : SurfaceScalarQuantity(name, mesh_, "edge", values_, dataType_) @@ -189,7 +189,7 @@ void SurfaceEdgeScalarQuantity::buildEdgeInfoGUI(size_t eInd) { // ========== Halfedge Scalar ========== // ======================================================== -SurfaceHalfedgeScalarQuantity::SurfaceHalfedgeScalarQuantity(std::string name, const std::vector& values_, +SurfaceHalfedgeScalarQuantity::SurfaceHalfedgeScalarQuantity(std::string name, const std::vector& values_, SurfaceMesh& mesh_, DataType dataType_) : SurfaceScalarQuantity(name, mesh_, "halfedge", values_, dataType_) @@ -230,7 +230,7 @@ void SurfaceHalfedgeScalarQuantity::buildHalfedgeInfoGUI(size_t heInd) { // ========== Corner Scalar ========== // ======================================================== -SurfaceCornerScalarQuantity::SurfaceCornerScalarQuantity(std::string name, const std::vector& values_, +SurfaceCornerScalarQuantity::SurfaceCornerScalarQuantity(std::string name, const std::vector& values_, SurfaceMesh& mesh_, DataType dataType_) : SurfaceScalarQuantity(name, mesh_, "corner", values_, dataType_) @@ -273,7 +273,7 @@ void SurfaceCornerScalarQuantity::buildCornerInfoGUI(size_t cInd) { SurfaceTextureScalarQuantity::SurfaceTextureScalarQuantity(std::string name, SurfaceMesh& mesh_, SurfaceParameterizationQuantity& param_, size_t dimX_, - size_t dimY_, const std::vector& values_, + size_t dimY_, const std::vector& values_, ImageOrigin origin_, DataType dataType_) : SurfaceScalarQuantity(name, mesh_, "vertex", values_, dataType_), param(param_), dimX(dimX_), dimY(dimY_), imageOrigin(origin_) { diff --git a/src/surface_vector_quantity.cpp b/src/surface_vector_quantity.cpp index ce76dd6b..d6de8550 100644 --- a/src/surface_vector_quantity.cpp +++ b/src/surface_vector_quantity.cpp @@ -203,7 +203,7 @@ std::string SurfaceVertexTangentVectorQuantity::niceName() { namespace { // helper function used below -std::vector oneFormToFaceTangentVectors(SurfaceMesh& mesh, const std::vector& oneForm, +std::vector oneFormToFaceTangentVectors(SurfaceMesh& mesh, const std::vector& oneForm, std::vector& canonicalOrientation) { mesh.vertexPositions.ensureHostBufferPopulated(); @@ -225,7 +225,7 @@ std::vector oneFormToFaceTangentVectors(SurfaceMesh& mesh, const std: size_t iE = mesh.triangleAllEdgeInds.data[9 * iF + j]; bool isCanonicalOriented = (vB > vA) != (canonicalOrientation[iE]); // TODO double check convention - double orientationSign = isCanonicalOriented ? 1. : -1.; + float orientationSign = isCanonicalOriented ? 1.f : -1.f; formValues[j] = orientationSign * oneForm[iE]; @@ -250,7 +250,7 @@ std::vector oneFormToFaceTangentVectors(SurfaceMesh& mesh, const std: } // namespace -SurfaceOneFormTangentVectorQuantity::SurfaceOneFormTangentVectorQuantity(std::string name, std::vector oneForm_, +SurfaceOneFormTangentVectorQuantity::SurfaceOneFormTangentVectorQuantity(std::string name, std::vector oneForm_, std::vector canonicalOrientation_, SurfaceMesh& mesh_) : SurfaceVectorQuantity(name, mesh_, MeshElement::FACE), diff --git a/src/volume_grid.cpp b/src/volume_grid.cpp index c5d54f89..6986cc61 100644 --- a/src/volume_grid.cpp +++ b/src/volume_grid.cpp @@ -397,7 +397,7 @@ VolumeGridQuantity::VolumeGridQuantity(std::string name_, VolumeGrid& curveNetwo : QuantityS(name_, curveNetwork_, dominates_) {} -VolumeGridNodeScalarQuantity* VolumeGrid::addNodeScalarQuantityImpl(std::string name, const std::vector& data, +VolumeGridNodeScalarQuantity* VolumeGrid::addNodeScalarQuantityImpl(std::string name, const std::vector& data, DataType dataType_) { checkForQuantityWithNameAndDeleteOrError(name); @@ -407,7 +407,7 @@ VolumeGridNodeScalarQuantity* VolumeGrid::addNodeScalarQuantityImpl(std::string return q; } -VolumeGridCellScalarQuantity* VolumeGrid::addCellScalarQuantityImpl(std::string name, const std::vector& data, +VolumeGridCellScalarQuantity* VolumeGrid::addCellScalarQuantityImpl(std::string name, const std::vector& data, DataType dataType_) { checkForQuantityWithNameAndDeleteOrError(name); diff --git a/src/volume_grid_scalar_quantity.cpp b/src/volume_grid_scalar_quantity.cpp index 45fe89c2..58009269 100644 --- a/src/volume_grid_scalar_quantity.cpp +++ b/src/volume_grid_scalar_quantity.cpp @@ -2,7 +2,6 @@ #include "polyscope/volume_grid_scalar_quantity.h" -#define MC_CPP_USE_DOUBLE_PRECISION #include "MarchingCube/MC.h" namespace polyscope { @@ -12,7 +11,7 @@ namespace polyscope { // ======================================================== VolumeGridNodeScalarQuantity::VolumeGridNodeScalarQuantity(std::string name, VolumeGrid& grid_, - const std::vector& values_, DataType dataType_) + const std::vector& values_, DataType dataType_) : VolumeGridQuantity(name, grid_, true), ScalarQuantity(*this, values_, dataType_), gridcubeVizEnabled(uniquePrefix() + "gridcubeVizEnabled", true), isosurfaceVizEnabled(uniquePrefix() + "isosurfaceVizEnabled", false), @@ -277,7 +276,7 @@ bool VolumeGridNodeScalarQuantity::getSlicePlanesAffectIsosurface() { return sli // ======================================================== VolumeGridCellScalarQuantity::VolumeGridCellScalarQuantity(std::string name, VolumeGrid& grid_, - const std::vector& values_, DataType dataType_) + const std::vector& values_, DataType dataType_) : VolumeGridQuantity(name, grid_, true), ScalarQuantity(*this, values_, dataType_), gridcubeVizEnabled(parent.uniquePrefix() + "#" + name + "#gridcubeVizEnabled", true) { diff --git a/src/volume_mesh.cpp b/src/volume_mesh.cpp index ed25c548..31010ed1 100644 --- a/src/volume_mesh.cpp +++ b/src/volume_mesh.cpp @@ -1030,15 +1030,15 @@ VolumeMeshCellColorQuantity* VolumeMesh::addCellColorQuantityImpl(std::string na return q; } -VolumeMeshVertexScalarQuantity* -VolumeMesh::addVertexScalarQuantityImpl(std::string name, const std::vector& data, DataType type) { +VolumeMeshVertexScalarQuantity* VolumeMesh::addVertexScalarQuantityImpl(std::string name, + const std::vector& data, DataType type) { checkForQuantityWithNameAndDeleteOrError(name); VolumeMeshVertexScalarQuantity* q = new VolumeMeshVertexScalarQuantity(name, data, *this, type); addQuantity(q); return q; } -VolumeMeshCellScalarQuantity* VolumeMesh::addCellScalarQuantityImpl(std::string name, const std::vector& data, +VolumeMeshCellScalarQuantity* VolumeMesh::addCellScalarQuantityImpl(std::string name, const std::vector& data, DataType type) { checkForQuantityWithNameAndDeleteOrError(name); VolumeMeshCellScalarQuantity* q = new VolumeMeshCellScalarQuantity(name, data, *this, type); diff --git a/src/volume_mesh_scalar_quantity.cpp b/src/volume_mesh_scalar_quantity.cpp index 549878b5..3170b2f2 100644 --- a/src/volume_mesh_scalar_quantity.cpp +++ b/src/volume_mesh_scalar_quantity.cpp @@ -10,7 +10,7 @@ namespace polyscope { VolumeMeshScalarQuantity::VolumeMeshScalarQuantity(std::string name, VolumeMesh& mesh_, std::string definedOn_, - const std::vector& values_, DataType dataType_) + const std::vector& values_, DataType dataType_) : VolumeMeshQuantity(name, mesh_, true), ScalarQuantity(*this, values_, dataType_), definedOn(definedOn_) {} void VolumeMeshScalarQuantity::draw() { @@ -59,7 +59,7 @@ std::string VolumeMeshScalarQuantity::niceName() { return name + " (" + definedO // ========== Vertex Scalar ========== // ======================================================== -VolumeMeshVertexScalarQuantity::VolumeMeshVertexScalarQuantity(std::string name, const std::vector& values_, +VolumeMeshVertexScalarQuantity::VolumeMeshVertexScalarQuantity(std::string name, const std::vector& values_, VolumeMesh& mesh_, DataType dataType_) : VolumeMeshScalarQuantity(name, mesh_, "vertex", values_, dataType_), levelSetValue(0), isDrawingLevelSet(false), showQuantity(this) @@ -287,10 +287,10 @@ void VolumeMeshVertexScalarQuantity::fillSliceColorBuffers(render::ShaderProgram values.ensureHostBufferPopulated(); size_t tetCount = parent.nTets(); - std::vector colorval_1; - std::vector colorval_2; - std::vector colorval_3; - std::vector colorval_4; + std::vector colorval_1; + std::vector colorval_2; + std::vector colorval_3; + std::vector colorval_4; colorval_1.resize(tetCount); colorval_2.resize(tetCount); @@ -324,7 +324,7 @@ void VolumeMeshVertexScalarQuantity::buildVertexInfoGUI(size_t vInd) { // ========== Cell Scalar ========== // ======================================================== -VolumeMeshCellScalarQuantity::VolumeMeshCellScalarQuantity(std::string name, const std::vector& values_, +VolumeMeshCellScalarQuantity::VolumeMeshCellScalarQuantity(std::string name, const std::vector& values_, VolumeMesh& mesh_, DataType dataType_) : VolumeMeshScalarQuantity(name, mesh_, "cell", values_, dataType_) From 348c5a6370e2282c24da9375f87c16da2e1313ed Mon Sep 17 00:00:00 2001 From: Nicholas Sharp Date: Sun, 26 Nov 2023 02:04:24 -0800 Subject: [PATCH 2/2] fix bad test --- test/src/interop_and_serialization_test.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/src/interop_and_serialization_test.cpp b/test/src/interop_and_serialization_test.cpp index b82f01fc..4a1eaa17 100644 --- a/test/src/interop_and_serialization_test.cpp +++ b/test/src/interop_and_serialization_test.cpp @@ -18,7 +18,7 @@ TEST_F(PolyscopeTest, ManagedBufferAccess) { // make sure we can get its buffers polyscope::render::ManagedBuffer& bufferPos = psPoints->getManagedBuffer("points"); - polyscope::render::ManagedBuffer& bufferScalar = q2->getManagedBuffer("values"); + polyscope::render::ManagedBuffer& bufferScalar = q2->getManagedBuffer("values"); size_t dimX = 300;