What rules (or rule combos) do I use to create the following accesses?

Please see attachment which shows graphically what we are trying to do..

1. We have a membership level called Vendors. Is there any way we can make sure the users within this level can ONLY see their own forum (and message people who join their forum) and nothing else? What rule (or combo of rules) would accomplish this seemingly simple access? Or another way of putting the question is does the Rules editing page have the capability to distinguish between USERS within the SAME membership level?

2. We also want to know what rule (or combination of rules) we need to accomplish the following for the following levels:

Public/guest/visitor > Can't see anything except for Welcome and About Us page

Company (AKA Member) > Companies, with users within those companies, can only look at their OWN company's forum or page (not other companies pages), and can join in the forum of any Vendor and view the page of any Vendor.

[And as in question 1] Vendors > can only see their own forum, and can only message Company users that have joined their forum

For a illustration of the membership levels we are trying to create, please see my attachment!

is this type of distinction possible or Are we going to have to create a new membership level for each vendor or each company?