本文整理汇总了C++中CKBehaviorPrototype::SetFlags方法的典型用法代码示例。如果您正苦于以下问题:C++ CKBehaviorPrototype::SetFlags方法的具体用法?C++ CKBehaviorPrototype::SetFlags怎么用?C++ CKBehaviorPrototype::SetFlags使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CKBehaviorPrototype
的用法示例。
在下文中一共展示了CKBehaviorPrototype::SetFlags方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CreatePacketIteratorProto
CKERROR CreatePacketIteratorProto(CKBehaviorPrototype **pproto)
{
CKBehaviorPrototype *proto = CreateCKBehaviorPrototype(GBL_CI_API_ENTRY("PacketIterator"));
if(!proto) return CKERR_OUTOFMEMORY;
proto->DeclareInput("On/Reset");
proto->DeclareOutput("Exit On/Reset");
proto->DeclareInput("Loop In");
proto->DeclareOutput("Loop Out");
proto->DeclareOutParameter("Target user id", CKPGUID_INT,"-1");
proto->DeclareOutParameter("Data", CKPGUID_STRING,"");
proto->DeclareOutParameter("Header", CKPGUID_STRING,"");
proto->DeclareOutParameter("PacketType", GUID_GBLCI_EPACKET_TYPE,"");
proto->DeclareOutParameter("Time Stamp", CKPGUID_INT,"-1");
proto->DeclareLocalParameter(NULL, CKPGUID_INT); // packet index
if(!GBLDebugBuild)
{
proto->SetFlags(CK_BEHAVIORPROTOTYPE_HIDDEN);
}else
{
proto->SetFlags(CK_BEHAVIORPROTOTYPE_NORMAL);
}
proto->SetFunction(PacketIterator);
*pproto = proto;
return CK_OK;
}
示例2: CreatePlayFFEffectProto
CKERROR CreatePlayFFEffectProto(CKBehaviorPrototype **pproto)
{
CKBehaviorPrototype *proto = NULL;
proto = CreateCKBehaviorPrototype("PlayFFEffect");
if(!proto) return CKERR_OUTOFMEMORY;
proto->DeclareInput("Init");
proto->DeclareInput("play");
proto->DeclareInput("stop");
proto->DeclareInput("release device");
proto->DeclareOutput("initiated");
proto->DeclareOutput("play exit");
proto->DeclareOutput("stopped");
proto->DeclareOutput("released");
proto->DeclareOutput("error");
proto->DeclareInParameter("effect file",CKPGUID_STRING);
proto->SetFlags(CK_BEHAVIORPROTOTYPE_NORMAL);
proto->SetFunction( PlayFFEffect );
proto->SetBehaviorCallbackFct(PlayFFECallBackObject);
*pproto = proto;
return CK_OK;
}
示例3: CreateRegisterAttributeTypeProto
//************************************
// Method: CreateRegisterAttributeTypeProto
// FullName: CreateRegisterAttributeTypeProto
// Access: public
// Returns: CKERROR
// Qualifier:
// Parameter: CKBehaviorPrototype **pproto
//************************************
CKERROR CreateRegisterAttributeTypeProto(CKBehaviorPrototype **pproto)
{
CKBehaviorPrototype *proto = CreateCKBehaviorPrototype("RegisterAttribute");
if(!proto) return CKERR_OUTOFMEMORY;
proto->DeclareInput("In");
proto->DeclareOutput("Out");
proto->DeclareOutput("Error");
proto->DeclareInParameter("Name",CKPGUID_STRING);
proto->DeclareInParameter("Category",CKPGUID_STRING);
proto->DeclareInParameter("Default Value",CKPGUID_STRING);
proto->DeclareInParameter("Parameter Type",CKPGUID_PARAMETERTYPE);
proto->DeclareInParameter("Compatible Class",CKPGUID_CLASSID);
proto->DeclareInParameter("User",CKPGUID_BOOL,"TRUE");
proto->DeclareInParameter("Save",CKPGUID_BOOL,"TRUE");
proto->SetBehaviorCallbackFct( RegisterAttributeTypeCB );
proto->SetFlags(CK_BEHAVIORPROTOTYPE_NORMAL);
proto->SetFunction(RegisterAttributeType);
*pproto = proto;
return CK_OK;
}
示例4: CreateGetCIValueProto
/*
*******************************************************************
* Function: CKERROR CreateGetCIValueProto( CKBehaviorPrototype** behaviorPrototypePtr )
*
* Description : The prototype creation function will be called the first time
* a behavior must be created to create the CKBehaviorPrototype
* that contains the description of the behavior.
*
* Parameters :
* behaviorPrototypePtr w Pointer to a CKBehaviorPrototype object that
* describes the behavior's internal structure
* and relationships with other objects.
*
* Returns : CKERROR
*
*******************************************************************
*/
CKERROR CreateGetCIValueProto(CKBehaviorPrototype **pproto)
{
CKBehaviorPrototype *proto = CreateCKBehaviorPrototype(GBL_CI_API_ENTRY("GetCI"));
if(!proto) return CKERR_OUTOFMEMORY;
proto->DeclareInput("Start");
proto->DeclareOutput("Success");
proto->DeclareInParameter("Configurable Information", CIPARAMETERGUID);
proto->DeclareOutParameter("Configurable Information Value", CKPGUID_STRING);
proto->DeclareSetting("Get CI by unique name",CKPGUID_BOOL,"FALSE");
proto->DeclareSetting("Get value as string",CKPGUID_BOOL,"FALSE");
proto->DeclareSetting("Output custom values",CKPGUID_BOOL,"FALSE");
proto->DeclareSetting("Output on change",CKPGUID_BOOL,"FALSE");
proto->SetBehaviorFlags((CK_BEHAVIOR_FLAGS)( CKBEHAVIOR_VARIABLEPARAMETEROUTPUTS ));
proto->SetFlags(CK_BEHAVIORPROTOTYPE_NORMAL);
proto->SetBehaviorCallbackFct(GetCIValueCB);
proto->SetFunction(GetCIValue);
*pproto = proto;
return CK_OK;
}
示例5: CreateMidiEventBehaviorProto
CKERROR CreateMidiEventBehaviorProto(CKBehaviorPrototype **pproto)
{
CKBehaviorPrototype *proto = CreateCKBehaviorPrototype("Midi Event");
if(!proto) return CKERR_OUTOFMEMORY;
proto->DeclareInput("On");
proto->DeclareInput("Off");
proto->DeclareOutput("Activated");
proto->DeclareOutput("Deactivated");
proto->DeclareInParameter("Channel", CKPGUID_INT, "0");
proto->DeclareInParameter("Note 1", CKPGUID_INT, "0");
proto->DeclareLocalParameter(NULL, CKPGUID_BOOL, "FALSE"); // Combination was ok
proto->SetFlags(CK_BEHAVIORPROTOTYPE_NORMAL);
proto->SetFunction(MidiEvent);
proto->SetBehaviorFlags((CK_BEHAVIOR_FLAGS)(CKBEHAVIOR_VARIABLEPARAMETERINPUTS));
proto->SetBehaviorCallbackFct( MidiEventCallBack );
*pproto = proto;
return CK_OK;
}
示例6: CreatePClothAttachVertexToPositionProto
//************************************
// Method: CreatePClothAttachVertexToPositionProto
// FullName: CreatePClothAttachVertexToPositionProto
// Access: public
// Returns: CKERROR
// Qualifier:
// Parameter: CKBehaviorPrototype **pproto
//************************************
CKERROR CreatePClothAttachVertexToPositionProto(CKBehaviorPrototype **pproto)
{
CKBehaviorPrototype *proto = CreateCKBehaviorPrototype("PClothAttachVertexToPosition");
if(!proto) return CKERR_OUTOFMEMORY;
proto->DeclareInput("In");
proto->DeclareOutput("Out");
/*! \page PClothAttachVertexToPosition
PClothAttachVertexToPosition is categorized in \ref Clothes
<h3>Description</h3>
Apply to a <A HREF="Documentation.chm::/beobjects/1_ck3dentity.html">3DEntity</A><br>
Attaches a cloth vertex to a position in world space.<br>
@see pCloth::attachVertexToGlobalPosition()
<h3>Technical Information</h3>
\image html PClothAttachVertexToPosition.png
<SPAN CLASS="in">In: </SPAN>triggers the process
<BR>
<SPAN CLASS="out">Out: </SPAN>is activated when the process is completed.
<BR>
<BR>
<SPAN CLASS="pin">Target: </SPAN>Target cloth reference.
<BR>
<BR>
<BR>
<BR>
<SPAN CLASS="pin">Vertex Index: </SPAN>Index of the vertex to attach.
<BR>
<BR>
<SPAN CLASS="pin">Global Position: </SPAN>TThe position in world space.
<BR>
<BR>
*/
proto->SetBehaviorCallbackFct( PClothAttachVertexToPositionCB );
proto->DeclareInParameter("Vertex Index",CKPGUID_INT);
proto->DeclareInParameter("Global Position",CKPGUID_VECTOR);
proto->SetFlags(CK_BEHAVIORPROTOTYPE_NORMAL);
proto->SetBehaviorFlags(CKBEHAVIOR_TARGETABLE);
proto->SetFunction(PClothAttachVertexToPosition);
*pproto = proto;
return CK_OK;
}
示例7: CreateBehaviourPrototype
/*
*******************************************************************
* Function: int CreateBehaviourPrototype()
*
* Description : Returns the number of plugins in this DLL
*
* Paramters :
* CKBehaviorPrototype w ppProto
*
* Returns : CKERROR - Standard virtools return type
*
*******************************************************************
*/
CKERROR CGBLLOGetMOStatus::CreateBehaviourPrototype(CKBehaviorPrototype** ppProto)
{
CKERROR err = CK_OK;
// Create the CKBehaviorPrototype object
CKBehaviorPrototype *pProto = CreateCKBehaviorPrototype("GBLLOStartMO");
if (!pProto)
return NULL;
// Set the B-Ins, B-Outs, P-Ins and P-Outs
if (eParamInputMO != pProto->DeclareInParameter("Set Measured Objective", CKGUID_CGBLMO_PARAMETER))
assert(NULL);
if (eParamOutputGetError != pProto->DeclareOutParameter("Get Error", GUID_TGBLERROR))
assert(NULL);
if (eParamOutputGetStatus != pProto->DeclareOutParameter("Get Status", CKPGUID_BOOL))
assert(NULL);
if (eBehInputStart != pProto->DeclareInput("InS tart"))
assert(NULL);
if (eBehOutputDone != pProto->DeclareOutput("Out Done"))
assert(NULL);
if (eBehOutputError != pProto->DeclareOutput("Out Error"))
assert(NULL);
// flags
pProto->SetFlags(CK_BEHAVIORPROTOTYPE_NORMAL);
// Set the behaviour function
pProto->SetFunction(BehaviourFunction);
// Everything must have gone OK, pass back Proto pointer to Virtools
*ppProto = pProto;
return err;
}
示例8: CreateCISIteratorBBProto
/*
*******************************************************************
* Function: CKERROR CreateCISIteratorBBProto( CKBehaviorPrototype** behaviorPrototypePtr )
*
* Description : The prototype creation function will be called the first time
* a behavior must be created to create the CKBehaviorPrototype
* that contains the description of the behavior.
*
* Parameters :
* behaviorPrototypePtr w Pointer to a CKBehaviorPrototype object that
* describes the behavior's internal structure
* and relationships with other objects.
*
* Returns : CKERROR
*
*******************************************************************
*/
CKERROR CreateCISIteratorBBProto(CKBehaviorPrototype **pproto)
{
CKBehaviorPrototype *proto = CreateCKBehaviorPrototype(GBL_CI_API_ENTRY("CISIterator"));
if(!proto) return CKERR_OUTOFMEMORY;
proto->DeclareInput("On/Reset");
proto->DeclareOutput("Exit On/Reset");
proto->DeclareInput("Loop In");
proto->DeclareOutput("Loop Out");
proto->DeclareOutParameter("value", CKPGUID_STRING,"-1");
proto->DeclareOutParameter("default value", CKPGUID_STRING,"-1");
proto->DeclareOutParameter("unique name", CKPGUID_STRING,"");
proto->DeclareOutParameter("description", CKPGUID_STRING,"-1");
proto->DeclareOutParameter("access flags", CIPRTFLAGSGUID,"");
proto->DeclareOutParameter("parameter type", CKPGUID_PARAMETERTYPE,"-1");
proto->DeclareOutParameter("ci db index", CKPGUID_INT,"-1");
proto->DeclareLocalParameter(NULL, CKPGUID_INT); // index
proto->DeclareLocalParameter(NULL, CKPGUID_INT); // cis size
proto->DeclareLocalParameter(NULL, CKPGUID_POINTER); // ciid list
proto->DeclareSetting("Read From Database", CKPGUID_BOOL,"FALSE");
proto->SetFlags(CK_BEHAVIORPROTOTYPE_NORMAL);
proto->SetBehaviorCallbackFct(CISIteratorCB);
proto->SetFunction(CISIteratorBB);
*pproto = proto;
return CK_OK;
}
示例9: CreateJD6SetParametersProto
//************************************
// Method: CreateJD6SetParametersProto
// FullName: CreateJD6SetParametersProto
// Access: public
// Returns: CKERROR
// Qualifier:
// Parameter: CKBehaviorPrototype **pproto
//************************************
CKERROR CreateJD6SetParametersProto(CKBehaviorPrototype **pproto)
{
CKBehaviorPrototype *proto = CreateCKBehaviorPrototype("PJD6SetParameters");
if(!proto) return CKERR_OUTOFMEMORY;
proto->DeclareInput("In0");
proto->DeclareOutput("Out0");
proto->SetBehaviorCallbackFct( JD6SetParametersCB );
proto->DeclareInParameter("Body B",CKPGUID_3DENTITY,"ball2");
proto->DeclareInParameter("Drive Linear Velocity",CKPGUID_VECTOR);
proto->DeclareInParameter("Drive Angular Velocity",CKPGUID_VECTOR);
proto->DeclareInParameter("Drive Position",CKPGUID_VECTOR);
proto->DeclareInParameter("Drive Orientation",CKPGUID_QUATERNION);
proto->DeclareInParameter("Ratio",CKPGUID_FLOAT,"0");
proto->SetFlags(CK_BEHAVIORPROTOTYPE_NORMAL);
proto->SetBehaviorFlags(CKBEHAVIOR_TARGETABLE);
proto->SetFunction(JD6SetParameters);
*pproto = proto;
return CK_OK;
}
示例10: CreateARTPlusPatternTransformationProto
CKERROR CreateARTPlusPatternTransformationProto(CKBehaviorPrototype** pproto)
{
CKBehaviorPrototype *proto = CreateCKBehaviorPrototype("Single Marker Transformation");
if(!proto) return CKERR_OUTOFMEMORY;
//--- Inputs declaration
proto->DeclareInput("In");
//--- Outputs declaration
proto->DeclareOutput("Out");
//----- Input Parameters Declaration
proto->DeclareInParameter("Object", CKPGUID_3DENTITY);
proto->DeclareInParameter("Pattern Number",CKPGUID_INT, "0");
proto->DeclareInParameter("Pattern Width (cm)", CKPGUID_FLOAT, "8.0");
//--- Output Parameters Declaration
proto->DeclareOutParameter("Position",CKPGUID_VECTOR);
proto->DeclareOutParameter("Quaternion",CKPGUID_QUATERNION);
proto->DeclareOutParameter("Marker ID",CKPGUID_INT, "-1");
proto->DeclareOutParameter("Detected",CKPGUID_BOOL, FALSE);
proto->DeclareOutParameter("Transformation Matrix",CKPGUID_MATRIX);
//---- Local Parameters Declaration
//---- Settings Declaration
proto->SetFlags(CK_BEHAVIORPROTOTYPE_NORMAL);
proto->SetBehaviorCallbackFct(ARTPlusPatternTransformationCB,CKCB_BEHAVIORBASE|CKCB_BEHAVIOREDITIONS|CKCB_BEHAVIORPAUSE|CKCB_BEHAVIORREADSTATE|CKCB_BEHAVIORRESET|CKCB_BEHAVIORACTIVATESCRIPT|CKCB_BEHAVIORDEACTIVATESCRIPT|CKCB_BEHAVIORRESUME|CKCB_BEHAVIORLOAD|CKCB_BEHAVIORNEWSCENE,NULL);
proto->SetFunction(ARTPlusPatternTransformation);
*pproto = proto;
return CK_OK;
}
示例11: CreateLogEntryProto
CKERROR CreateLogEntryProto(CKBehaviorPrototype **pproto)
{
CKBehaviorPrototype *proto = CreateCKBehaviorPrototype("pLogEvent");
if(!proto) return CKERR_OUTOFMEMORY;
proto->DeclareInput("In");
proto->DeclareInput("Off");
proto->DeclareOutput("Message");
proto->DeclareOutput("Error");
proto->DeclareOutput("Warning");
proto->DeclareOutput("Info");
proto->DeclareOutput("Trace");
proto->DeclareOutput("Debug");
proto->DeclareOutParameter("Entry",CKPGUID_STRING);
proto->DeclareOutParameter("Type",CKPGUID_INT);
proto->DeclareOutParameter("Component",CKPGUID_STRING);
proto->SetFlags(CK_BEHAVIORPROTOTYPE_NORMAL);
proto->SetBehaviorFlags((CK_BEHAVIOR_FLAGS)( CKBEHAVIOR_VARIABLEPARAMETERINPUTS ));
proto->SetFunction(LogEntry);
proto->SetBehaviorCallbackFct(LogEntryCB);
*pproto = proto;
return CK_OK;
}
示例12: CreatePMaterialIteratorProto
//************************************
// Method: CreatePMaterialIteratorProto
// FullName: CreatePMaterialIteratorProto
// Access: public
// Returns: CKERROR
// Qualifier:
// Parameter: CKBehaviorPrototype **pproto
//************************************
CKERROR CreatePMaterialIteratorProto(CKBehaviorPrototype **pproto)
{
CKBehaviorPrototype *proto = CreateCKBehaviorPrototype("PMaterialIterator");
if(!proto) return CKERR_OUTOFMEMORY;
proto->DeclareInput("In");
proto->DeclareInput("Next");
proto->DeclareOutput("Finish");
proto->DeclareOutput("Loop");
proto->DeclareLocalParameter("current result", CKPGUID_POINTER, "0");
proto->DeclareOutParameter("Index",CKPGUID_INT);
proto->DeclareOutParameter("XML Link",VTE_XML_MATERIAL_TYPE);
proto->DeclareOutParameter("Name",CKPGUID_STRING);
proto->DeclareOutParameter("Dynamic Friction",CKPGUID_FLOAT);
proto->DeclareOutParameter("Static Friction",CKPGUID_FLOAT);
proto->DeclareOutParameter("Restitution",CKPGUID_FLOAT);
proto->DeclareOutParameter("Dynamic Friction V",CKPGUID_FLOAT);
proto->DeclareOutParameter("Static Friction V",CKPGUID_FLOAT);
proto->DeclareOutParameter("Direction of Anisotropy ",CKPGUID_VECTOR);
proto->DeclareOutParameter("Friction Combine Mode",VTE_MATERIAL_COMBINE_MODE);
proto->DeclareOutParameter("Restitution Combine Mode",VTE_MATERIAL_COMBINE_MODE);
proto->DeclareOutParameter("Flags",VTF_MATERIAL_FLAGS);
proto->DeclareOutParameter("Result",VTS_MATERIAL);
proto->SetBehaviorCallbackFct( PMaterialIteratorCB );
proto->SetFlags(CK_BEHAVIORPROTOTYPE_NORMAL);
proto->SetBehaviorFlags(CKBEHAVIOR_TARGETABLE);
proto->SetFunction(PMaterialIterator);
*pproto = proto;
return CK_OK;
}
示例13: CreateRetrieveCIProto
CKERROR CreateRetrieveCIProto(CKBehaviorPrototype **pproto)
{
CKBehaviorPrototype *proto = CreateCKBehaviorPrototype(GBL_CI_API_ENTRY("RetrieveCI"));
if(!proto) return CKERR_OUTOFMEMORY;
proto->DeclareInput("Start");
proto->DeclareOutput("Success");
proto->DeclareOutput("Error");
proto->DeclareInParameter("Configurable Information ID", CKPGUID_INT);
proto->DeclareOutParameter("Configurable Information Value", CKPGUID_STRING);
proto->DeclareOutParameter("GetErrorCode", GUID_TGBLERROR);
proto->DeclareSetting("Get value as string",CKPGUID_BOOL,"FALSE");
proto->DeclareSetting("Output custom values",CKPGUID_BOOL,"FALSE");
proto->SetBehaviorFlags((CK_BEHAVIOR_FLAGS)( CKBEHAVIOR_VARIABLEPARAMETEROUTPUTS ));
proto->SetFlags(CK_BEHAVIORPROTOTYPE_NORMAL);
proto->SetBehaviorCallbackFct(RetrieveCICB);
proto->SetFunction(RetrieveCI);
*pproto = proto;
return CK_OK;
}
示例14: CreatePClothDetachFromShapeProto
//************************************
// Method: CreatePClothDetachFromShapeProto
// FullName: CreatePClothDetachFromShapeProto
// Access: public
// Returns: CKERROR
// Qualifier:
// Parameter: CKBehaviorPrototype **pproto
//************************************
CKERROR CreatePClothDetachFromShapeProto(CKBehaviorPrototype **pproto)
{
CKBehaviorPrototype *proto = CreateCKBehaviorPrototype("PClothDetachFromShape");
if(!proto) return CKERR_OUTOFMEMORY;
proto->DeclareInput("In");
proto->DeclareOutput("Out");
/*! \page PClothDetachFromShape
PClothDetachFromShape is categorized in \ref Clothes
<h3>Description</h3>
Apply to a <A HREF="Documentation.chm::/beobjects/1_ck3dentity.html">3DEntity</A><br>
Detaches the cloth from a shape it has been attached to before<br>
@see pCloth::detachFromShape()
<h3>Technical Information</h3>
\image html PClothDetachFromShape.png
<SPAN CLASS="in">In: </SPAN>triggers the process
<BR>
<SPAN CLASS="out">Out: </SPAN>is activated when the process is completed.
<BR>
<BR>
<SPAN CLASS="pin">Target: </SPAN>Target cloth reference.
<BR>
<BR>
<SPAN CLASS="pin">Shape Reference: </SPAN>Shape to which the cloth should be attached to.
<BR>
<BR>
<SPAN CLASS="pin">Attachment Flags: </SPAN>One or two way interaction, tearable or non-tearable
*/
proto->SetBehaviorCallbackFct( PClothDetachFromShapeCB );
proto->DeclareInParameter("Shape Reference",CKPGUID_3DENTITY);
proto->SetFlags(CK_BEHAVIORPROTOTYPE_NORMAL);
proto->SetBehaviorFlags(CKBEHAVIOR_TARGETABLE);
proto->SetFunction(PClothDetachFromShape);
*pproto = proto;
return CK_OK;
}
示例15: CreateJDestroyProto
//************************************
// Method: CreateJDestroyProto
// FullName: CreateJDestroyProto
// Access: public
// Returns: CKERROR
// Qualifier:
// Parameter: CKBehaviorPrototype **pproto
//************************************
CKERROR CreateJDestroyProto(CKBehaviorPrototype **pproto)
{
CKBehaviorPrototype *proto = CreateCKBehaviorPrototype("PJDestroy");
if(!proto) return CKERR_OUTOFMEMORY;
/*! \page PJDestroy
<br>
PJDestroy is categorized in \ref Joints
<br>
<br>See <A HREF="PJDestroy.cmo">PJDestroy.cmo</A>.
<h3>Description</h3>
Apply to a <A HREF="Documentation.chm::/beobjects/1_ck3dentity.html">3DEntity</A><br>
Deletes a joint, given by references and type.
<br>
<h3>Technical Information</h3>
\image html PJDestroy.png
<SPAN CLASS="in">In: </SPAN> triggers the process
<BR>
<SPAN CLASS="out">Out: </SPAN> is activated when the process is completed.
<BR>
<SPAN CLASS="pin">Body B: </SPAN> The second body. Leave blank to create a joint constraint with the world.
<BR>
<SPAN CLASS="pin">Joint Type:</SPAN> The joint type. This helps the building block to identify a joint constraint. As usual there can be only one joint of the type x between two bodies.
<BR>
<b>Sleeping:</b> This call wakes the actor(s) if they are sleeping.
Is utilizing #pRigidBody #pWorld #PhysicManager #pWorld::deleteJoint().<br>
*/
proto->DeclareInput("In");
proto->DeclareOutput("Out");
proto->SetBehaviorCallbackFct( JDestroyCB );
proto->DeclareInParameter("Body B",CKPGUID_3DENTITY,"ball2");
proto->DeclareInParameter("Type",VTE_JOINT_TYPE,"");
proto->SetFlags(CK_BEHAVIORPROTOTYPE_NORMAL);
proto->SetBehaviorFlags(CKBEHAVIOR_TARGETABLE);
proto->SetFunction(JDestroy);
*pproto = proto;
return CK_OK;
}