0

ポイント、ポリゴン、三角形分割されたサーフェスなどの単純な空間データを Python の単純なデータ構造に読み書きするための Python 関数をいくつか作成します。この投稿のように、 Cまたは C++からこれらのデータ構造にアクセスする可能性があることは承知しています: Passing Python list to C++ vector using Boost.python

ただし、私はテンプレートを使用する経験豊富なプログラマーではないため、最初は簡単な方法から始めたいと考えています。したがって、ポイント オブジェクトのリストがある場合 (単純なクラス定義を参照)、それぞれの変数を読み取るCプログラムからこのリストにアクセスするにはどうすればよいでしょうか。

class point3d():

def __init__(self, objectName, version, id=[], xyz=[], prop=[], unit=[], val=[]):
    self.id = id
    self.xyz = xyz
    self.prop = prop
    self.unit = unit
    self.val = val
    dim = len(self.xyz)
    self.objectName = objectName
    self.version = version
    if dim == 1:
        self.x = self.xyz[0]
    elif dim == 2:
        self.x = self.xyz[0]
        self.y = self.xyz[1]
    elif dim == 3:
        self.x = self.xyz[0]
        self.y = self.xyz[1]
        self.z = self.xyz[2]

def __del__(self):
    pass

def getObjectName(self):
    return self.objectName

def getVersion(self):
    return self.version

def getXYZ(self):
    return self.xyz

def getDim(self):
    return self.dim

def getProp(self):
    return self.prop

def getUnit(self):
    return self.unit

def getVal(self):
    return self.val

def getId(self):
    return self.id
4

1 に答える 1

1

Python プログラムから C/C++ 関数を呼び出したい場合は、ctypesが最適です。

于 2012-10-17T21:54:12.220 に答える