Class Avogadro::Rendering::GeometryNode#

class Avogadro::Rendering::GeometryNode : public Node#

The GeometryNode class is the common base of all geometry nodes.

The GeometryNode contains any Drawable objects, and is the only node type that results in anything being rendered to the screen.

Author

Marcus D. Hanwell

Public Functions

GeometryNode()#
~GeometryNode() override#
virtual void accept(Visitor&) override#

Accept a visit from our friendly visitor.

void addDrawable(Drawable *object)#

Add a drawable object to the geometry node.

Parameters

objectDrawable object to be added.

bool removeDrawable(Drawable *node)#

Remove child node, this node will no longer be deleted.

Parameters

nodeNode to be removed.

Returns

True if the node was removed, false if it was not found.

Drawable *drawable(size_t index)#

Get the child Node at the specified index.

Parameters

index – The index of the child.

Returns

A pointer to the child node, or nullptr if the index is out of range.

inline std::vector<Drawable*> &drawables()#

Get a reference to the child nodes list.

inline const std::vector<Drawable*> drawables() const#
void clearDrawables()#

Remove all drawable objects.

void render(const Camera &camera)#

Render the drawables in the geometry node.

std::multimap<float, Identifier> hits(const Vector3f &rayOrigin, const Vector3f &rayEnd, const Vector3f &rayDirection) const#

Return the primitives that are hit by the ray.

Parameters
  • rayOrigin – Origin of the ray.

  • rayEnd – End point of the ray.

  • rayDirection – Normalized direction of the ray.

Returns

Sorted collection of primitives that were hit.

Core::Array<Identifier> areaHits(const Frustrum &frustrum) const#

Return the primitives within the supplied frustrum.

Protected Attributes

std::vector<Drawable*> m_drawables#