OCCT-Light 0.1
C ABI and C++ veneer for multi-language CAD workflows
Loading...
Searching...
No Matches
occtl_io_ply.h File Reference

OCCT-Light: PLY file export. More...

#include <stddef.h>
#include <stdint.h>
#include "occtl_core.h"
#include "occtl_topo.h"
Include dependency graph for occtl_io_ply.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  occtl_io_ply_write_options
 

Macros

#define OCCTL_IO_PLY_WRITE_OPTIONS_VERSION_1   1u
 
#define OCCTL_IO_PLY_WRITE_OPTIONS_INIT
 

Typedefs

typedef enum occtl_io_ply_coordinate_system occtl_io_ply_coordinate_system_t
 
typedef struct occtl_io_ply_write_options occtl_io_ply_write_options_t
 

Enumerations

enum  occtl_io_ply_coordinate_system { OCCTL_IO_PLY_COORDINATE_SYSTEM_Y_UP = 0 , OCCTL_IO_PLY_COORDINATE_SYSTEM_Z_UP = 1 , OCCTL_IO_PLY_COORDINATE_SYSTEM_GLTF = 2 , OCCTL_IO_PLY_COORDINATE_SYSTEM_RESERVED_FUTURE = 0x7fffffff }
 

Functions

void occtl_io_ply_write_options_init (occtl_io_ply_write_options_t *options)
 
occtl_status_t occtl_io_ply_write (const occtl_graph_t *graph, occtl_node_id_t root, const char *path, const occtl_io_ply_write_options_t *options)
 

Detailed Description

OCCT-Light: PLY file export.

Writes Stanford PLY polygon mesh files via OCCT's DEPLY_Provider / DEPLY_ConfigurationNode.

OCCT 8.0.0 does not support PLY import through DEPLY_Provider, so this module is intentionally write-only. Callers that need deterministic mesh output should run occtl_mesh_generate before writing.

Macro Definition Documentation

◆ OCCTL_IO_PLY_WRITE_OPTIONS_INIT

#define OCCTL_IO_PLY_WRITE_OPTIONS_INIT
Value:
{OCCTL_IO_PLY_WRITE_OPTIONS_VERSION_1, \
NULL, \
1, \
1, \
0, \
1, \
0, \
NULL, \
NULL}
@ OCCTL_IO_PLY_COORDINATE_SYSTEM_Y_UP
Definition occtl_io_ply.h:47
@ OCCTL_IO_PLY_COORDINATE_SYSTEM_Z_UP
Definition occtl_io_ply.h:48

Typedef Documentation

◆ occtl_io_ply_coordinate_system_t

Coordinate system used by PLY export conversion.

◆ occtl_io_ply_write_options_t

Options for occtl_io_ply_write. Pass NULL for defaults.

Enumeration Type Documentation

◆ occtl_io_ply_coordinate_system

Coordinate system used by PLY export conversion.

Enumerator
OCCTL_IO_PLY_COORDINATE_SYSTEM_Y_UP 

Y-up coordinates.

OCCTL_IO_PLY_COORDINATE_SYSTEM_Z_UP 

Z-up coordinates.

OCCTL_IO_PLY_COORDINATE_SYSTEM_GLTF 

glTF-compatible coordinates.

Function Documentation

◆ occtl_io_ply_write()

occtl_status_t occtl_io_ply_write ( const occtl_graph_t graph,
occtl_node_id_t  root,
const char *  path,
const occtl_io_ply_write_options_t options 
)

Writes the topology rooted at root to a PLY file.

Parameters
[in]graphBorrows it. Must be non-NULL.
[in]rootRoot node id to serialise.
[in]pathBorrows it. NUL-terminated UTF-8 path; existing file is overwritten.
[in]optionsBorrows it. May be NULL for defaults.
Return values
OCCTL_OKOn success.
OCCTL_INVALID_ARGUMENTgraph or path is NULL; options has invalid fields (non-NULL p_next, non-0/1 flags); or mutually exclusive options are enabled.
OCCTL_NOT_FOUNDroot is invalid or has been removed.
OCCTL_VERSION_MISMATCHoptions has an unsupported struct_version.
OCCTL_OUT_OF_RANGEoptions has an unsupported coordinate-system value.
OCCTL_IO_ERRORFilesystem failure, unwritable file, or OCCT writer failure.

\par Thread Safety Yes (read-only on graph).

See also
occtl_de_write

◆ occtl_io_ply_write_options_init()

void occtl_io_ply_write_options_init ( occtl_io_ply_write_options_t options)

Initialises options to default values matching OCCTL_IO_PLY_WRITE_OPTIONS_INIT.

NULL-tolerant.

Parameters
[out]optionsBorrows it. May be NULL (no-op).

\par Thread Safety Yes.

See also
occtl_io_ply_write