FCE decoder/encoder
Project description
fcecodec - Python extension module
This file describes installation and usage of fcecodec
as Python extension
module.
Installation
Requires Python 3.10+
python -m pip install fcecodec
Though numpy
is not required, it is recommended.
python -m pip install --upgrade numpy
Examples
See
https://github.com/bfut/fcecodec/blob/main/scripts
and
https://github.com/bfut/fcecodec/blob/main/python/bfut_mywrappers.py
Documentation
Help on module fcecodec:
NAME
fcecodec - FCE decoder/encoder
CLASSES
pybind11_builtins.pybind11_object(builtins.object)
Mesh
class Mesh(pybind11_builtins.pybind11_object)
| Method resolution order:
| Mesh
| pybind11_builtins.pybind11_object
| builtins.object
|
| Methods defined here:
|
| IoDecode(...)
| IoDecode(self: fcecodec.Mesh, arg0: str) -> None
|
| IoEncode_Fce3(...)
| IoEncode_Fce3(self: fcecodec.Mesh, center_parts: bool = True) -> bytes
|
| IoEncode_Fce4(...)
| IoEncode_Fce4(self: fcecodec.Mesh, center_parts: bool = True) -> bytes
|
| IoEncode_Fce4M(...)
| IoEncode_Fce4M(self: fcecodec.Mesh, center_parts: bool = True) -> bytes
|
| IoExportObj(...)
| IoExportObj(self: fcecodec.Mesh, objpath: str, mtlpath: str, texname: str, print_damage: int = 0, print_dummies: int = 0, use_part_positions: int = 1, print_part_positions: int = 0, filter_triagflags_0xfff: int = 1) -> None
|
| IoGeomDataToNewPart(...)
| IoGeomDataToNewPart(self: fcecodec.Mesh, vert_idxs: numpy.ndarray[numpy.int32], vert_texcoords: numpy.ndarray[numpy.float32], vert_pos: numpy.ndarray[numpy.float32], normals: numpy.ndarray[numpy.float32]) -> int
|
| vert_idxs: 012..., vert_texcoords: uuuvvv... , vert_pos: xyzxyzxyz..., normals: xyzxyzxyz...
|
| MGetColors(...)
| MGetColors(self: fcecodec.Mesh) -> Buffer
|
| MGetDummyNames(...)
| MGetDummyNames(self: fcecodec.Mesh) -> list[str]
|
| MGetDummyPos(...)
| MGetDummyPos(self: fcecodec.Mesh) -> Buffer
|
| MSetColors(...)
| MSetColors(self: fcecodec.Mesh, colors: numpy.ndarray[numpy.uint8]) -> None
|
| Expects shape=(N, 4, 4)
|
| MSetDummyNames(...)
| MSetDummyNames(self: fcecodec.Mesh, names: list[str]) -> None
|
| MSetDummyPos(...)
| MSetDummyPos(self: fcecodec.Mesh, positions: numpy.ndarray[numpy.float32]) -> None
|
| Expects shape (N*3, ) for N dummies
|
| MValid(...)
| MValid(self: fcecodec.Mesh) -> bool
|
| OpAddHelperPart(...)
| OpAddHelperPart(self: fcecodec.Mesh, name: str, new_center: numpy.ndarray[numpy.float32] = [0.0, 0.0, 0.0]) -> int
|
| Add diamond-shaped part at coordinate origin or at optionally given position.
|
| OpCenterPart(...)
| OpCenterPart(self: fcecodec.Mesh, pid: int) -> bool
|
| Center specified part to local centroid. Does not move part w.r.t. to global coordinates.
|
| OpCopyPart(...)
| OpCopyPart(self: fcecodec.Mesh, pid_src: int) -> int
|
| Copy specified part. Returns new part index.
|
| OpDelUnrefdVerts(...)
| OpDelUnrefdVerts(self: fcecodec.Mesh) -> bool
|
| Delete all vertices that are not referenced by any triangle. This is a very expensive operation. Unreferenced vertices occur after triangles are deleted or they are otherwise present in data.
|
| OpDeletePart(...)
| OpDeletePart(self: fcecodec.Mesh, pid: int) -> bool
|
| OpDeletePartTriags(...)
| OpDeletePartTriags(self: fcecodec.Mesh, pid: int, idxs: list[int]) -> bool
|
| OpInsertPart(...)
| OpInsertPart(self: fcecodec.Mesh, mesh_src: fcecodec.Mesh, pid_src: int) -> int
|
| Insert (copy) specified part from mesh_src. Returns new part index.
|
| OpMergeParts(...)
| OpMergeParts(self: fcecodec.Mesh, pid1: int, pid2: int) -> int
|
| Returns new part index.
|
| OpMovePart(...)
| OpMovePart(self: fcecodec.Mesh, pid: int) -> int
|
| Move up specified part towards order 0. Returns new part index.
|
| OpSetPartCenter(...)
| OpSetPartCenter(self: fcecodec.Mesh, pid: int, new_center: numpy.ndarray[numpy.float32]) -> bool
|
| Center specified part to given position. Does not move part w.r.t. to global coordinates.
|
| PGetName(...)
| PGetName(self: fcecodec.Mesh, pid: int) -> str
|
| PGetPos(...)
| PGetPos(self: fcecodec.Mesh, pid: int) -> Buffer
|
| PGetTriagsFlags(...)
| PGetTriagsFlags(self: fcecodec.Mesh, pid: int) -> Buffer
|
| PGetTriagsTexcoords(...)
| PGetTriagsTexcoords(self: fcecodec.Mesh, pid: int) -> Buffer
|
| uuuvvv..., Returns (N*6, ) numpy array for N triangles.
|
| PGetTriagsTexpages(...)
| PGetTriagsTexpages(self: fcecodec.Mesh, pid: int) -> Buffer
|
| PGetTriagsVidx(...)
| PGetTriagsVidx(self: fcecodec.Mesh, pid: int) -> Buffer
|
| Returns (N*3, ) numpy array of global vert indexes for N triangles.
|
| PNumTriags(...)
| PNumTriags(self: fcecodec.Mesh, pid: int) -> int
|
| PNumVerts(...)
| PNumVerts(self: fcecodec.Mesh, pid: int) -> int
|
| PSetName(...)
| PSetName(self: fcecodec.Mesh, pid: int, name: str) -> None
|
| PSetPos(...)
| PSetPos(self: fcecodec.Mesh, pid: int, pos: numpy.ndarray[numpy.float32]) -> None
|
| PSetTriagsFlags(...)
| PSetTriagsFlags(self: fcecodec.Mesh, pid: int, arr: numpy.ndarray[numpy.int32]) -> None
|
| Expects (N, ) numpy array for N triangles
|
| PSetTriagsTexcoords(...)
| PSetTriagsTexcoords(self: fcecodec.Mesh, pid: int, arr: numpy.ndarray[numpy.float32]) -> None
|
| arr: uuuvvv..., Expects (N*6, ) numpy array for N triangles.
|
| PSetTriagsTexpages(...)
| PSetTriagsTexpages(self: fcecodec.Mesh, pid: int, arr: numpy.ndarray[numpy.int32]) -> None
|
| Expects (N, ) numpy array for N triangles
|
| PrintInfo(...)
| PrintInfo(self: fcecodec.Mesh) -> None
|
| PrintParts(...)
| PrintParts(self: fcecodec.Mesh) -> None
|
| PrintTriags(...)
| PrintTriags(self: fcecodec.Mesh) -> None
|
| PrintVerts(...)
| PrintVerts(self: fcecodec.Mesh) -> None
|
| __buffer__(self, flags, /)
| Return a buffer object that exposes the underlying memory of the object.
|
| __init__(...)
| __init__(self: fcecodec.Mesh) -> None
|
| __release_buffer__(self, buffer, /)
| Release the buffer object that exposes the underlying memory of the object.
|
| ----------------------------------------------------------------------
| Readonly properties defined here:
|
| MNumParts
|
| MNumTriags
|
| MNumVerts
|
| MVertsGetMap_idx2order
| Maps from global vert indexes (contained in triangles) to global vertex order.
|
| ----------------------------------------------------------------------
| Data descriptors defined here:
|
| MNumArts
| Usually equal to 1. Larger values enable multi-texture access for cop#.fce (police officer models), road objects, etc. Also used in the FCE4M format.
|
| MUnknown3
| FCE4M only. Unknown purpose.
|
| MVertsAnimation
| Returns (N, ) numpy array for N vertices.
|
| MVertsDamgdNorms
| Returns (N*3, ) numpy array for N vertices.
|
| MVertsDamgdPos
| Local vertice positions. Returns (N*3, ) numpy array for N vertices.
|
| MVertsNorms
| Returns (N*3, ) numpy array for N vertices.
|
| MVertsPos
| Local vertice positions. Returns (N*3, ) numpy array for N vertices.
|
| ----------------------------------------------------------------------
| Static methods inherited from pybind11_builtins.pybind11_object:
|
| __new__(*args, **kwargs) from pybind11_builtins.pybind11_type
| Create and return a new object. See help(type) for accurate signature.
FUNCTIONS
GetFceVersion(...) method of builtins.PyCapsule instance
GetFceVersion(buf: str) -> int
Returns 3 (FCE3), 4 (FCE4), 5 (FCE4M), negative (invalid)
PrintFceInfo(...) method of builtins.PyCapsule instance
PrintFceInfo(buf: str) -> None
ValidateFce(...) method of builtins.PyCapsule instance
ValidateFce(buf: str) -> int
Returns 1 for valid FCE data, 0 otherwise.
VERSION
1.7
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
fcecodec-1.7.tar.gz
(25.0 kB
view hashes)
Built Distributions
fcecodec-1.7-cp312-cp312-win32.whl
(116.0 kB
view hashes)
fcecodec-1.7-cp311-cp311-win32.whl
(115.8 kB
view hashes)
fcecodec-1.7-cp310-cp310-win32.whl
(114.8 kB
view hashes)
Close
Hashes for fcecodec-1.7-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 25d7fd25d1154ffc9745b05e836aedd0254a07f7860ba970657ef31e37d08a64 |
|
MD5 | cd25f3facae1ce90545d0f40056e31f2 |
|
BLAKE2b-256 | 4576b3e849ede0af636f68a8c2e165316ec0d598c1042655798f9f0a10d0e509 |
Close
Hashes for fcecodec-1.7-cp312-cp312-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e3bbe69f9bb8471679feb70912a00dc08241d2b35cf7dcf57812fa76b4b78c1 |
|
MD5 | b0236d55228dc38bf0c81dbfbbf5ee21 |
|
BLAKE2b-256 | c94b72462ed99dd8e127bc1dfe5073a2784c1cfae7a1bd10b1fb258f2c92c5b4 |
Close
Hashes for fcecodec-1.7-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 61a9398ba7f7ec1adcb11dbe0e3777421212d2c75eb049ad6de2594d43d68313 |
|
MD5 | ce6282a2ea910a63782f210d499a4ba1 |
|
BLAKE2b-256 | 30aa2c0813f82ad6dc934f6f2ee8c473fee9738e3a7779be3ee8d443f413aa22 |
Close
Hashes for fcecodec-1.7-cp312-cp312-musllinux_1_2_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a2dead00e28e786f729f849f09cadc5e7d1608ccd5cee57a76bdf6d6e9648e1 |
|
MD5 | ad54932f2ac7c6f3943115112228e27f |
|
BLAKE2b-256 | 886b73d52733bdfd42354df376b929ff99bb350f8729e634052bfee29e2e1bcc |
Close
Hashes for fcecodec-1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a81bf91b98d94cefffec9295c1558777329f71713ebd7dbbe2a3288c908db23 |
|
MD5 | 7165200a968cebd3492b281c3c29914a |
|
BLAKE2b-256 | 99321c5ceaf92b129255e99dc31a43fd523dc343e0a336796503516209279a9e |
Close
Hashes for fcecodec-1.7-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 86fd8c5b7436c0d0176183837182efbe4e4523602b0a79c0802a0a05382ccb1a |
|
MD5 | 2c941369bc5a16579b7b9c92774c0b64 |
|
BLAKE2b-256 | fb22302e1f8d0360a1e63fd49644ea4039d307af42c7735bc7285d518697f514 |
Close
Hashes for fcecodec-1.7-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | afa8d9d3b3e3e537165ed325612c17ce853ac58a8bcb25f0feaaf699bbb616f9 |
|
MD5 | 6dd5b88bccb2994cc861091a98ee3a1b |
|
BLAKE2b-256 | 33df470021de762b38c352e8b5a00b6a93c255f00f1759fadc649ca73c4c95fe |
Close
Hashes for fcecodec-1.7-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 726f9bf68c4adb66be005cb68c4c15d4d0e04c304c4803c3d169f389095b2f66 |
|
MD5 | 0966a0040dfa9e4c2bcfef4e5d863536 |
|
BLAKE2b-256 | 374e2308d0e42f0f8ee9a02576831f9e9599890a857fb986221a362866eda395 |
Close
Hashes for fcecodec-1.7-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 320513b333c8f9c33a8e22fba9c06446a8d860e0e18b71c722889797b1b23d85 |
|
MD5 | 34b096907c7f04efa3deeb5336d9ab54 |
|
BLAKE2b-256 | ec061763f134acd2a0667d931892ac43bc54887facfc59f5c0afdc610df9c120 |
Close
Hashes for fcecodec-1.7-cp311-cp311-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82220833af6ac214c712434c75a10b6bac3a3fee216b536b9aae6ea6433753ea |
|
MD5 | e7c1c99d2b29362cd9697bb24f2ba313 |
|
BLAKE2b-256 | 9f923dbe05cc99d1d9e8fdb7be47f3bbf6521acb5be09ddd95a44f329ffa5c60 |
Close
Hashes for fcecodec-1.7-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e2d6ac583a66b3b46733a7461709a389004ea031e671fbe563101ca838168df9 |
|
MD5 | 9dbb98a1c91a9f2462dd6e33d8cbec4f |
|
BLAKE2b-256 | 322a1138d164b0f50151fec6edb578839316588a810df7db016d35699ac61caf |
Close
Hashes for fcecodec-1.7-cp311-cp311-musllinux_1_2_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 36cb4287001c927dbce47f270ddbb554f94949bc6f050030547bb1c23b7a5030 |
|
MD5 | 87495f247fdaaf1a6a139c8891562e2b |
|
BLAKE2b-256 | 3e44c71b84b293ca910a9ddabd3cfc9238f8cbbfcf4cc5417252185f9f90d6ed |
Close
Hashes for fcecodec-1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 617bfd44700e89039d66e69c7532e897eccc4b7a3c515d88fbee5c264aebacd1 |
|
MD5 | f25d72c5e7f39bd35f085e7e1a43017e |
|
BLAKE2b-256 | fcdb4235cb79760e77bd7450af0c1590fdb32f50de8f81909b3f51034dffb1db |
Close
Hashes for fcecodec-1.7-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5eec6c5a191af348597e26ca1dbc448389602c1bf7dc2e7934557bd60f3e6400 |
|
MD5 | 467374f136fab4aaa177f87e5e518877 |
|
BLAKE2b-256 | bec1d1ae5821af807d0e4dc67631845e8250b35153efd01d3300aa804bffe676 |
Close
Hashes for fcecodec-1.7-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f334265384b285bd912c0e32a5048716286b4ac38969c9959dbf46c88c3089f |
|
MD5 | 36efb7541e4a9202ccc747763ec25c94 |
|
BLAKE2b-256 | 79f43b4d9c8e73e3e2c6fd3c6b92d4ea3a87987ddf5a6f858829bc0a02aad7ba |
Close
Hashes for fcecodec-1.7-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 070beb347a698325d521cb3ea9a98e199707bb28f20a2f9071c743ab8fa020ff |
|
MD5 | fe4b51b9302fb8a7e731e643e12a6b85 |
|
BLAKE2b-256 | dac14e3a38ebab4b7add02c296da6b4ca584cde5f1fcaf0d013043f77fea443a |
Close
Hashes for fcecodec-1.7-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc370537ea32047dd2425243ed0850919ccf77b16e240de8476d665b1b17c02f |
|
MD5 | afa9e88c251c34b1100e29418dd40d53 |
|
BLAKE2b-256 | e102691bb338a97d47b927dd77eb2605eeb53b26815f30566aaba92a2f2b1199 |
Close
Hashes for fcecodec-1.7-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e68a4a2bfc56eae1b99a14f6d72896cecc55f7f10a10fa7c3f39b621f8272eec |
|
MD5 | c1d9b15378aeb462dd792c996b5a7a3f |
|
BLAKE2b-256 | e403df9a0bc4e7d1a349ef16e13e4a7e330f322b0c117c66afb6753ce1c98487 |
Close
Hashes for fcecodec-1.7-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f1fc46cfbcbf4824cc81b83935bc065675491f21a2b6be357ac1d42f5065c6f |
|
MD5 | 3c87cf2204e9e4a26c7df50b647c0ca3 |
|
BLAKE2b-256 | 8e500b40f847709a73c39583f5ed8c6ba8fc095578000182509eba214cfd93f3 |
Close
Hashes for fcecodec-1.7-cp310-cp310-musllinux_1_2_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 09cb70a8360301b5f539660dfaca9c8d5ecdc33994ed01d45e7b38495894db59 |
|
MD5 | 935b2302575a5a6125303ee402b2d22b |
|
BLAKE2b-256 | 58cb8ed32f0e1e216f50c42183e3e64cd51b4eb95afb58ca8e3793f2fc424199 |
Close
Hashes for fcecodec-1.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff7617cfb88ae69ede132c4d6fe2a99a26b0b80eb8b320907d5e881c722f9416 |
|
MD5 | b81b82eb9e1a2a5c70b3955677775139 |
|
BLAKE2b-256 | e6f08615929f20cfb880877aa5815a0376da1a7a0ddedd925a8908d6c79d29af |
Close
Hashes for fcecodec-1.7-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1562d9364088995b11904655dcc2fc4b9b0a12dd18c06c0980d1896cb853d6df |
|
MD5 | 5bd88a9fc669bdcb6da2266227f8b7bf |
|
BLAKE2b-256 | 81032e3562ba33c42daa0b0d9167cb93010111ff6963d1738fbeada75659ce2d |
Close
Hashes for fcecodec-1.7-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a14640998f131dc80c50c2f87619d487b223a2712bd1dfd5294df34bf589a820 |
|
MD5 | 7d51afe5245ba33a4b38cbd303439196 |
|
BLAKE2b-256 | cbce8a7e07cf09a003cf2a3bd35cf261784b5ec04f06fa30dfd0641f1cc4c095 |
Close
Hashes for fcecodec-1.7-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 750c10d3e14df4391eb85914508197b100df039af18d0a3341a404ddf7f06c11 |
|
MD5 | 605f2900dbdfaad4338013df9ef905f3 |
|
BLAKE2b-256 | 9c7928a705f7157ff470af72f17acf53bb89af430907ed0504bbb4d0c6753516 |