本文整理汇总了C++中Solid::isEmpty方法的典型用法代码示例。如果您正苦于以下问题:C++ Solid::isEmpty方法的具体用法?C++ Solid::isEmpty怎么用?C++ Solid::isEmpty使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Solid
的用法示例。
在下文中一共展示了Solid::isEmpty方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: distanceSolidSolid3D
double distanceSolidSolid3D( const Solid& gA, const Solid& gB )
{
//SFCGAL_DEBUG( boost::format("dispatch distancePolygonGeometry3D(%s,%s)") % gA.asText() % gB.asText() );
if ( gA.isEmpty() || gB.isEmpty() ) {
return std::numeric_limits< double >::infinity() ;
}
if ( intersects( gA, gB, NoValidityCheck() ) ) {
return 0.0 ;
}
double dMin = std::numeric_limits< double >::infinity() ;
for ( size_t i = 0; i < gA.numShells(); i++ ) {
for ( size_t j = 0; j < gB.numShells(); j++ ) {
dMin = std::min( dMin, gA.shellN( i ).distance3D( gB.shellN( j ) ) );
}
}
return dMin ;
}
示例2: distanceTriangleSolid3D
double distanceTriangleSolid3D( const Triangle& gA, const Solid& gB )
{
if ( gA.isEmpty() || gB.isEmpty() ) {
return std::numeric_limits< double >::infinity() ;
}
if ( intersects3D( gA, gB, NoValidityCheck() ) ) {
return 0.0 ;
}
double dMin = std::numeric_limits< double >::infinity() ;
for ( size_t i = 0; i < gB.numShells(); i++ ) {
dMin = std::min( dMin, gB.shellN( i ).distance3D( gA ) );
}
return dMin ;
}
示例3: distancePointSolid3D
double distancePointSolid3D( const Point& gA, const Solid& gB )
{
if ( gA.isEmpty() || gB.isEmpty() ) {
return std::numeric_limits< double >::infinity() ;
}
if ( intersects3D( gA, gB, NoValidityCheck() ) ) {
return 0.0 ;
}
double dMin = std::numeric_limits< double >::infinity() ;
for ( size_t i = 0; i < gB.numShells(); i++ ) {
dMin = std::min( dMin, distanceGeometryCollectionToGeometry3D( gB.shellN( i ), gA ) );
}
return dMin ;
}