ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
PlyFilter.cpp File Reference
#include "PlyFilter.h"
#include "FileIO.h"
#include "PlyOpenDlg.h"
#include <QFileInfo>
#include <QImage>
#include <QMessageBox>
#include <QPushButton>
#include <CVLog.h>
#include <ecvHObjectCaster.h>
#include <ecvMaterial.h>
#include <ecvMaterialSet.h>
#include <ecvMesh.h>
#include <ecvPointCloud.h>
#include <ecvProgressDialog.h>
#include <ecvScalarField.h>
#include <array>
#include <cassert>
#include <cstring>
#include <unistd.h>
#include <ctime>
Include dependency graph for PlyFilter.cpp:

Go to the source code of this file.

Macros

#define PROCESS_EVENTS_FREQ   10000
 
#define ELEM_POS_0   0x00000000
 
#define ELEM_POS_1   0x00000001
 
#define ELEM_POS_2   0x00000002
 
#define ELEM_POS_3   0x00000003
 
#define ELEM_EOL   0x00000004
 
#define POS_MASK   0x00000003
 

Functions

static bool IsFloat (e_ply_type type)
 
static void errorCallback (p_ply _ply, const char *message)
 
static int vertex_cb (p_ply_argument argument)
 
static int normal_cb (p_ply_argument argument)
 
static int rgb_cb (p_ply_argument argument)
 
static int grey_cb (p_ply_argument argument)
 
static int scalar_cb (p_ply_argument argument)
 
static int face_cb (p_ply_argument argument)
 
static int texCoords_cb (p_ply_argument argument)
 
static int texIndexes_cb (p_ply_argument argument)
 

Variables

static e_ply_storage_mode s_defaultOutputFormat = PLY_DEFAULT
 
static int s_PointCount = 0
 
static int s_NormalCount = 0
 
static int s_ColorCount = 0
 
static int s_IntensityCount = 0
 
static unsigned s_totalScalarCount = 0
 
static unsigned s_triCount = 0
 
static bool s_PointDataCorrupted = false
 
static bool s_NotEnoughMemory = false
 
static FileIOFilter::LoadParameters s_loadParameters
 
static CCVector3d s_Pshift (0, 0, 0)
 
bool s_hasQuads = false
 
bool s_hasMaterials = false
 
std::vector< bool > s_triIsQuad
 
static bool s_unsupportedPolygonType = false
 
static unsigned s_texCoordCount = 0
 
static bool s_invalidTexCoordinates = false
 
static int s_maxTextureIndex = -1
 

Macro Definition Documentation

◆ ELEM_EOL

#define ELEM_EOL   0x00000004

Definition at line 520 of file PlyFilter.cpp.

◆ ELEM_POS_0

#define ELEM_POS_0   0x00000000

Definition at line 516 of file PlyFilter.cpp.

◆ ELEM_POS_1

#define ELEM_POS_1   0x00000001

Definition at line 517 of file PlyFilter.cpp.

◆ ELEM_POS_2

#define ELEM_POS_2   0x00000002

Definition at line 518 of file PlyFilter.cpp.

◆ ELEM_POS_3

#define ELEM_POS_3   0x00000003

Definition at line 519 of file PlyFilter.cpp.

◆ POS_MASK

#define POS_MASK   0x00000003

Definition at line 522 of file PlyFilter.cpp.

◆ PROCESS_EVENTS_FREQ

#define PROCESS_EVENTS_FREQ   10000

Definition at line 514 of file PlyFilter.cpp.

Function Documentation

◆ errorCallback()

static void errorCallback ( p_ply  _ply,
const char *  message 
)
static

Definition at line 70 of file PlyFilter.cpp.

References CVLog::Error().

Referenced by PlyFilter::loadFile().

◆ face_cb()

◆ grey_cb()

static int grey_cb ( p_ply_argument  argument)
static

◆ IsFloat()

static bool IsFloat ( e_ply_type  type)
static

Definition at line 45 of file PlyFilter.cpp.

References type.

