# Polyhedron

### From openEMS

A polyhedron is the most general 3d Primitive available for openEMS. It can be used to create a body with (nearly) any shape by defining a closed surface using verteces and faces.

## Description

A polyhedron is added by

CSX = AddPolyhedron(CSX, propName, prio, vertices, faces, varargin)

with the following parameters:

**CSX**: The original CSX structure**propName**: name of the assigned property**prio**: priority of the primitive**vertices**: cell array of all vertices**faces**: cell array of all faces**varargin**: a key/value list of primitives variable arguments

**Note:**

- The polyhedron must be a closed surface for 3D discretisation
- All faces must contain the vertices in a right-handed order with the normal direction for each face pointing out of the solid

## Verteces and faces

A polyhedron is the most general shape that can be defined in openEMS. Polyhedrons are defined by their *vertices* and *faces*. In openEMS each vertex is an array containing the x, y and z coordinates of the point. All faces must contain the vertices in a right-handed order with the normal direction for each face pointing out of the solid. In the example of the tetrahedron the four faces would be {1,2,3}, {2,4,3} and {1,3,4}

## Example

% example tetrahedron vertices{1}=[0 0 0]; vertices{2}=[1 0 0]; vertices{3}=[0 1 0]; vertices{4}=[0 0 1]; faces{1}=[0 2 1]; faces{2}=[0 1 3]; faces{3}=[0 3 2]; faces{4}=[1 2 3]; CSX = AddMetal( CSX, 'metal' ); CSX = AddPolyhedron(CSX, 'metal', 0, vertices, faces);