synesthesias / libplateau Goto Github PK
View Code? Open in Web Editor NEWLicense: Other
License: Other
これらを情報として保持する必要がある。
案1) 追加オブジェクトのAttributesに追加する
案2) メンバに追加する
案2の方が筋良さそう。
gmlファイル中で、例えば、uro:basementFirstUsage/とかuro:note</uro:note>のように「空要素」が設定されているとxerces-cからendElementメソッドに渡されるcharactersの中身が"\n\t\t\t\t\t"になってしまっています。
lod2MultiSurface等別ネームスペースに複数存在して同じ扱いをする必要がある型がある。
こういった型についてはcoreネームスペースに置き換えて同一に扱っている。
ADEの拡張属性で同一名だが違うデータ構造の型がある場合があり、こういった場合独自型として扱う必要がある。
現状ではADEで既存型と同一名の型名を追加してある場合パース失敗する。
srsName読んで良しなに変更するようにしたほうが良い
ENU → ENU(PLATEAUでの座標系)
ESU → ESU(Unreal Engineでの座標系)
EUN → EUN(Unityでの座標系)
objWriterについて直した方が良いと思う点があります。
3Dモデルのメッシュの名前はIDと同じにして出力するようになっていますが、そのIDがgmlファイルで指定されていない場合、自動で
genID_(絶対パス.gml)(行番号)(列番号)
というIDが割り振られます。すると、図1のように長すぎるオブジェクト名が割り振られ、PCのユーザー名も丸見えになってしまうのでよくないと思いました。
絶対パスの代わりに
genID_(gmlファイル名)(行番号)(列番号)
になると良いかと思いました。
NativeMethodsにすべてまとめるのをやめる。
public class CityObject {
internal static class NativeMethods {
[DllImport(...)]
internal static extern IntPtr ...
}
}
インポート時に各パッケージについてMeshColliderの有無を選択できるように変更
std::filesystem::pathを使用して、区切り文字に依存しない実装にする必要がある。
現状、入れ子の属性にアクセスするには
attrMap[key1].AsAttrSet[key2].AsAttrSet[key3]
のようにする必要があります。
これはもっと便利になりそうです。
例えばstring配列で {key1, key2, key3} のように指定できれば便利です。
または、Unityのインスペクタで文字列指定をしやすくするために
"key1/key2/key3" のような区切り文字も良いかもしれませんが、これだと key の中にスラッシュがあるとバグるので
区切り文字の検討が必要かもしれません。
現状パッケージ情報からLOD範囲を取得してスライダーの範囲としているいるが、
これを実際に選択範囲内に存在するLOD範囲にさらに限定する。
これによって本当に存在するLODだけユーザーが選択できるようにする。
C# から C++ に CityModel のアドレスを送るとき、
C++ 側でcityModelHandle->getCityModelPtr()
しないと正しいアドレスが得られません。
他のクラスはこのような変換を挟まずに直接ポインタを渡せるので忘れがちであり、
忘れると Access Violation エラーとなりデバッグに時間がかかりがちです。
他のクラスと同じく、直接アドレスを渡せるようにしたいところです。
Hi there, could someone please help on this request? Thanks very much.
今の状態だとGLTF SDKのヘッダが無いとlibplateauをinclude出来ないため、Pimpl化が必要
https://github.com/Synesthesias/libplateau/blob/main/include/plateau/mesh_writer/gltf_writer.h#L7
#include <GLTFSDK/GLTF.h>
#include <GLTFSDK/BufferBuilder.h>
#include <GLTFSDK/GLTFResourceWriter.h>
を削除
namespace Microsoft::glTF {
class Scene;
class Mesh;
...
}
struct等であれば適宜変更
std::unique_ptr<Microsoft::glTF::Scene> scene_;
std::unique_ptr<Microsoft::glTF::Mesh> mesh_;
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.