That’s a very round-about way of doing things But given the complete lack of documentation on how to write a LOP node it is perfectly understandable… To quickly answer your question, no, there is no way to read from any LOP node without cooking it. But Houdini nodes are pretty smart. If they haven’t changed, and their inputs haven’t changed, then they won’t actually recook, they’ll just return their last cooked result. If they did change, then you probably want the node to recook, so it’s good that it does…
So with that out of the way, to access the data from a secondary input, you’ll want to do something like this:
OP_AutoLockInputs auto_lock_inputs(this);
if (auto_lock_inputs.lockInput(1, context) >= UT_ERROR_ABORT)
return error();
const HUSD_DataHandle &datahandle = lockedInputData(context, 1);
HUSD_AutoReadLock readlock(datahandle);
// Read from the stage.