LibreCAD
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
lc::IntersectMany Class Reference

calculate intersection points of many entities More...

#include <intersect.h>

Public Member Functions

 IntersectMany (std::vector< entity::CADEntity_CSPtr >, Intersect::Method=Intersect::OnEntity, double tolerance=LCTOLERANCE)
 
std::vector< geo::Coordinateresult () const
 

Private Attributes

std::vector
< entity::CADEntity_CSPtr > 
_entities
 
const Intersect::Method _method
 
const double _tolerance
 

Detailed Description

calculate intersection points of many entities

Note
Can we make this into a general template ???
See also
Intersect

Definition at line 185 of file intersect.h.

Constructor & Destructor Documentation

IntersectMany::IntersectMany ( std::vector< entity::CADEntity_CSPtr >  entities,
Intersect::Method  method = Intersect::OnEntity,
double  tolerance = LCTOLERANCE 
)

Definition at line 601 of file intersect.cpp.

602  : _entities(entities), _method(method), _tolerance(tolerance) {
603 
604 }
const double _tolerance
Definition: intersect.h:194
const Intersect::Method _method
Definition: intersect.h:193
std::vector< entity::CADEntity_CSPtr > _entities
Definition: intersect.h:192

Member Function Documentation

std::vector< geo::Coordinate > IntersectMany::result ( ) const

Definition at line 606 of file intersect.cpp.

606  {
607  Intersect intersect(_method, _tolerance);
608  if (_entities.size() > 1) {
609  for (size_t outer = 0; outer < (_entities.size() - 1); outer++) {
610  for (size_t inner = outer + 1; inner < _entities.size(); inner++) {
611  visitorDispatcher<bool, lc::GeoEntityVisitor>(intersect, *_entities.at(outer).get(), *_entities.at(inner).get());
612  }
613  }
614  }
615  return intersect.result();
616 }
calculate the intersection pojnts of 2 entities
Definition: intersect.h:35
const double _tolerance
Definition: intersect.h:194
const Intersect::Method _method
Definition: intersect.h:193
std::vector< entity::CADEntity_CSPtr > _entities
Definition: intersect.h:192

Member Data Documentation

std::vector<entity::CADEntity_CSPtr> lc::IntersectMany::_entities
private

Definition at line 192 of file intersect.h.

const Intersect::Method lc::IntersectMany::_method
private

Definition at line 193 of file intersect.h.

const double lc::IntersectMany::_tolerance
private

Definition at line 194 of file intersect.h.


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