本文整理汇总了C++中CKParameterManager::GetParameterTypeDescription方法的典型用法代码示例。如果您正苦于以下问题:C++ CKParameterManager::GetParameterTypeDescription方法的具体用法?C++ CKParameterManager::GetParameterTypeDescription怎么用?C++ CKParameterManager::GetParameterTypeDescription使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CKParameterManager
的用法示例。
在下文中一共展示了CKParameterManager::GetParameterTypeDescription方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: InitInstance
/*
*******************************************************************
* Function: CKERROR InitInstance( CKContext* theContext )
*
* Description : If no manager is used in the plugin these functions
* are optional and can be exported. Virtools will call
* 'InitInstance' when loading the behavior library and
* 'ExitInstance' when unloading it. It is a good place
* to perform Attributes Types declaration, registering new
* enums or new parameter types.
*
* Paramters : CKContext* theContext
*
* Returns : CKERROR
*
*******************************************************************
*/
CKERROR InitInstance(CKContext* context)
{
// Enable logging in this module:
// In the ini function of your module you need to identify the module
// any VXLOG macro use in this module will output
// a string preceded by ["MyModuleName"]:LogString....
VXREGLOGMODULEEX("");
// Last we must precise where the logs should be put
// either in the ouput console of visual studio for example:
VXREGLOGDEBUG();
// in a file (with a eventual filter on what to output)...
//VXREGLOGFILEEX("MyLogFile",VxLog::VLALL,0,VxLogListener::DATEMILLI);
// or in a separate console window
//VXREGLOGCONSOLE();
// Register new custom types:
CKParameterManager* parameterManager = context->GetParameterManager();
CKERROR err = parameterManager->RegisterNewEnum(CKGUID_GBLLISTBOXSELECTIONTYPE, "GBLListBox Selection Type",
"No selection=0,Single selection=1,Multi-selection=2");
assert(err == CK_OK);
err = parameterManager->RegisterNewEnum(CKGUID_GBLFILESYSTEMBROWSEMODE, "GBLFileSystem Browse Mode",
"Files=0,Folders=1");
assert(err == CK_OK);
err = parameterManager->RegisterNewEnum(CKGUID_GBLTEXTEDITEDITMODE, "GBLTextEdit Edit Mode",
"Single line=0,Multiline=1");
assert(err == CK_OK);
// Hide the custom types
CKParameterTypeDesc* paramType;
paramType = parameterManager->GetParameterTypeDescription(CKGUID_GBLLISTBOXSELECTIONTYPE);
if (paramType)
paramType->dwFlags |= CKPARAMETERTYPE_HIDDEN;
paramType = parameterManager->GetParameterTypeDescription(CKGUID_GBLFILESYSTEMBROWSEMODE);
if (paramType)
paramType->dwFlags |= CKPARAMETERTYPE_HIDDEN;
paramType = parameterManager->GetParameterTypeDescription(CKGUID_GBLTEXTEDITEDITMODE);
if (paramType)
paramType->dwFlags |= CKPARAMETERTYPE_HIDDEN;
return CK_OK;
}
示例2: PluginCallback
void PluginCallback(PluginInfo::CALLBACK_REASON reason,PluginInterface* plugininterface)
{
s_Plugininterface = plugininterface;
CKContext *ctx = s_Plugininterface->GetCKContext();
//Logger::ShowDebugMessage(ctx,Logger::ELOGERROR,"notif");
/*
switch(plugininterface->GetLastNotification()->messageID)
{
// Logger::ShowDebugMessage(ctx,Logger::ELOGERROR,"notif");
//CUIK_NOTIFICATION_PRESEQUENCEDELETED
} */
switch(reason)
{
case PluginInfo::CR_LOAD:
{
//////////////////////////////////////////////////////////////////////////
//
// this attachs the custom dialog to the Configurable Information"(CGBLCI).
CKParameterManager *pm = ctx->GetParameterManager();
CKParameterTypeDesc *param_desc = pm->GetParameterTypeDescription(CIPARAMETERGUID);
if ( pm && param_desc )
{
param_desc->UICreatorFunction = ConfigurableInformationUIFunc;
}
// this attachs the gui dialog for CKPGUID_STRING to the GBLCO_FILE_TYPE.
CKParameterTypeDesc *param_descFType = pm->GetParameterTypeDescription(GBLCO_FILE_TYPE);
CKParameterTypeDesc *param_descString = pm->GetParameterTypeDescription(CKPGUID_STRING);
if ( param_descFType )
{
param_descFType->UICreatorFunction = param_descString->UICreatorFunction;
}
}break;
}
}
示例3: PluginCallback
void PluginCallback(PluginInfo::CALLBACK_REASON reason,PluginInterface* plugininterface)
{
s_Plugininterface = plugininterface;
CKContext *ctx = s_Plugininterface->GetCKContext();
switch(reason)
{
case PluginInfo::CR_LOAD:
{
//////////////////////////////////////////////////////////////////////////
//
// this attachs the custom dialog to the Configurable Information"(CGBLCI).
CKParameterManager *pm = ctx->GetParameterManager();
CKParameterTypeDesc *param_desc = pm->GetParameterTypeDescription(CKGUID_CGBLM_PARAMETER);
if ( pm && param_desc )
{
param_desc->UICreatorFunction = ConfigurableInformationUIFunc;
}
/*
// this attachs the gui dialog for CKPGUID_STRING to the GBLCO_FILE_TYPE.
CKParameterTypeDesc *param_descFType = pm->GetParameterTypeDescription(GBLCO_FILE_TYPE);
CKParameterTypeDesc *param_descString = pm->GetParameterTypeDescription(CKPGUID_STRING);
if ( param_descFType )
{
param_descFType->UICreatorFunction = param_descString->UICreatorFunction;
} */
}break;
}
}
示例4: InitInstance
/*
*******************************************************************
* Function: CKERROR InitInstance( CKContext* theContext )
*
* Description : If no manager is used in the plugin these functions
* are optional and can be exported. Virtools will call
* 'InitInstance' when loading the behavior library and
* 'ExitInstance' when unloading it. It is a good place
* to perform Attributes Types declaration, registering new
* enums or new parameter types.
*
* Parameters : CKContext* theContext
*
*
* Returns : CKERROR
*
*******************************************************************
*/
CKERROR InitInstance( CKContext* theContext )
{
new CGBLProfileManager( theContext );
CKParameterManager* pm = theContext->GetParameterManager();
//--- TODO: A Delete function needs to be registered, until then these will leak!
CKParameterTypeDesc pProfile;
pProfile.Guid = GUID_PROFILE_ID;
pProfile.DerivedFrom = CKGUID(0,0);
pProfile.TypeName = "TGBLProfileID";
pProfile.DefaultSize = sizeof(CGBLProfileID);
pProfile.CreateDefaultFunction = CKProfileCreator;
pProfile.StringFunction = CKProfileStringFunc;
//pProfile.UICreatorFunction =
pm->RegisterParameterType(&pProfile);
CKParameterTypeDesc pTeam;
pTeam.Guid = GUID_TEAM_ID;
pTeam.DerivedFrom = GUID_PROFILE_ID;
pTeam.TypeName = "TGBLTeamID";
pTeam.DefaultSize = sizeof(CGBLTeamID);
pTeam.CreateDefaultFunction = CKTeamCreator;
pTeam.StringFunction = CKProfileStringFunc;
//pTeam.UICreatorFunction =
pm->RegisterParameterType(&pTeam);
CKParameterTypeDesc pUser;
pUser.Guid = GUID_USER_ID;
pUser.DerivedFrom = GUID_PROFILE_ID;
pUser.TypeName = "TGBLUserID";
pUser.DefaultSize = sizeof(CGBLUserID);
pUser.CreateDefaultFunction = CKUserCreator;
pUser.StringFunction = CKProfileStringFunc;
//pUser.UICreatorFunction =
pm->RegisterParameterType(&pUser);
// Prevent designer from creating a Profile ID as this is an invalid type.
CKParameterTypeDesc* param_type;
param_type = pm->GetParameterTypeDescription(GUID_PROFILE_ID);
if (param_type) param_type->dwFlags|=CKPARAMETERTYPE_HIDDEN;
CGBLTypeHandler THandler(theContext);
XString typeList;
THandler.GetTypesList(typeList);
pm->RegisterNewEnum(EGBLProfileFieldTypeGUID,
"EGBLProfileFieldType",
typeList.Str());
pm->RegisterNewEnum(EGBLUserTypeGUID,
"EGBLUserType",
"Player=0,Facilitator=1");
return CK_OK;
}
示例5: Init
CKERROR CGBLCommandControllerMgr::Init( CKContext* context )
{
CKParameterManager* parameterManager = context->GetParameterManager();
if(parameterManager)
{
parameterManager->RegisterNewEnum (GUID_EGBLTARGET,"EGBLFCTarget","Untargeted=0,Player=1,Team=2");
CKParameterTypeDesc *descString = parameterManager->GetParameterTypeDescription(CKPGUID_STRING);
CKParameterTypeDesc desc;
//--- String coming from designer defined array of strings
desc.TypeName = "TGBLFCStringFromList";
desc.Guid = GUID_GBLSTRINGFROMLIST;
desc.DerivedFrom = CKPGUID_STRING;
desc.Valid = descString->Valid;
desc.DefaultSize = descString->DefaultSize;
desc.CreateDefaultFunction = descString->CreateDefaultFunction;
desc.DeleteFunction = descString->DeleteFunction;
desc.SaveLoadFunction = descString->SaveLoadFunction;
desc.StringFunction = descString->StringFunction;
desc.UICreatorFunction = descString->UICreatorFunction;
desc.dwParam = descString->dwParam;
desc.dwFlags = descString->dwFlags;
desc.Cid = descString->Cid;
desc.CopyFunction = descString->CopyFunction;
parameterManager->RegisterParameterType(&desc);
//--- String that is a filenames
desc.TypeName = "TGBLFCFile";
desc.Guid = GUID_GBLFILE;
desc.DerivedFrom = CKPGUID_STRING;
desc.Valid = descString->Valid;
desc.DefaultSize = descString->DefaultSize;
desc.CreateDefaultFunction = descString->CreateDefaultFunction;
desc.DeleteFunction = descString->DeleteFunction;
desc.SaveLoadFunction = descString->SaveLoadFunction;
desc.StringFunction = descString->StringFunction;
desc.UICreatorFunction = descString->UICreatorFunction;
desc.dwParam = descString->dwParam;
desc.dwFlags = descString->dwFlags;
desc.Cid = descString->Cid;
desc.CopyFunction = descString->CopyFunction;
parameterManager->RegisterParameterType(&desc);
}
return CK_OK;
}
示例6: _RegisterBodyParameterFunctions
void PhysicManager::_RegisterBodyParameterFunctions()
{
return;
CKContext* ctx = GetContext();
CKParameterManager *pm = ctx->GetParameterManager();
CKParameterTypeDesc *param_desc = pm->GetParameterTypeDescription(VTF_PHYSIC_BODY_COMMON_SETTINGS);
if( !param_desc ) return;
if (param_desc->CreateDefaultFunction!=0)
{
xLogger::xLog(ELOGERROR,E_LI_AGEIA,"has function");
bodyCreateFuncOld = param_desc->CreateDefaultFunction;
param_desc->CreateDefaultFunction = (CK_PARAMETERCREATEDEFAULTFUNCTION)bodyDefaultFunctionMerged;
}
//param_desc->UICreatorFunction = CKActorUIFunc;
//param_desc->UICreatorFunction = CKDoubleUIFunc;
}
示例7: _RegisterBodyParameters
void PhysicManager::_RegisterBodyParameters()
{
CKParameterManager *pm = m_Context->GetParameterManager();
CKAttributeManager* attman = m_Context->GetAttributeManager();
int attRef=0;
//################################################################
//
// Geometry Related
//
// Object and Axis Related Length :
REGISTER_CUSTOM_STRUCT("pAxisReferencedLength",PS_AXIS_REFERENCED_LENGTH,VTS_AXIS_REFERENCED_LENGTH,axisReferencedLength,false);
REGISTER_CUSTOM_STRUCT("pCustomConvexCylinder",PS_CUSTOM_CONVEX_CYLINDER_DESCR,VTS_PHYSIC_CONVEX_CYLDINDER_WHEEL_DESCR,customConvexCylinder,false);
REGISTER_STRUCT_AS_ATTRIBUTE("pCustomConvexCylinder",PS_CUSTOM_CONVEX_CYLINDER_DESCR,PHYSIC_BODY_CAT,VTS_PHYSIC_CONVEX_CYLDINDER_WHEEL_DESCR,CKCID_3DOBJECT,customConvexCylinder,true);
REGISTER_CUSTOM_STRUCT("pCapsule",PS_CAPSULE,VTS_CAPSULE_SETTINGS_EX,customCapsule,false);
REGISTER_STRUCT_AS_ATTRIBUTE("pCapsule",PS_CAPSULE,PHYSIC_BODY_CAT,VTS_CAPSULE_SETTINGS_EX,CKCID_3DOBJECT,customCapsule,true);
//////////////////////////////////////////////////////////////////////////
//
// Collision Common Structs :
//
pm->RegisterNewFlags(VTF_COLLISIONS_EVENT_MASK,"pCollisionEventMask","Ignore=1,Start Touch=2,End Touch=4,Touch=8,Impact=16,Roll=32,Slide=64,Forces=128,Start Touch Force Threshold=256,End Touch Force Threshold=512,Touch Force Threshold=1024,Contact Modification=65536");
pm->RegisterNewFlags(VTF_WHEEL_CONTACT_MODIFY_FLAGS,"pWheelContactModifyFlags","Point=1,Normal=2,Position=4,Force=8,Material=16");
pm->RegisterNewFlags(VTF_CONTACT_MODIFY_FLAGS,"pContactModifyFlags","None=0,Min Impulse=1,Max Impulse=2,Error=4,Target=8,Local Position0=16,Local Position1=32,Local Orientation0=64,Local Orientation1=128,Static Friction0=256,Static Friction1=512,Dynamic Friction0=1024,Dynamic Friction1=2048,Restitution=4096,Force32=2147483648");
pm->RegisterNewFlags(VTF_CONVEX_FLAGS,"pConvexFlags","Flip Normals=1,16 Bit Indices=2,Compute Convex=4,Inflate Convex=8,Uncompressed Normals=64");
pm->RegisterNewFlags(VTF_TRIGGER,"pTriggerFlags","Disable=8,OnEnter=1,OnLeave=2,OnStay=4");
pm->RegisterNewEnum(VTE_FILTER_OPS,"pFilterOp","And=0,Or=1,Xor=2,Nand=3,Nor=4,NXor=5");
pm->RegisterNewFlags(VTE_FILTER_MASK,"pFilterMask","0,1,2,3");
pm->RegisterNewStructure(VTS_FILTER_GROUPS,"pFilterGroups","bits0,bits1,bits2,bits3",VTE_FILTER_MASK,VTE_FILTER_MASK,VTE_FILTER_MASK,VTE_FILTER_MASK);
pm->RegisterNewFlags(VTF_SHAPES_TYPE,"pShapesTypes","Static=1,Dynamic=2");
//////////////////////////////////////////////////////////////////////////
//
// Body Sub Structs :
//
pm->RegisterNewFlags(VTF_BODY_FLAGS,"pBFlags","Moving Object=1,World Gravity=2,Collision=4,Kinematic Object=8,Sub Shape=16,Hierarchy=32,Add Attributes=64,Trigger Shape=128,Deformable=256,Collision Notify=512,Collisions Force=1024,Contact Modify=2048,Sleep=4096");
pm->RegisterNewFlags(VTF_BODY_TRANS_FLAGS,"pBTFlags","FrozenPositionX=2,FrozenPositionY=4,FrozenPositionZ=8,FrozenRotationX=16,FrozenRotationY=32,FrozenRotationZ=64");
pm->RegisterNewEnum(VTE_COLLIDER_TYPE,"pBHullType","Sphere=0,Box=1,Capsule=2,Plane=3,Mesh=4,Convex Mesh=5,Height Field=6,Wheel=7,Cloth=8,Convex Cylinder");
pm->RegisterNewStructure(VTS_PHYSIC_PARAMETER,"pObject", "Geometry,Physic Flags,Density,Skin Width,Mass Offset,Pivot Offset,Hierarchy,World,New Density,Total Mass,Collision Group",VTE_COLLIDER_TYPE,VTF_BODY_FLAGS,CKPGUID_FLOAT,CKPGUID_FLOAT,CKPGUID_VECTOR,CKPGUID_VECTOR,CKPGUID_BOOL,CKPGUID_3DENTITY,CKPGUID_FLOAT,CKPGUID_FLOAT,CKPGUID_INT);
int currentAttributeType = -1;
att_physic_object= attman->RegisterNewAttributeType("Object",VTS_PHYSIC_PARAMETER,CKCID_3DOBJECT);
attman->SetAttributeDefaultValue(att_physic_object,"1;Moving Object,World Gravity,Enabled,Collision;1;-1;0,0,0;0,0,0;FALSE,pDefaultWorld");
attman->SetAttributeCategory(att_physic_object,"Physic");
pm->RegisterNewEnum(VTE_BODY_FORCE_MODE,"pBForceMode","Force=0,Impulse=1,Velocity Change=2,Smooth Impulse=3,Smooth Velocity Change=4,Acceleration=5");
attman->SetAttributeCategory(att_physic_limit,"Physic");
//////////////////////////////////////////////////////////////////////////
//
// Capsule :
//
pm->RegisterNewStructure(VTS_CAPSULE_SETTINGS,"Capsule", "Local Length Axis,Local Radius Axis,Length,Radius",CKPGUID_AXIS,CKPGUID_AXIS,CKPGUID_FLOAT,CKPGUID_FLOAT);
CKParameterTypeDesc* param_type=pm->GetParameterTypeDescription(VTS_CAPSULE_SETTINGS);
if (param_type) param_type->dwFlags|=CKPARAMETERTYPE_HIDDEN;
/*
att_capsule = attman->RegisterNewAttributeType("Capsule",VTS_CAPSULE_SETTINGS,CKCID_BEOBJECT);
attman->SetAttributeDefaultValue(att_capsule,"1;0;-1.0;-1.0f");
attman->SetAttributeCategory(att_capsule,"Physic");
*/
//----------------------------------------------------------------
//
// copy flags
//
pm->RegisterNewFlags(VTF_PHYSIC_ACTOR_COPY_FLAGS,"pBCopyFlags","Physics=1,Shared=2,Pivot=4,Mass=8,Collision=16,CCD=32,Material=64,Optimization=128,Capsule=256,Convex Cylinder=512,Force=1024,Velocities=2048,Joints=4096,Limit Planes=8192,Swap Joint References=16384,Override Body Flags=32768,Copy IC=65536,Restore IC=131072");
/*
param_type=pm->GetParameterTypeDescription(VTF_PHYSIC_ACTOR_COPY_FLAGS);
if (param_type) param_type->dwFlags|=CKPARAMETERTYPE_HIDDEN;
if (param_type) param_type->dwFlags|=CKPARAMETERTYPE_TOSAVE;
*/
//////////////////////////////////////////////////////////////////////////
//
// Body Collision Setup
//
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
//.........这里部分代码省略.........
示例8: _RegisterVehicleParameters
void PhysicManager::_RegisterVehicleParameters()
{
CKParameterManager *pm = m_Context->GetParameterManager();
CKAttributeManager* attman = m_Context->GetAttributeManager();
CKParameterTypeDesc* param_type = NULL;
//################################################################
//
// Tire Function
//
pm->RegisterNewStructure(VTF_VWTIRE_SETTINGS,"pTireFunction",
"XML Link,Extremum Slip,Extremum Value,Asymptote Slip,Asymptote Value,Stiffness Factor",
VTE_XML_TIRE_SETTINGS,CKPGUID_FLOAT,CKPGUID_FLOAT,CKPGUID_FLOAT,CKPGUID_FLOAT,CKPGUID_FLOAT);
//################################################################
//
// Motor related
//
pm->RegisterNewStructure(VTS_VMOTOR_ENTRY,"RPM / Newton Meter","RPM,Newton Meter",CKPGUID_FLOAT,CKPGUID_FLOAT);
param_type=pm->GetParameterTypeDescription(VTS_VMOTOR_ENTRY);
if (param_type) param_type->dwFlags|=CKPARAMETERTYPE_HIDDEN;
pm->RegisterNewStructure(VTS_VMOTOR_TVALUES,"pVehicleMotor Torques","1,2,3,4,5,6,7", VTS_VMOTOR_ENTRY,VTS_VMOTOR_ENTRY, VTS_VMOTOR_ENTRY,VTS_VMOTOR_ENTRY, VTS_VMOTOR_ENTRY,VTS_VMOTOR_ENTRY, VTS_VMOTOR_ENTRY);
pm->RegisterNewStructure(VTS_VGEAR_RATIO_ENTRY,"Gear / Ratio","Gear,Ratio",CKPGUID_INT,CKPGUID_FLOAT);
param_type=pm->GetParameterTypeDescription(VTS_VGEAR_RATIO_ENTRY);
if (param_type) param_type->dwFlags|=CKPARAMETERTYPE_HIDDEN;
pm->RegisterNewStructure(VTS_VGEAR_RATIOS,"pVehicleGear List","1,2,3,4,5,6,7", VTS_VGEAR_RATIO_ENTRY,VTS_VGEAR_RATIO_ENTRY, VTS_VGEAR_RATIO_ENTRY,VTS_VGEAR_RATIO_ENTRY, VTS_VGEAR_RATIO_ENTRY,VTS_VGEAR_RATIO_ENTRY, VTS_VGEAR_RATIO_ENTRY);
//################################################################
//
// Vehicle Common
//
pm->RegisterNewFlags(VTF_VSTATE_FLAGS,"pVehicleStateFlags","Is Moving=1,Is Accelerated=2,Is Accelerated Forward=4,Is Accelerated Backward=8,All Wheels On Ground=16,Is Falling=32,Handbrake=64,Is Braking=128,Is Steering=256,Has Gearbox=512,Has Motor=1024");
pm->RegisterNewEnum(VTE_BRAKE_LEVEL,"pVehicleBreakLevel","No Break=-1,Small=0,Medium=1,High=2");
pm->RegisterNewEnum(VTE_BRAKE_XML_LINK,"pVehicleXMLBrakeSettings","Stub=1");
pm->RegisterNewEnum(VTE_VEHICLE_XML_LINK,"pVehicleXMLLink","Stub=1");
pm->RegisterNewFlags(VTF_BRAKE_FLAGS,"pVehicleBreakFlags","Use Table=1,Auto Break=2");
REGISTER_CUSTOM_STRUCT("pVehicleBreakTable",E_VBT_STRUCT,VTS_BRAKE_TABLE,breakTable,FALSE);
//################################################################
//
// Wheel
//
REGISTER_CUSTOM_STRUCT("pWheelContactData",E_WCD_STRUCT,VTS_WHEEL_CONTACT,myStructWheelContactData,FALSE);
pm->RegisterNewFlags(VTS_PHYSIC_WHEEL_FLAGS,"pWheelFlags","Steerable Input=1,Steerable Auto=2,Affected By Handbrake=4,Accelerated=8,Controlled by Vehicle=16,Affected by Differential=32,Ignore Tire Function=64");
//pm->RegisterNewFlags(VTS_PHYSIC_WHEEL_FLAGS,"pWheelFlags","Steerable Input=1,Steerable Auto=2,Affected By Handbrake=4,Accelerated=8,Build Lower Half=256,Use Wheel Shape=512,Controlled by Vehicle");
pm->RegisterNewFlags(VTF_VWSHAPE_FLAGS,"pWheelShapeFlags","AxisContactNormal=1,InputLateralSlip=2,InputLongitudinal=4,UnscaledSpringBehavior=8,EmulateLegacyWheel=32,ClampedFriction=64");
pm->RegisterNewStructure(VTS_PHYSIC_WHEEL_DESCR,"pWheelDescr",
"XML Link,Suspension,Spring Restitution,Spring Bias,Spring Damping,Maximum Brake Force,Friction To Side,Friction To Front,Inverse Wheel Mass,Wheel Flags,Wheel Shape Flags,Lateral Force Settings,Longitudinal Force Settings",
VTE_XML_WHEEL_SETTINGS,
CKPGUID_FLOAT,
CKPGUID_FLOAT,
CKPGUID_FLOAT,
CKPGUID_FLOAT,
CKPGUID_FLOAT,
CKPGUID_FLOAT,
CKPGUID_FLOAT,
CKPGUID_FLOAT,
VTS_PHYSIC_WHEEL_FLAGS,
VTF_VWSHAPE_FLAGS,
VTF_VWTIRE_SETTINGS,
VTF_VWTIRE_SETTINGS);
att_wheelDescr = attman->RegisterNewAttributeType("pWheel",VTS_PHYSIC_WHEEL_DESCR,CKCID_BEOBJECT);
attman->SetAttributeCategory(att_wheelDescr ,"Physic");
}