21#ifndef OCCTL_HPP_IO_STEP_HPP
22#define OCCTL_HPP_IO_STEP_HPP
35namespace occtl::io_step
41 bool read_color =
true;
42 bool read_name =
true;
43 bool read_layer =
true;
60 bool write_surface_curves =
true;
61 bool write_tessellated =
true;
76inline std::pair<Graph, NodeId> read(
const std::string& thePath,
81 const ::occtl_io_step_read_options_t aOpts = theOptions.to_c();
83 return {Graph(aRaw), NodeId(aRoot)};
88inline std::pair<Graph, NodeId> read_memory(
const uint8_t*
const theData,
89 const std::size_t theSize,
94 const ::occtl_io_step_read_options_t aOpts = theOptions.to_c();
96 return {Graph(aRaw), NodeId(aRoot)};
101inline std::pair<Graph, NodeId> read_memory(
const std::vector<uint8_t>& theData,
104 return read_memory(theData.empty() ?
nullptr : theData.data(), theData.size(), theOptions);
109inline void write(
const Graph& theGraph,
111 const std::string& thePath,
114 const ::occtl_io_step_write_options_t aOpts = theOptions.to_c();
120inline std::vector<uint8_t> write_memory(
const Graph& theGraph,
124 const ::occtl_io_step_write_options_t aOpts = theOptions.to_c();
125 std::size_t aSize = 0;
128 std::vector<uint8_t> aData(aSize);
132 aData.empty() ?
nullptr : aData.data(),
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
OCCT-Light: STEP file I/O (ISO 10303-21).
occtl_status_t occtl_io_step_write(const occtl_graph_t *graph, occtl_node_id_t root, const char *path, const occtl_io_step_write_options_t *options)
occtl_status_t occtl_io_step_write_memory(const occtl_graph_t *graph, occtl_node_id_t root, const occtl_io_step_write_options_t *options, uint8_t *out_data, size_t capacity, size_t *out_size)
@ OCCTL_IO_STEP_UNIT_MM
Definition occtl_io_step.h:49
occtl_status_t occtl_io_step_read_memory(const uint8_t *data, size_t size, occtl_graph_t **out_graph, occtl_node_id_t *out_root, const occtl_io_step_read_options_t *options)
@ OCCTL_IO_STEP_SCHEMA_AP242
Definition occtl_io_step.h:62
occtl_status_t occtl_io_step_read(const char *path, occtl_graph_t **out_graph, occtl_node_id_t *out_root, const occtl_io_step_read_options_t *options)
enum occtl_io_step_length_unit occtl_io_step_length_unit_t
enum occtl_io_step_schema occtl_io_step_schema_t
struct occtl_graph occtl_graph_t
Definition occtl_topo_types.h:152
Options for read. PascalCase mirror of occtl_io_step_read_options_t.
Definition io_step.hpp:40
Options for write. PascalCase mirror of occtl_io_step_write_options_t.
Definition io_step.hpp:57
Definition occtl_io_step.h:73
int32_t read_name
Definition occtl_io_step.h:77
int32_t read_layer
Definition occtl_io_step.h:78
int32_t read_color
Definition occtl_io_step.h:76
Definition occtl_io_step.h:87
int32_t write_surface_curves
Definition occtl_io_step.h:92
int32_t write_tessellated
Definition occtl_io_step.h:93
occtl_io_step_schema_t schema
Definition occtl_io_step.h:91
occtl_io_step_length_unit_t unit
Definition occtl_io_step.h:90
Definition occtl_topo_types.h:50
C++ veneer for the topo module.