void meshOctreeCube::findLeaves(LongList<meshOctreeCube*>& leaves) const
{
    if( this->isLeaf() )
    {
        meshOctreeCube* oc = const_cast<meshOctreeCube*>(this);
        cubeLabel_ = leaves.size();
        leaves.append(oc);
    }
    else
    {
        cubeLabel_ = -1;

        for(label scI=0;scI<8;++scI)
        {
            const meshOctreeCube* scPtr = subCubesPtr_[scI];

            if( scPtr )
                scPtr->findLeaves(leaves);
        }
    }
}
void meshOctreeCube::findCoordinatesOfMissingCubes
(
    LongList<meshOctreeCubeCoordinates>& coordinates
) const
{
    if( this->isLeaf() )
        return;

    for(label scI=0;scI<8;++scI)
    {
        meshOctreeCube* scPtr = subCubesPtr_[scI];

        if( scPtr )
        {
            scPtr->findCoordinatesOfMissingCubes(coordinates);
        }
        else
        {
            coordinates.append(this->refineForPosition(scI));
        }
    }
}