OCCT-Light 0.1
C ABI and C++ veneer for multi-language CAD workflows
Loading...
Searching...
No Matches
occtl_io_step.h
Go to the documentation of this file.
1// Copyright (c) 2026 Capgemini Engineering Research and Development.
2//
3// This file is part of OCCT-Light software library.
4//
5// This library is free software; you can redistribute it and/or modify it under
6// the terms of the GNU Affero General Public License version 3 as published
7// by the Free Software Foundation, with an option to use any later version.
8// Consult the file LICENSE_AGPL_30.txt included in OCCT-Light distribution
9// for complete text of the license and disclaimer of any warranty.
10//
11// Alternatively, this file may be used under the terms of a commercial
12// license or contractual agreement.
13//
14// SPDX-License-Identifier: AGPL-3.0-or-later
15
30#ifndef OCCTL_IO_STEP_H
31#define OCCTL_IO_STEP_H
32
33#include <stddef.h>
34#include <stdint.h>
35
36#include "occtl_core.h"
37#include "occtl_topo.h"
38
39#ifdef __cplusplus
40extern "C"
41{
42#endif
43
48{
52 OCCTL_IO_STEP_UNIT_RESERVED_FUTURE = 0x7fffffff
54
59{
63 OCCTL_IO_STEP_SCHEMA_RESERVED_FUTURE = 0x7fffffff
65
66#define OCCTL_IO_STEP_READ_OPTIONS_VERSION_1 1u
67#define OCCTL_IO_STEP_WRITE_OPTIONS_VERSION_1 1u
68
80
81#define OCCTL_IO_STEP_READ_OPTIONS_INIT {OCCTL_IO_STEP_READ_OPTIONS_VERSION_1, NULL, 1, 1, 1}
82
95
96#define OCCTL_IO_STEP_WRITE_OPTIONS_INIT \
97 {OCCTL_IO_STEP_WRITE_OPTIONS_VERSION_1, \
98 NULL, \
99 OCCTL_IO_STEP_UNIT_MM, \
100 OCCTL_IO_STEP_SCHEMA_AP242, \
101 1, \
102 1}
103
116
129
149OCCTL_API occtl_status_t OCCTL_CALL occtl_io_step_read(const char* path,
150 occtl_graph_t** out_graph,
151 occtl_node_id_t* out_root,
152 const occtl_io_step_read_options_t* options);
153
179OCCTL_API occtl_status_t OCCTL_CALL
180 occtl_io_step_read_memory(const uint8_t* data,
181 size_t size,
182 occtl_graph_t** out_graph,
183 occtl_node_id_t* out_root,
184 const occtl_io_step_read_options_t* options);
185
206OCCTL_API occtl_status_t OCCTL_CALL
208 occtl_node_id_t root,
209 const char* path,
210 const occtl_io_step_write_options_t* options);
211
240OCCTL_API occtl_status_t OCCTL_CALL
242 occtl_node_id_t root,
243 const occtl_io_step_write_options_t* options,
244 uint8_t* out_data,
245 size_t capacity,
246 size_t* out_size);
247
248#ifdef __cplusplus
249} /* extern "C" */
250#endif
251
252#endif /* OCCTL_IO_STEP_H */
OCCT-Light: core public API.
#define OCCTL_API
Definition occtl_core.h:111
enum occtl_status occtl_status_t
void occtl_io_step_read_options_init(occtl_io_step_read_options_t *options)
struct occtl_io_step_read_options occtl_io_step_read_options_t
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)
struct occtl_io_step_write_options occtl_io_step_write_options_t
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_length_unit
Definition occtl_io_step.h:48
@ OCCTL_IO_STEP_UNIT_MM
Definition occtl_io_step.h:49
@ OCCTL_IO_STEP_UNIT_M
Definition occtl_io_step.h:50
@ OCCTL_IO_STEP_UNIT_INCH
Definition occtl_io_step.h:51
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
Definition occtl_io_step.h:59
@ OCCTL_IO_STEP_SCHEMA_AP203
Definition occtl_io_step.h:60
@ OCCTL_IO_STEP_SCHEMA_AP242
Definition occtl_io_step.h:62
@ OCCTL_IO_STEP_SCHEMA_AP214
Definition occtl_io_step.h:61
void occtl_io_step_write_options_init(occtl_io_step_write_options_t *options)
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
OCCT-Light: topology module public API.
struct occtl_graph occtl_graph_t
Definition occtl_topo_types.h:152
Definition occtl_io_step.h:73
int32_t read_name
Definition occtl_io_step.h:77
const void * p_next
Definition occtl_io_step.h:75
uint32_t struct_version
Definition occtl_io_step.h:74
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
uint32_t struct_version
Definition occtl_io_step.h:88
int32_t write_tessellated
Definition occtl_io_step.h:93
occtl_io_step_schema_t schema
Definition occtl_io_step.h:91
const void * p_next
Definition occtl_io_step.h:89
occtl_io_step_length_unit_t unit
Definition occtl_io_step.h:90
Definition occtl_topo_types.h:50