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

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

View File

@@ -23,8 +23,11 @@
#include "cvfObject.h"
#include "cafPdmPointer.h"
#include <cvfVector3.h>
namespace cvf
{
class BoundingBox;
class Part;
class ModelBasicList;
class Transform;
@@ -43,18 +46,26 @@ class RimSimWellInViewCollection;
class RivTextAnnotationPartMgr : public cvf::Object
{
using Vec3d = cvf::Vec3d;
public:
RivTextAnnotationPartMgr(Rim3dView* view, RimTextAnnotation* annotation);
~RivTextAnnotationPartMgr() override;
void appendDynamicGeometryPartsToModel(cvf::ModelBasicList* model,
const caf::DisplayCoordTransform * displayXf);
const caf::DisplayCoordTransform * displayXf,
const cvf::BoundingBox& boundingBox);
private:
void buildParts(const caf::DisplayCoordTransform * displayXf,
bool doFlatten,
double xOffset);
Vec3d getAnchorPointInDomain(bool snapToPlaneZ, double planeZ);
Vec3d getLabelPointInDomain(bool snapToPlaneZ, double planeZ);
bool isTextInBoundingBox(const cvf::BoundingBox& boundingBox);
void clearAllGeometry();
bool validateAnnotation(const RimTextAnnotation* annotation) const;