Open3D (C++ API)
0.19.0
Toggle main menu visibility
Loading...
Searching...
No Matches
cpp
open3d
visualization
shader
ImageMaskShader.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 "
open3d/geometry/Image.h
"
11
#include "
open3d/visualization/shader/ShaderWrapper.h
"
12
13
namespace
open3d
{
14
namespace
visualization
{
15
16
namespace
glsl
{
17
18
class
ImageMaskShader
:
public
ShaderWrapper
{
19
public
:
20
~ImageMaskShader
()
override
{
Release
(); }
21
22
protected
:
23
ImageMaskShader
(
const
std::string &name) :
ShaderWrapper
(name) {
24
Compile
();
25
}
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
geometry
::
Image
&image) = 0;
46
47
protected:
48
GLuint
vertex_position_
;
49
GLuint
vertex_position_buffer_
;
50
GLuint
vertex_UV_
;
51
GLuint
vertex_UV_buffer_
;
52
GLuint
image_texture_
;
53
GLuint
image_texture_buffer_
;
54
GLuint
mask_color_
;
55
GLuint
mask_alpha_
;
56
57
gl_util
::GLVector3f
mask_color_data_
;
58
GLfloat
mask_alpha_data_
;
59
};
60
61
class
ImageMaskShaderForImage
: public
ImageMaskShader
{
62
public
:
63
ImageMaskShaderForImage
() :
ImageMaskShader
(
"ImageMaskShaderForImage"
) {}
64
65
protected
:
66
virtual
bool
PrepareRendering
(
const
geometry::Geometry
&
geometry
,
67
const
RenderOption
&option,
68
const
ViewControl
&view)
final
;
69
virtual
bool
PrepareBinding
(
const
geometry::Geometry
&
geometry
,
70
const
RenderOption
&option,
71
const
ViewControl
&view,
72
geometry::Image
&render_image)
final
;
73
};
74
75
}
// namespace glsl
76
77
}
// namespace visualization
78
}
// namespace open3d
ShaderWrapper.h
open3d::geometry::Geometry
The base geometry class.
Definition
Geometry.h:18
open3d::geometry::Image
The Image class stores image with customizable width, height, num of channels and bytes per channel.
Definition
Image.h:34
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::ImageMaskShaderForImage::ImageMaskShaderForImage
ImageMaskShaderForImage()
Definition
ImageMaskShader.h:63
open3d::visualization::glsl::ImageMaskShader::PrepareBinding
virtual bool PrepareBinding(const geometry::Geometry &geometry, const RenderOption &option, const ViewControl &view, geometry::Image &image)=0
open3d::visualization::glsl::ImageMaskShader::image_texture_buffer_
GLuint image_texture_buffer_
Definition
ImageMaskShader.h:53
open3d::visualization::glsl::ImageMaskShader::ImageMaskShader
ImageMaskShader(const std::string &name)
Definition
ImageMaskShader.h:23
open3d::visualization::glsl::ImageMaskShader::~ImageMaskShader
~ImageMaskShader() override
Definition
ImageMaskShader.h:20
open3d::visualization::glsl::ImageMaskShader::UnbindGeometry
void UnbindGeometry() final
Definition
ImageMaskShader.cpp:123
open3d::visualization::glsl::ImageMaskShader::vertex_position_buffer_
GLuint vertex_position_buffer_
Definition
ImageMaskShader.h:49
open3d::visualization::glsl::ImageMaskShader::Release
void Release() final
Definition
ImageMaskShader.cpp:34
open3d::visualization::glsl::ImageMaskShader::mask_color_data_
gl_util::GLVector3f mask_color_data_
Definition
ImageMaskShader.h:57
open3d::visualization::glsl::ImageMaskShader::vertex_UV_
GLuint vertex_UV_
Definition
ImageMaskShader.h:50
open3d::visualization::glsl::ImageMaskShader::vertex_position_
GLuint vertex_position_
Definition
ImageMaskShader.h:48
open3d::visualization::glsl::ImageMaskShader::PrepareRendering
virtual bool PrepareRendering(const geometry::Geometry &geometry, const RenderOption &option, const ViewControl &view)=0
open3d::visualization::glsl::ImageMaskShader::mask_alpha_
GLuint mask_alpha_
Definition
ImageMaskShader.h:55
open3d::visualization::glsl::ImageMaskShader::vertex_UV_buffer_
GLuint vertex_UV_buffer_
Definition
ImageMaskShader.h:51
open3d::visualization::glsl::ImageMaskShader::Compile
bool Compile() final
Definition
ImageMaskShader.cpp:21
open3d::visualization::glsl::ImageMaskShader::image_texture_
GLuint image_texture_
Definition
ImageMaskShader.h:52
open3d::visualization::glsl::ImageMaskShader::BindGeometry
bool BindGeometry(const geometry::Geometry &geometry, const RenderOption &option, const ViewControl &view) final
Definition
ImageMaskShader.cpp:39
open3d::visualization::glsl::ImageMaskShader::RenderGeometry
bool RenderGeometry(const geometry::Geometry &geometry, const RenderOption &option, const ViewControl &view) final
Definition
ImageMaskShader.cpp:96
open3d::visualization::glsl::ImageMaskShader::mask_color_
GLuint mask_color_
Definition
ImageMaskShader.h:54
open3d::visualization::glsl::ImageMaskShader::mask_alpha_data_
GLfloat mask_alpha_data_
Definition
ImageMaskShader.h:58
open3d::visualization::glsl::ShaderWrapper::ShaderWrapper
ShaderWrapper(const ShaderWrapper &)=delete
Image.h
open3d::geometry
Definition
BoundingVolume.cpp:19
open3d::visualization::gl_util
Definition
GLHelper.cpp:15
open3d::visualization::glsl
Definition
GeometryRenderer.cpp:21
open3d::visualization
Definition
ModelIO.h:14
open3d
Definition
PinholeCameraIntrinsic.cpp:16
Generated by
1.17.0