BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
RealSpace::Geometry::Vertices Struct Reference
Inheritance diagram for RealSpace::Geometry::Vertices:
[legend]
Collaboration diagram for RealSpace::Geometry::Vertices:
[legend]

Public Member Functions

void addFan (const Vertices &, const Indices &)
 
void addQuad (const Vector3D &, const Vector3D &, const Vector3D &, const Vector3D &)
 
void addQuad (const Vertices &, unsigned, unsigned, unsigned, unsigned)
 
void addStrip (const Vertices &, const Indices &)
 
void addTriangle (const Vector3D &, const Vector3D &, const Vector3D &)
 
void addVertex (const Vector3D &, int n=1)
 

Detailed Description

Definition at line 45 of file geometry.h.

Member Function Documentation

◆ addFan()

void RealSpace::Geometry::Vertices::addFan ( const Vertices vs,
const Indices is 
)

Definition at line 60 of file geometry.cpp.

61 {
62  ASSERT(is.size() >= 3); // at least one triangle
63  auto& ctr = vs.at(is.at(0));
64  for (unsigned i = 0; i + 2 < is.size(); ++i)
65  addTriangle(ctr, vs.at(is.at(1 + i)), vs.at(is.at(2 + i)));
66 }
#define ASSERT(condition)
Definition: Assert.h:31
void addTriangle(const Vector3D &, const Vector3D &, const Vector3D &)
Definition: geometry.cpp:30

References ASSERT.

Referenced by RealSpace::Geometry::meshDodecahedron().

◆ addQuad() [1/2]

void RealSpace::Geometry::Vertices::addQuad ( const Vector3D v1,
const Vector3D v2,
const Vector3D v3,
const Vector3D v4 
)

◆ addQuad() [2/2]

void RealSpace::Geometry::Vertices::addQuad ( const Vertices vs,
unsigned  i1,
unsigned  i2,
unsigned  i3,
unsigned  i4 
)

Definition at line 44 of file geometry.cpp.

46 {
47  addQuad(vs.at(i1), vs.at(i2), vs.at(i3), vs.at(i4));
48 }
void addQuad(const Vector3D &, const Vector3D &, const Vector3D &, const Vector3D &)
Definition: geometry.cpp:37

◆ addStrip()

void RealSpace::Geometry::Vertices::addStrip ( const Vertices vs,
const Indices is 
)

Definition at line 50 of file geometry.cpp.

51 {
52  ASSERT(is.size() >= 3); // at least one triangle
53  for (unsigned i = 0; i + 2 < is.size(); ++i)
54  if (i % 2)
55  addTriangle(vs.at(is.at(i)), vs.at(is.at(1 + i)), vs.at(is.at(2 + i)));
56  else
57  addTriangle(vs.at(is.at(i)), vs.at(is.at(2 + i)), vs.at(is.at(1 + i)));
58 }

References ASSERT.

◆ addTriangle()

void RealSpace::Geometry::Vertices::addTriangle ( const Vector3D v1,
const Vector3D v2,
const Vector3D v3 
)

◆ addVertex()

void RealSpace::Geometry::Vertices::addVertex ( const Vector3D v,
int  n = 1 
)

Definition at line 24 of file geometry.cpp.

25 {
26  for (int i = 0; i < n; ++i)
27  append(v);
28 }

Referenced by RealSpace::Geometry::meshColumn().


The documentation for this struct was generated from the following files: