Basic datastructure for a ray that will traverse the mesh. More...
#include <Ray.h>
Classes | |
class | ChangeDirectionKey |
Class that is used as a parameter to changeDirection() that allows only RayBC methods to call changeDirection() More... | |
class | ChangeStartDirectionKey |
Class that is used as a parameter to changeStartDirection() that allows only RayKernelBase methods to call changeStartDirection() More... | |
class | ConstructRayKey |
Class that is used as a parameter to the public constructors/reset methods. More... | |
Public Member Functions | |
Ray (RayTracingStudy *study, const RayID id, const std::size_t data_size, const std::size_t aux_data_size, const bool reset, const ConstructRayKey &) | |
Ray constructor for internal use only. More... | |
void | reset (RayTracingStudy *study, const RayID id, const std::size_t data_size, const std::size_t aux_data_size, const bool reset, const ConstructRayKey &) |
Resets a Ray for internal use only. More... | |
Ray (const Ray *const other, const ConstructRayKey &) | |
Copy constructor for internal use only. More... | |
void | reset (const Ray *const other, const ConstructRayKey &) |
Resets a Ray from another Ray for internal use only. More... | |
Ray & | operator= (const Ray &)=delete |
Deleted copy operator. More... | |
Ray ()=delete | |
Deleted default constructor. More... | |
Ray (const Ray &other)=delete | |
Deleted copy constructor. More... | |
bool | operator== (const Ray &other) const |
Equality operator. More... | |
bool | operator!= (const Ray &other) const |
Non-equal operator. More... | |
RayID | id () const |
Gets the Ray's ID. More... | |
bool | invalidID () const |
Whether or not the Ray's ID is invalid. More... | |
const Point & | currentPoint () const |
Gets the point that the Ray is currently at. More... | |
bool | invalidCurrentPoint () const |
Whether or not the point that the Ray is currently at is valid. More... | |
void | changeDirection (const Point &direction, const ChangeDirectionKey) |
This method is for internal use only. More... | |
void | changeStartDirection (const Point &start, const Point &direction, const ChangeStartDirectionKey) |
This method is for internal use only. More... | |
const Point & | direction () const |
Gets the Ray's direction. More... | |
bool | invalidDirection () const |
Whether or not the Ray's direction is set to invalid. More... | |
std::vector< RayData > & | data () |
Gets a writeable reference to the Ray's data. More... | |
const std::vector< RayData > & | data () const |
Gets a read only reference to the Ray's data. More... | |
RayData & | data (const std::size_t i) |
Gets a writeable reference to the Ray's data at an index. More... | |
const RayData & | data (const std::size_t i) const |
Gets a read only reference to the Ray's data at an index. More... | |
std::vector< RayData > & | auxData () |
Gets a writeable reference to the Ray's auxilary data. More... | |
const std::vector< RayData > & | auxData () const |
Gets a read only reference to the Ray's auxilary data. More... | |
RayData & | auxData (const std::size_t i) |
Gets a writeable reference to a component of the Ray's auxilary data. More... | |
const RayData & | auxData (const std::size_t i) const |
Gets a read only reference to a component of the Ray's auxilary data. More... | |
void | setStart (const Point &starting_point, const Elem *starting_elem=nullptr, const unsigned short starting_incoming_side=RayTracingCommon::invalid_side) |
Sets the information pretaining to the start point for the Ray. More... | |
void | setStartingDirection (const Point &starting_direction) |
Sets the starting direction to starting_direction for a Ray. More... | |
void | setStartingEndPoint (const Point &starting_end_point) |
Sets the starting end point to starting_point for a Ray. More... | |
void | setStartingMaxDistance (const Real starting_max_distance) |
Sets the maximum distance this Ray should travel to starting_max_distance . More... | |
void | setStationary () |
Sets the Ray to be stationary (max distance = 0). More... | |
void | invalidateStartingElem () |
Invalidates a Ray's starting element. More... | |
void | invalidateStartingIncomingSide () |
Invalidates a Ray's starting incoming side. More... | |
void | clearStartingInfo () |
Clears the starting information set on the Ray: More... | |
void | resetCounters () |
Clears the internal counters on the Ray so that the Ray can be traced again. More... | |
const Elem * | currentElem () const |
Gets the current element that the Ray is in. More... | |
unsigned short | currentIncomingSide () const |
Get a Ray's current incoming side. More... | |
bool | invalidCurrentIncomingSide () const |
Whether or not the Ray's current incoming side is invalid. More... | |
bool | endSet () const |
Whether or not the user has set an end point for this Ray. More... | |
bool | atEnd () const |
Whether or not the Ray is at the user-defined end point. More... | |
Point | endPoint () const |
Gets the user-set end point for the Ray, if set. More... | |
unsigned int | processorCrossings () const |
Gets the number of times this Ray has crossed a processor. More... | |
unsigned int | intersections () const |
Gets the number of intersections this Ray has done. More... | |
Real | distance () const |
Gets the distance this Ray has traveled. More... | |
Real | maxDistance () const |
Gets the max distance this Ray is allowed to travel. More... | |
bool | maxDistanceSet () const |
Whether or not the distance has been set via setStartingMaxDistance() More... | |
bool | stationary () const |
bool | shouldContinue () const |
Whether or not this Ray should continue. More... | |
void | setShouldContinue (const bool should_continue) |
Sets whether or not this Ray should continue. More... | |
bool | trajectoryChanged () const |
Whether or not this Ray has had its trajectory changed. More... | |
unsigned int | trajectoryChanges () const |
Gets the number of trajectory changes this Ray has had. More... | |
std::string | getInfo () const |
Helper function for getting information about the Ray. More... | |
bool | hasTraced () const |
Whether or not a Ray has begun tracing. More... | |
const RayTracingStudy & | study () const |
Get the RayTracingStudy associated with this Ray. More... | |
Static Public Attributes | |
static const RayDataIndex | INVALID_RAY_DATA_INDEX = static_cast<RayDataIndex>(-1) |
Invalid index into a Ray's data. More... | |
static const RayID | INVALID_RAY_ID = static_cast<RayID>(-1) |
Invalid Ray ID. More... | |
Private Member Functions | |
void | changeID (const RayID id) |
Changes the Ray's ID. More... | |
void | invalidateCurrentElem () |
Invalidates the Ray's current element. More... | |
void | setCurrentPoint (const Point ¤t_point) |
Sets the Ray's current point. More... | |
void | invalidateCurrentPoint () |
Invalidates the Ray's current point. More... | |
void | setDirection (const Point &direction) |
Sets the Ray's direction. More... | |
void | invalidateDirection () |
Invalidates the Ray's current direction. More... | |
void | setCurrentElem (const Elem *current_elem) |
Change a Ray's current elem. More... | |
void | setCurrentIncomingSide (const unsigned short current_incoming_side) |
Change a Ray's incoming side. More... | |
void | invalidateCurrentIncomingSide () |
Invalidates the Ray's current incoming side. More... | |
void | setTrajectoryChanged (const bool trajectory_changed) |
Set whether or not this Ray has had its trajectory changed. More... | |
void | addProcessorCrossing () |
Increment the Ray's processor crossing counter. More... | |
void | addIntersection () |
Increment the Ray's intersection counter. More... | |
void | addTrajectoryChange () |
Increment the Ray's trajectory change counter. More... | |
void | addDistance (const Real add_distance) |
Adds to the distance this Ray has traveled. More... | |
void | changeMaxDistance (const Real max_distance) |
Changes the Ray's max distance to be traveled. More... | |
void | invalidateMaxDistance () |
Invalidates the Ray's max distance. More... | |
void | errorIfTracing (const std::string &reason) const |
Produces a useful error if a Ray has started tracing. More... | |
void | errorWhenInitializing (const std::string &reason) const |
Produces a useful error for use when initializing a Ray. More... | |
void | resetCountersInternal () |
Reset all of the internal counters. More... | |
bool | equalityHelper (const Ray &other, const bool equal) const |
Helper for the equality operators. More... | |
void | clearStartingInfoInternal () |
Clears the starting information. More... | |
Private Attributes | |
RayID | _id |
A unique ID for this Ray. More... | |
Point | _current_point |
Current point of the Ray. More... | |
Point | _direction |
Direction of the Ray. More... | |
const Elem * | _current_elem |
Current element that the Ray is in. More... | |
unsigned short | _current_incoming_side |
The side of _current_elem that the Ray is incoming on (if any). More... | |
bool | _end_set |
Whether or not the user has set an end point for this Ray (via limiting its distance with setStartingEndPoint()) More... | |
unsigned int | _processor_crossings |
Number of times this Ray has been communicated. More... | |
unsigned int | _intersections |
Number of intersections done for this Ray. More... | |
unsigned int | _trajectory_changes |
Number of times this Ray has had its trajectory changed. More... | |
bool | _trajectory_changed |
Whether or not this Ray had its trajectory changed (not sent in parallel) More... | |
Real | _distance |
Total distance this Ray has traveled. More... | |
Real | _max_distance |
Maximum distance the Ray is allowed to travel. More... | |
bool | _should_continue |
Wether or not the Ray should continue to be traced (not sent in parallel) More... | |
std::vector< RayData > | _data |
The data that is carried with the Ray This is mutable so that we can resize it if needed within const accessors. More... | |
std::vector< RayData > | _aux_data |
Auxiliary data that is carried with the ray This is mutable so that we can resize it if needed within const accessors. More... | |
RayTracingStudy & | _study |
The RayTracingStudy that owns this Ray (not sent in parallel) More... | |
long | padding [8] |
Extra padding to avoid false sharing. More... | |
Friends | |
class | TraceRay |
class | Parallel::Packing< std::shared_ptr< Ray > > |
class | TestRayLots |
void | dataStore (std::ostream &stream, std::shared_ptr< Ray > &ray, void *context) |
void | dataLoad (std::istream &stream, std::shared_ptr< Ray > &ray, void *context) |
Ray::Ray | ( | RayTracingStudy * | study, |
const RayID | id, | ||
const std::size_t | data_size, | ||
const std::size_t | aux_data_size, | ||
const bool | reset, | ||
const ConstructRayKey & | |||
) |
Ray constructor for internal use only.
Even though this method is public, it in general CANNOT be used publicly. This is ONLY used internally and is protected by the ConstructRayKey. In order to construct a Ray as a user, use the RayTracingStudy::acquire{}() methods, such as RayTracingStudy::acquireRay().
study | The study that owns the Ray |
id | ID for the Ray |
data_size | Size of data to initialize with zeros |
aux_data_size | Size of aux data to initialize with zeros |
reset | Whether or not to reset the Ray information |
Definition at line 22 of file Ray.C.
Ray::Ray | ( | const Ray *const | other, |
const ConstructRayKey & | key | ||
) |
Copy constructor for internal use only.
Even though this method is public, it in general CANNOT be used publicly. This is ONLY used internally and is protected by the ConstructRayKey. In order to construct a Ray as a user, use the RayTracingStudy::acquire{}() methods, such as RayTracingStudy::acquireRay().
Resets the counters.
Definition at line 70 of file Ray.C.
|
delete |
Deleted default constructor.
All Ray construction is handled internally within the RayTracingStudy via the RayTracingStudy::acquire{}() methods.
|
delete |
Deleted copy constructor.
All Ray construction is handled internally within the RayTracingStudy via the RayTracingStudy::acquire{}() methods.
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
bool Ray::atEnd | ( | ) | const |
Whether or not the Ray is at the user-defined end point.
This is only valid when the user set the trajectory of the Ray with setStartingEndPoint(), which internally set its maximum distance to the straight-line distance between start and end and set endSet() == true.
Definition at line 176 of file Ray.C.
Referenced by getInfo().
std::vector< RayData > & Ray::auxData | ( | ) |
Gets a writeable reference to the Ray's auxilary data.
If the aux data is not sized to the size as required by the study, this will resize the aux data.
Definition at line 437 of file Ray.C.
Referenced by auxData(), TestRayDataStudy::auxDataValue(), TestRayDataStudy::dataValue(), getInfo(), and TestRayDataStudy::onCompleteRay().
const std::vector< RayData > & Ray::auxData | ( | ) | const |
Gets a read only reference to the Ray's auxilary data.
If the aux data is not sized to the size as required by the study, this will resize the aux data.
Definition at line 446 of file Ray.C.
RayData & Ray::auxData | ( | const std::size_t | i | ) |
Gets a writeable reference to a component of the Ray's auxilary data.
If the aux data is not sized to the size as required by the study, this will resize the aux data.
Definition at line 455 of file Ray.C.
const RayData & Ray::auxData | ( | const std::size_t | i | ) | const |
Gets a read only reference to a component of the Ray's auxilary data.
If the aux data is not sized to the size as required by the study, this will resize the aux data.
Definition at line 462 of file Ray.C.
void Ray::changeDirection | ( | const Point & | direction, |
const ChangeDirectionKey | |||
) |
This method is for internal use only.
It is intended to be called only by RayBoundaryConditionBase::changeRayDirection().
If you wish to change a Ray's direction mid-trace in a RayBC, see RayBoundaryConditionBase::changeRayDirection() instead.
ChangeDirectionKey is constructable only by RayBC objects on purpose to limit usage of this method.
Definition at line 196 of file Ray.C.
void Ray::changeStartDirection | ( | const Point & | start, |
const Point & | direction, | ||
const ChangeStartDirectionKey | |||
) |
This method is for internal use only.
It is intended to be called only by RayKernelBase::changeRay().
If you wish to change a Ray's direction mid-trace in a RayKernel, see RayKernelBase::changeRay() instead.
ChangeStartDirectionKey is constructable only by RayKernelBase objects on purpose to limit usage of this method.
Definition at line 206 of file Ray.C.
void Ray::clearStartingInfo | ( | ) |
Clears the starting information set on the Ray:
This can only be called before a Ray has begun tracing.
|
private |
Clears the starting information.
Definition at line 360 of file Ray.C.
Referenced by clearStartingInfo(), and reset().
|
inline |
Gets the current element that the Ray is in.
Before tracing, this is the starting element for the Ray.
During tracing:
Definition at line 425 of file Ray.h.
Referenced by getInfo().
|
inline |
Get a Ray's current incoming side.
Before tracing, this is the starting incoming side (if any).
During and after tracing, this is ONLY guaranteed to be valid while executing RayKernels!
Definition at line 435 of file Ray.h.
Referenced by getInfo().
|
inline |
Gets the point that the Ray is currently at.
Before a Ray is traced, this is the starting point of the Ray. While a Ray is being traced, this is the furthest point that the Ray has travelled. During RayKernel execution, this is the end of the segment. After a Ray has been traced, this is the point where the Ray was killed.
Definition at line 221 of file Ray.h.
Referenced by getInfo(), and TestPICRayStudy::maxDistance().
std::vector< RayData > & Ray::data | ( | ) |
Gets a writeable reference to the Ray's data.
If the data is not sized to the size as required by the study, this will resize the data.
Definition at line 403 of file Ray.C.
Referenced by data(), getInfo(), and TestRayDataStudy::onCompleteRay().
const std::vector< RayData > & Ray::data | ( | ) | const |
Gets a read only reference to the Ray's data.
If the data is not sized to the size as required by the study, this will resize the data.
Definition at line 414 of file Ray.C.
RayData & Ray::data | ( | const std::size_t | i | ) |
Gets a writeable reference to the Ray's data at an index.
If the data is not sized to the size as required by the study, this will resize the data.
Definition at line 423 of file Ray.C.
const RayData & Ray::data | ( | const std::size_t | i | ) | const |
Gets a read only reference to the Ray's data at an index.
If the data is not sized to the size as required by the study, this will resize the data.
Definition at line 430 of file Ray.C.
|
inline |
Gets the Ray's direction.
Definition at line 255 of file Ray.h.
Referenced by changeDirection(), changeStartDirection(), getInfo(), and setDirection().
|
inline |
Gets the distance this Ray has traveled.
Definition at line 488 of file Ray.h.
Referenced by TestRayDataStudy::dataValue(), and getInfo().
Point Ray::endPoint | ( | ) | const |
Gets the user-set end point for the Ray, if set.
Internally, we do not keep track of the end point. Instead, we set a maximum straight-line distance the Ray can travel until it hits its endpoint. With the current point, the distance, the maximum distance, and the direction, we can infer the user-set end point.
Definition at line 186 of file Ray.C.
Referenced by getInfo(), Ray(), and reset().
|
inline |
Whether or not the user has set an end point for this Ray.
This is done by limiting the distance of the Ray in its set direction.
Definition at line 454 of file Ray.h.
Referenced by getInfo().
|
private |
Helper for the equality operators.
Definition at line 126 of file Ray.C.
Referenced by operator!=(), and operator==().
|
private |
Produces a useful error if a Ray has started tracing.
Definition at line 371 of file Ray.C.
Referenced by clearStartingInfo(), invalidateStartingElem(), invalidateStartingIncomingSide(), Ray(), reset(), setStart(), setStartingDirection(), setStartingEndPoint(), setStartingMaxDistance(), and setStationary().
|
private |
Produces a useful error for use when initializing a Ray.
Definition at line 378 of file Ray.C.
Referenced by setStart(), setStartingDirection(), setStartingEndPoint(), setStartingMaxDistance(), and setStationary().
std::string Ray::getInfo | ( | ) | const |
Helper function for getting information about the Ray.
Definition at line 469 of file Ray.C.
Referenced by atEnd(), changeDirection(), changeStartDirection(), endPoint(), errorIfTracing(), errorWhenInitializing(), resetCounters(), and RepeatableRayStudyBase::verifyReplicatedRays().
|
inline |
Whether or not a Ray has begun tracing.
Definition at line 532 of file Ray.h.
Referenced by errorIfTracing().
|
inline |
|
inline |
|
inlineprivate |
Invalidates the Ray's current element.
Definition at line 551 of file Ray.h.
Referenced by clearStartingInfoInternal(), and invalidateStartingElem().
|
inlineprivate |
Invalidates the Ray's current incoming side.
Definition at line 586 of file Ray.h.
Referenced by clearStartingInfoInternal(), and invalidateStartingIncomingSide().
|
inlineprivate |
Invalidates the Ray's current point.
Definition at line 560 of file Ray.h.
Referenced by clearStartingInfoInternal().
|
inlineprivate |
Invalidates the Ray's current direction.
Definition at line 569 of file Ray.h.
Referenced by clearStartingInfoInternal().
|
inlineprivate |
Invalidates the Ray's max distance.
Definition at line 622 of file Ray.h.
Referenced by clearStartingInfoInternal().
void Ray::invalidateStartingElem | ( | ) |
Invalidates a Ray's starting element.
This is useful after the mesh has changed due to adaptivity, in which the starting element may no longer be valid.
This can only be called before a Ray has begun tracing.
void Ray::invalidateStartingIncomingSide | ( | ) |
Invalidates a Ray's starting incoming side.
This is useful after the mesh has changed due to adaptivity, in which the incoming side may no longer be valid.
This can only be called before a Ray has begun tracing.
|
inline |
Whether or not the Ray's current incoming side is invalid.
Before tracing, this is the starting incoming side (if any).
During and after tracing, this is ONLY guaranteed to be valid while executing RayKernels!
Definition at line 444 of file Ray.h.
Referenced by getInfo(), and setStart().
|
inline |
Whether or not the point that the Ray is currently at is valid.
Definition at line 225 of file Ray.h.
Referenced by equalityHelper(), getInfo(), Ray(), reset(), setStart(), setStartingDirection(), setStartingEndPoint(), setStartingMaxDistance(), and setStationary().
|
inline |
Whether or not the Ray's direction is set to invalid.
Definition at line 259 of file Ray.h.
Referenced by equalityHelper(), getInfo(), Ray(), reset(), setStartingDirection(), setStartingEndPoint(), and setStationary().
|
inline |
|
inline |
Gets the max distance this Ray is allowed to travel.
This may be set internally to || end - start || in the case that the user initialized the Ray with setStartingEndPoint().
Definition at line 495 of file Ray.h.
Referenced by getInfo().
|
inline |
Whether or not the distance has been set via setStartingMaxDistance()
Definition at line 499 of file Ray.h.
Referenced by Ray(), reset(), and setStartingEndPoint().
|
inline |
Deleted copy operator.
General Ray modification is handled internally within the RayTracingStudy via the RayTracingStudy::acquire{}() methods.
|
inline |
|
inline |
void Ray::reset | ( | RayTracingStudy * | study, |
const RayID | id, | ||
const std::size_t | data_size, | ||
const std::size_t | aux_data_size, | ||
const bool | reset, | ||
const ConstructRayKey & | |||
) |
Resets a Ray for internal use only.
Used by the SharedPool to reset a Ray with these forwarded arguments.
Even though this method is public, it in general CANNOT be used publicly. This is ONLY used internally and is protected by the ConstructRayKey. In order to construct a Ray as a user, use the RayTracingStudy::acquire{}() methods, such as RayTracingStudy::acquireRay().
void Ray::reset | ( | const Ray *const | other, |
const ConstructRayKey & | |||
) |
Resets a Ray from another Ray for internal use only.
Used by the SharedPool to reset a Ray from another.
Even though this method is public, it in general CANNOT be used publicly. This is ONLY used internally and is protected by the ConstructRayKey. In order to construct a Ray as a user, use the RayTracingStudy::acquire{}() methods, such as RayTracingStudy::acquireRay().
Resets the counters.
Definition at line 98 of file Ray.C.
void Ray::resetCounters | ( | ) |
Clears the internal counters on the Ray so that the Ray can be traced again.
Can only be used within generateRays().
Definition at line 384 of file Ray.C.
|
private |
Reset all of the internal counters.
Definition at line 392 of file Ray.C.
Referenced by Ray(), reset(), and resetCounters().
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inline |
void Ray::setStart | ( | const Point & | starting_point, |
const Elem * | starting_elem = nullptr , |
||
const unsigned short | starting_incoming_side = RayTracingCommon::invalid_side |
||
) |
Sets the information pretaining to the start point for the Ray.
This MUST be called before setStartingDirection(), setStartingEndPoint(), or setStartingMaxDistance(). It cannot be called after a Ray has begun tracing.
starting_point | The starting point |
starting_elem | The starting element (if known) |
starting_incoming_side | The starting incoming side (if known and if the Ray starts on a side of starting_elem |
Definition at line 219 of file Ray.C.
Referenced by Ray(), and reset().
Sets the starting direction to starting_direction
for a Ray.
This MUST be called after setStart(). It cannot be used with setStartingEndPoint(), which sets the direction internally. It cannot be called after a Ray has begun tracing.
Definition at line 268 of file Ray.C.
Referenced by Ray(), reset(), and setStartingEndPoint().
Sets the starting end point to starting_point
for a Ray.
This MUST be called after setStart(). It cannot be used with setStartingDirection(). It cannot be called after a Ray has begun tracing.
Internally, this sets the direction to be currentPoint() -> starting_direction
, and sets the maximum distance to || starting_direction
- currentPoint() ||.
Definition at line 285 of file Ray.C.
Referenced by Ray(), and reset().
Sets the maximum distance this Ray should travel to starting_max_distance
.
This MUST be called after setStart(). It cannot be used with setStartingEndPoint(). It cannot be called after a Ray has begun tracing.
If setting a Ray's trajectory with setStartingEndPoint(), the max distance is set internally to be || end - start ||.
Can only be called before a Ray has started to be traced!
Definition at line 310 of file Ray.C.
Referenced by setStartingEndPoint().
void Ray::setStationary | ( | ) |
Sets the Ray to be stationary (max distance = 0).
This MUST be called after setStart(). It cannot be used with setStartingEndPoint(). It cannot be called after a Ray has begun tracing.
Can only be called before a Ray has started to be traced!
Definition at line 325 of file Ray.C.
|
inlineprivate |
|
inline |
|
inline |
Definition at line 738 of file Ray.h.
Referenced by setStationary().
|
inline |
Get the RayTracingStudy associated with this Ray.
Definition at line 540 of file Ray.h.
|
inline |
|
inline |
Definition at line 724 of file Ray.C.
|
friend |
|
friend |
|
mutableprivate |
|
private |
Current element that the Ray is in.
Before tracing, this is the starting element for the Ray.
During tracing:
Definition at line 677 of file Ray.h.
Referenced by currentElem(), equalityHelper(), invalidateCurrentElem(), Ray(), reset(), setCurrentElem(), and setStart().
|
private |
The side of _current_elem that the Ray is incoming on (if any).
Before tracing, this is the starting incoming side (if any).
During tracing, this is ONLY guaranteed to be valid during the execution of RayKernels!
Definition at line 687 of file Ray.h.
Referenced by currentIncomingSide(), equalityHelper(), invalidateCurrentIncomingSide(), invalidCurrentIncomingSide(), Ray(), reset(), setCurrentIncomingSide(), and setStart().
|
private |
Current point of the Ray.
Before tracing, this is the starting point for the Ray. During tracing, this is the furthest ahead that a Ray has traced. For example, when on a segment in a RayKernel, this will be end of said segment. After tracing, this is where the Ray ended.
Definition at line 659 of file Ray.h.
Referenced by changeStartDirection(), currentPoint(), endPoint(), equalityHelper(), invalidateCurrentPoint(), invalidCurrentPoint(), Ray(), reset(), setCurrentPoint(), setStart(), and setStartingEndPoint().
|
mutableprivate |
|
private |
Direction of the Ray.
Definition at line 662 of file Ray.h.
Referenced by changeDirection(), changeStartDirection(), direction(), endPoint(), equalityHelper(), invalidateDirection(), invalidDirection(), Ray(), reset(), setDirection(), and setStartingDirection().
|
private |
Total distance this Ray has traveled.
Definition at line 705 of file Ray.h.
Referenced by addDistance(), atEnd(), distance(), endPoint(), equalityHelper(), hasTraced(), and resetCountersInternal().
|
private |
Whether or not the user has set an end point for this Ray (via limiting its distance with setStartingEndPoint())
Definition at line 691 of file Ray.h.
Referenced by atEnd(), clearStartingInfoInternal(), endPoint(), endSet(), equalityHelper(), Ray(), reset(), setStartingEndPoint(), setStartingMaxDistance(), and setStationary().
|
private |
A unique ID for this Ray.
Definition at line 649 of file Ray.h.
Referenced by changeID(), equalityHelper(), id(), invalidID(), and reset().
|
private |
Number of intersections done for this Ray.
Definition at line 697 of file Ray.h.
Referenced by addIntersection(), equalityHelper(), hasTraced(), intersections(), resetCountersInternal(), and stationary().
|
private |
Maximum distance the Ray is allowed to travel.
Definition at line 707 of file Ray.h.
Referenced by atEnd(), changeMaxDistance(), endPoint(), equalityHelper(), invalidateMaxDistance(), maxDistance(), maxDistanceSet(), Ray(), reset(), setStartingMaxDistance(), setStationary(), and stationary().
|
private |
Number of times this Ray has been communicated.
Definition at line 694 of file Ray.h.
Referenced by addProcessorCrossing(), equalityHelper(), hasTraced(), processorCrossings(), and resetCountersInternal().
|
private |
Wether or not the Ray should continue to be traced (not sent in parallel)
Definition at line 710 of file Ray.h.
Referenced by equalityHelper(), resetCountersInternal(), setShouldContinue(), and shouldContinue().
|
private |
The RayTracingStudy that owns this Ray (not sent in parallel)
Definition at line 721 of file Ray.h.
Referenced by auxData(), data(), equalityHelper(), getInfo(), reset(), resetCounters(), setStart(), setStartingEndPoint(), and study().
|
private |
Whether or not this Ray had its trajectory changed (not sent in parallel)
Definition at line 702 of file Ray.h.
Referenced by changeDirection(), changeStartDirection(), equalityHelper(), resetCountersInternal(), setTrajectoryChanged(), and trajectoryChanged().
|
private |
Number of times this Ray has had its trajectory changed.
Definition at line 700 of file Ray.h.
Referenced by addTrajectoryChange(), equalityHelper(), resetCountersInternal(), and trajectoryChanges().
|
static |
Invalid index into a Ray's data.
Definition at line 200 of file Ray.h.
Referenced by RayTracingStudy::getRayDataIndexInternal(), RayDataValue::initialize(), ChangeRayRayBCTest::onBoundary(), ChangeRayRayKernelTest::onSegment(), and RayTracingMeshOutput::setupEquationSystem().
Invalid Ray ID.
Definition at line 202 of file Ray.h.
Referenced by RayDataValue::getValue(), RayIntegralValue::initialize(), invalidID(), RayTracingStudy::registeredRayID(), RayTracingStudy::registeredRaySetup(), and TraceData::TraceData().
|
private |