Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it

1035615 views
1
//
2
// face.h
3
// Bistellar
4
//
5
// Created by Alexander Thumm on 07.10.11.
6
// Copyright 2011 -. All rights reserved.
7
//
8
9
#ifndef Bistellar_face_h
10
#define Bistellar_face_h
11
12
#include <iostream>
13
#include <deque>
14
#include "types.h"
15
16
class Face
17
{
18
vertex_t * _vertices;
19
int _dimension;
20
21
public:
22
Face();
23
Face(const vertex_t * vertices, int dimension);
24
25
Face(const Face & cpy);
26
Face & operator=(const Face & cpy);
27
28
~Face();
29
30
bool operator==(const Face & cmp) const;
31
bool operator!=(const Face & cmp) const;
32
33
int dimension() const;
34
35
// returns a reference to the i-th vertex.
36
const vertex_t & vertex(unsigned int i) const;
37
38
// returns the boundary face obtained by omitting the i-th vertex.
39
Face * createBoundaryFace(unsigned int i) const;
40
41
// tests if the face is a subface of face
42
bool isSubfaceOf(const Face & face) const;
43
44
45
// create linkFace
46
static Face linkFace(const Face & face, const face_list_t & linkFacets);
47
// create union
48
static Face unite(const Face & face1, const Face & face2);
49
50
51
// serialization methods
52
friend std::ostream & operator<< (std::ostream & os, const Face & face);
53
friend std::istream & operator>> (std::istream & is, Face & face);
54
};
55
56
// adds all boundaryfaces of face to listOfBoundaryfaces
57
void addBoundaryfacesOfFace(const Face & face, face_list_t & listOfBoundaryfaces);
58
// adds all subfaces of face to listOfSubfaces
59
void addSubfacesOfFace(const Face & face, face_list_t & listOfSubfaces);
60
61
#endif
62
63