6 std::string indent(indentwidth,
' ');
7 std::string indentbase(4,
' ');
11 std::cout << indent <<
"triangle, \n";
13 for (
unsigned int i = 0; i < 3u; ++ i) {
14 std::cout << indent << indentbase <<
"node " << i <<
": " <<
nodes_m[i] <<
"\n";
16 std::cout << indent << indentbase <<
"origin: " << origin[0] <<
", " << origin[1] <<
",\n"
17 << indent << indentbase <<
"angle: " << angle <<
"\n"
23 bfuncs.emplace_back(this->
clone());
27 std::shared_ptr<Triangle> tri(
new Triangle(*
this));
32 tri->divisor_m.emplace_back(item->clone());
35 return std::static_pointer_cast<Base>(tri);
39 unsigned int width = out.precision() + 8;
41 for (
unsigned int i = 0; i < 4u; ++ i) {
44 out << std::setw(width) << corner[0]
45 << std::setw(width) << corner[1]
51 item->writeGnuplot(out);
58 std::vector<Vector_t> corners;
59 for (
unsigned int i = 0; i < 3u; ++ i) {
63 Vector_t llc = corners[0], urc = corners[0];
64 for (
unsigned int i = 1u; i < 3u; ++ i) {
65 if (corners[i][0] < llc[0]) llc[0] = corners[i][0];
66 else if (corners[i][0] > urc[0]) urc[0] = corners[i][0];
68 if (corners[i][1] < llc[1]) llc[1] = corners[i][1];
69 else if (corners[i][1] > urc[1]) urc[1] = corners[i][1];
75 item->computeBoundingBox();
80 nodeNum = nodeNum % 3u;
81 unsigned int nextNode = (nodeNum + 1) % 3u;
85 return nodeToPt[0] * nodeToNext[1] - nodeToPt[1] * nodeToNext[0];
96 if (!(test0 && test1 && test2))
return false;
99 if (item->isInside(
R))
return false;
Inform & endl(Inform &inf)
std::vector< std::shared_ptr< Base > > divisor_m
AffineTransformation trafo_m
Vector_t getOrigin() const
Vector_t transformTo(const Vector_t &v) const
Vector_t transformFrom(const Vector_t &v) const
virtual void computeBoundingBox()
virtual std::shared_ptr< Base > clone() const
virtual void print(int indentwidth)
virtual void writeGnuplot(std::ofstream &out) const
virtual bool isInside(const Vector_t &R) const
virtual void apply(std::vector< std::shared_ptr< Base > > &bfuncs)
double crossProduct(const Vector_t &pt, unsigned int nodeNum) const
std::vector< Vector_t > nodes_m