15#ifndef DRACO_MESH_MESH_UTILS_H_
16#define DRACO_MESH_MESH_UTILS_H_
20#ifdef DRACO_TRANSCODER_SUPPORTED
21#include "Eigen/Geometry"
34 static void TransformMesh(
const Eigen::Matrix4d &transform, Mesh *mesh);
38 static void MergeMetadata(
const Mesh &src_mesh, Mesh *dst_mesh);
43 static Status RemoveUnusedMeshFeatures(Mesh *mesh);
46 static bool FlipTextureUvValues(
bool flip_u,
bool flip_v,
51 static int CountDegenerateFaces(
const Mesh &mesh,
int att_id);
62 static StatusOr<int> FindLowestTextureQuantization(
63 const Mesh &mesh,
const PointAttribute &pos_att,
64 int pos_quantization_bits,
const PointAttribute &tex_att,
65 int tex_target_quantization_bits);
69 static bool HasAutoGeneratedTangents(
const Mesh &mesh);
72 static void TransformNormalizedAttribute(
const Eigen::Matrix3d &transform,
75 template <
typename att_components_t>
76 static int CountDegenerateFaces(
const Mesh &mesh,
const PointAttribute &att);
84 static std::vector<FaceIndex> ListDegenerateQuantizedFaces(
85 const Mesh &mesh,
const PointAttribute &att,
float range,
86 uint32_t max_quantized_value,
bool quantized_degenerate_only);
93 template <
typename att_components_t,
typename quantized_components_t>
94 static std::vector<FaceIndex> ListDegenerateQuantizedFaces(
95 const Mesh &mesh,
const PointAttribute &att,
float range,
96 uint32_t max_quantized_value,
bool quantized_degenerate_only);
Definition attribute_octahedron_transform.cc:21