MCPcopy Create free account
hub / github.com/GilesBathgate/RapCAD / evaluate

Method evaluate

src/module/circlemodule.cpp:29–60  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

27}
28
29Node* 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}

Callers

nothing calls this directly

Calls 7

getNumberMethod · 0.80
getArgumentMethod · 0.80
getInputNodesMethod · 0.80
appendMethod · 0.80
createPrimitiveMethod · 0.45
setChildrenMethod · 0.45
createVertexMethod · 0.45

Tested by

no test coverage detected