// Author: Hector Navarro (hnavarro@ciens.ucv.ve)
//         Juan Carlos De Abreu (jcabreur@gmail.com)

#ifndef AABB_NODE_INL_H__
#define AABB_NODE_INL_H__

#include "aabb_node.h"

BEGIN_TEG_NAMESPACE();

inline int AABBNode::number_of_faces() const {
  return number_of_faces_;
}

inline const std::vector<int>& AABBNode::faces() const {
  return faces_;
}

inline const AABB& AABBNode::bounding_box() const {
  return bounding_box_;
}

inline const SmartPointer<AABBNode>& AABBNode::left() const {
  return left_;
}

inline const SmartPointer<AABBNode>& AABBNode::right() const {
  return right_;
}

inline void AABBNode::set_left(const SmartPointer<AABBNode>& left) {
  left_ = left;
}

inline void AABBNode::set_right(const SmartPointer<AABBNode>& right) {
  right_ = right;
}

inline void AABBNode::set_number_of_faces(int number_of_faces) {
  number_of_faces_ = number_of_faces;
}

inline void AABBNode::ClearAllFaces() {
  faces_.clear();
  number_of_faces_ = 0;
}

END_TEG_NAMESPACE();

#endif  // AABB_NODE_INL_H__
