Sorry, this should have been:

return ( (dynamic_cast<CameraOp*>(op)) != 0);

Also, if you don't want to have to test whether the input is NULL later on
in your plugin, you may want to implement default_input() as well, and make
it return CameraOp::default_camera();




On Thu, Oct 6, 2011 at 9:21 AM, Ivan Busquets <ivanbusqu...@gmail.com>wrote:

> In test_input(), return true if the input can be cast to a CameraOp, and
> false otherwise:
>
>
>
> bool TestOperator::test_input(int n, DD::Image::Op* op)
> {
>    std::cout<<"test_input"<    if (n == 0)
>       return dynamic_cast(CameraOp) != 0;
>     return false;
> }
>
> Hope that helps.
>
> Cheers,
> Ivan
>
> On Thu, Oct 6, 2011 at 9:16 AM, AcidDrippa <
> nuke-dev-re...@thefoundry.co.uk> wrote:
>
>> **
>> Hi,
>>
>> I've been experimenting with the NDK for the first time. So my first aim
>> was to create a custom node and perform an input connection.
>>
>> I derived my operator from the Op class (like given in the SimpleAxis
>> sample) and I want a single input connection from a camera.
>>
>> The dll compiles perfectly fine and I am able to create my node in the
>> graph window, but I cannot connect the camera node to my node.
>>
>> These are the methods I used:
>>
>> NOTE: I haven't given the #includes and namespace in this snippet, but
>> everything else is pretty much the same
>>
>> *Code:*
>> static const char* const CLASS = "TestOperator";
>> static const char* const HELP = "Testing NDK development";
>>
>> class TestOperator : public DD::Image::Op
>> {
>>
>> public:
>>    TestOperator(Node* node) : Op(node){}
>>
>>    virtual ~TestOperator(){};
>>
>>    virtual int minimum_inputs() const;
>>    virtual int maximum_inputs() const;
>>
>>    DD::Image::CameraOp* input0() const { return
>> (DD::Image::CameraOp*)(DD::Image::Op::input0()); }
>>
>>    virtual bool test_input(int n, DD::Image::Op* op);
>>
>>         const char* Class() const {return CLASS;}
>>    const char* node_help() const {return HELP;}
>>
>>    static DD::Image::Op* build(Node* node);
>>
>> protected:
>>
>>    void _validate(bool for_real);
>>
>> };
>>
>> const Op::Description TestOperator::d(CLASS, "TestOperator",
>> TestOperator::build);
>>
>> void TestOperator::_validate(bool for_real)
>> {
>>    std::cout<<"In validate"<**validate(for_real);
>>     }
>> }
>>
>> int TestOperator::minimum_inputs() const
>> {
>>    return 1;
>> }
>>
>> int TestOperator::maximum_inputs() const
>> {
>>    return 1;
>> }
>>
>> bool TestOperator::test_input(int n, DD::Image::Op* op)
>> {
>>    std::cout<<"test_input"<**    if (n == 0)
>>       return dynamic_cast**(op) != 0;
>>     return false;
>> }
>>
>> Op* TestOperator::build(Node* node)
>> {
>>    return new TestOperator(node);
>> }
>>
>>
>>
>> Am I missing something?
>>
>> Any suggestions would be helpful.
>>
>> Thanks
>>
>> _______________________________________________
>> Nuke-dev mailing list
>> Nuke-dev@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev
>>
>>
>
_______________________________________________
Nuke-dev mailing list
Nuke-dev@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev

Reply via email to