15 virtual std::unique_ptr<lpart>
clone ()
const = 0;
Class for ray bundles.
Definition: bun.h:13
Virtual class for elementary optical parts which can be applied to ray bundles.
Definition: lpart.h:12
friend std::ostream & operator<<(std::ostream &out, const lpart &lp)
Printer.
Definition: lpart.h:37
virtual std::string print_str() const =0
String for printing the object.
virtual void intersect(bun &b)=0
Apply only the eventual intersection of the lpart with ray bundle b.
virtual void apply(bun &b)=0
Apply the lpart's operations to the ray bundle b.
virtual bool is_renderable()=0
Is the part renderable?
virtual std::unique_ptr< lpart > clone() const =0
Obtain a copy of the lpart.
virtual bool is_transfer()=0
Is the part a transfer?