Rhino C++ API  7.18
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
ON_PointCloud Class Reference

#include <opennurbs_pointcloud.h>

Inheritance diagram for ON_PointCloud:
ON_Geometry ON_Object

Public Member Functions

 ON_PointCloud ()
 ON_PointCloud (const double *P0, int dim, bool is_rat, int count)
 0<dim<4 stride is dim+is_rat More...
 ON_PointCloud (const ON_3dPoint *P0, int count)
 ON_PointCloud (const ON_PointCloud &)
 ON_PointCloud (int)
 ~ON_PointCloud ()
void AppendPoint (const ON_3dPoint &)
void Destroy ()
void DestroyHiddenPointArray ()
int Dimension () const override
 virtual ON_Geometry override More...
void Dump (ON_TextLog &) const override
 virtual ON_Object override More...
void EmergencyDestroy ()
bool GetBBox (double *boxmin, double *boxmax, bool bGrowBox=false) const override
 virtual ON_Geometry GetBBox override
bool GetClosestPoint (ON_3dPoint P, int *closest_point_index, double maximum_distance=0.0) const
bool GetTightBoundingBox (class ON_BoundingBox &tight_bbox, bool bGrowBox=false, const class ON_Xform *xform=nullptr) const override
 virtual ON_Geometry GetTightBoundingBox override
bool HasPlane () const
 for height fields More...
bool HasPointColors () const
bool HasPointNormals () const
bool HasPointValues () const
double Height (int)
const bool * HiddenPointArray () const
int HiddenPointCount () const
unsigned int HiddenPointUnsignedCount () const
void InvalidateBoundingBox ()
 call if you change values of points More...
bool IsDeformable () const override
 virtual ON_Geometry override More...
bool IsMorphable () const override
 virtual ON_Geometry override More...
bool IsOrdered () const
 true if set is ordered stream More...
bool IsValid (class ON_TextLog *text_log=nullptr) const override
bool MakeDeformable () override
 virtual ON_Geometry override More...
bool Morph (const ON_SpaceMorph &morph) override
 virtual ON_Geometry override More...
ON::object_type ObjectType () const override
 virtual ON_Object override More...
ON_PointCloudoperator= (const ON_PointCloud &)
ON_3dPointoperator[] (int)
const ON_3dPointoperator[] (int) const
const ON_PlanePlane ()
ON_3dPoint Point (ON_COMPONENT_INDEX ci) const
int PointCount () const
bool PointIsHidden (int point_index) const
bool Read (ON_BinaryArchive &) override
 virtual ON_Object override More...
void SetHiddenPointFlag (int point_index, bool bHidden)
void SetOrdered (bool bOrdered)
 for ordered streams More...
void SetPlane (const ON_Plane &)
unsigned int SizeOf () const override
 virtual ON_Object::SizeOf override More...
bool SwapCoordinates (int, int) override
 virtual ON_Geometry override More...
bool Transform (const ON_Xform &) override
 virtual ON_Geometry override More...
bool Write (ON_BinaryArchive &) const override
 virtual ON_Object override More...
- Public Member Functions inherited from ON_Geometry
 ON_Geometry ()=default
 ON_Geometry (const ON_Geometry &)=default
 ~ON_Geometry ()=default
ON_BoundingBox BoundingBox () const
virtual class ON_BrepBrepForm (class ON_Brep *brep=nullptr) const
virtual void ClearBoundingBox ()
virtual ON_COMPONENT_INDEX ComponentIndex () const
virtual bool EvaluatePoint (const class ON_ObjRef &objref, ON_3dPoint &P) const
bool GetBoundingBox (ON_3dPoint &bbox_min, ON_3dPoint &bbox_max, bool bGrowBox=false) const
bool GetBoundingBox (ON_BoundingBox &bbox, bool bGrowBox=false) const
virtual bool HasBrepForm () const
virtual bool Morph (const class ON_SpaceMorph &morph)
ON_Geometryoperator= (const ON_Geometry &)=default
bool Rotate (double rotation_angle, const ON_3dVector &rotation_axis, const ON_3dPoint &rotation_center)
bool Rotate (double sin_angle, double cos_angle, const ON_3dVector &rotation_axis, const ON_3dPoint &rotation_center)
bool Scale (double scale_factor)
bool Translate (const ON_3dVector &translation_vector)
- Public Member Functions inherited from ON_Object
 ON_Object (const ON_Object &)
