Generate Procedural Mesh

Hi, I’m new to Unreal engine and I was trying to use this method to build my own meshes dynamically. However, i’m confused with the collision function: It seems that it build collision successfully but how does it make it? I noticed some functions may related to the collision function:

functions I:
 virtual bool GetPhysicsTriMeshData(struct FTriMeshCollisionData* CollisionData, bool InUseAllTriData) override;

virtual bool ContainsPhysicsTriMeshData(bool InUseAllTriData) const override;
virtual bool WantsNegXTriMesh() override{ return false; }

functions II:
FBoxSphereBounds CalcBounds(const FTransform & LocalToWorld) const;
void UpdateCollision()

Functions I seem to create a collision directly defined by the mesh and functions II seem to create a bounding box. So, my question is :

1.How does it define collision? by Functions I or byFunctions II ? or both works in the collison building process?

2.If i had misunderstood the process, then what's the flow of buiding collision?