Skip to content

File factory.h

File List > geometry > utils > factory.h

Go to the documentation of this file

#pragma once
#include <uipc/common/span.h>
#include <uipc/geometry/simplicial_complex.h>
#include <uipc/geometry/implicit_geometry.h>

namespace uipc::geometry
{
UIPC_GEOMETRY_API [[nodiscard]] SimplicialComplex tetmesh(span<const Vector3> Vs,
                                                          span<const Vector4i> Ts);
UIPC_GEOMETRY_API [[nodiscard]] SimplicialComplex trimesh(span<const Vector3> Vs,
                                                          span<const Vector3i> Fs);
UIPC_GEOMETRY_API [[nodiscard]] SimplicialComplex linemesh(span<const Vector3> Vs,
                                                           span<const Vector2i> Es);
UIPC_GEOMETRY_API [[nodiscard]] SimplicialComplex pointcloud(span<const Vector3> Vs);


UIPC_GEOMETRY_API [[nodiscard]] ImplicitGeometry halfplane(
    const Vector3& P = Vector3::Zero(), const Vector3& N = Vector3::UnitY());

UIPC_GEOMETRY_API [[nodiscard]] ImplicitGeometry ground(Float height = 0.0,
                                                        const Vector3& N = Vector3::UnitY());
}  // namespace uipc::geometry