Although you can create this tool using a simple attribute vop and a ray sop but out of practice I used a wrangle to achieve the same result, also it looks more neat only one node.
This code has two parts:
Occlusion (Hidden Points Removal):
Removing points not visible to the camera either being occluded by the object is self or another object of your choice.
Every point shoots a ray at the camera and checks if it collided with any object using the intersect() command, if there was a hit the point will be deleted.
Removing points outside the camera scoop, for this we need first to apply a uv coordinates for the points in camera space, then check if it fall in the range of 0-1 and delete everything else.