SuperDex Physics C++ API
Loading...
Searching...
No Matches
mochi_model_utils.h
Go to the documentation of this file.
1/*
2 * Copyright (c) Meta Platforms, Inc. and affiliates.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17/////////////////////////////////////////////////////////////////////////////////////////////////
18//
19// Include this header instead of <mochi_core/geometry/model_utils.h> if you want to call these
20// methods via dynamic linking mochi_physics, rather than static linking mochi_core. Usage syntax
21// will be identical except for the namespace (superdex::model_utils vs superdex::model).
22//
23// See <mochi_core/geometry/model_utils.h> for API documentation.
24//
25/////////////////////////////////////////////////////////////////////////////////////////////////
26
27#pragma once
28
36
37#include <string_view>
38
39namespace superdex {
40struct CoordinateSpace;
41} // namespace superdex
42
44[[nodiscard]] MOCHI_API ModelData LoadFromFile(std::string_view path, Error& error);
45[[nodiscard]] MOCHI_API ModelData LoadFromFileUnchecked(std::string_view path, Error& error);
46[[nodiscard]] MOCHI_API ModelData
48[[nodiscard]] MOCHI_API ModelData
50[[nodiscard]] inline ModelData LoadFromBytes(Span<char const> data, Error& error) {
51 return LoadFromBytes(data, MeshFileType::Legacy, error);
52}
53[[nodiscard]] inline ModelData LoadFromBytesUnchecked(Span<char const> data, Error& error) {
55}
56MOCHI_API void
57SaveToFile(ModelData const& data, std::string_view path, FileFormat format, Error& error);
58MOCHI_API void
59SaveToFile(ModelDataView const& data, std::string_view path, FileFormat format, Error& error);
60[[nodiscard]] MOCHI_API DynamicString SaveToJsonString(ModelData const& data, Error& error);
61MOCHI_API void Validate(ModelDataView const& data, Error& error);
64 ModelData& data,
65 Real3 const& scale,
66 Quaternion const& rotation,
67 Real3 const& translation,
68 Error& error);
69MOCHI_API void
70BakeTransform(ModelData& data, Real3 const& scale, TransformRT const& transform, Error& error);
72 MeshData& data,
73 CoordinateSpace const& fromSpace,
74 CoordinateSpace const& toSpace,
75 Error& error);
77 ModelData& data,
78 CoordinateSpace const& fromSpace,
79 CoordinateSpace const& toSpace,
80 Error& error);
81MOCHI_API void BakeSdf(ModelData& data, GridSdfParams const& params, Error& error);
85} // namespace superdex::model_utils
#define MOCHI_API
DynamicString SaveToJsonString(ModelData const &data, Error &error)
void AutoCorrect(ModelData &data, Error &error)
ModelData LoadFromBytesUnchecked(Span< char const > data, MeshFileType format, Error &error)
void SaveToFile(ModelData const &data, std::string_view path, FileFormat format, Error &error)
ModelData LoadFromBytes(Span< char const > data, MeshFileType format, Error &error)
ModelData LoadFromFileUnchecked(std::string_view path, Error &error)
ModelData LoadFromFile(std::string_view path, Error &error)
void BakeTransform(ModelData &data, Real3 const &scale, Quaternion const &rotation, Real3 const &translation, Error &error)
void Validate(ModelDataView const &data, Error &error)
void GenerateVisualMeshEmbedding(ModelData &data, Error &error)
void BakeCoordinateSpaceTransform(MeshData &data, CoordinateSpace const &fromSpace, CoordinateSpace const &toSpace, Error &error)
void FlipWindingOrder(MeshData &data, Error &error)
void BakeSdf(ModelData &data, GridSdfParams const &params, Error &error)
MeshFileType
Mesh file format hint for Context::LoadShapeFromBytes and model-loading APIs that read from byte buff...
Definition model_data.h:320
@ Legacy
Auto-detect between HDF5 and JSON (default behavior).
Definition model_data.h:321
NdArray< real, 3 > Real3
Definition nd_array.h:106
std::basic_string< char, std::char_traits< char >, StlAllocator< char > > DynamicString
Alias for std::string using a polymorphic superdex::Allocator pointer.
Coordinate-axis convention and linear unit scale.
Parameters controlling the resolution of grid-based Signed Distance Fields (SDF).
Mesh data for a Mochi actor or model file.
Definition mesh_data.h:157
A non-owning view of the contents of a Mochi model file.
Definition model_data.h:257
The contents of a Mochi model file.
Definition model_data.h:185