ACloudViewer
3.9.4
A Modern Library for 3D Data Processing
ecvOctreeProxy.cpp
Go to the documentation of this file.
1
// ----------------------------------------------------------------------------
2
// - CloudViewer: www.cloudViewer.org -
3
// ----------------------------------------------------------------------------
4
// Copyright (c) 2018-2024 www.cloudViewer.org
5
// SPDX-License-Identifier: MIT
6
// ----------------------------------------------------------------------------
7
8
#include "
ecvOctreeProxy.h
"
9
10
#include "
ecvBBox.h
"
11
#include "
ecvDisplayTools.h
"
12
13
// Local
14
// #include "ccCameraSensor.h"
15
// #include "ccNormalVectors.h"
16
// #include "ccBox.h"
17
18
// cloudViewer
19
// #include <ScalarFieldTools.h>
20
// #include <RayAndBox.h>
21
22
ccOctreeProxy::ccOctreeProxy
(
ccOctree::Shared
octree
/*=ccOctree::Shared(0)*/
,
23
QString
name
/*="Octree"*/
)
24
:
ccHObject
(
name
), m_octree(
octree
) {
25
setVisible
(
false
);
26
lockVisibility
(
false
);
27
}
28
29
ccOctreeProxy::~ccOctreeProxy
() {}
30
31
ccBBox
ccOctreeProxy::getOwnBB
(
bool
withGLFeatures
/*=false*/
) {
32
if
(!
m_octree
) {
33
assert(
false
);
34
return
ccBBox
();
35
}
36
37
return
withGLFeatures ?
m_octree
->getSquareBB() :
m_octree
->getPointsBB();
38
}
39
40
void
ccOctreeProxy::drawMeOnly
(
CC_DRAW_CONTEXT
&
context
) {
41
if
(!
m_octree
) {
42
assert(
false
);
43
return
;
44
}
45
46
if
(!
MACRO_Draw3D
(
context
))
return
;
47
48
if
(
ecvDisplayTools::GetMainWindow
() ==
nullptr
)
return
;
49
50
bool
entityPickingMode =
MACRO_EntityPicking
(
context
);
51
52
if
(entityPickingMode) {
53
// not fast at all!
54
if
(
MACRO_FastEntityPicking
(
context
))
return
;
55
}
56
57
setOctreeVisibale
(
isEnabled
());
58
m_octree
->draw(
context
);
59
}
name
std::string name
Definition:
FileIOFactory.cpp:129
ccBBox
Bounding box structure.
Definition:
ecvBBox.h:25
ccDrawableObject::lockVisibility
virtual void lockVisibility(bool state)
Locks/unlocks visibility.
Definition:
ecvDrawableObject.h:63
ccDrawableObject::setVisible
virtual void setVisible(bool state)
Sets entity visibility.
Definition:
ecvDrawableObject.h:40
ccHObject
Hierarchical CLOUDVIEWER Object.
Definition:
ecvHObject.h:25
ccObject::isEnabled
virtual bool isEnabled() const
Returns whether the object is enabled or not.
Definition:
ecvObject.h:97
ccOctreeProxy::getOwnBB
virtual ccBBox getOwnBB(bool withGLFeatures=false) override
Returns the entity's own bounding-box.
Definition:
ecvOctreeProxy.cpp:31
ccOctreeProxy::~ccOctreeProxy
virtual ~ccOctreeProxy()
Destructor.
Definition:
ecvOctreeProxy.cpp:29
ccOctreeProxy::m_octree
ccOctree::Shared m_octree
Associated octree.
Definition:
ecvOctreeProxy.h:47
ccOctreeProxy::ccOctreeProxy
ccOctreeProxy(ccOctree::Shared octree=ccOctree::Shared(0), QString name="Octree")
Default constructor.
Definition:
ecvOctreeProxy.cpp:22
ccOctreeProxy::setOctreeVisibale
void setOctreeVisibale(bool state)
Definition:
ecvOctreeProxy.h:33
ccOctreeProxy::drawMeOnly
virtual void drawMeOnly(CC_DRAW_CONTEXT &context) override
Draws the entity only (not its children)
Definition:
ecvOctreeProxy.cpp:40
ccOctree::Shared
QSharedPointer< ccOctree > Shared
Shared pointer.
Definition:
ecvOctree.h:32
ecvDisplayTools::GetMainWindow
static QMainWindow * GetMainWindow()
Definition:
ecvDisplayTools.h:679
ecvBBox.h
ecvDisplayTools.h
MACRO_Draw3D
#define MACRO_Draw3D(context)
Definition:
ecvDrawContext.h:351
MACRO_FastEntityPicking
#define MACRO_FastEntityPicking(context)
Definition:
ecvDrawContext.h:353
MACRO_EntityPicking
#define MACRO_EntityPicking(context)
Definition:
ecvDrawContext.h:352
ecvOctreeProxy.h
context
ImGuiContext * context
Definition:
Window.cpp:76
octree
cloudViewer::DgmOctree * octree
Definition:
qCanupoTools.cpp:37
ccGLDrawContext
Display context.
Definition:
ecvDrawContext.h:365
libs
CV_db
src
ecvOctreeProxy.cpp
Generated on Tue Feb 3 2026 07:12:20 for ACloudViewer by
1.9.1