virtual ~ON_Object ()
virtual ON_AggregateComponentStatus AggregateComponentStatus () const
bool AttachUserData (class ON_UserData *pUserData)
unsigned int ClearAllComponentStates () const
virtual unsigned int ClearComponentStates (ON_COMPONENT_INDEX component_index, ON_ComponentStatus states_to_clear) const
virtual unsigned int ClearComponentStates (ON_ComponentStatus states_to_clear) const
void CopyUserData (const ON_Object &source_object)
unsigned int CopyUserData (const ON_Object &source_object, ON_UUID source_userdata_item_id, ON_Object::UserDataConflictResolution userdata_conflict_resolution)
virtual ON__UINT32 DataCRC (ON__UINT32 current_remainder) const
virtual bool DeleteComponents (const ON_COMPONENT_INDEX *ci_list, size_t ci_count)
virtual void DestroyRuntimeCache (bool bDelete=true)
bool DetachUserData (class ON_UserData *pUserData)
void EmergencyDestroy ()
class ON_UserDataFirstUserData () const
virtual unsigned int GetComponentsWithSetStates (ON_ComponentStatus states_filter, bool bAllEqualStates, ON_SimpleArray< ON_COMPONENT_INDEX > &components) const
class ON_UserDataGetUserData (const ON_UUID &userdata_uuid) const
bool GetUserString (const wchar_t *key, ON_wString &string_value) const
int GetUserStringKeys (ON_ClassArray< ON_wString > &user_string_keys) const
int GetUserStrings (ON_ClassArray< ON_UserString > &user_strings) const
bool IsCorrupt (bool bRepair, bool bSilentError, class ON_TextLog *text_log) const
bool IsKindOf (const ON_ClassId *pClassId) const
virtual void MarkAggregateComponentStatusAsNotCurrent () const
virtual void MemoryRelocate ()
virtual ON_UUID ModelObjectId () const
void MoveUserData (ON_Object &source_object)
unsigned int MoveUserData (ON_Object &source_object, ON_UUID source_userdata_item_id, ON_Object::UserDataConflictResolution userdata_conflict_resolution, bool bDeleteAllSourceItems)
ON_Objectoperator= (const ON_Object &)
void PurgeUserData ()
virtual unsigned int SetComponentStates (ON_COMPONENT_INDEX component_index, ON_ComponentStatus states_to_set) const
virtual unsigned int SetComponentStatus (ON_COMPONENT_INDEX component_index, ON_ComponentStatus status_to_copy) const
bool SetUserString (const wchar_t *key, const wchar_t *string_value)
int SetUserStrings (int count, const ON_UserString *user_strings, bool bReplace)
bool ThisIsNullptr (bool bSilentError) const
void TransformUserData (const class ON_Xform &xform)
virtual bool UpdateReferencedComponents (const class ON_ComponentManifest &source_manifest, const class ON_ComponentManifest &destination_manifest, const class ON_ManifestMap &manifest_map)
int UserStringCount () const

Static Public Member Functions

static ON_PointCloudRandomSubsample (const ON_PointCloud *source_point_cloud, const unsigned int subsample_point_count, ON_PointCloud *destination_point_cloud, ON_ProgressReporter *progress_reporter, ON_Terminator *terminator)

Public Attributes

ON_BoundingBox m_bbox
ON_SimpleArray< ON_Colorm_C
unsigned int m_flags = 0
ON_SimpleArray< bool > m_H
unsigned int m_hidden_count = 0
ON_SimpleArray< ON_3dVectorm_N
ON_3dPointArray m_P
 Implementation. More...
ON_Plane m_plane
ON_SimpleArray< double > m_V

Additional Inherited Members

- Public Types inherited from ON_Object
enum  UserDataConflictResolution : unsigned char {
  UserDataConflictResolution::destination_object = 0, UserDataConflictResolution::source_object = 1, UserDataConflictResolution::source_copycount_gt = 2, UserDataConflictResolution::source_copycount_ge = 3,
  UserDataConflictResolution::destination_copycount_gt = 4, UserDataConflictResolution::destination_copycount_ge = 5, UserDataConflictResolution::delete_item = 6
- Static Public Attributes inherited from ON_Geometry
const static ON_Geometry Unset

Detailed Description


/ / Copyright (c) 1993-2012 Robert McNeel & Associates. All rights reserved. / OpenNURBS, Rhinoceros, and Rhino3D are registered trademarks of Robert / McNeel & Associates. / / THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. / ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF / MERCHANTABILITY ARE HEREBY DISCLAIMED. /
/ For complete openNURBS copyright information see http://www.opennurbs.org. / ////////////////////////////////////////////////////////////// Class ON_PointCloud - unordered set of points ON_PointField - point height field

Constructor & Destructor Documentation

◆ ON_PointCloud() [1/5]

ON_PointCloud::ON_PointCloud ( )

◆ ON_PointCloud() [2/5]

ON_PointCloud::ON_PointCloud ( int  )

◆ ON_PointCloud() [3/5]

ON_PointCloud::ON_PointCloud ( const ON_PointCloud )

◆ ~ON_PointCloud()

ON_PointCloud::~ON_PointCloud ( )

◆ ON_PointCloud() [4/5]

ON_PointCloud::ON_PointCloud ( const ON_3dPoint P0,
int  count 

◆ ON_PointCloud() [5/5]

ON_PointCloud::ON_PointCloud ( const double *  P0,
int  dim,
bool  is_rat,
int  count 

0<dim<4 stride is dim+is_rat

Member Function Documentation

◆ AppendPoint()

void ON_PointCloud::AppendPoint ( const ON_3dPoint )

◆ Destroy()

void ON_PointCloud::Destroy ( )

◆ DestroyHiddenPointArray()

void ON_PointCloud::DestroyHiddenPointArray ( )

Description: Destroys the m_H[] array and sets m_hidden_count=0.

◆ Dimension()

int ON_PointCloud::Dimension ( ) const

virtual ON_Geometry override

Reimplemented from ON_Geometry.

◆ Dump()

void ON_PointCloud::Dump ( ON_TextLog ) const

virtual ON_Object override

for debugging

Reimplemented from ON_Object.

◆ EmergencyDestroy()

void ON_PointCloud::EmergencyDestroy ( )

Description: Call when the memory pool used the point cloud's arrays is no longer in existence.

◆ GetBBox()

bool ON_PointCloud::GetBBox ( double *  boxmin,
double *  boxmax,
bool  bGrowBox = false 
) const

virtual ON_Geometry GetBBox override

Reimplemented from ON_Geometry.

◆ GetClosestPoint()

bool ON_PointCloud::GetClosestPoint ( ON_3dPoint  P,
int *  closest_point_index,
double  maximum_distance = 0.0 
) const

Description: Get the index of the point in the point cloud that is closest to P. Parameters: P - [in] closest_point_index - [out] maximum_distance - [in] optional distance constraint. If maximum_distance > 0, then only points Q with |P-Q| <= maximum_distance are tested. Returns: True if a point is found; in which case *closest_point_index is the index of the point. False if no point is found or the input is not valid. See Also: ON_GetClosestPointInPointList

◆ GetTightBoundingBox()

bool ON_PointCloud::GetTightBoundingBox ( class ON_BoundingBox tight_bbox,
bool  bGrowBox = false,
const class ON_Xform xform = nullptr 
) const

virtual ON_Geometry GetTightBoundingBox override

Reimplemented from ON_Geometry.

◆ HasPlane()

bool ON_PointCloud::HasPlane ( ) const

for height fields

true if set is height field above a plane

◆ HasPointColors()

bool ON_PointCloud::HasPointColors ( ) const

Returns: True if m_C.Count() == m_P.Count().

◆ HasPointNormals()

bool ON_PointCloud::HasPointNormals ( ) const

Returns: True if m_N.Count() == m_P.Count().

◆ HasPointValues()

bool ON_PointCloud::HasPointValues ( ) const

Returns: True if m_V.Count() == m_P.Count().

◆ Height()

double ON_PointCloud::Height ( int  )

◆ HiddenPointArray()

const bool* ON_PointCloud::HiddenPointArray ( ) const

Returns: If the point cloud has some hidden points, then an array of length PointCount() is returned and the i-th element is true if the i-th vertex is hidden. If no ponts are hidden, nullptr is returned.

◆ HiddenPointCount()

int ON_PointCloud::HiddenPointCount ( ) const

Returns: Number of points that are hidden.

◆ HiddenPointUnsignedCount()

unsigned int ON_PointCloud::HiddenPointUnsignedCount ( ) const

◆ InvalidateBoundingBox()

void ON_PointCloud::InvalidateBoundingBox ( )

call if you change values of points

◆ IsDeformable()

bool ON_PointCloud::IsDeformable ( ) const

virtual ON_Geometry override

Reimplemented from ON_Geometry.

◆ IsMorphable()

bool ON_PointCloud::IsMorphable ( ) const

virtual ON_Geometry override

Reimplemented from ON_Geometry.

◆ IsOrdered()

bool ON_PointCloud::IsOrdered ( ) const

true if set is ordered stream

◆ IsValid()

bool ON_PointCloud::IsValid ( class ON_TextLog text_log = nullptr) const

Description: Tests an object to see if its data members are correctly initialized. Parameters: text_log - [in] if the object is not valid and text_log is not nullptr, then a brief englis description of the reason the object is not valid is appened to the log. The information appended to text_log is suitable for low-level debugging purposes by programmers and is not intended to be useful as a high level user interface tool. Returns: @untitled table true object is valid false object is invalid, uninitialized, etc.

Reimplemented from ON_Geometry.

◆ MakeDeformable()

bool ON_PointCloud::MakeDeformable ( )

virtual ON_Geometry override

Reimplemented from ON_Geometry.

◆ Morph()

bool ON_PointCloud::Morph ( const ON_SpaceMorph morph)

virtual ON_Geometry override

◆ ObjectType()

ON::object_type ON_PointCloud::ObjectType ( ) const

virtual ON_Object override

Reimplemented from ON_Object.

◆ operator=()

ON_PointCloud& ON_PointCloud::operator= ( const ON_PointCloud )

◆ operator[]() [1/2]

ON_3dPoint& ON_PointCloud::operator[] ( int  )

◆ operator[]() [2/2]

const ON_3dPoint& ON_PointCloud::operator[] ( int  ) const

◆ Plane()

const ON_Plane& ON_PointCloud::Plane ( )

◆ Point()

ON_3dPoint ON_PointCloud::Point ( ON_COMPONENT_INDEX  ci) const

Description: Get a point cloud point from an ON_COMPONENT_INDEX. Parameters: ci - [in] a component index with m_typ set to ON_COMPONENT_INDEX::pointcloud_point and 0 <= m_index and m_index < m_P.Count(). Returns: Point at [ci.m_index] or ON_3dPoint::UnsetPoint if ci is not valid.

◆ PointCount()

int ON_PointCloud::PointCount ( ) const


◆ PointIsHidden()

bool ON_PointCloud::PointIsHidden ( int  point_index) const

Description: Returns true if the point is hidden. This is a runtime setting that is not saved in 3dm files. Parameters: point_index - [in] Returns: True if the point is hidden.

◆ RandomSubsample()

static ON_PointCloud* ON_PointCloud::RandomSubsample ( const ON_PointCloud source_point_cloud,
const unsigned int  subsample_point_count,
ON_PointCloud destination_point_cloud,
ON_ProgressReporter progress_reporter,
ON_Terminator terminator 

Description: Returns a random subsample of a point cloud. Parameters: source_point_cloud - [in] The point cloud to subsample. subsample_point_count - [in] The number of points to keep. destination_point_cloud - [out] If nullptr, then a new ON_PointCloud() will be the destination. This can be the source point cloud. progress_reporter - [in] Optional progress reporter, can be nullptr. terminator - [in] Optional terminator, can be nullptr. Returns: A new ON_PointCloud which is a subsample of source_point_cloud. If destination_point_cloud == nullptr, then memory will be allocated for the returned point cloud and becomes the responsibility of the caller.

◆ Read()

bool ON_PointCloud::Read ( ON_BinaryArchive )

virtual ON_Object override

Reimplemented from ON_Object.

◆ SetHiddenPointFlag()

void ON_PointCloud::SetHiddenPointFlag ( int  point_index,
bool  bHidden 

Description: Set the runtime hidden point flag. Parameters: point_index - [in] point vertex index bHidden - [in] true to hide vertex

◆ SetOrdered()

void ON_PointCloud::SetOrdered ( bool  bOrdered)

for ordered streams

true if set is ordered stream

◆ SetPlane()

void ON_PointCloud::SetPlane ( const ON_Plane )

◆ SizeOf()

unsigned int ON_PointCloud::SizeOf ( ) const

virtual ON_Object::SizeOf override

Reimplemented from ON_Object.

◆ SwapCoordinates()

bool ON_PointCloud::SwapCoordinates ( int  ,

virtual ON_Geometry override

Reimplemented from ON_Geometry.

◆ Transform()

bool ON_PointCloud::Transform ( const ON_Xform )

virtual ON_Geometry override

Reimplemented from ON_Geometry.

◆ Write()

bool ON_PointCloud::Write ( ON_BinaryArchive ) const

virtual ON_Object override

Reimplemented from ON_Object.

Member Data Documentation

◆ m_bbox

ON_BoundingBox ON_PointCloud::m_bbox

◆ m_C

ON_SimpleArray<ON_Color> ON_PointCloud::m_C

Implementation - OPTIONAL point color Either m_C[] has zero count or it has the same count as m_P[], in which case m_C[j] reports the color assigned to m_P[j].

◆ m_flags

unsigned int ON_PointCloud::m_flags = 0

bit 1 is set if ordered bit 2 is set if plane is set

◆ m_H

ON_SimpleArray<bool> ON_PointCloud::m_H

Implementation - RUNTIME point visibility - not saved in 3dm files. If m_H.Count() = m_P.Count(), then m_H[j] is true if the point m_P[j] is hidden. Otherwise, all points are visible. m_hidden_count = number of true values in the m_H[] array.

◆ m_hidden_count

unsigned int ON_PointCloud::m_hidden_count = 0

◆ m_N

ON_SimpleArray<ON_3dVector> ON_PointCloud::m_N

Implementation - OPTIONAL point normal Either m_N[] has zero count or it has the same count as m_P[], in which case m_N[j] reports the color assigned to m_P[j].

◆ m_P

ON_3dPointArray ON_PointCloud::m_P


◆ m_plane

ON_Plane ON_PointCloud::m_plane

◆ m_V

ON_SimpleArray<double> ON_PointCloud::m_V

Implementation - OPTIONAL point value (intensity) Either m_V[] has zero count or it has the same count as m_P[], in which case m_V[j] reports the value assigned to m_P[j].