Itasca C++ Interface
Loading...
Searching...
No Matches
iextrudeshape.h
1#pragma once
2#include "base/src/property.h"
3
4namespace extruder {
5 using namespace itasca;
6
7 enum class ExtrudeShapeType {
8 TunnelCircle,
9 TunnelRectangle,
10 TunnelVerticalWall,
11 TunnelDoubleArch,
12 TunnelHorseshoe3Arch,
13 TunnelHorseshoe5Arch,
14 SlopeSimple,
15 SlopeBench1,
16 SlopeBench2,
17 SlopeBench3,
18 SlopeOpenPit,
19 SlopeDam
20 };
21
23 public:
24 virtual ~IExtrudeShape() = default;
25 virtual string getName() const = 0;
26 virtual string getKeyword() const = 0;
27 virtual ExtrudeShapeType getShapeType() const = 0;
28 virtual string getParameters() const = 0;
29 virtual string getParameterKeywords() const = 0;
30 virtual base::Property getParameter(uint32 index) const = 0;
31 virtual void setParameter(uint32 index, const base::Property& p) = 0;
32 virtual base::Property::Type getParameterType(uint32 index) const = 0;
33 virtual void resetParameters() = 0;
34 virtual bool verifyInput(string*) const { return true; }
35 virtual bool isOptionalParameter(uint32 ) const { return false;};
36 virtual void checkParameterCompatibility() const {};
37 virtual void generateSketch(std::vector<DVect>& pts, std::vector<std::vector<uint64>>& curves) = 0;
38 };
39
41 public:
42 virtual ~IExtrudeShapeTunnel() = default;
43 virtual DVect2 getCenter() const = 0;
44 virtual void setCenter(DVect2 v) = 0;
45 virtual bool isFullSection() const = 0;
46 virtual void setFullSection(bool b) = 0;
47 };
48
50 public:
51 virtual ~IExtrudeShapeSlope() = default;
52 virtual DVect2 getOrigin() const = 0;
53 virtual void setOrigin(DVect2 v) = 0;
54 virtual bool isReverse() const = 0;
55 virtual void setReverse(const bool& b) = 0;
56 virtual bool getIncludeInternal() const = 0;
57 virtual void setIncludeInternal(const bool& b) = 0;
58 };
59
60}
Definition property.h:52
Definition iextrudeshape.h:22
Definition iextrudeshape.h:49
Definition iextrudeshape.h:40