GOAT (Geometrical optics application tool) 0.1
Loading...
Searching...
No Matches
surface.h File Reference
#include <complex>
#include <stdio.h>
#include <stdlib.h>
#include <fstream>
#include <iostream>
#include <math.h>
#include "vector.h"
#include "objectshape.h"
#include <string.h>
#include "triangle.h"

Go to the source code of this file.

Classes

class  GOAT::raytracing::surface
 This class represents objects those surface is described by triangles. More...

Namespaces

namespace  GOAT
 This class is used for the iray class. This class is intended for internal use only. It defines a plane, defined by a central position and two directional vectors.
namespace  GOAT::raytracing
 Raytracer used for ultrashort pulse calculation with raytracing only.

Macros

#define OBJECTSHAPE_SURFACE_FILETYPE_NONE   -1
#define OBJECTSHAPE_SURFACE_FILETYPE_SRF   0
#define OBJECTSHAPE_SURFACE_FILETYPE_STL   1
#define SQRT3   1.73205080756887729352744634150587236694280525381038062805580

Functions

std::ostream & GOAT::raytracing::operator<< (std::ostream &os, const surface &su)
operators on surface

Operators, which act directly on the surface class

surfaceGOAT::raytracing::generateBullet (double a, double h, double t, maths::Matrix< double > M=maths::UNITY)
 generates a cylinder with hexagonal cross section with a pyramid-shaped tip on the upper surface.
surface GOAT::raytracing::generateEllipsoid (double a, double b, int N, double r0=1.0, maths::Matrix< double > M=maths::UNITY)
 Generiert einen hexagonalen Zylinder mit Seitenl�nge a und H�he h und einer pyramidalen Spitze.
surface GOAT::raytracing::generateHexagonCylinder (double a, double h, maths::Matrix< double > M=maths::UNITY)
 }
surface GOAT::raytracing::generateHollowHexagonalCylinder (double a, double h, double t, maths::Matrix< double > M=maths::UNITY)
 generates a cylinder with hexagonal cross section. At the upper and lower faces, there are pyramidal dips.
surface GOAT::raytracing::generatePill (double a, double b, double h, int N, double r0=1.0, maths::Matrix< double > M=maths::UNITY)
 Generates a cylinder with ellipsoidal caps.
surface GOAT::raytracing::generatePolyBullet (int n, double a, double h, double t, maths::Matrix< double > M=maths::UNITY)
void GOAT::raytracing::getMinMax (int numTriangles, triangle *S, double &min, double &max)
 calculates the longest and shortest side length
surface GOAT::raytracing::operator* (const maths::Matrix< double > &M, const surface &s)
surface GOAT::raytracing::operator+ (const maths::Vector< double > &v, const surface &s)
 adds vector v to all corners of the triangle list of the surface object s
surface GOAT::raytracing::operator+ (const surface &s, const maths::Vector< double > &v)
 {
surface GOAT::raytracing::operator- (const maths::Vector< double > &v, const surface &s)
 subtracts vector v from all corners of the triangle list of the surface object s
surface GOAT::raytracing::operator- (const surface &s, const maths::Vector< double > &v)
 subtracts vector v from all corners of the triangle list of the surface object s

Macro Definition Documentation

◆ OBJECTSHAPE_SURFACE_FILETYPE_NONE

#define OBJECTSHAPE_SURFACE_FILETYPE_NONE   -1

Definition at line 28 of file surface.h.

◆ OBJECTSHAPE_SURFACE_FILETYPE_SRF

#define OBJECTSHAPE_SURFACE_FILETYPE_SRF   0

Definition at line 29 of file surface.h.

◆ OBJECTSHAPE_SURFACE_FILETYPE_STL

#define OBJECTSHAPE_SURFACE_FILETYPE_STL   1

Definition at line 30 of file surface.h.

◆ SQRT3

#define SQRT3   1.73205080756887729352744634150587236694280525381038062805580

Definition at line 25 of file surface.h.