Example #1
0
//-----------------------------------------------------------------------------
// Exports mstudiobbox_t.
//-----------------------------------------------------------------------------
void export_hitbox(scope _studio)
{
    class_<mstudiobbox_t, mstudiobbox_t *, boost::noncopyable> Hitbox("Hitbox");

    // Properties...
    Hitbox.add_property("name", &mstudiobbox_t::pszHitboxName);

    Hitbox.def_readwrite("bone", &mstudiobbox_t::bone);
    Hitbox.def_readwrite("group", &mstudiobbox_t::group);

    Hitbox.add_property("min", make_getter(&mstudiobbox_t::bbmin, reference_existing_object_policy()));
    Hitbox.add_property("max", make_getter(&mstudiobbox_t::bbmax, reference_existing_object_policy()));

    // Add memory tools...
    Hitbox ADD_MEM_TOOLS(mstudiobbox_t);
}
Example #2
0
//-----------------------------------------------------------------------------
// Exports mstudioanimdesc_t.
//-----------------------------------------------------------------------------
void export_movement(scope _studio)
{
    class_<mstudiomovement_t, mstudiomovement_t *, boost::noncopyable> Movement("Movement");

    // Properties...
    Movement.def_readwrite("end_frame", &mstudiomovement_t::endframe);
    Movement.def_readwrite("motion_flags", &mstudiomovement_t::motionflags);
    Movement.def_readwrite("velocity_start", &mstudiomovement_t::v0);
    Movement.def_readwrite("velocity_end", &mstudiomovement_t::v1);
    Movement.def_readwrite("angle", &mstudiomovement_t::angle);

    Movement.add_property("vector", make_getter(&mstudiomovement_t::vector, reference_existing_object_policy()));
    Movement.add_property("position", make_getter(&mstudiomovement_t::position, reference_existing_object_policy()));

    // Add memory tools...
    Movement ADD_MEM_TOOLS(mstudiomovement_t);
}
Example #3
0
//-----------------------------------------------------------------------------
// Exports mstudiobone_t.
//-----------------------------------------------------------------------------
void export_bone(scope _studio)
{
    class_<mstudiobone_t, mstudiobone_t *, boost::noncopyable> ModelBone("ModelBone");

    // Properties...
    ModelBone.add_property("name", &ModelBoneExt::get_name);
    ModelBone.def_readwrite("parent", &mstudiobone_t::parent);

    ModelBone.add_property("position", make_getter(&mstudiobone_t::pos, reference_existing_object_policy()));
    ModelBone.add_property("quaternion", make_getter(&mstudiobone_t::quat, reference_existing_object_policy()));
    ModelBone.add_property("radiant_euler", make_getter(&mstudiobone_t::rot, reference_existing_object_policy()));
    ModelBone.add_property("position_scale", make_getter(&mstudiobone_t::posscale, reference_existing_object_policy()));
    ModelBone.add_property("radiant_euler_scale", make_getter(&mstudiobone_t::rotscale, reference_existing_object_policy()));

    ModelBone.add_property("position_to_bone", make_getter(&mstudiobone_t::poseToBone, reference_existing_object_policy())); // TODO: Export matrix3x4_t...

    ModelBone.add_property("alignment", make_getter(&mstudiobone_t::qAlignment, reference_existing_object_policy()));
    ModelBone.add_property("surface_name", &ModelBoneExt::get_surface_name);

    ModelBone.def_readwrite("flags", &mstudiobone_t::flags);
    ModelBone.def_readwrite("procedural_type", &mstudiobone_t::proctype);
    ModelBone.def_readwrite("physics_bone", &mstudiobone_t::physicsbone);
    ModelBone.def_readwrite("flags", &mstudiobone_t::flags);
    ModelBone.def_readwrite("contents", &mstudiobone_t::contents);

    // Methods...
    ModelBone.def("get_procedure", &ModelBoneExt::get_procedure, manage_new_object_policy());

    // Add memory tools...
    ModelBone ADD_MEM_TOOLS(mstudiobone_t);
}
Example #4
0
  void compilability_test()
  {
    class_<trivial>("trivial")
      .add_property("property", make_getter(&trivial::value, return_value_policy<return_by_value>()))
      .def_readonly("readonly", &trivial::value)
    ;

    class_< Color3 >("Color3", init< const Color3 & >())
        .def_readonly("BLACK", &Color3::black)   // line 17
        ;
  }
