| 27 | } |
| 28 | |
| 29 | Node* CircleModule::evaluate(const Context& ctx) const |
| 30 | { |
| 31 | auto* rValue=dynamic_cast<NumberValue*>(getParameterArgument(ctx,0)); |
| 32 | |
| 33 | decimal r=1.0; |
| 34 | if(rValue) { |
| 35 | r=rValue->getNumber(); |
| 36 | } else { |
| 37 | NumberValue* dValue = dynamic_cast<NumberValue*>(ctx.getArgument(1,"diameter")); |
| 38 | if(dValue) |
| 39 | r=(dValue->getNumber()/2.0); |
| 40 | } |
| 41 | |
| 42 | int f = Fragment::getFragments(ctx,r); |
| 43 | |
| 44 | const QList<Point> c = getCircle(r,f,0); |
| 45 | |
| 46 | auto* pn=new PrimitiveNode(); |
| 47 | Primitive* p=pn->createPrimitive(); |
| 48 | pn->setChildren(ctx.getInputNodes()); |
| 49 | |
| 50 | int i=0; |
| 51 | if(r>0.0) { |
| 52 | Polygon& pg=p->createPolygon(); |
| 53 | for(const auto& pt: c) { |
| 54 | p->createVertex(pt); |
| 55 | pg.append(i++); |
| 56 | } |
| 57 | } |
| 58 | |
| 59 | return pn; |
| 60 | } |
nothing calls this directly
no test coverage detected