29 #ifndef T8_GEOMETRY_OCC_HXX
30 #define T8_GEOMETRY_OCC_HXX
38 #include <TopoDS_Shape.hxx>
41 #include <Geom_Curve.hxx>
42 #include <Geom_Surface.hxx>
68 typedef void (*t8_geom_occ_fn) (
t8_cmesh_t cmesh,
70 const double *ref_coords,
72 const void *tree_data);
85 t8_geometry_occ (
int dimension,
const char *fileprefix,
const char *name);
93 t8_geometry_occ (
int dimension,
const TopoDS_Shape occ_shape,
99 virtual ~t8_geometry_occ ()
114 const double *ref_coords,
115 double out_coords[3])
const;
128 const double *ref_coords,
129 double *jacobian)
const;
148 t8_geom_get_occ_point (
const int index)
const;
154 const Handle_Geom_Curve
155 t8_geom_get_occ_curve (
const int index)
const;
161 const Handle_Geom_Surface
162 t8_geom_get_occ_surface (
const int index)
const;
167 const TopTools_IndexedMapOfShape
168 t8_geom_get_occ_shape_vertex_map()
const;
173 const TopTools_IndexedMapOfShape
174 t8_geom_get_occ_shape_edge_map()
const;
179 const TopTools_IndexedMapOfShape
180 t8_geom_get_occ_shape_face_map()
const;
188 t8_geom_get_common_edge (
const int vertex1_index,
189 const int vertex2_index)
const;
197 t8_geom_get_common_face (
const int edge1_index,
198 const int edge2_index)
const;
206 t8_geom_is_vertex_on_edge (
const int vertex_index,
207 const int edge_index)
const;
215 t8_geom_is_edge_on_face (
const int edge_index,
216 const int face_index)
const;
224 t8_geom_is_vertex_on_face (
const int vertex_index,
225 const int face_index)
const;
234 t8_geom_get_parameter_of_vertex_on_edge(
const int vertex_index,
235 const int edge_index,
236 double* edge_param)
const;
245 t8_geom_get_parameters_of_vertex_on_face(
const int vertex_index,
246 const int face_index,
247 double* face_params)
const;
257 t8_geom_edge_parameter_to_face_parameters(
const int edge_index,
258 const int face_index,
259 const double edge_param,
260 double* face_params)
const;
273 const double *ref_coords,
274 double out_coords[3])
const;
286 const double *ref_coords,
287 double out_coords[3])
const;
291 TopoDS_Shape occ_shape;
292 TopTools_IndexedMapOfShape occ_shape_vertex_map;
293 TopTools_IndexedMapOfShape occ_shape_edge_map;
294 TopTools_IndexedMapOfShape occ_shape_face_map;
295 TopTools_IndexedDataMapOfShapeListOfShape occ_shape_vertex2edge_map;
296 TopTools_IndexedDataMapOfShapeListOfShape occ_shape_edge2face_map;
Definition: t8_geometry_base.hxx:125
virtual void t8_geom_load_tree_data(t8_cmesh_t cmesh, t8_gloidx_t gtreeid)
Update a possible internal data buffer for per tree data.
Definition: t8_geometry_base.cxx:33
This structure holds the connectivity data of the coarse mesh.
Definition: t8_cmesh_types.h:83
virtual void t8_geom_evaluate(t8_cmesh_t cmesh, t8_gloidx_t gtreeid, const double *ref_coords, double out_coords[3]) const =0
Map a point in the reference space $$[0,1]^dimension$$ to $$\mathbb R^3$$.
virtual void t8_geom_evalute_jacobian(t8_cmesh_t cmesh, t8_gloidx_t gtreeid, const double *ref_coords, double *jacobian) const =0
Compute the jacobian of the t8_geom_evaluate map at a point in the reference space $$[0,...
This is the administrative header file for t8code.
int64_t t8_gloidx_t
A type for global indexing that holds really big numbers.
Definition: t8.h:105
We define here the datatypes needed for internal cmesh routines.
#define T8_ECLASS_MAX_EDGES
The maximum number of boundary edges an element class can have.
Definition: t8_eclass.h:72
#define T8_ECLASS_MAX_FACES
The maximum number of boundary faces an element class can have.
Definition: t8_eclass.h:70
#define T8_ECLASS_MAX_EDGES_2D
The maximum number of boundary edges a 2D element class can have.
Definition: t8_eclass.h:74
Implements the base pure virtual class t8_geometry and the inherited class t8_geometry_w_vertices.
const int t8_face_edge_to_tree_edge[T8_ECLASS_MAX_FACES][T8_ECLASS_MAX_EDGES_2D]
The edges of a face to the edges of a tree.
Definition: t8_geometry_occ.cxx:58
const int t8_edge_to_face[T8_ECLASS_MAX_EDGES][2]
The faces connected to each edge.
Definition: t8_geometry_occ.cxx:52
const int t8_edge_vertex_to_tree_vertex[T8_ECLASS_MAX_EDGES][2]
The vertices of each edge of a hexahedron.
Definition: t8_geometry_occ.cxx:47