ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
PCV Class Reference

PCV (Portion de Ciel Visible) algorithm. More...

#include <PCV.h>

Static Public Member Functions

static int Launch (unsigned numberOfRays, cloudViewer::GenericCloud *vertices, cloudViewer::GenericMesh *mesh=nullptr, bool meshIsClosed=false, bool mode360=true, unsigned width=1024, unsigned height=1024, cloudViewer::GenericProgressCallback *progressCb=nullptr, QString entityName=QString())
 
static bool Launch (std::vector< CCVector3 > &rays, cloudViewer::GenericCloud *vertices, cloudViewer::GenericMesh *mesh=nullptr, bool meshIsClosed=false, unsigned width=1024, unsigned height=1024, cloudViewer::GenericProgressCallback *progressCb=nullptr, QString entityName=QString())
 Simulates global illumination on a cloud (or a mesh) with OpenGL. More...
 
static bool GenerateRays (unsigned numberOfRays, std::vector< CCVector3 > &rays, bool mode360=true)
 Generates a given number of rays. More...
 

Detailed Description

PCV (Portion de Ciel Visible) algorithm.

"Ambient Occlusion" in english!

Definition at line 25 of file PCV.h.

Member Function Documentation

◆ GenerateRays()

bool PCV::GenerateRays ( unsigned  numberOfRays,
std::vector< CCVector3 > &  rays,
bool  mode360 = true 
)
static

Generates a given number of rays.

Definition at line 159 of file PCV.cpp.

References SampleSphere().

Referenced by qPCV::doAction(), and PCVCommand::process().

◆ Launch() [1/2]

static bool PCV::Launch ( std::vector< CCVector3 > &  rays,
cloudViewer::GenericCloud vertices,
cloudViewer::GenericMesh mesh = nullptr,
bool  meshIsClosed = false,
unsigned  width = 1024,
unsigned  height = 1024,
cloudViewer::GenericProgressCallback progressCb = nullptr,
QString  entityName = QString() 
)
static

Simulates global illumination on a cloud (or a mesh) with OpenGL.

Computes per-vertex illumination intensity as a scalar field.

Parameters
rayslight directions that will be used to compute global illumination
verticesvertices (eventually corresponding to a mesh - see below) to englight
meshoptional mesh structure associated to the vertices
meshIsClosedif a mesh is passed as argument (see above), specifies if the mesh surface is closed (enables optimization)
widthwidth of the OpenGL context used to simulate illumination
heightheight of the OpenGL context used to simulate illumination
progressCboptional progress bar (optional)
entityNameentity name (optional)
Returns
success

◆ Launch() [2/2]

static int PCV::Launch ( unsigned  numberOfRays,
cloudViewer::GenericCloud vertices,
cloudViewer::GenericMesh mesh = nullptr,
bool  meshIsClosed = false,
bool  mode360 = true,
unsigned  width = 1024,
unsigned  height = 1024,
cloudViewer::GenericProgressCallback progressCb = nullptr,
QString  entityName = QString() 
)
static

Simulates global illumination on a cloud (or a mesh) with OpenGL - shortcut version Computes per-vertex illumination intensity as a scalar field.

Parameters
numberOfRays(approxiamate) number of rays to generate
mode360whether light rays should be generated on the half superior sphere (false) or the whole sphere (true)
verticesvertices (eventually corresponding to a mesh - see below) to englight
meshoptional mesh structure associated to the vertices
meshIsClosedif a mesh is passed as argument (see above), specifies if the mesh surface is closed (enables optimization)
widthwidth of the OpenGL context used to simulate illumination
heightheight of the OpenGL context used to simulate illumination
progressCboptional progress bar (optional)
entityNameentity name (optional)
Returns
number of 'light' directions actually used (or a value <0 if an error occurred)

Referenced by qPCV::doAction(), and PCVCommand::Process().


The documentation for this class was generated from the following files: