ON_SubDHash provides a simple way to save a SubD's vertex, edge, and face SHA1 hashes. Typically it is used when a calculation needs to know if the current SubD has is geometrically identical to a previous SubD. When speed is not important, comparing the current value of ON_SubD::GeometryHash() to a previously save value of ON_SubD::GeometryHash() is functionally identical but typically much slower when the SubDs are different.
More...
#include <opennurbs_subd.h>

 ON_SubDHash ()=default 

 ON_SubDHash (const ON_SubDHash &)=default 

 ~ON_SubDHash ()=default 

void  Dump (ON_TextLog &) const 

unsigned int  EdgeCount () const 
 Copied from the SubD when the hash is created. More...


const ON_SHA1_Hash  EdgeHash () const 
 If two SubDs have identical EdgeHash() values, then the SubD edge information associated with HashType() is identical. More...


unsigned int  FaceCount () const 
 Copied from the SubD when the hash is created. More...


const ON_SHA1_Hash  FaceHash () const 
 If two SubDs have identical FaceHash() values, then the SubD face information associated with HashType() is identical. More...


ON_SubDHashType  HashType () const 

bool  IsEmpty () const 

bool  IsNotEmpty () const 

ON_SubDHash &  operator= (const ON_SubDHash &)=default 

bool  Read (class ON_BinaryArchive &) 

ON__UINT64  SubDGeometryContentSerialNumber () const 
 The geometry content serial number can be used to quickly determine if a SubD is exactly the instance used to create this ON_SubDHash. If the geometry content serial numbers are equal, then the SubD is identical to the one use to create the hash. If the geometry content serial numbers differ, the current SubD hashes need to be checked against this to see what, if anything, changed. For example, moving a vertex will not change a topology hash. More...


const ON_SHA1_Hash  SubDHash () const 
 If two SubDs have identical SubDHash() values, then the SubD vertex, edge, and face information associated with HashType() is identical. More...


ON__UINT64  SubDRuntimeSerialNumber () const 
 The runtime serial number can be used to identify the SubD that was hashed to created this ON_SubDHash. More...


unsigned int  VertexCount () const 
 Copied from the SubD when the hash is created. More...


const ON_SHA1_Hash  VertexHash () const 
 If two SubDs have identical VertexHash() values, then the SubD vertex information associated with HashType() is identical. More...


bool  Write (class ON_BinaryArchive &) const 

ON_SubDHash provides a simple way to save a SubD's vertex, edge, and face SHA1 hashes. Typically it is used when a calculation needs to know if the current SubD has is geometrically identical to a previous SubD. When speed is not important, comparing the current value of ON_SubD::GeometryHash() to a previously save value of ON_SubD::GeometryHash() is functionally identical but typically much slower when the SubDs are different.
◆ ON_SubDHash() [1/2]
ON_SubDHash::ON_SubDHash 
( 
 ) 


default 
◆ ~ON_SubDHash()
ON_SubDHash::~ON_SubDHash 
( 
 ) 


default 
◆ ON_SubDHash() [2/2]
◆ Compare()
◆ Create() [1/2]
Saves the counts and hashes of the specified type.
Saves the counts and hashes of the specified type.
 Parameters

 Returns
◆ Create() [2/2]
◆ Dump()
◆ EdgeCount()
unsigned int ON_SubDHash::EdgeCount 
( 
 ) 
const 
Copied from the SubD when the hash is created.
 Returns
 Number of hashed edges.
◆ EdgeHash()
If two SubDs have identical EdgeHash() values, then the SubD edge information associated with HashType() is identical.
 Returns
 A SHA1 hash of the SubD's edge information associated with HashType().
◆ FaceCount()
unsigned int ON_SubDHash::FaceCount 
( 
 ) 
const 
Copied from the SubD when the hash is created.
 Returns
 Number of hashed faces.
◆ FaceHash()
If two SubDs have identical FaceHash() values, then the SubD face information associated with HashType() is identical.
 Returns
 A SHA1 hash of the SubD's face information associated with HashType().
◆ HashType()
◆ IsEmpty()
bool ON_SubDHash::IsEmpty 
( 
 ) 
const 
Returns: True if vertex count is 0 or HashType is unset.
◆ IsNotEmpty()
bool ON_SubDHash::IsNotEmpty 
( 
 ) 
const 
Returns: True if vertex count is > 0 and HashType is geometry or toplology.
◆ operator=()
◆ Read()
◆ SubDGeometryContentSerialNumber()
ON__UINT64 ON_SubDHash::SubDGeometryContentSerialNumber 
( 
 ) 
const 
The geometry content serial number can be used to quickly determine if a SubD is exactly the instance used to create this ON_SubDHash. If the geometry content serial numbers are equal, then the SubD is identical to the one use to create the hash. If the geometry content serial numbers differ, the current SubD hashes need to be checked against this to see what, if anything, changed. For example, moving a vertex will not change a topology hash.
 Returns
 Returns: If this hash was created from an ON_SubD, then the value of subd.GeometryContentSerialNumber() at the at the instant this hash was created is returned. Otherwise, 0 is returned.
◆ SubDHash()
If two SubDs have identical SubDHash() values, then the SubD vertex, edge, and face information associated with HashType() is identical.
 Returns
 A SHA1 hash of the SubD's vertex, edge, and face information associated with HashType().
◆ SubDRuntimeSerialNumber()
ON__UINT64 ON_SubDHash::SubDRuntimeSerialNumber 
( 
 ) 
const 
The runtime serial number can be used to identify the SubD that was hashed to created this ON_SubDHash.
 Returns
 If this hash was created from an ON_SubD, then the value of subd.RuntimeSerialNumber() is returned. Otherwise, 0 is returned.
◆ VertexCount()
unsigned int ON_SubDHash::VertexCount 
( 
 ) 
const 
Copied from the SubD when the hash is created.
 Returns
 Number of hashed vertices.
◆ VertexHash()
If two SubDs have identical VertexHash() values, then the SubD vertex information associated with HashType() is identical.
 Returns
 A SHA1 hash of the SubD's vertex information associated with HashType().
◆ Write()
◆ ON_SubDimple
friend class ON_SubDimple 

friend 
◆ Empty
All counts are zero and all hashes are ON_SHA1::EmptyContentHash.