Rigs of Rods 2026.01
Soft-body Physics Simulation
Loading...
Searching...
No Matches
ActorAngelscriptGeneric.cpp
Go to the documentation of this file.
1/*
2 This source file is part of Rigs of Rods
3 Copyright 2005-2012 Pierre-Michel Ricordel
4 Copyright 2007-2012 Thomas Fischer
5 Copyright 2013-2022 Petr Ohlidal
6
7 For more information, see http://www.rigsofrods.org/
8
9 Rigs of Rods is free software: you can redistribute it and/or modify
10 it under the terms of the GNU General Public License version 3, as
11 published by the Free Software Foundation.
12
13 Rigs of Rods is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with Rigs of Rods. If not, see <http://www.gnu.org/licenses/>.
20*/
21
22#include "../../autowrapper/aswrappedcall.h"
23#include "Actor.h"
24#include "AngelScriptBindings.h"
25#include "ScriptEngine.h"
26#include "ScriptUtils.h"
27#include "SimData.h"
28#include <angelscript.h>
29
30using namespace AngelScript;
31
32static CScriptArray* getManagedMaterialNames(RoR::Actor* self)
33{
34 return RoR::VectorToScriptArray(self->getManagedMaterialNames(), "string");
35}
36
37void RoR::RegisterActorGeneric(asIScriptEngine *engine)
38{
39 int result;
40
41 // class Actor (historically Beam)
42 Actor::RegisterRefCountingObjectGeneric(engine, "BeamClass");
43 ActorPtr::RegisterRefCountingObjectPtrGeneric(engine, "BeamClassPtr", "BeamClass");
44
45 // - physics state (PLEASE maintain the same order as 'Actor.h' and 'doc/angelscript/.../BeamClass.h')
46 result = engine->RegisterObjectMethod("BeamClass", "TruckState getTruckState()", WRAP_MFN(Actor,getTruckState), asCALL_GENERIC); ROR_ASSERT(result>=0);
47 result = engine->RegisterObjectMethod("BeamClass", "vector3 getPosition()", WRAP_MFN(Actor,getPosition), asCALL_GENERIC); ROR_ASSERT(result>=0);
48 /*alias:*/result = engine->RegisterObjectMethod("BeamClass", "vector3 getVehiclePosition()", WRAP_MFN(Actor,getPosition), asCALL_GENERIC); ROR_ASSERT(result>=0);
49 result = engine->RegisterObjectMethod("BeamClass", "float getRotation()", WRAP_MFN(Actor,getRotation), asCALL_GENERIC); ROR_ASSERT(result>=0);
50 /*alias:*/result = engine->RegisterObjectMethod("BeamClass", "float getHeadingDirectionAngle()", WRAP_MFN(Actor,getRotation), asCALL_GENERIC); ROR_ASSERT(result>=0);
51 result = engine->RegisterObjectMethod("BeamClass", "quaternion getOrientation()", WRAP_MFN(Actor,getOrientation), asCALL_GENERIC); ROR_ASSERT(result>=0);
52 result = engine->RegisterObjectMethod("BeamClass", "float getSpeed()", WRAP_MFN(Actor,getSpeed), asCALL_GENERIC); ROR_ASSERT(result>=0);
53 result = engine->RegisterObjectMethod("BeamClass", "vector3 getGForces()", WRAP_MFN(Actor,getGForces), asCALL_GENERIC); ROR_ASSERT(result>=0);
54 result = engine->RegisterObjectMethod("BeamClass", "float getTotalMass(bool)", WRAP_MFN(Actor,getTotalMass), asCALL_GENERIC); ROR_ASSERT(result>=0);
55 result = engine->RegisterObjectMethod("BeamClass", "float getDryMass()", WRAP_MFN(Actor, getDryMass), asCALL_GENERIC); ROR_ASSERT(result >= 0);
56 result = engine->RegisterObjectMethod("BeamClass", "float getLoadedMass()", WRAP_MFN(Actor, getLoadedMass), asCALL_GENERIC); ROR_ASSERT(result >= 0);
57 result = engine->RegisterObjectMethod("BeamClass", "float getInitialDryMass()", WRAP_MFN(Actor, getInitialDryMass), asCALL_GENERIC); ROR_ASSERT(result >= 0);
58 result = engine->RegisterObjectMethod("BeamClass", "float getInitialLoadedMass()", WRAP_MFN(Actor, getInitialLoadedMass), asCALL_GENERIC); ROR_ASSERT(result >= 0);
59 result = engine->RegisterObjectMethod("BeamClass", "int getNodeCount()", WRAP_MFN(Actor,getNodeCount), asCALL_GENERIC); ROR_ASSERT(result>=0);
60 result = engine->RegisterObjectMethod("BeamClass", "vector3 getNodePosition(int)", WRAP_MFN(Actor, getNodePosition), asCALL_GENERIC); ROR_ASSERT(result>=0);
61 result = engine->RegisterObjectMethod("BeamClass", "float getNodeInitialMass(int)", WRAP_MFN(Actor, getNodeInitialMass), asCALL_GENERIC); ROR_ASSERT(result>=0);
62 result = engine->RegisterObjectMethod("BeamClass", "float getNodeMass(int)", WRAP_MFN(Actor, getNodeMass), asCALL_GENERIC); ROR_ASSERT(result >= 0);
63 result = engine->RegisterObjectMethod("BeamClass", "vector3 getNodeVelocity(int)", WRAP_MFN(Actor, getNodeVelocity), asCALL_GENERIC); ROR_ASSERT(result>=0);
64 result = engine->RegisterObjectMethod("BeamClass", "vector3 getNodeForces(int)", WRAP_MFN(Actor, getNodeForces), asCALL_GENERIC); ROR_ASSERT(result >= 0);
65 result = engine->RegisterObjectMethod("BeamClass", "void getNodeMassOptions(int, bool&inout, bool&inout)", WRAP_MFN(Actor, getNodeMassOptions), asCALL_GENERIC); ROR_ASSERT(result >= 0);
66 result = engine->RegisterObjectMethod("BeamClass", "bool isNodeWheelRim(int)", WRAP_MFN(Actor,isNodeWheelRim), asCALL_GENERIC); ROR_ASSERT(result>=0);
67 result = engine->RegisterObjectMethod("BeamClass", "bool isNodeWheelTire(int)", WRAP_MFN(Actor,isNodeWheelTire), asCALL_GENERIC); ROR_ASSERT(result>=0);
68 result = engine->RegisterObjectMethod("BeamClass", "int getWheelNodeCount()", WRAP_MFN(Actor,getWheelNodeCount), asCALL_GENERIC); ROR_ASSERT(result>=0);
69 result = engine->RegisterObjectMethod("BeamClass", "float getWheelSpeed()", WRAP_MFN(Actor,getWheelSpeed), asCALL_GENERIC); ROR_ASSERT(result>=0);
70 result = engine->RegisterObjectMethod("BeamClass", "void reset(bool)", WRAP_MFN(Actor,reset), asCALL_GENERIC); ROR_ASSERT(result>=0);
71 result = engine->RegisterObjectMethod("BeamClass", "int getShockCount()", WRAP_MFN(Actor,getShockCount), AngelScript::asCALL_GENERIC); ROR_ASSERT(result>=0);
72 result = engine->RegisterObjectMethod("BeamClass", "float getShockSpringRate(int)", WRAP_MFN(Actor,getShockSpringRate), AngelScript::asCALL_GENERIC); ROR_ASSERT(result>=0);
73 result = engine->RegisterObjectMethod("BeamClass", "float getShockDamping(int)", WRAP_MFN(Actor,getShockDamping), AngelScript::asCALL_GENERIC); ROR_ASSERT(result>=0);
74 result = engine->RegisterObjectMethod("BeamClass", "float getShockVelocity(int)", WRAP_MFN(Actor,getShockVelocity), AngelScript::asCALL_GENERIC); ROR_ASSERT(result>=0);
75 result = engine->RegisterObjectMethod("BeamClass", "int getShockNode1(int)", WRAP_MFN(Actor, getShockNode1), AngelScript::asCALL_GENERIC); ROR_ASSERT(result >= 0);
76 result = engine->RegisterObjectMethod("BeamClass", "int getShockNode2(int)", WRAP_MFN(Actor, getShockNode2), AngelScript::asCALL_GENERIC); ROR_ASSERT(result >= 0);
77 result = engine->RegisterObjectMethod("BeamClass", "float getAirbrakeIntensity()", WRAP_MFN(Actor,getAirbrakeIntensity), asCALL_GENERIC); ROR_ASSERT(result>=0);
78 result = engine->RegisterObjectMethod("BeamClass", "int getAircraftFlaps()", WRAP_MFN(Actor,getAircraftFlaps), asCALL_GENERIC); ROR_ASSERT(result>=0);
79 result = engine->RegisterObjectMethod("BeamClass", "void wakeUp()", WRAP_MFN(Actor, wakeUp), asCALL_GENERIC); ROR_ASSERT(result >= 0);
80 result = engine->RegisterObjectMethod("BeamClass", "void sendToSleep()", WRAP_MFN(Actor, sendToSleep), asCALL_GENERIC); ROR_ASSERT(result >= 0);
81
82 // - physics editing (PLEASE maintain the same order as 'Actor.h' and 'doc/angelscript/.../BeamClass.h')
83 result = engine->RegisterObjectMethod("BeamClass", "void scaleTruck(float)", WRAP_MFN(Actor,scaleTruck), asCALL_GENERIC); ROR_ASSERT(result>=0);
84 result = engine->RegisterObjectMethod("BeamClass", "void setMass(float)", WRAP_MFN(Actor,setMass), asCALL_GENERIC); ROR_ASSERT(result>=0);
85 result = engine->RegisterObjectMethod("BeamClass", "void setLoadedMass(float)", WRAP_MFN(Actor,setLoadedMass), asCALL_GENERIC); ROR_ASSERT(result>=0);
86 result = engine->RegisterObjectMethod("BeamClass", "void setNodeMass(int, float)", WRAP_MFN(Actor, setNodeMass), asCALL_GENERIC); ROR_ASSERT(result >= 0);
87 result = engine->RegisterObjectMethod("BeamClass", "void setNodeMassOptions(int, bool, bool)", WRAP_MFN(Actor, setNodeMassOptions), asCALL_GENERIC); ROR_ASSERT(result >= 0);
88 result = engine->RegisterObjectMethod("BeamClass", "void setSimAttribute(ActorSimAttr, float)", WRAP_MFN(Actor, setSimAttribute), asCALL_GENERIC); ROR_ASSERT(result >= 0);
89 result = engine->RegisterObjectMethod("BeamClass", "void setIndexedSimAttribute(ActorSimAttr, float, int)", WRAP_MFN(Actor, setIndexedSimAttribute), asCALL_GENERIC); ROR_ASSERT(result >= 0);
90 result = engine->RegisterObjectMethod("BeamClass", "float getSimAttribute(ActorSimAttr)", WRAP_MFN(Actor, getSimAttribute), asCALL_GENERIC); ROR_ASSERT(result >= 0);
91 result = engine->RegisterObjectMethod("BeamClass", "float getIndexedSimAttribute(ActorSimAttr, int)", WRAP_MFN(Actor, getIndexedSimAttribute), asCALL_GENERIC); ROR_ASSERT(result >= 0);
92 result = engine->RegisterObjectMethod("BeamClass", "void recalculateNodeMasses()", WRAP_MFN(Actor,recalculateNodeMasses), asCALL_GENERIC); ROR_ASSERT(result>=0);
93 result = engine->RegisterObjectMethod("BeamClass", "void setAirbrakeIntensity(float)", WRAP_MFN(Actor,setAirbrakeIntensity), asCALL_GENERIC); ROR_ASSERT(result>=0);
94 result = engine->RegisterObjectMethod("BeamClass", "void setAircraftFlaps(int)", WRAP_MFN(Actor,setAircraftFlaps), asCALL_GENERIC); ROR_ASSERT(result>=0);
95
96 // - user interaction (PLEASE maintain the same order as 'Actor.h' and 'doc/angelscript/.../BeamClass.h')
97 result = engine->RegisterObjectMethod("BeamClass", "bool getParkingBrake()", WRAP_MFN(Actor, getParkingBrake), asCALL_GENERIC); ROR_ASSERT(result >= 0);
98 result = engine->RegisterObjectMethod("BeamClass", "bool getTractionControl()", WRAP_MFN(Actor, getTractionControl), asCALL_GENERIC); ROR_ASSERT(result >= 0);
99 result = engine->RegisterObjectMethod("BeamClass", "bool getAntiLockBrake()", WRAP_MFN(Actor, getAntiLockBrake), asCALL_GENERIC); ROR_ASSERT(result >= 0);
100 result = engine->RegisterObjectMethod("BeamClass", "bool getCruiseControl()", WRAP_MFN(Actor, getCruiseControl), asCALL_GENERIC); ROR_ASSERT(result >= 0);
101 result = engine->RegisterObjectMethod("BeamClass", "void parkingbrakeToggle()", WRAP_MFN(Actor,parkingbrakeToggle), asCALL_GENERIC); ROR_ASSERT(result>=0);
102 result = engine->RegisterObjectMethod("BeamClass", "void tractioncontrolToggle()", WRAP_MFN(Actor,tractioncontrolToggle), asCALL_GENERIC); ROR_ASSERT(result>=0);
103 result = engine->RegisterObjectMethod("BeamClass", "void antilockbrakeToggle()", WRAP_MFN(Actor,antilockbrakeToggle), asCALL_GENERIC); ROR_ASSERT(result>=0);
104 result = engine->RegisterObjectMethod("BeamClass", "void cruisecontrolToggle()", WRAP_MFN(Actor, cruisecontrolToggle), asCALL_GENERIC); ROR_ASSERT(result>=0);
105 result = engine->RegisterObjectMethod("BeamClass", "void toggleCustomParticles()", WRAP_MFN(Actor,toggleCustomParticles), asCALL_GENERIC); ROR_ASSERT(result>=0);
106 result = engine->RegisterObjectMethod("BeamClass", "bool getCustomParticleMode()", WRAP_MFN(Actor,getCustomParticleMode), asCALL_GENERIC); ROR_ASSERT(result>=0);
107 result = engine->RegisterObjectMethod("BeamClass", "bool isLocked()", WRAP_MFN(Actor,isLocked), asCALL_GENERIC); ROR_ASSERT(result>=0);
108 result = engine->RegisterObjectMethod("BeamClass", "void setForcedCinecam(int, int)", WRAP_MFN(Actor, setForcedCinecam), asCALL_GENERIC); ROR_ASSERT(result >= 0);
109 result = engine->RegisterObjectMethod("BeamClass", "void clearForcedCinecam()", WRAP_MFN(Actor, clearForcedCinecam), asCALL_GENERIC); ROR_ASSERT(result >= 0);
110 result = engine->RegisterObjectMethod("BeamClass", "bool getForcedCinecam(int& inout, int& inout)", WRAP_MFN(Actor, getForcedCinecam), asCALL_GENERIC); ROR_ASSERT(result >= 0);
111 result = engine->RegisterObjectMethod("BeamClass", "int getNumCinecams() const", WRAP_MFN(Actor, getNumCinecams), asCALL_GENERIC); ROR_ASSERT(result >= 0);
112 result = engine->RegisterObjectMethod("BeamClass", "int getCameraCount() const", WRAP_MFN(Actor, getCameraCount), asCALL_GENERIC); ROR_ASSERT(result >= 0);
113 result = engine->RegisterObjectMethod("BeamClass", "int getCameraPosNode(int) const", WRAP_MFN(Actor, getCameraPosNode), asCALL_GENERIC); ROR_ASSERT(result >= 0);
114 result = engine->RegisterObjectMethod("BeamClass", "int getCameraDirNode(int) const", WRAP_MFN(Actor, getCameraDirNode), asCALL_GENERIC); ROR_ASSERT(result >= 0);
115 result = engine->RegisterObjectMethod("BeamClass", "int getCameraRollNode(int) const", WRAP_MFN(Actor, getCameraRollNode), asCALL_GENERIC); ROR_ASSERT(result >= 0);
116
117 // - input engine overrides (PLEASE maintain the same order as 'Actor.h' and 'doc/angelscript/.../BeamClass.h')
118 result = engine->RegisterObjectMethod("BeamClass", "float getEventValue(inputEvents, bool = false, inputSourceType = inputSourceType::IST_ANY)", WRAP_MFN(Actor, getEventValue), asCALL_GENERIC); ROR_ASSERT(result >= 0);
119 result = engine->RegisterObjectMethod("BeamClass", "bool getEventBoolValue(inputEvents)", WRAP_MFN(Actor, getEventBoolValue), asCALL_GENERIC); ROR_ASSERT(result >= 0);
120 result = engine->RegisterObjectMethod("BeamClass", "bool getEventBoolValueBounce(inputEvents, float = 0.2f)", WRAP_MFN(Actor, getEventBoolValueBounce), asCALL_GENERIC); ROR_ASSERT(result >= 0);
121 result = engine->RegisterObjectMethod("BeamClass", "void clearEventSimulatedValues()", WRAP_MFN(Actor, clearEventSimulatedValues), asCALL_GENERIC); ROR_ASSERT(result >= 0);
122 result = engine->RegisterObjectMethod("BeamClass", "bool hasEventSimulatedValue(inputEvents)", WRAP_MFN(Actor, hasEventSimulatedValue), asCALL_GENERIC); ROR_ASSERT(result >= 0);
123 result = engine->RegisterObjectMethod("BeamClass", "float getEventSimulatedValue(inputEvents)", WRAP_MFN(Actor, getEventSimulatedValue), asCALL_GENERIC); ROR_ASSERT(result >= 0);
124 result = engine->RegisterObjectMethod("BeamClass", "void setEventSimulatedValue(inputEvents, float)", WRAP_MFN(Actor, setEventSimulatedValue), asCALL_GENERIC); ROR_ASSERT(result >= 0);
125 result = engine->RegisterObjectMethod("BeamClass", "void resetEventSimulatedValue(inputEvents)", WRAP_MFN(Actor, resetEventSimulatedValue), asCALL_GENERIC); ROR_ASSERT(result >= 0);
126
127 // - subsystems (PLEASE maintain the same order as 'Actor.h' and 'doc/angelscript/.../BeamClass.h')
128 result = engine->RegisterObjectMethod("BeamClass", "DashBoardManagerClassPtr@ getDashboardManager()", WRAP_MFN(Actor, getDashboardManager), asCALL_GENERIC); ROR_ASSERT(result >= 0);
129 result = engine->RegisterObjectMethod("BeamClass", "VehicleAIClassPtr @getVehicleAI()", WRAP_MFN(Actor,getVehicleAI), asCALL_GENERIC); ROR_ASSERT(result>=0);
130 result = engine->RegisterObjectMethod("BeamClass", "EngineClassPtr @getEngine()", WRAP_MFN(Actor, getEngine), asCALL_GENERIC); ROR_ASSERT(result >= 0);
131 result = engine->RegisterObjectMethod("BeamClass", "int getAircraftEngineCount()", WRAP_MFN(Actor, getAircraftEngineCount), asCALL_GENERIC); ROR_ASSERT(result >= 0);
132 result = engine->RegisterObjectMethod("BeamClass", "AircraftEngineClassPtr@ getAircraftEngine(int)", WRAP_MFN(Actor, getAircraftEngine), asCALL_GENERIC); ROR_ASSERT(result >= 0);
133 result = engine->RegisterObjectMethod("BeamClass", "TurbojetClassPtr@ getTurbojet(int)", WRAP_MFN(Actor, getTurbojet), asCALL_GENERIC); ROR_ASSERT(result >= 0);
134 result = engine->RegisterObjectMethod("BeamClass", "TurbopropClassPtr@ getTurboprop(int)", WRAP_MFN(Actor, getTurboprop), asCALL_GENERIC); ROR_ASSERT(result >= 0);
135 result = engine->RegisterObjectMethod("BeamClass", "AutopilotClassPtr@ getAutopilot()", WRAP_MFN(Actor, getAutopilot), asCALL_GENERIC); ROR_ASSERT(result >= 0);
136 result = engine->RegisterObjectMethod("BeamClass", "int getScrewpropCount()", WRAP_MFN(Actor, getScrewpropCount), asCALL_GENERIC); ROR_ASSERT(result >= 0);
137 result = engine->RegisterObjectMethod("BeamClass", "ScrewpropClassPtr@ getScrewprop(int)", WRAP_MFN(Actor, getScrewprop), asCALL_GENERIC); ROR_ASSERT(result >= 0);
138 result = engine->RegisterObjectMethod("BeamClass", "Ogre::MaterialPtr getManagedMaterialInstance(const string &in)", WRAP_MFN(Actor, getManagedMaterialInstance), asCALL_GENERIC); ROR_ASSERT(result >= 0);
139 result = engine->RegisterObjectMethod("BeamClass", "array<string>@ getManagedMaterialNames()", WRAP_OBJ_FIRST(getManagedMaterialNames), asCALL_GENERIC); ROR_ASSERT(result >= 0);
140
141 // - lights (PLEASE maintain the same ordering as 'Actor.h' and 'doc/angelscript/.../BeamClass.h')
142 result = engine->RegisterObjectMethod("BeamClass", "int getBlinkType()", WRAP_MFN(Actor, getBlinkType), asCALL_GENERIC); ROR_ASSERT(result >= 0);
143 result = engine->RegisterObjectMethod("BeamClass", "void setBlinkType(int)", WRAP_MFN(Actor, setBlinkType), asCALL_GENERIC); ROR_ASSERT(result >= 0);
144 result = engine->RegisterObjectMethod("BeamClass", "bool getCustomLightVisible(int)", WRAP_MFN(Actor, getCustomLightVisible), asCALL_GENERIC); ROR_ASSERT(result >= 0);
145 result = engine->RegisterObjectMethod("BeamClass", "void setCustomLightVisible(int, bool)", WRAP_MFN(Actor, setCustomLightVisible), asCALL_GENERIC); ROR_ASSERT(result >= 0);
146 result = engine->RegisterObjectMethod("BeamClass", "bool getBeaconMode()", WRAP_MFN(Actor, getBeaconMode), asCALL_GENERIC); ROR_ASSERT(result >= 0);
147 result = engine->RegisterObjectMethod("BeamClass", "void beaconsToggle()", WRAP_MFN(Actor, beaconsToggle), asCALL_GENERIC); ROR_ASSERT(result >= 0);
148 result = engine->RegisterObjectMethod("BeamClass", "bool getBrakeLightVisible()", WRAP_MFN(Actor, getBrakeLightVisible), asCALL_GENERIC); ROR_ASSERT(result >= 0);
149 result = engine->RegisterObjectMethod("BeamClass", "bool getReverseLightVisible()", WRAP_MFN(Actor, getReverseLightVisible), asCALL_GENERIC); ROR_ASSERT(result >= 0);
150 result = engine->RegisterObjectMethod("BeamClass", "int countCustomLights(int)", WRAP_MFN(Actor, countCustomLights), asCALL_GENERIC); ROR_ASSERT(result >= 0);
151 result = engine->RegisterObjectMethod("BeamClass", "int countFlaresByType(FlareType)", WRAP_MFN(Actor, countFlaresByType), asCALL_GENERIC); ROR_ASSERT(result >= 0);
152
153 // - organizational (PLEASE maintain the same ordering as 'Actor.h' and 'doc/angelscript/.../BeamClass.h')
154 result = engine->RegisterObjectMethod("BeamClass", "string getTruckName()", WRAP_MFN(Actor,getTruckName), asCALL_GENERIC); ROR_ASSERT(result>=0);
155 result = engine->RegisterObjectMethod("BeamClass", "string getTruckFileName()", WRAP_MFN(Actor,getTruckFileName), asCALL_GENERIC); ROR_ASSERT(result>=0);
156 result = engine->RegisterObjectMethod("BeamClass", "string getTruckFileResourceGroup()", WRAP_MFN(Actor, getTruckFileResourceGroup), asCALL_GENERIC); ROR_ASSERT(result >= 0);
157 result = engine->RegisterObjectMethod("BeamClass", "int getTruckType()", WRAP_MFN(Actor,getTruckType), asCALL_GENERIC); ROR_ASSERT(result>=0);
158 result = engine->RegisterObjectMethod("BeamClass", "string getSectionConfig()", WRAP_MFN(Actor, getSectionConfig), asCALL_GENERIC); ROR_ASSERT(result >= 0);
159 result = engine->RegisterObjectMethod("BeamClass", "int getInstanceId()", WRAP_MFN(Actor, getInstanceId), asCALL_GENERIC); ROR_ASSERT(result >= 0);
160}
static CScriptArray * getManagedMaterialNames(RoR::Actor *self)
#define ROR_ASSERT(_EXPR)
Definition Application.h:40
Core data structures for simulation; Everything affected by by either physics, network or user intera...
#define WRAP_MFN(ClassType, name)
#define WRAP_OBJ_FIRST(name)
Softbody object; can be anything from soda can to a space shuttle Constructed from a truck definition...
Definition Actor.h:55
std::vector< std::string > getManagedMaterialNames()
Definition Actor.cpp:4832
AngelScript::CScriptArray * VectorToScriptArray(const std::vector< T > &vec, const std::string &decl)
Definition ScriptUtils.h:44
void RegisterActorGeneric(AngelScript::asIScriptEngine *engine)