Open3D (C++ API)
0.19.0
Toggle main menu visibility
Loading...
Searching...
No Matches
cpp
open3d
visualization
shader
PickingShader.h
Go to the documentation of this file.
1
// ----------------------------------------------------------------------------
2
// - Open3D: www.open3d.org -
3
// ----------------------------------------------------------------------------
4
// Copyright (c) 2018-2024 www.open3d.org
5
// SPDX-License-Identifier: MIT
6
// ----------------------------------------------------------------------------
7
8
#pragma once
9
10
#include <Eigen/Core>
11
#include <vector>
12
13
#include "
open3d/visualization/shader/ShaderWrapper.h
"
14
15
namespace
open3d
{
16
namespace
visualization
{
17
18
namespace
glsl
{
19
20
class
PickingShader
:
public
ShaderWrapper
{
21
public
:
22
~PickingShader
()
override
{
Release
(); }
23
24
protected
:
25
PickingShader
(
const
std::string &name) :
ShaderWrapper
(name) {
Compile
(); }
26
27
protected
:
28
bool
Compile
() final;
29
void
Release
() final;
30
bool
BindGeometry
(const
geometry
::
Geometry
&
geometry
,
31
const
RenderOption
&option,
32
const
ViewControl
&view) final;
33
bool
RenderGeometry
(const
geometry
::
Geometry
&
geometry
,
34
const
RenderOption
&option,
35
const
ViewControl
&view) final;
36
void
UnbindGeometry
() final;
37
38
protected:
39
virtual
bool
PrepareRendering
(const
geometry
::
Geometry
&
geometry
,
40
const
RenderOption
&option,
41
const
ViewControl
&view) = 0;
42
virtual
bool
PrepareBinding
(const
geometry
::
Geometry
&
geometry
,
43
const
RenderOption
&option,
44
const
ViewControl
&view,
45
std
::vector<
Eigen
::Vector3f> &points,
46
std
::vector<
float
> &indices) = 0;
47
48
protected:
49
GLuint
vertex_position_
;
50
GLuint
vertex_position_buffer_
;
51
GLuint
vertex_index_
;
52
GLuint
vertex_index_buffer_
;
53
GLuint
MVP_
;
54
};
55
56
class
PickingShaderForPointCloud
: public
PickingShader
{
57
public
:
58
PickingShaderForPointCloud
()
59
:
PickingShader
(
"PickingShaderForPointCloud"
) {}
60
61
protected
:
62
bool
PrepareRendering
(
const
geometry::Geometry
&
geometry
,
63
const
RenderOption
&option,
64
const
ViewControl
&view)
final
;
65
bool
PrepareBinding
(
const
geometry::Geometry
&
geometry
,
66
const
RenderOption
&option,
67
const
ViewControl
&view,
68
std::vector<Eigen::Vector3f> &points,
69
std::vector<float> &indices)
final
;
70
};
71
72
}
// namespace glsl
73
74
}
// namespace visualization
75
}
// namespace open3d
ShaderWrapper.h
open3d::geometry::Geometry
The base geometry class.
Definition
Geometry.h:18
open3d::visualization::RenderOption
Defines rendering options for visualizer.
Definition
RenderOption.h:20
open3d::visualization::ViewControl
View controller for visualizer.
Definition
ViewControl.h:23
open3d::visualization::glsl::PickingShaderForPointCloud::PickingShaderForPointCloud
PickingShaderForPointCloud()
Definition
PickingShader.h:58
open3d::visualization::glsl::PickingShader::PrepareRendering
virtual bool PrepareRendering(const geometry::Geometry &geometry, const RenderOption &option, const ViewControl &view)=0
open3d::visualization::glsl::PickingShader::PrepareBinding
virtual bool PrepareBinding(const geometry::Geometry &geometry, const RenderOption &option, const ViewControl &view, std::vector< Eigen::Vector3f > &points, std::vector< float > &indices)=0
open3d::visualization::glsl::PickingShader::Compile
bool Compile() final
Definition
PickingShader.cpp:20
open3d::visualization::glsl::PickingShader::vertex_index_
GLuint vertex_index_
Definition
PickingShader.h:51
open3d::visualization::glsl::PickingShader::vertex_index_buffer_
GLuint vertex_index_buffer_
Definition
PickingShader.h:52
open3d::visualization::glsl::PickingShader::RenderGeometry
bool RenderGeometry(const geometry::Geometry &geometry, const RenderOption &option, const ViewControl &view) final
Definition
PickingShader.cpp:69
open3d::visualization::glsl::PickingShader::MVP_
GLuint MVP_
Definition
PickingShader.h:53
open3d::visualization::glsl::PickingShader::vertex_position_buffer_
GLuint vertex_position_buffer_
Definition
PickingShader.h:50
open3d::visualization::glsl::PickingShader::~PickingShader
~PickingShader() override
Definition
PickingShader.h:22
open3d::visualization::glsl::PickingShader::PickingShader
PickingShader(const std::string &name)
Definition
PickingShader.h:25
open3d::visualization::glsl::PickingShader::Release
void Release() final
Definition
PickingShader.cpp:31
open3d::visualization::glsl::PickingShader::BindGeometry
bool BindGeometry(const geometry::Geometry &geometry, const RenderOption &option, const ViewControl &view) final
Definition
PickingShader.cpp:36
open3d::visualization::glsl::PickingShader::UnbindGeometry
void UnbindGeometry() final
Definition
PickingShader.cpp:90
open3d::visualization::glsl::PickingShader::vertex_position_
GLuint vertex_position_
Definition
PickingShader.h:49
open3d::visualization::glsl::ShaderWrapper::ShaderWrapper
ShaderWrapper(const ShaderWrapper &)=delete
Eigen
Definition
NonRigidOptimizer.cpp:22
open3d::geometry
Definition
BoundingVolume.cpp:19
open3d::visualization::glsl
Definition
GeometryRenderer.cpp:21
open3d::visualization
Definition
ModelIO.h:14
open3d
Definition
PinholeCameraIntrinsic.cpp:16
std
Definition
Device.h:111
Generated by
1.17.0