80 |
}; |
}; |
81 |
|
|
82 |
/** A tag interface, implying for a primitive |
/** A tag interface, implying for a primitive |
83 |
|
* transform that there is shouldBeDrawn() method. |
84 |
|
*/ |
85 |
|
class DisablablePrimitiveTransform { |
86 |
|
public: |
87 |
|
bool shouldBeDrawn() const { return true; } |
88 |
|
}; |
89 |
|
|
90 |
|
/** A tag interface, implying for a primitive |
91 |
* transform that there are parameters. |
* transform that there are parameters. |
92 |
*/ |
*/ |
93 |
class ParametrizedPrimitiveTransform { |
class ParametrizedPrimitiveTransform { |
275 |
return false; |
return false; |
276 |
} |
} |
277 |
|
|
278 |
|
bool shouldBeDrawn(const DisablablePrimitiveTransform *_) const { |
279 |
|
return t.shouldBeDrawn(); |
280 |
|
} |
281 |
|
bool shouldBeDrawn(const void *_) const { |
282 |
|
return true; |
283 |
|
} |
284 |
|
|
285 |
float selfNonlinearity(const NonlinearPrimitiveTransform *_, |
float selfNonlinearity(const NonlinearPrimitiveTransform *_, |
286 |
const ZPt &p, float radius) const { |
const ZPt &p, float radius) const { |
287 |
return t.nonlinearity(p, radius); |
return t.nonlinearity(p, radius); |
387 |
return s + su; // XXX !!! |
return s + su; // XXX !!! |
388 |
} |
} |
389 |
|
|
390 |
virtual bool shouldBeDrawn() const { |
virtual bool shouldBeDrawn() const { return shouldBeDrawn(&t); } |
391 |
return true; |
|
|
} |
|
|
|
|
392 |
virtual const Transform &getInverse() const { |
virtual const Transform &getInverse() const { |
393 |
if(!this->inverse) { |
if(!this->inverse) { |
394 |
InverseHierarchicalTransform<typename Primitive::InverseType> *inv |
InverseHierarchicalTransform<typename Primitive::InverseType> *inv |