Example #5
0
// Class
void class_WorldObject()
{

  // WorldObject
  //  WorldObject_class
  class_<WorldObject, bases<Component> > WorldObject_class("WorldObject", 
					      init< optional<std::string> >());

  WorldObject_class
    .add_property("geom", &WorldObject::getGeom, &WorldObject::setGeom)
    //    .add_property("material", &WorldObject::getMaterial, &WorldObject::setMaterial)
    .add_property("parent", make_getter(&WorldObject::parent, return_internal_reference<>()))
    //    .def("getParent", &WorldObject::getParent, return_internal_reference<>())
    .add_property("transform", &getTransform, &setTransform)
    .add_property("worldtransform", &getWorldTransform)
    .add_property("pos", &getPos, &setPos)
    .add_property("rot", &getRot, &setRot)
    .add_property("scale", &getScale, &setScale)
    .add_property("pivot", &getPivot, &setPivot)
    .add_property("cog", &getCog)
    .add_property("inertiatensor", &getInertiaTensor)
    .add_property("mass", &getMass, &setMass)
    .add_property("totalmass", &getTotalMass)
    .add_property("visible", &getVisible, &setVisible)
    .add_property("linearvel", &getLinearVel, &setLinearVel)
    .add_property("angularvel", &getAngularVel, &setAngularVel)
    .def_readonly("transform_slot", &WorldObject::transform)
    .def_readonly("pos_slot", &WorldObject::pos)
    .def_readonly("rot_slot", &WorldObject::rot)
    .def_readonly("scale_slot", &WorldObject::scale)
    .def_readonly("cog_slot", &WorldObject::cog)
    .def_readonly("inertiatensor_slot", &WorldObject::inertiatensor)
    .def_readonly("mass_slot", &WorldObject::mass)
    .def_readonly("totalmass_slot", &WorldObject::totalmass)
    .def_readonly("worldtransform_slot", &WorldObject::worldtransform)
    .def_readonly("visible_slot", &WorldObject::visible)
    .def_readonly("linearvel_slot", &WorldObject::linearvel)
    .def_readonly("angularvel_slot", &WorldObject::angularvel)

    .def("__eq__", WorldObject__eq__)
    .def("__ne__", WorldObject__ne__)

    .def("localTransform", &WorldObject::localTransform,
	 return_value_policy<copy_const_reference>(),
	 "localTransform() -> mat4\n\n"
	 "Return the local transformation that has to be used for rendering.\n"
	 "The returned transformation L is calculated as follows: L = T*P^-1\n"
	 "where T is the current transform (taken from the transform slot)\n"
	 "and P is the offset transform.")
    ;

  class_WorldObject2(WorldObject_class);
}
Example #6
0
//-----------------------------------------------------------------------------
// Exports mstudioseqdesc_t.
//-----------------------------------------------------------------------------
void export_sequence(scope _studio)
{
    class_<mstudioseqdesc_t, mstudioseqdesc_t *, boost::noncopyable> Sequence("Sequence");

    // Properties...
    Sequence.add_property("model_header", make_function(&mstudioseqdesc_t::pStudiohdr, reference_existing_object_policy()));
    Sequence.def_readwrite("label_offset", &mstudioseqdesc_t::szlabelindex);
    Sequence.add_property("label", &SequenceExt::get_label);
    Sequence.def_readwrite("activity_offset", &mstudioseqdesc_t::szactivitynameindex);
    Sequence.add_property("activity", &SequenceExt::get_activity);
    Sequence.def_readwrite("flags", &mstudioseqdesc_t::flags);
    Sequence.def_readwrite("activity_index", &mstudioseqdesc_t::activity);
    Sequence.def_readwrite("act_weight", &mstudioseqdesc_t::actweight);
    Sequence.def_readwrite("events_count", &mstudioseqdesc_t::numevents);
    Sequence.def_readwrite("events_offset", &mstudioseqdesc_t::eventindex);
    Sequence.add_property("min", make_getter(&mstudioseqdesc_t::bbmin, reference_existing_object_policy()));
    Sequence.add_property("max", make_getter(&mstudioseqdesc_t::bbmax, reference_existing_object_policy()));
    Sequence.def_readwrite("blends_count", &mstudioseqdesc_t::numblends);
    Sequence.def_readwrite("animation_offset", &mstudioseqdesc_t::animindexindex);
    Sequence.def_readwrite("movement_index", &mstudioseqdesc_t::movementindex);
    Sequence.def_readwrite("fade_in_time", &mstudioseqdesc_t::fadeintime);
    Sequence.def_readwrite("fade_out_time", &mstudioseqdesc_t::fadeouttime);
    Sequence.def_readwrite("local_entry_node", &mstudioseqdesc_t::localentrynode);
    Sequence.def_readwrite("local_exit_node", &mstudioseqdesc_t::localexitnode);
    Sequence.def_readwrite("node_flags", &mstudioseqdesc_t::nodeflags);
    Sequence.def_readwrite("entry_phase", &mstudioseqdesc_t::entryphase);
    Sequence.def_readwrite("exit_phase", &mstudioseqdesc_t::exitphase);
    Sequence.def_readwrite("lastframe", &mstudioseqdesc_t::lastframe);
    Sequence.def_readwrite("next_sequence", &mstudioseqdesc_t::nextseq);
    Sequence.def_readwrite("pose", &mstudioseqdesc_t::pose);

    // Methods...
    Sequence.def("get_animation_index", &mstudioseqdesc_t::anim);
    Sequence.def("get_weight", &mstudioseqdesc_t::weight);

    // Add memory tools...
    Sequence ADD_MEM_TOOLS(mstudioseqdesc_t);
}
Example #7
0
//-----------------------------------------------------------------------------
// Exports studiohdr_t.
//-----------------------------------------------------------------------------
void export_model_header(scope _studio)
{
    class_<studiohdr_t, boost::shared_ptr<studiohdr_t>, boost::noncopyable> ModelHeader("ModelHeader", no_init);

    // Initializer...
    ModelHeader.def("__init__", make_constructor(&ModelHeaderExt::__init__,
                    default_call_policies(),
                    args("model_name")
                                                )
                   );

    // Properties...
    ModelHeader.def_readwrite("id", &studiohdr_t::id); // Looks like a pointer?
    ModelHeader.def_readwrite("version", &studiohdr_t::version);
    ModelHeader.def_readwrite("checksum", &studiohdr_t::checksum);

    ModelHeader.add_property("name", &studiohdr_t::pszName);

    ModelHeader.add_property("eye_position", make_getter(&studiohdr_t::eyeposition, reference_existing_object_policy()));
    ModelHeader.add_property("illumination_center", make_getter(&studiohdr_t::illumposition, reference_existing_object_policy()));
    ModelHeader.add_property("hull_min", make_getter(&studiohdr_t::hull_min, reference_existing_object_policy()));
    ModelHeader.add_property("hull_max", make_getter(&studiohdr_t::hull_max, reference_existing_object_policy()));
    ModelHeader.add_property("view_min", make_getter(&studiohdr_t::view_bbmin, reference_existing_object_policy()));
    ModelHeader.add_property("view_max", make_getter(&studiohdr_t::view_bbmax, reference_existing_object_policy()));

    ModelHeader.def_readwrite("flags", &studiohdr_t::flags);
    ModelHeader.def_readwrite("bones_count", &studiohdr_t::numbones);
    ModelHeader.def_readwrite("bones_offset", &studiohdr_t::boneindex);
    ModelHeader.def_readwrite("bone_controllers_count", &studiohdr_t::numbonecontrollers);
    ModelHeader.def_readwrite("bone_controllers_offset", &studiohdr_t::bonecontrollerindex);
    ModelHeader.def_readwrite("hitbox_sets_count", &studiohdr_t::numhitboxsets);
    ModelHeader.def_readwrite("hitbox_sets_offset", &studiohdr_t::hitboxsetindex);
    ModelHeader.def_readwrite("local_animations_count", &studiohdr_t::numlocalanim);
    ModelHeader.def_readwrite("animations_offset", &studiohdr_t::localanimindex);
    ModelHeader.def_readwrite("attachments_count", &studiohdr_t::numlocalattachments);
    ModelHeader.def_readwrite("local_sequences_count", &studiohdr_t::numlocalseq);
    ModelHeader.def_readwrite("local_sequence_offset", &studiohdr_t::localseqindex);
    ModelHeader.def_readwrite("mass", &studiohdr_t::mass);
    ModelHeader.def_readwrite("contents", &studiohdr_t::contents);

    // Methods...
    ModelHeader.def("get_bone", &studiohdr_t::pBone, reference_existing_object_policy());
    // ModelHeader.def("remap_sequence_bone", &studiohdr_t::RemapSeqBone);
    // ModelHeader.def("remap_animation_bone", &studiohdr_t::RemapAnimBone);
    ModelHeader.def("get_bone_controller", &studiohdr_t::pBonecontroller, reference_existing_object_policy());
    ModelHeader.def("get_hitbox_set", &studiohdr_t::pHitboxSet, reference_existing_object_policy());
    ModelHeader.def("get_local_animation", &studiohdr_t::pLocalAnimdesc, reference_existing_object_policy());
    // ModelHeader.def("has_sequences_available", &studiohdr_t::SequencesAvailable);
    // ModelHeader.def("get_animation", &studiohdr_t::pAnimdesc, reference_existing_object_policy());
    // ModelHeader.def("get_sequences_count", &studiohdr_t::GetNumSeq);
    // ModelHeader.def("get_sequence", &studiohdr_t::pSeqdesc, reference_existing_object_policy());
    // ModelHeader.def("get_activity_list_version", &studiohdr_t::GetActivityListVersion);
    // ModelHeader.def("set_activity_list_version", &studiohdr_t::SetActivityListVersion);
    ModelHeader.def("get_attachment", &studiohdr_t::pLocalAttachment, reference_existing_object_policy());

    // Special methods...
    ModelHeader.def("__len__", make_getter(&studiohdr_t::length));

    // Add memory tools...
    ModelHeader ADD_MEM_TOOLS(studiohdr_t);
}
//-----------------------------------------------------------------------------
// Exports CGlobalVarsBase.
//-----------------------------------------------------------------------------
void export_globals(scope _globals)
{
	GlobalsBase_Visitor(

	class_<CGlobalVarsBase>("_GlobalVarsBase", init<bool>())
		.def("is_client",
			&CGlobalVarsBase::IsClient,
			"Returns True if the game is a client."
		)

		.def("get_network_base",
			&CGlobalVarsBase::GetNetworkBase,
            "for encoding m_flSimulationTime, m_flAnimTime",
            args("tick", "entity")
		)

		.def_readwrite("real_time",
			&CGlobalVarsBase::realtime,
            "Absolute time."
		)

		.def_readwrite("frame_count",
			&CGlobalVarsBase::framecount,
            "Absolute frame counter."
		)

		.def_readwrite("absolute_frame_time",
			&CGlobalVarsBase::absoluteframetime,
            "Non-paused frame time."
		)

		.def_readwrite("current_time",
			&CGlobalVarsBase::curtime,
            "Current time."
		)

		.def_readwrite("frame_time",
			&CGlobalVarsBase::frametime,
            "Time spent on last server or client frame (has nothing to do with think intervals)."
		)

		.def_readwrite("max_clients",
			&CGlobalVarsBase::maxClients,
            "Current maxplayers setting."
		)

		.def_readwrite("tick_count",
			&CGlobalVarsBase::tickcount,
            "Simulation ticks - does not increase when game is paused."
		)

		.def_readwrite("interval_per_tick",
			&CGlobalVarsBase::interval_per_tick,
            "Simulation tick interval."
		)

		.def_readwrite("interpolation_amount",
			&CGlobalVarsBase::interpolation_amount,
            "interpolation amount ( client-only ) based on fraction of next tick which has elapsed."
		)

		.def_readwrite("simulated_ticks_this_frame",
			&CGlobalVarsBase::simTicksThisFrame,
            "Simulation ticks of this frame."
		)

		.def_readwrite("network_protocol",
			&CGlobalVarsBase::network_protocol,
            "Network protocol."
		)

		.NOT_IMPLEMENTED("is_remote_client")
		
	) ADD_MEM_TOOLS(CGlobalVarsBase); // GlobalsBase_Visitor


	Globals_Visitor(

	class_< CGlobalVars, bases< CGlobalVarsBase> >("_GlobalVars", init<bool>())
		.add_property("map_name",
			make_getter(&CGlobalVars::mapname, return_value_policy<return_by_value>()),
            "Current map name."
		)

		.def_readwrite("map_version",
			&CGlobalVars::mapversion,
            "Current map version."
		)

		.add_property("start_spot",
			make_getter(&CGlobalVars::startspot, return_value_policy<return_by_value>()),
            "Start spot name."
		)

		.def_readwrite("load_type",
			&CGlobalVars::eLoadType,
            "How the current map was loaded."
		)

		.def_readwrite("map_load_failed",
			&CGlobalVars::bMapLoadFailed,
            "Failed to load map?"
		)

		.def_readwrite("is_deathmatch",
			&CGlobalVars::deathmatch,
            "Deathmatch enabled?"
		)

		.def_readwrite("is_coop",
			&CGlobalVars::coop,
            "Coop enabled?"
		)

		.def_readwrite("is_teamplay",
			&CGlobalVars::teamplay,
            "Teamplay enabled?"
		)

		.def_readwrite("max_entities",
			&CGlobalVars::maxEntities,
            "Maximum number of entities."
		)
		
		.NOT_IMPLEMENTED_ATTR("map_group_name")
		.NOT_IMPLEMENTED_ATTR("server_count")

	) ADD_MEM_TOOLS(CGlobalVars); // Globals_Visitor

	_globals.attr("global_vars") = object(ptr(gpGlobals));
}
class_<AbsCoord>("AbsCoord").
   def(init<float, float, float>()).
   add_property("x"      , abs_get_v_const_type(&AbsCoord::x     )).
   add_property("y"      , abs_get_v_const_type(&AbsCoord::y     )).
   add_property("theta"  , abs_get_v_const_type(&AbsCoord::theta )).
   def_readonly("weight" , &AbsCoord::weight                      ).
   add_property("var"    , make_getter(&AbsCoord::var, return_value_policy<return_by_value>()));

class_<BallInfo>("BallInfo")
   .def_readonly("rr", &BallInfo::rr)
   .def_readonly("radius", &BallInfo::radius)
   .add_property("imageCoords", make_getter(&BallInfo::imageCoords, return_value_policy<return_by_value>()))
   .add_property("neckRelative", &BallInfo::neckRelative)
   .def_readonly("visionVar", &BallInfo::visionVar)
   .def_readonly("topCamera", &BallInfo::topCamera);

class_<BallHint>("BallHint")
   .def_readonly("type"        , &BallHint::type       );

enum_<BallHint::Type>("BallHintType")
   .value("bLeft"              , BallHint::bLeft       )
   .value("bRight"             , BallHint::bRight      )
   .value("bHidden"            , BallHint::bHidden     )
   .value("bNone"              , BallHint::bNone       );