21#ifndef OCCTL_HPP_IO_OBJ_HPP
22#define OCCTL_HPP_IO_OBJ_HPP
33namespace occtl::io_obj
47 double file_length_unit_m = 1.0;
50 bool single_precision =
false;
51 bool create_shapes =
false;
52 bool fill_incomplete =
true;
53 int memory_limit_mib = -1;
54 std::string root_prefix;
68 aOpts.
root_prefix = root_prefix.empty() ? nullptr : root_prefix.c_str();
88 aOpts.
comment = comment.empty() ? nullptr : comment.c_str();
89 aOpts.
author = author.empty() ? nullptr : author.c_str();
96inline std::pair<Graph, NodeId> read(
const std::string& thePath,
101 const ::occtl_io_obj_read_options_t aOpts = theOptions.to_c();
103 return {Graph(aRaw), NodeId(aRoot)};
108inline void write(
const Graph& theGraph,
110 const std::string& thePath,
113 const ::occtl_io_obj_write_options_t aOpts = theOptions.to_c();
RAII handle for a topology graph. Mirrors occtl_graph_t.
Definition topo.hpp:1444
::occtl_graph_t * get() const noexcept
Borrows-it pointer to the underlying C handle, for direct ABI calls.
Definition topo.hpp:1494
Session-local identity of a graph node. Mirrors occtl_node_id_t.
Definition topo.hpp:52
::occtl_node_id_t get() const noexcept
Borrows-it view of the underlying C value type, for direct ABI calls.
Definition topo.hpp:64
C++ veneer for the core module.
void check(const ::occtl_status_t theStatus)
Throw on non-OK; otherwise a no-op.
Definition core.hpp:85
CoordinateSystem
Coordinate system used by OBJ import/export conversion.
Definition io_obj.hpp:38
OCCT-Light: Wavefront OBJ file I/O.
enum occtl_io_obj_coordinate_system occtl_io_obj_coordinate_system_t
occtl_status_t occtl_io_obj_read(const char *path, occtl_graph_t **out_graph, occtl_node_id_t *out_root, const occtl_io_obj_read_options_t *options)
occtl_status_t occtl_io_obj_write(const occtl_graph_t *graph, occtl_node_id_t root, const char *path, const occtl_io_obj_write_options_t *options)
@ OCCTL_IO_OBJ_COORDINATE_SYSTEM_Y_UP
Definition occtl_io_obj.h:51
@ OCCTL_IO_OBJ_COORDINATE_SYSTEM_Z_UP
Definition occtl_io_obj.h:52
@ OCCTL_IO_OBJ_COORDINATE_SYSTEM_GLTF
Definition occtl_io_obj.h:53
struct occtl_graph occtl_graph_t
Definition occtl_topo_types.h:152
Options for read. PascalCase mirror of occtl_io_obj_read_options_t.
Definition io_obj.hpp:46
Options for write. PascalCase mirror of occtl_io_obj_write_options_t.
Definition io_obj.hpp:75
Definition occtl_io_obj.h:64
double file_length_unit_m
Definition occtl_io_obj.h:67
int32_t create_shapes
Definition occtl_io_obj.h:73
int32_t single_precision
Definition occtl_io_obj.h:72
int32_t fill_incomplete
Definition occtl_io_obj.h:74
occtl_io_obj_coordinate_system_t file_coordinate_system
Definition occtl_io_obj.h:71
int32_t memory_limit_mib
Definition occtl_io_obj.h:75
const char * root_prefix
Definition occtl_io_obj.h:76
occtl_io_obj_coordinate_system_t system_coordinate_system
Definition occtl_io_obj.h:69
Definition occtl_io_obj.h:95
occtl_io_obj_coordinate_system_t file_coordinate_system
Definition occtl_io_obj.h:101
occtl_io_obj_coordinate_system_t system_coordinate_system
Definition occtl_io_obj.h:99
const char * comment
Definition occtl_io_obj.h:102
const char * author
Definition occtl_io_obj.h:103
Definition occtl_topo_types.h:50
C++ veneer for the topo module.