Real from inport to outport
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 24/03/2008 at 09:41, xxxxxxxx wrote:
User Information:
Cinema 4D Version: 10.5
Platform: Mac OSX ;
Language(s) : C++ ;---------
Hi!I have a big problem with the SDK and the documentation to get the following case. I want to create one inport / one outport (Datatype: Real).
The outport should only forward a number of the inport.
I created 3 functions / classes.
> `
\> GeData GvGetPortGeData(GvNode* node, GvPort* port, GvRun* run) \> { \> //and so on...// \> } \>
`
> `
\> Bool GvSetPortGeData(const GeData& ge_data, GvNode* node, GvPort* port, GvRun* run) \> { \> //and so on...// \> } \>
`
> `
\> class GVIteratorTest : public GvOperatorData \> { \> //and so on...// \> \> Bool Calculate(GvNode *bn, GvPort *port, GvRun *run, GvCalc *calc) \> { \> \> GvSetPortGeData(GeData(3000),bn, port, run); \> return FALSE; \> } \> \> //..blabla// \> } \>
`
Alright. It works. With the line GvSetPortGeData(... I am able to set the Real 3000 from the outport. But how do I get the Real from the inport called inport_LINK.
Thank you very much.
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 25/03/2008 at 10:39, xxxxxxxx wrote:
Hi!
Okay, perhaps I simplify my problem.
> `
\> GvValue* vinport = ports.in_values[inport_LINK]; \> GvPort* inport = vinport->GetPort(); \> GeData inportdata = GvGetPortGeData(bn, inport, run); \> Real normale = inportdata.GetReal(); \> GePrint(RealToString(normale)); \>
`
This code I paste before I return the value to "set" the outport data. But in the Console (see GePrint) the value is 0. The inportvalue with a constant is 25. I only have 1 inport.
Whats my mistake?
Thank you very much
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 26/03/2008 at 08:49, xxxxxxxx wrote:
Sorry for asking again, but did nobody got a node to work, that imports a normal Real number?
Thanks a lot
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 26/03/2008 at 09:06, xxxxxxxx wrote:
I will look into it.
cheers,
Matthias -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 27/03/2008 at 06:56, xxxxxxxx wrote:
Thanks a lot
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 28/03/2008 at 07:37, xxxxxxxx wrote:
Ok, here is my Calculate function of the node. It outputs the input.
>
\> static LONG input_ids[] = { GV_REAL_INPORT, 0 }; // Use this for the input ports! \> \> Bool MyNode::InitCalculation(GvNode \*bn, GvCalc \*calc, GvRun \*run) \> { \> return GvBuildInValuesTable(bn, ports, calc, run, input_ids); \> } \> \> void MyNode::FreeCalculation(GvNode \*bn, GvCalc \*calc) \> { \> GvFreeValuesTable(bn, ports); \> } \> \> Bool MyNode::Calculate(GvNode \*bn, GvPort \*port, GvRun \*run, GvCalc \*calc) \> { \> if(!port) return FALSE; \> \> GvValue \*vinport = ports.in_values[0]; \> if(!vinport) return FALSE; \> \> if(!vinport->Calculate(bn, GV_PORT_INPUT, run, calc, 0)) return FALSE; \> \> GvPort \*inport = vinport->GetPort(); \> \> Real value = 0.0; \> \> inport->GetReal(&value;,run); \> \> GePrint(RealToString(value)); \> \> switch(port->GetMainID()) \> { \> case GV_REAL_OUTPORT: \> { \> return port->SetReal(value,run); \> } \> } \> \> return FALSE; \> } \>
GV_REAL_INPORT and GV_REAL_OUTPORT are from my ressource file
>
\> CONTAINER GVmynode \> { \> NAME GVmynode; \> INCLUDE GVbase; \> \> GROUP ID_GVPORTS \> { \> REAL GV_REAL_INPORT \> { \> INPORT; \> STATICPORT; \> CREATEPORT; \> } \> REAL GV_REAL_OUTPORT \> { \> OUTPORT; \> STATICPORT; \> CREATEPORT; \> } \> } \> } \>
cheers,
Matthias -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 28/03/2008 at 08:28, xxxxxxxx wrote:
Hi!
Amazing. Thanks for great Work. Now, i see my mistake.
May the force be with you
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 28/03/2008 at 12:43, xxxxxxxx wrote:
Hi!
I have a short question again.
I tried to get several inports. I am confused a little bit. If I input some vectors via the attributemanager (about the port-inputs) the node add the two vectors.But when I connect to vectors via two other nodes, the node adds ValueA with the vector (0;0;0)... Does someone find the mistake?
I am confused a lot. Thanks for help..
GvValue* vinport = ports.in_values[0];
if (!vinport) return FALSE;
if (!vinport->Calculate(bn, GV_PORT_INPUT_OR_GEDATA, run, calc, 0)) return FALSE;
GvValue* vinportA = ports.in_values[1];
if (!vinportA) return FALSE;
if (!vinportA->Calculate(bn, GV_PORT_INPUT_OR_GEDATA, run, calc, 0)) return FALSE;
GvPort* ipt = bn->GetInPort(0);
GeData iptdata = GvGetPortGeData(bn, ipt, run);
Vector valueA = iptdata.GetVector();GvPort* iptA = bn->GetInPort(1);
GeData iptdataA = GvGetPortGeData(bn, iptA, run);
Vector valueB = iptdataA.GetVector();
Vector valueC; -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 28/03/2008 at 17:02, xxxxxxxx wrote:
sry, problem solved...thanks