Referenced by PlyFilter::loadFile().

◆ normal_cb()

static int normal_cb ( p_ply_argument  argument)
static

◆ rgb_cb()

static int rgb_cb ( p_ply_argument  argument)
static

◆ scalar_cb()

static int scalar_cb ( p_ply_argument  argument)
static

◆ texCoords_cb()

◆ texIndexes_cb()

static int texIndexes_cb ( p_ply_argument  argument)
static

◆ vertex_cb()

Variable Documentation

◆ s_ColorCount

int s_ColorCount = 0
static

Definition at line 526 of file PlyFilter.cpp.

Referenced by PlyFilter::loadFile(), and rgb_cb().

◆ s_defaultOutputFormat

e_ply_storage_mode s_defaultOutputFormat = PLY_DEFAULT
static

Definition at line 68 of file PlyFilter.cpp.

Referenced by PlyFilter::saveToFile(), and PlyFilter::SetDefaultOutputFormat().

◆ s_hasMaterials

bool s_hasMaterials = false

Definition at line 535 of file PlyFilter.cpp.

Referenced by face_cb(), and PlyFilter::loadFile().

◆ s_hasQuads

bool s_hasQuads = false

Definition at line 534 of file PlyFilter.cpp.

Referenced by face_cb(), and PlyFilter::loadFile().

◆ s_IntensityCount

int s_IntensityCount = 0
static

Definition at line 527 of file PlyFilter.cpp.

Referenced by grey_cb(), and PlyFilter::loadFile().

◆ s_invalidTexCoordinates

bool s_invalidTexCoordinates = false
static

Definition at line 813 of file PlyFilter.cpp.

Referenced by PlyFilter::loadFile(), and texCoords_cb().

◆ s_loadParameters

FileIOFilter::LoadParameters s_loadParameters
static

Definition at line 532 of file PlyFilter.cpp.

Referenced by E57Filter::loadFile(), PlyFilter::loadFile(), LoadScan(), and vertex_cb().

◆ s_maxTextureIndex

int s_maxTextureIndex = -1
static

Definition at line 859 of file PlyFilter.cpp.

Referenced by PlyFilter::loadFile(), and texIndexes_cb().

◆ s_NormalCount

int s_NormalCount = 0
static

Definition at line 525 of file PlyFilter.cpp.

Referenced by PlyFilter::loadFile(), and normal_cb().

◆ s_NotEnoughMemory

bool s_NotEnoughMemory = false
static

◆ s_PointCount

int s_PointCount = 0
static

Definition at line 524 of file PlyFilter.cpp.

Referenced by PlyFilter::loadFile(), and vertex_cb().

◆ s_PointDataCorrupted

bool s_PointDataCorrupted = false
static

Definition at line 530 of file PlyFilter.cpp.

Referenced by PlyFilter::loadFile(), and vertex_cb().

◆ s_Pshift

CCVector3d s_Pshift(0, 0, 0) ( ,
,
 
)
static

Referenced by PlyFilter::loadFile(), and vertex_cb().

◆ s_texCoordCount

unsigned s_texCoordCount = 0
static

Definition at line 812 of file PlyFilter.cpp.

Referenced by PlyFilter::loadFile(), and texCoords_cb().

◆ s_totalScalarCount

unsigned s_totalScalarCount = 0
static

Definition at line 528 of file PlyFilter.cpp.

Referenced by PlyFilter::loadFile(), and scalar_cb().

◆ s_triCount

unsigned s_triCount = 0
static

Definition at line 529 of file PlyFilter.cpp.

Referenced by face_cb(), and PlyFilter::loadFile().

◆ s_triIsQuad

std::vector<bool> s_triIsQuad

Definition at line 536 of file PlyFilter.cpp.

Referenced by face_cb(), and PlyFilter::loadFile().

◆ s_unsupportedPolygonType

bool s_unsupportedPolygonType = false
static

Definition at line 735 of file PlyFilter.cpp.

Referenced by face_cb(), and PlyFilter::loadFile().