class cogs::C_Scan
Overview
Adapter for cogs::Scan structure. More…
#include <C_Scan.h> class C_Scan: public cogs::C_PointCloud { public: // fields static const glm::vec3 CAMERA_SPACE_FORWARD; static const glm::vec3 CAMERA_SPACE_UP; static const glm::vec3 CAMERA_SPACE_RIGHT; // construction C_Scan(); C_Scan(const C_Scan& source); C_Scan(C_Scan&&); virtual ~C_Scan(); // methods C_Scan& operator=(const C_Scan& source); C_Scan& operator=(C_Scan&&); virtual bool Import(const char* filename); virtual bool Export(const char* filename) const; void SetResolution(const glm::uvec2& new_resolution); glm::uvec2 GetResolution() const; uint32_t GetWidth() const; uint32_t GetHeight() const; void SetCameraParams(const ScanCameraParams& new_params); const ScanCameraParams& GetCameraParams() const; void SetCameraPosition(const glm::vec3& new_position); const glm::vec3& GetCameraPosition() const; void SetCameraBasis(const glm::mat3& new_basis); glm::mat3 GetCameraBasis() const; const glm::uvec2* GetCoords() const; bool IsPointAt(const glm::uvec2& coord) const; bool IsPointAt(const uint32_t x_coord, const uint32_t y_coord) const; uint32_t AddPointAt(const glm::uvec2& coord); uint32_t AddPointAt(const uint32_t x_coord, const uint32_t y_coord); uint32_t AddPointsAt(const glm::uvec2* new_coords, uint32_t array_size); uint32_t GetPointAt(const glm::uvec2& coord) const; uint32_t GetPointAt(const uint32_t x_coord, const uint32_t y_coord) const; virtual void Transform(const glm::mat4& transform); static bool GetCameraUV(const glm::vec3& point, const ScanCameraParams& cam_params, glm::vec2& result); protected: // methods class Scan& GetScan(); const Scan& GetScan() const; };
Inherited Members
public: // methods C_PointCloud& operator=(const C_PointCloud& source); C_PointCloud& operator=(C_PointCloud&&); virtual bool Import(const char* filename); virtual bool Export(const char* filename) const; virtual void Resize(uint32_t new_size); virtual uint32_t GetSize() const; virtual void Reserve(uint32_t new_capacity); uint32_t GetCapacity() const; virtual void ShrinkToFit(); void Clear(); virtual void Erase(const uint32_t* ids_to_erase, size_t count); virtual void Append(const C_PointCloud& pc); glm::vec3* GetPositions(); const glm::vec3* GetPositions() const; bool HasNormals() const; glm::vec3* GetNormals(); const glm::vec3* GetNormals() const; void AddNormals(); float* GetIntensities(); const float* GetIntensities() const; void AddIntensities(); size_t GetPropertyCount() const; const cogs::PointCloudProperty* GetProperties() const; const cogs::PointCloudProperty AddProperty(const char* key, DataType type); const cogs::PointCloudProperty AddProperty(const char* key, size_t bytes_per_point); void RemoveProperty(const char* key); bool HasProperty(const char* key) const; PointCloudProperty GetProperty(const char* key); const PointCloudProperty GetProperty(const char* key) const; virtual void Transform(const glm::mat4& transform); protected: // methods PointCloud& GetPointCloud(); const PointCloud& GetPointCloud() const; void MakeCloneOf(const C_PointCloud& source);
Detailed Documentation
Adapter for cogs::Scan structure.
Construction
C_Scan()
Creates a scan with no points.
C_Scan(const C_Scan& source)
Make a deep copy of the source C_Scan.
C_Scan(C_Scan&&)
Move-construct C_Scan.
virtual ~C_Scan()
Destroys scan.
Methods
C_Scan& operator=(const C_Scan& source)
Make a deep copy of the source C_Scan.
C_Scan& operator=(C_Scan&&)
Move-construct C_Scan.
virtual bool Import(const char* filename)
Imports scan from a file.
virtual bool Export(const char* filename) const
Exports scan to a file.
void SetResolution(const glm::uvec2& new_resolution)
Changes grid resolution new grid points are empty and old points may be erased.
Camera parameters remain unchanged.
glm::uvec2 GetResolution() const
Returns current grid resolution.
uint32_t GetWidth() const
Returns current grid width.
uint32_t GetHeight() const
Returns current grid height.
void SetCameraParams(const ScanCameraParams& new_params)
Sets camera parameters to the new value.
const ScanCameraParams& GetCameraParams() const
Returns currently set camera parameters.
void SetCameraPosition(const glm::vec3& new_position)
Sets camera position to the new value.
const glm::vec3& GetCameraPosition() const
Returns currently set camera position.
void SetCameraBasis(const glm::mat3& new_basis)
Sets camera basis to the new value.
glm::mat3 GetCameraBasis() const
Returns currently set camera basis.
const glm::uvec2* GetCoords() const
Returns points coordinates.
bool IsPointAt(const glm::uvec2& coord) const
Checks whether the coordinates are valid and occupied by a point.
bool IsPointAt(const uint32_t x_coord, const uint32_t y_coord) const
Checks whether the coordinates are valid and occupied by a point.
uint32_t AddPointAt(const glm::uvec2& coord)
Adds new point at grid coordinate. Returns point index.
uint32_t AddPointAt(const uint32_t x_coord, const uint32_t y_coord)
Adds new point at grid coordinate. Returns point index.
uint32_t AddPointsAt(const glm::uvec2* new_coords, uint32_t array_size)
Adds a vector of new points at grid coordinates. Returns starting point index.
uint32_t GetPointAt(const glm::uvec2& coord) const
Returns point index at grid coordinate. May return Scan::INVALID_INDEX if there is no point.
uint32_t GetPointAt(const uint32_t x_coord, const uint32_t y_coord) const
Returns point index at grid coordinate. May return Scan::INVALID_INDEX if there is no point.
virtual void Transform(const glm::mat4& transform)
Transforms point positions, normals and updates camera.
static bool GetCameraUV(const glm::vec3& point, const ScanCameraParams& cam_params, glm::vec2& result)
Get coordinate.
class Scan& GetScan()
Returns reference to the inner cogs::Scan.
const Scan& GetScan() const
Returns const reference to the inner cogs::Scan.