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

1035287 views
1
//
2
// movable_complex.h
3
// Bistellar
4
//
5
// Created by Alexander Thumm on 07.10.11.
6
// Copyright 2011 -. All rights reserved.
7
//
8
9
#ifndef Bistellar_movable_complex_h
10
#define Bistellar_movable_complex_h
11
12
class MovableComplex;
13
14
#include <vector>
15
#include <iostream>
16
#include "types.h"
17
#include "face.h"
18
#include "bistellar_move.h"
19
20
class MovableComplex
21
{
22
unsigned int _dimension;
23
24
std::vector< face_list_t > _faces;
25
std::vector< bistellar_move_option_list_t > _moves;
26
27
public:
28
MovableComplex();
29
MovableComplex(const face_list_t & facets, unsigned int dimension);
30
31
MovableComplex(const MovableComplex & cpy);
32
MovableComplex & operator=(const MovableComplex & cpy);
33
34
~MovableComplex();
35
36
unsigned int dimension() const;
37
unsigned int f(unsigned int d) const;
38
39
bool hasValidMoves(unsigned int codimension) const;
40
bistellar_move_list_t validMoves(unsigned int codimension) const;
41
void moveComplex(const BistellarMove & move);
42
43
// serialization methods
44
friend std::ostream & operator<< (std::ostream & os, const MovableComplex & complex);
45
friend std::istream & operator>> (std::istream & is, MovableComplex & complex);
46
47
// helper functions
48
friend void updateBallBoundary(MovableComplex & complex, const face_list_t & ballBoundaryFaces);
49
friend void updateMoveValidity(MovableComplex & complex);
50
};
51
52
#endif
53
54