A Discrete-Event Network Simulator
API
Public Types | Public Member Functions | Public Attributes | List of all members
ns3::Box Class Reference

a 3d box More...

#include "box.h"

Public Types

enum  Side {
  RIGHT, LEFT, TOP, BOTTOM,
  UP, DOWN
}
 Enum class to specify sides of a box. More...
 

Public Member Functions

 Box (double _xMin, double _xMax, double _yMin, double _yMax, double _zMin, double _zMax)
 
 Box ()
 Create a zero-sized box located at coordinates (0.0,0.0,0.0) More...
 
Vector CalculateIntersection (const Vector &current, const Vector &speed) const
 
Side GetClosestSide (const Vector &position) const
 
bool IsInside (const Vector &position) const
 

Public Attributes

double xMax
 The x coordinate of the right bound of the box. More...
 
double xMin
 The x coordinate of the left bound of the box. More...
 
double yMax
 The y coordinate of the top bound of the box. More...
 
double yMin
 The y coordinate of the bottom bound of the box. More...
 
double zMax
 The z coordinate of the up bound of the box. More...
 
double zMin
 The z coordinate of the down bound of the box. More...
 

Detailed Description

a 3d box

See also
Box Attribute

Definition at line 34 of file box.h.

Member Enumeration Documentation

◆ Side

Enum class to specify sides of a box.

Enumerator
RIGHT 
LEFT 
TOP 
BOTTOM 
UP 
DOWN 

Definition at line 40 of file box.h.

Constructor & Destructor Documentation

◆ Box() [1/2]

ns3::Box::Box ( double  _xMin,
double  _xMax,
double  _yMin,
double  _yMax,
double  _zMin,
double  _zMax 
)
Parameters
_xMinx coordinates of left boundary.
_xMaxx coordinates of right boundary.
_yMiny coordinates of bottom boundary.
_yMaxy coordinates of top boundary.
_zMinz coordinates of down boundary.
_zMaxz coordinates of up boundary.

Create a box.

Definition at line 31 of file box.cc.

◆ Box() [2/2]

ns3::Box::Box ( )

Create a zero-sized box located at coordinates (0.0,0.0,0.0)

Definition at line 43 of file box.cc.

Member Function Documentation

◆ CalculateIntersection()

Vector ns3::Box::CalculateIntersection ( const Vector &  current,
const Vector &  speed 
) const
Parameters
currentthe current position
speedthe current speed
Returns
the intersection point between the rectangle and the current+speed vector.

This method assumes that the current position is located inside the cube and checks for this with an assert. This method compares only the x and y coordinates of the input position and speed. It ignores the z coordinate.

Definition at line 110 of file box.cc.

References IsInside(), NS_ASSERT, xMax, xMin, yMax, and yMin.

◆ GetClosestSide()

Box::Side ns3::Box::GetClosestSide ( const Vector &  position) const
Parameters
positionthe position to test.
Returns
the side of the cube the input position is closest to.

This method compares the x, y, and z coordinates of the input position.

Definition at line 63 of file box.cc.

References BOTTOM, DOWN, LEFT, min, RIGHT, TOP, UP, xMax, yMax, and zMax.

◆ IsInside()

bool ns3::Box::IsInside ( const Vector &  position) const
Parameters
positionthe position to test.
Returns
true if the input position is located within the box, false otherwise.

This method compares the x, y, and z coordinates of the input position.

Definition at line 54 of file box.cc.

References xMax, xMin, yMax, yMin, zMax, and zMin.

Referenced by CalculateIntersection(), ns3::GaussMarkovMobilityModel::DoWalk(), and ns3::Building::IsInside().

Member Data Documentation

◆ xMax

double ns3::Box::xMax

◆ xMin

double ns3::Box::xMin

◆ yMax

double ns3::Box::yMax

◆ yMin

double ns3::Box::yMin

◆ zMax

double ns3::Box::zMax

◆ zMin

double ns3::Box::zMin

The documentation for this class was generated from the following files: