2 #ifndef TRANSFER_PART_H
3 #define TRANSFER_PART_H
20 virtual void apply (
bun &b)
override;
27 virtual std::unique_ptr<lpart>
clone ()
const override {
28 return std::make_unique<transfer_part>(*
this);
38 virtual std::string
print_str ()
const override;
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
Part which applies a transfer operation to rays.
Definition: transfer_part.h:9
virtual bool is_transfer() override
Is the part a transfer?
Definition: transfer_part.h:30
transfer_part()
Default constructor.
Definition: transfer_part.cpp:4
virtual void intersect(bun &b) override
Do nothing.
Definition: transfer_part.cpp:21
virtual bool is_renderable() override
Is the part renderable?
Definition: transfer_part.h:33
virtual void apply(bun &b) override
Apply the transfer operation to ray bundle b.
Definition: transfer_part.cpp:13
transfer trf
The transfer operation to perform.
Definition: transfer_part.h:12
virtual std::unique_ptr< lpart > clone() const override
Clone.
Definition: transfer_part.h:27
virtual std::string print_str() const override
String for printing the object.
Definition: transfer_part.cpp:25
Transfer operation over a ray.
Definition: transfer.h:40