All
entities have a point of origin. For
point entities and many
brush entities, this point is largely irrelevant, simply being used to define where the entity is located.
Brush entities use the exact center of the map as the origin by default. However, for some moving brush entities (such as
func_trains or
func_rotatings), the origin is used to define how the entity moves, and need to have an origin at a particular point relative to the entity. In these cases, the point of origin can be defined manually by having the entity include a
brush covered in the "origin" texture (known as an origin brush). If the entity includes an origin brush, the point of origin will be the exact center of that brush. (The size of this brush does not matter.)