Shape::Composer class reference
[Core module]
Declaration
This class is flagged as experimental.
#include <Goptical/Shape/Composer>
namespace Goptical {
namespace Shape {
class Composer;
};
};
This class is a member of the Shape namespace.
Inheritance
Description
This class allows definition of a shape by composition of other shape models. Coordinate transforms and boolean operations can be performed on shapes.
This class is still experimental, 2d contour and 3d tessellation code doesn't give propser results.
Members
See also the full member list section for this class.
Inherited members
- 12 members inherited from Base
Type
- class Attributes
Functions
- Composer()
- Attributes & add_shape(const const_ref<Base> &shape)
- virtual Math::VectorPair2 get_bounding_box() const
- virtual void get_contour(unsigned int contour, const Math::Vector2::put_delegate_t &f, double resolution) const
- virtual unsigned int get_contour_count() const
- virtual double get_hole_radius(const Math::Vector2 &dir) const
- virtual double get_outter_radius(const Math::Vector2 &dir) const
- virtual void get_pattern(const Math::Vector2::put_delegate_t &f, const Trace::Distribution &d, bool unobstructed) const
- virtual void get_triangles(const Math::Triangle<2>::put_delegate_t &f, double resolution) const
- virtual bool inside(const Math::Vector2 &point) const
- virtual double max_radius() const
- virtual double min_radius() const
- void use_global_distribution(bool use_global)
Members detail
This constructor is flagged as experimental.
Attributes & add_shape(const const_ref<Base> &shape)
This function is flagged as experimental.
Add a new shape to shape composer.
This function returns a reference to an Attributes object which may be modified to set shape transform and boolean operations.
The composed shape is the union between all shapes added with this function.
virtual Math::VectorPair2 get_bounding_box() const
This virtual function is flagged as experimental.
This virtual function implements the get_bounding_box
pure function declared in the Base
base abstract class.
Documentation inherited from base class:
Get shape bounding box
virtual void get_contour(unsigned int contour, const Math::Vector2::put_delegate_t &f, double resolution) const
This virtual function is flagged as experimental.
This virtual function implements the get_contour
pure function declared in the Base
base abstract class.
Documentation inherited from base class:
Get contour polygone points for specified contour id. First contour is always outter edge.
See also get_contour_count function.
This virtual function is flagged as experimental.
This virtual function implements the get_contour_count
pure function declared in the Base
base abstract class.
Documentation inherited from base class:
Get number of contours polygones. This function returns value is greater than 1 if shape has hole(s).
See also get_contour function.
virtual double get_hole_radius(const Math::Vector2 &dir) const
This virtual function is flagged as experimental.
This virtual function overrides the get_hole_radius
virtual function defined in the Base
base abstract class.
Documentation inherited from base class:
Get distance between origin and nearest shape outter edge in specified direction
virtual double get_outter_radius(const Math::Vector2 &dir) const
This virtual function is flagged as experimental.
This virtual function implements the get_outter_radius
pure function declared in the Base
base abstract class.
Documentation inherited from base class:
Get distance between origin and farthest shape edge in specified direction
virtual void get_pattern(const Math::Vector2::put_delegate_t &f, const Trace::Distribution &d, bool unobstructed) const
This virtual function is flagged as experimental.
This virtual function overrides the get_pattern
virtual function defined in the Base
base abstract class.
Documentation inherited from base class:
Get points distributed on shape area with given pattern
virtual void get_triangles(const Math::Triangle<2>::put_delegate_t &f, double resolution) const
This virtual function is flagged as experimental.
This virtual function implements the get_triangles
pure function declared in the Base
base abstract class.
Documentation inherited from base class:
Get shape teselation triangles
virtual bool inside(const Math::Vector2 &point) const
This virtual function is flagged as experimental.
This virtual function implements the inside
pure function declared in the Base
base abstract class.
Documentation inherited from base class:
Check if the (x,y) 2d point is inside 2d shape area
This virtual function is flagged as experimental.
This virtual function implements the max_radius
pure function declared in the Base
base abstract class.
Documentation inherited from base class:
Get distance between origin and farthest shape edge
This virtual function is flagged as experimental.
This virtual function implements the min_radius
pure function declared in the Base
base abstract class.
Documentation inherited from base class:
Get distance between origin and nearest shape outter edge
This function is flagged as experimental.
Set ray distribution behavior. Default is to perform individual ray distribution on each composer shape.
Global mode distributes rays over a circle with maximum shape radius, it may be used to ensure ray density is the same on each shape. Unobstructed ray tracing require global distribution too.