资源算法P3DModuleBuilder

P3DModuleBuilder

2020-01-13 | |  39 |   0 |   0

Panda3D Module Builder

This tool allows you to seamlessly mix your C++ and Python code for thePanda3D Game Engine.

It makes compiling your C++ code the matter of a single mouse-click.

Features

  • Automatic Python bindings using interrogate

  • Works on Windows, Linux and Mac

Getting started

1. Clone this repository

You can use the download-zip button, or clone this repository. Copy it to a suitable path in your project.

2. Write your source code

You can now start to write your C++ code and store it in the source/ directory. Here's a simple example you can start with (save it as source/example.h for example):

#ifndef EXAMPLE_H
#define EXAMPLE_H#include "pandabase.h"BEGIN_PUBLISH // This exposes all functions in this block to pythoninline int multiply(int a, int b) {    return a * b;
}

END_PUBLISHclass ExampleClass {
    PUBLISHED: // Exposes all functions in this scope, use instead of "public:"
        inline int get_answer() {            return 42;
        };
};


#endif EXAMPLE_H

3. Compile the module

After you wrote your C++ code, run python build.py. It will ask you for a module name, for this example we will choose "TestModule".

When the compilation finished, there should now be a TestModule.pyd / TestModule.so (depending on your platform) generated.

4. Use your module

Using your compiled module is straightforward:

import panda3d.core  # Make sure you import this first before importing your moduleimport TestModuleprint(TestModule.multiply(3, 4)) # prints 12example = TestModule.ExampleClass()print(example.get_answer()) # prints 42

Requirements

  • The Panda3D SDK (get it here)

  • CMake 2.6 or higher (get it here)

  • windows only: The thirdparty folder installed in the Panda3D sdk folder (See here)

For compiling on Windows 32 bit:

  • Visual Studio 2010/2015

For compiling on Windows 64 bit:

  • Visual Studio 2010/2015

  • Windows SDK 7.1 (be sure to tick the VC++ 64 bit compilers option)

Advanced configuration

Please clean up your built directories after changing the configuration! You can do so with passing --clean in the command line.

Command Line

Command line options are:

  • --optimize=N to override the optimize option. This overrides the option set in the config.ini

  • --clean to force a clean rebuild

config.ini

Further adjustments can be made in the config.ini file:

  • You can set generate_pdb to 0 or 1 to control whether a .pdb file is generated.

  • You can set optimize to change the optimization. This has to match the --optimize= option of your Panda3D Build.

  • You can set require_lib_eigen to 1 to require the Eigen 3 library

  • You can set require_lib_bullet to 1 to require the Bullet library

  • You can set require_lib_freetype to 1 to require the Freetype library

  • You can set verbose_igate to 1 or 2 to get detailed interrogate output (1 = verbose, 2 = very verbose)

Additional libaries

If you want to include additional (external) libraries, you can create a cmake file named additional_libs.cmake in the folder of the module builder, which will then get included during the build.

If you would like to include the protobuf library for example, your cmake file could look like this:

find_package(Protobuf REQUIRED)include_directories(${PROTOBUF_INCLUDE_DIRS})set(LIBRARIES "${LIBRARIES};${PROTOBUF_LIBRARIES}")


上一篇:P3D-Legacy-Old

下一篇:p3d_tf

用户评价
全部评价

热门资源

  • seetafaceJNI

    项目介绍 基于中科院seetaface2进行封装的JAVA...

  • spark-corenlp

    This package wraps Stanford CoreNLP annotators ...

  • Keras-ResNeXt

    Keras ResNeXt Implementation of ResNeXt models...

  • capsnet-with-caps...

    CapsNet with capsule-wise convolution Project ...

  • shih-styletransfer

    shih-styletransfer Code from Style Transfer ...