#3777 Annotations. Use Bounding box to decide whether to draw an object or not

This commit is contained in:
Bjørn Erik Jensen committed 2018-11-29 14:28:33 +01:00
1 parent 9dc1e8d063
commit d3db1a6075
12 files changed
+315 -61

No files matched your search

@@ -21,10 +21,15 @@
#include "cvfBase.h"
#include "cvfAssert.h"
#include "cvfObject.h"
#include "cvfVector3.h"
#include "cafPdmPointer.h"
#include <vector>
namespace cvf
{
class BoundingBox;
class Part;
class ModelBasicList;
class Transform;
@@ -42,14 +47,23 @@ class RimAnnotationInViewCollection;
class RivPolylineAnnotationPartMgr : public cvf::Object
{
using Vec3d = cvf::Vec3d;
public:
RivPolylineAnnotationPartMgr(Rim3dView* view, RimPolylinesAnnotation* annotation);
~RivPolylineAnnotationPartMgr() override;
void appendDynamicGeometryPartsToModel(cvf::ModelBasicList* model,
const caf::DisplayCoordTransform * displayXf);
void appendDynamicGeometryPartsToModel(cvf::ModelBasicList* model,
const caf::DisplayCoordTransform * displayXf,
const cvf::BoundingBox& boundingBox);
private:
void buildPolylineAnnotationParts(const caf::DisplayCoordTransform* displayXf);
void buildPolylineAnnotationParts(const caf::DisplayCoordTransform* displayXf);
std::vector<std::vector<Vec3d>> getPolylinesPointsInDomain(bool snapToPlaneZ, double planeZ);
std::vector<std::vector<Vec3d>> transformPolylinesPointsToDisplay(const std::vector<std::vector<Vec3d>>& pointsInDomain,
const caf::DisplayCoordTransform* displayXf);
bool isPolylinesInBoundingBox(const cvf::BoundingBox& boundingBox);
void clearAllGeometry();
RimAnnotationInViewCollection* annotationCollection() const;