v0.1.0
Fast, portable C library for geometry input/output
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Modules
stl_mesh_creator.h
Go to the documentation of this file.
1 /****************************************************************************
2 ** gmio
3 ** Copyright Fougue (24 Jun. 2016)
4 ** contact@fougue.pro
5 **
6 ** This software is a reusable library whose purpose is to provide complete
7 ** I/O support for various CAD file formats (eg. STL)
8 **
9 ** This software is governed by the CeCILL-B license under French law and
10 ** abiding by the rules of distribution of free software. You can use,
11 ** modify and/ or redistribute the software under the terms of the CeCILL-B
12 ** license as circulated by CEA, CNRS and INRIA at the following URL
13 ** "http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html".
14 ****************************************************************************/
15 
23 #ifndef GMIO_STL_MESH_CREATOR_H
24 #define GMIO_STL_MESH_CREATOR_H
25 
26 #include "stl_global.h"
27 #include "stl_format.h"
28 #include "stl_triangle.h"
29 #include "stlb_header.h"
30 #include "../gmio_core/stream.h"
31 
32 #include <stddef.h>
33 
37 {
40 
45  const char* stla_solid_name;
46 
55 
61 
67 };
68 
72 {
75  void* cookie;
76 
77  /* All function pointers are optional (ie can be set to NULL) */
78 
81  void* cookie, const struct gmio_stl_mesh_creator_infos* infos);
82 
92  void* cookie,
93  uint32_t tri_id,
94  const struct gmio_stl_triangle* triangle);
95 
101  void (*func_end_solid)(void* cookie);
102 };
103 
104 #endif /* GMIO_STL_MESH_CREATOR_H */
105 
Declaration of gmio_stl_triangle.
Detection of STL format from input stream.
void(* func_add_triangle)(void *cookie, uint32_t tri_id, const struct gmio_stl_triangle *triangle)
Pointer on a function that adds a triangle to the user mesh.
Definition: stl_mesh_creator.h:91
const struct gmio_stlb_header * stlb_header
Contains the header data(80 bytes)
Definition: stl_mesh_creator.h:60
enum gmio_stl_format format
Format of the input STL mesh.
Definition: stl_mesh_creator.h:39
80-byte data at the beginning of any STL binary file
Definition: stlb_header.h:30
void(* func_end_solid)(void *cookie)
Optional pointer on a function that finalizes creation of the user mesh.
Definition: stl_mesh_creator.h:101
void(* func_begin_solid)(void *cookie, const struct gmio_stl_mesh_creator_infos *infos)
Optional pointer on a function that handles declaration of a solid.
Definition: stl_mesh_creator.h:80
Declaration of gmio_stlb_header.
gmio_stl_format
This enums defines the various STL formats.
Definition: stl_format.h:34
const char * stla_solid_name
Null terminated C-string holding the STL mesh(solid) name.
Definition: stl_mesh_creator.h:45
Global declarations for the STL module.
void * cookie
Opaque pointer on the user mesh, passed as first argument to hook functions.
Definition: stl_mesh_creator.h:75
STL mesh triangle.
Definition: stl_triangle.h:30
int64_or_long gmio_streamsize_t
Type able to represent the size(in bytes) of a stream.
Definition: stream.h:44
uint32_t stlb_triangle_count
Count of mesh facets(triangles)
Definition: stl_mesh_creator.h:66
gmio_streamsize_t stla_stream_size
Total size (in bytes) of the input stream.
Definition: stl_mesh_creator.h:54
Provides an interface for the creation of the underlying(hidden) user mesh.
Definition: stl_mesh_creator.h:71
Informations about the STL stream, used in gmio_stl_mesh_creator::func_begin_solid() ...
Definition: stl_mesh_creator.h:36
Fougue © 2016