重新导入obi
This commit is contained in:
435
Assets/Obi/Plugins/iOS/Oni.h
Normal file
435
Assets/Obi/Plugins/iOS/Oni.h
Normal file
@@ -0,0 +1,435 @@
|
||||
/*
|
||||
* Oni.h
|
||||
* Oni
|
||||
*
|
||||
* Created by José María Méndez González on 21/9/15.
|
||||
* Copyright (c) 2015 ArK. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef Oni_
|
||||
#define Oni_
|
||||
|
||||
#include "Solver.h"
|
||||
#include "HalfEdgeMesh.h"
|
||||
#include "ParticleGrid.h"
|
||||
#include "ColliderGrid.h"
|
||||
|
||||
#if defined(__APPLE__) || defined(ANDROID) || defined(__linux__)
|
||||
#define EXPORT __attribute__((visibility("default")))
|
||||
#else
|
||||
#define EXPORT __declspec(dllexport)
|
||||
#endif
|
||||
|
||||
namespace Oni
|
||||
{
|
||||
|
||||
struct ConstraintGroupParameters;
|
||||
class ConstraintBatchBase;
|
||||
struct Collider;
|
||||
struct Rigidbody;
|
||||
class TriangleSkinMap;
|
||||
class DistanceField;
|
||||
struct CollisionMaterial;
|
||||
struct ProfileInfo;
|
||||
struct DFNode;
|
||||
struct TriangleMeshHeader;
|
||||
struct EdgeMeshHeader;
|
||||
struct BIHNode;
|
||||
struct Triangle;
|
||||
struct Edge;
|
||||
|
||||
template<class T>
|
||||
struct ObjHandle
|
||||
{
|
||||
std::shared_ptr<T> ptr;
|
||||
|
||||
ObjHandle(T* obj):ptr(std::shared_ptr<T>(obj)){}
|
||||
|
||||
ObjHandle(std::shared_ptr<T> obj):ptr(obj){}
|
||||
|
||||
std::shared_ptr<T> operator->() const{
|
||||
return ptr;
|
||||
}
|
||||
};
|
||||
|
||||
extern "C"
|
||||
{
|
||||
|
||||
typedef ObjHandle<ConstraintBatchBase> ConstraintBatchHandle;
|
||||
typedef ObjHandle<Collider> ColliderHandle;
|
||||
typedef ObjHandle<Rigidbody> RigidbodyHandle;
|
||||
typedef ObjHandle<CollisionMaterial> CollisionMaterialHandle;
|
||||
typedef ObjHandle<DistanceField> DistanceFieldHandle;
|
||||
typedef ObjHandle<Task> TaskHandle;
|
||||
|
||||
// Colliders ********************:
|
||||
EXPORT void UpdateColliderGrid(float dt);
|
||||
|
||||
EXPORT void SetColliders(Collider* shapes, Bounds* bounds, Transform* transforms, int count);
|
||||
|
||||
EXPORT void SetRigidbodies(Rigidbody* rigidbodies);
|
||||
|
||||
EXPORT void SetCollisionMaterials(CollisionMaterial* materials);
|
||||
|
||||
EXPORT void SetTriangleMeshData(TriangleMeshHeader* headers, BIHNode* nodes, Triangle* triangles, Eigen::Vector3f* vertices);
|
||||
EXPORT void SetEdgeMeshData(EdgeMeshHeader* headers, BIHNode* nodes, Edge* edges, Eigen::Vector2f* vertices);
|
||||
EXPORT void SetDistanceFieldData(DistanceFieldHeader* headers, DFNode* nodes);
|
||||
EXPORT void SetHeightFieldData(HeightFieldHeader* hf_headers, float* hf_samples);
|
||||
|
||||
// Distance fields ********************:
|
||||
|
||||
EXPORT DistanceFieldHandle* CreateDistanceField();
|
||||
EXPORT void DestroyDistanceField(DistanceFieldHandle* df);
|
||||
|
||||
EXPORT void StartBuildingDistanceField(DistanceFieldHandle* df,float max_error,
|
||||
int max_depth,
|
||||
Eigen::Vector3f* vertex_positions,
|
||||
int* triangle_indices_,
|
||||
int num_vertices,
|
||||
int num_triangles);
|
||||
|
||||
EXPORT bool ContinueBuildingDistanceField(DistanceFieldHandle* df);
|
||||
|
||||
EXPORT float SampleDistanceField(DistanceFieldHandle* df, float x, float y, float z);
|
||||
|
||||
EXPORT int GetDistanceFieldNodeCount(DistanceFieldHandle* df);
|
||||
EXPORT void GetDistanceFieldNodes(DistanceFieldHandle* df, DFNode* nodes);
|
||||
EXPORT void SetDistanceFieldNodes(DistanceFieldHandle* df, const DFNode* nodes, int num);
|
||||
|
||||
// Collision materials *****************:
|
||||
|
||||
EXPORT CollisionMaterialHandle* CreateCollisionMaterial();
|
||||
EXPORT void UpdateCollisionMaterial(CollisionMaterialHandle* material, const CollisionMaterial& adaptor);
|
||||
EXPORT void DestroyCollisionMaterial(CollisionMaterialHandle* collider);
|
||||
|
||||
// Solver ********************:
|
||||
|
||||
EXPORT Solver* CreateSolver(int capacity);
|
||||
EXPORT void DestroySolver(Solver* solver);
|
||||
|
||||
EXPORT void SetCapacity(Solver* solver,int capacity);
|
||||
EXPORT void InitializeFrame(Solver* solver,const Vector4fUnaligned& position, const Vector4fUnaligned& scale, const QuaternionfUnaligned& rotation);
|
||||
EXPORT void UpdateFrame(Solver* solver,const Vector4fUnaligned& position, const Vector4fUnaligned& scale, const QuaternionfUnaligned& rotation, float dt);
|
||||
EXPORT void ApplyFrame(Solver* solver, float linear_velocity_scale, float angular_velocity_scale, float linear_inertia_scale,float angular_inertia_scale, float dt);
|
||||
|
||||
EXPORT void GetBounds(Solver* solver, Eigen::Vector3f& min, Eigen::Vector3f& max);
|
||||
EXPORT int GetParticleGridSize(Solver* solver);
|
||||
EXPORT void GetParticleGrid(Solver* solver, Bounds* cells);
|
||||
|
||||
EXPORT void SetSolverParameters(Solver* solver, const SolverParameters* parameters);
|
||||
EXPORT void GetSolverParameters(Solver* solver, SolverParameters* parameters);
|
||||
|
||||
EXPORT TaskHandle* CollisionDetection(Solver* solver, float step_time);
|
||||
EXPORT TaskHandle* Step(Solver* solver, float step_time, float substep_time, int substeps);
|
||||
|
||||
EXPORT int SpatialQuery(Solver* solver, QueryShape* shapes, Transform* transforms, int shape_count);
|
||||
EXPORT void GetQueryResults(Solver* solver, QueryResult* results, int num);
|
||||
|
||||
EXPORT void ApplyPositionInterpolation(Solver* solver,
|
||||
Eigen::Vector4f* start_positions,
|
||||
Eigen::Quaternionf* start_orientations,
|
||||
float step_time,
|
||||
float unsimulated_time);
|
||||
|
||||
EXPORT void UpdateSkeletalAnimation(Solver* solver);
|
||||
|
||||
EXPORT void RecalculateInertiaTensors(Solver* solver);
|
||||
|
||||
EXPORT void ResetForces(Solver* solver);
|
||||
|
||||
EXPORT void SetRigidbodyLinearDeltas(Solver* solver, Eigen::Vector4f* linear_deltas);
|
||||
EXPORT void SetRigidbodyAngularDeltas(Solver* solver, Eigen::Vector4f* angular_deltas);
|
||||
|
||||
|
||||
EXPORT int GetConstraintCount(Solver* solver, const Solver::ConstraintType type);
|
||||
|
||||
EXPORT int SetActiveParticles(Solver* solver, const int* active, int num);
|
||||
|
||||
EXPORT void SetParticleCollisionMaterials(Solver* solver, int* material_indices);
|
||||
|
||||
EXPORT void SetParticlePhases(Solver* solver, int* phases);
|
||||
|
||||
EXPORT void SetParticleFilters(Solver* solver, int* filters);
|
||||
|
||||
EXPORT void SetParticlePositions(Solver* solver, Eigen::Vector4f* positions);
|
||||
|
||||
EXPORT void SetParticlePreviousPositions(Solver* solver, Eigen::Vector4f* prev_positions);
|
||||
|
||||
EXPORT void SetParticleOrientations(Solver* solver,Eigen::Quaternionf* orientations);
|
||||
|
||||
EXPORT void SetParticlePreviousOrientations(Solver* solver, Eigen::Quaternionf* prev_orientations);
|
||||
|
||||
EXPORT void SetRenderableParticleOrientations(Solver* solver, Eigen::Quaternionf* orientations);
|
||||
|
||||
EXPORT void SetRenderableParticlePositions(Solver* solver, Eigen::Vector4f* positions);
|
||||
|
||||
EXPORT void SetParticleInverseMasses(Solver* solver, float* inv_masses);
|
||||
|
||||
EXPORT void SetParticleInverseRotationalMasses(Solver* solver, float* inv_rot_masses);
|
||||
|
||||
EXPORT void SetParticlePrincipalRadii(Solver* solver, Eigen::Vector4f* radii);
|
||||
|
||||
EXPORT void SetParticleVelocities(Solver* solver, Eigen::Vector4f* velocities);
|
||||
|
||||
EXPORT void SetParticleAngularVelocities(Solver* solver, Eigen::Vector4f* velocities);
|
||||
|
||||
EXPORT void SetParticleExternalForces(Solver* solver, Eigen::Vector4f* forces);
|
||||
|
||||
EXPORT void SetParticleExternalTorques(Solver* solver, Eigen::Vector4f* torques);
|
||||
|
||||
EXPORT void SetParticleWinds(Solver* solver, Eigen::Vector4f* wind);
|
||||
|
||||
EXPORT void SetParticlePositionDeltas(Solver* solver, Eigen::Vector4f* deltas);
|
||||
|
||||
EXPORT void SetParticleOrientationDeltas(Solver* solver, Eigen::Quaternionf* deltas);
|
||||
|
||||
EXPORT void SetParticlePositionConstraintCounts(Solver* solver, int* counts);
|
||||
|
||||
EXPORT void SetParticleOrientationConstraintCounts(Solver* solver, int* counts);
|
||||
|
||||
EXPORT void SetParticleNormals(Solver* solver, Eigen::Vector4f* normals);
|
||||
|
||||
EXPORT void SetParticleInverseInertiaTensors(Solver* solver, Eigen::Vector4f* tensors);
|
||||
|
||||
EXPORT int SetSimplices(Solver* solver, const int* simplices, int point_count, int edge_count, int triangle_count);
|
||||
|
||||
|
||||
EXPORT int GetDeformableTriangleCount(Solver* solver);
|
||||
|
||||
EXPORT void SetDeformableTriangles(Solver* solver, const int* indices, int num, int dest_offset);
|
||||
|
||||
EXPORT int RemoveDeformableTriangles(Solver* solver, int num, int source_offset);
|
||||
|
||||
|
||||
// Fluid ********************:
|
||||
|
||||
EXPORT void SetParticleSmoothingRadii(Solver* solver,float* radii);
|
||||
|
||||
EXPORT void SetParticleBuoyancy(Solver* solver,float* buoyancy);
|
||||
|
||||
EXPORT void SetParticleRestDensities(Solver* solver,float* rest_densities);
|
||||
|
||||
EXPORT void SetParticleViscosities(Solver* solver,float* viscosities);
|
||||
|
||||
EXPORT void SetParticleSurfaceTension(Solver* solver,float* surf_tension);
|
||||
|
||||
EXPORT void SetParticleVorticityConfinement(Solver* solver,float* vort_confinement);
|
||||
|
||||
EXPORT void SetParticleAtmosphericDragPressure(Solver* solver,float* atmospheric_drag, float* atmospheric_pressure);
|
||||
|
||||
EXPORT void SetParticleDiffusion(Solver* solver,float* diffusion);
|
||||
|
||||
|
||||
EXPORT void SetParticleVorticities(Solver* solver, Eigen::Vector4f* vorticities);
|
||||
|
||||
EXPORT void SetParticleFluidData(Solver* solver, Eigen::Vector4f* fluid_data);
|
||||
|
||||
EXPORT void SetParticleUserData(Solver* solver, Eigen::Vector4f* user_data);
|
||||
|
||||
EXPORT void SetParticleAnisotropies(Solver* solver, Eigen::Vector4f* anisotropies);
|
||||
|
||||
|
||||
|
||||
EXPORT void SetConstraintGroupParameters(Solver* solver, const Solver::ConstraintType type, const ConstraintGroupParameters* parameters);
|
||||
|
||||
EXPORT void GetConstraintGroupParameters(Solver* solver, const Solver::ConstraintType type, ConstraintGroupParameters* parameters);
|
||||
|
||||
EXPORT void SetRestPositions(Solver* solver, Eigen::Vector4f* rest_positions);
|
||||
|
||||
EXPORT void SetRestOrientations(Solver* solver, Eigen::Quaternionf* rest_orientations);
|
||||
|
||||
|
||||
// Batches ********************:
|
||||
|
||||
EXPORT ConstraintBatchHandle* CreateBatch(const Solver::ConstraintType type);
|
||||
|
||||
EXPORT void DestroyBatch(ConstraintBatchHandle* batch);
|
||||
|
||||
EXPORT void AddBatch(Solver* solver, ConstraintBatchHandle* batch);
|
||||
|
||||
EXPORT void RemoveBatch(Solver* solver, ConstraintBatchHandle* batch);
|
||||
|
||||
EXPORT void EnableBatch(ConstraintBatchHandle* batch, bool enabled);
|
||||
|
||||
EXPORT int GetBatchConstraintForces(ConstraintBatchHandle* batch, float* forces, int num, int source_offset);
|
||||
|
||||
// Constraints ********************:
|
||||
|
||||
EXPORT void SetBatchConstraintCount(ConstraintBatchHandle* batch, int num);
|
||||
|
||||
EXPORT int GetBatchConstraintCount(ConstraintBatchHandle* batch);
|
||||
|
||||
EXPORT void SetDistanceConstraints(ConstraintBatchHandle* batch,
|
||||
int* indices,
|
||||
float* restLengths,
|
||||
float* stiffnesses,
|
||||
float* lambdas,
|
||||
int num);
|
||||
|
||||
EXPORT void SetBendingConstraints(ConstraintBatchHandle* batch,
|
||||
int* indices,
|
||||
float* rest_bends,
|
||||
float* bending_stiffnesses,
|
||||
float* plasticity,
|
||||
float* lambdas,
|
||||
int num);
|
||||
|
||||
EXPORT void SetSkinConstraints(ConstraintBatchHandle* batch,
|
||||
int* indices,
|
||||
Eigen::Vector4f* skin_points,
|
||||
Eigen::Vector4f* skin_normals,
|
||||
float* radii_backstops,
|
||||
float* stiffnesses,
|
||||
float* lambdas,
|
||||
int num);
|
||||
|
||||
EXPORT void SetAerodynamicConstraints(ConstraintBatchHandle* batch,
|
||||
int* triangle_indices,
|
||||
float* aerodynamic_coeffs,
|
||||
int num);
|
||||
|
||||
EXPORT void SetVolumeConstraints(ConstraintBatchHandle* batch,
|
||||
int* triangle_indices,
|
||||
int* first_triangle,
|
||||
int* num_triangles,
|
||||
float* rest_volumes,
|
||||
float* pressure_stiffnesses,
|
||||
float* lambdas,
|
||||
int num);
|
||||
|
||||
EXPORT void SetShapeMatchingConstraints(ConstraintBatchHandle* batch,
|
||||
int* shape_indices,
|
||||
int* first_index,
|
||||
int* num_indices,
|
||||
int* explicit_group,
|
||||
float* shape_material_parameters,
|
||||
Eigen::Vector4f* rest_coms,
|
||||
Eigen::Vector4f* coms,
|
||||
Eigen::Quaternionf* orientations,
|
||||
Eigen::Matrix4f* linear_transforms,
|
||||
Eigen::Matrix4f* plastic_deformations,
|
||||
int num);
|
||||
|
||||
EXPORT void CalculateRestShapeMatching(Solver* solver, ConstraintBatchHandle* batch);
|
||||
|
||||
EXPORT void SetStretchShearConstraints(ConstraintBatchHandle* batch,
|
||||
int* particle_indices,
|
||||
int* orientation_indices,
|
||||
float* rest_lengths,
|
||||
Eigen::Quaternionf* rest_orientations,
|
||||
Eigen::Vector3f* stiffnesses,
|
||||
Eigen::Vector3f* lambdas,
|
||||
int num);
|
||||
|
||||
EXPORT void SetBendTwistConstraints(ConstraintBatchHandle* batch,
|
||||
int* orientation_indices,
|
||||
Eigen::Quaternionf* rest_darboux,
|
||||
Eigen::Vector3f* stiffnesses,
|
||||
float* plasticity,
|
||||
Eigen::Vector3f* lambdas,
|
||||
int num);
|
||||
|
||||
EXPORT void SetTetherConstraints(ConstraintBatchHandle* batch,
|
||||
int* indices,
|
||||
float* max_lenght_scales,
|
||||
float* stiffnesses,
|
||||
float* lambdas,
|
||||
int num);
|
||||
|
||||
EXPORT void SetPinConstraints(ConstraintBatchHandle* batch,
|
||||
int* indices,
|
||||
Vector4f* pin_offsets,
|
||||
Quaternionf* rest_darboux,
|
||||
int* colliders,
|
||||
float* stiffnesses,
|
||||
Eigen::Vector4f* lambdas,
|
||||
int num);
|
||||
|
||||
EXPORT void SetStitchConstraints(ConstraintBatchHandle* batch,
|
||||
int* indices,
|
||||
float* stiffnesses,
|
||||
float* lambdas,
|
||||
int num);
|
||||
|
||||
EXPORT void SetChainConstraints(ConstraintBatchHandle* batch,
|
||||
int* indices,
|
||||
float* rest_lengths,
|
||||
int* first_index,
|
||||
int* num_indices,
|
||||
int num);
|
||||
|
||||
// Collision data ********************:
|
||||
|
||||
EXPORT void GetCollisionContacts(Solver* solver,Contact* contacts, int num);
|
||||
|
||||
EXPORT void GetParticleCollisionContacts(Solver* solver,Contact* contacts, int num);
|
||||
|
||||
// Diffuse particles ********************:
|
||||
|
||||
EXPORT void InterpolateDiffuseParticles(Solver* solver,
|
||||
const Eigen::Vector4f* properties,
|
||||
const Eigen::Vector4f* diffuse_positions,
|
||||
Eigen::Vector4f* diffuse_properties,
|
||||
int* neighbour_count,
|
||||
int count);
|
||||
|
||||
// Skin maps ********************:
|
||||
|
||||
EXPORT TriangleSkinMap* CreateTriangleSkinMap();
|
||||
|
||||
EXPORT void DestroyTriangleSkinMap(TriangleSkinMap* map);
|
||||
|
||||
EXPORT void Bind(TriangleSkinMap* map, Mesh* source, Mesh* target,
|
||||
const unsigned int* source_master_flags,
|
||||
const unsigned int* target_slave_flags);
|
||||
|
||||
EXPORT int GetSkinnedVertexCount(TriangleSkinMap* map);
|
||||
|
||||
EXPORT void GetSkinInfo(TriangleSkinMap* map,
|
||||
int* skin_indices,
|
||||
int* source_tri_indices,
|
||||
Eigen::Vector3f* bary_pos,
|
||||
Eigen::Vector3f* bary_nrm,
|
||||
Eigen::Vector3f* bary_tan);
|
||||
|
||||
EXPORT void SetSkinInfo(TriangleSkinMap* map,
|
||||
const int* skin_indices,
|
||||
const int* source_tri_indices,
|
||||
const Eigen::Vector3f* bary_pos,
|
||||
const Eigen::Vector3f* bary_nrm,
|
||||
const Eigen::Vector3f* bary_tan,
|
||||
int num);
|
||||
|
||||
// Tasks ********************:
|
||||
|
||||
EXPORT void CompleteAll();
|
||||
|
||||
EXPORT void Complete(TaskHandle* task);
|
||||
|
||||
EXPORT TaskHandle* CreateEmpty();
|
||||
|
||||
EXPORT void Schedule(TaskHandle* task);
|
||||
|
||||
EXPORT void AddChild(TaskHandle* task, TaskHandle* child);
|
||||
|
||||
// Profiling ****************:
|
||||
|
||||
EXPORT int GetMaxSystemConcurrency();
|
||||
|
||||
EXPORT void ClearProfiler();
|
||||
|
||||
EXPORT void EnableProfiler(bool enabled);
|
||||
|
||||
EXPORT void BeginSample(const char* name, unsigned char type);
|
||||
|
||||
EXPORT void EndSample();
|
||||
|
||||
EXPORT int GetProfilingInfoCount();
|
||||
|
||||
EXPORT void GetProfilingInfo(ProfileInfo* info, int count);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
90
Assets/Obi/Plugins/iOS/Oni.h.meta
Normal file
90
Assets/Obi/Plugins/iOS/Oni.h.meta
Normal file
@@ -0,0 +1,90 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 03646faf401f74c9e8e73b6365c17f63
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
'': Linux
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: x86
|
||||
- first:
|
||||
'': OSXIntel
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
- first:
|
||||
'': OSXIntel64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
- first:
|
||||
Android: Android
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
DefaultValueInitialized: true
|
||||
OS: AnyOS
|
||||
- first:
|
||||
Facebook: Win
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
- first:
|
||||
Facebook: Win64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
- first:
|
||||
Standalone: Linux64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
- first:
|
||||
Standalone: Win
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
- first:
|
||||
Standalone: Win64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
- first:
|
||||
iPhone: iOS
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CompileFlags:
|
||||
FrameworkDependencies:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
72
Assets/Obi/Plugins/iOS/OniHelpers.h
Normal file
72
Assets/Obi/Plugins/iOS/OniHelpers.h
Normal file
@@ -0,0 +1,72 @@
|
||||
/*
|
||||
* OniHelpers.h
|
||||
* Oni
|
||||
*
|
||||
* Created by José María Méndez González on 21/9/15.
|
||||
* Copyright (c) 2015 ArK. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef OniHelpers_
|
||||
#define OniHelpers_
|
||||
|
||||
#include "Dense"
|
||||
#include "HalfEdgeMesh.h"
|
||||
|
||||
#if defined(__APPLE__) || defined(ANDROID) || defined(__linux__)
|
||||
#define EXPORT __attribute__((visibility("default")))
|
||||
#else
|
||||
#define EXPORT __declspec(dllexport)
|
||||
#endif
|
||||
|
||||
namespace Oni
|
||||
{
|
||||
extern "C"
|
||||
{
|
||||
|
||||
EXPORT int MakePhase(int group, int flags);
|
||||
EXPORT int GetGroupFromPhase(int phase);
|
||||
|
||||
/**
|
||||
* Calculates the rest bend factor for a bending constraint between 3 particles.
|
||||
* @param coordinates an array of 9 floats: x,y,z of the first particle, x,y,z of the second particle, x,y,z of the third (central) particle.
|
||||
*/
|
||||
EXPORT float BendingConstraintRest(float* coordinates);
|
||||
|
||||
EXPORT HalfEdgeMesh* CreateHalfEdgeMesh();
|
||||
|
||||
EXPORT void DestroyHalfEdgeMesh(HalfEdgeMesh* mesh);
|
||||
EXPORT void GetHalfEdgeMeshInfo(HalfEdgeMesh* mesh, HalfEdgeMesh::MeshInformation* mesh_info);
|
||||
|
||||
EXPORT void CalculatePrimitiveCounts(HalfEdgeMesh* mesh,
|
||||
Eigen::Vector3f* vertices,
|
||||
int* triangles,
|
||||
int vertex_count,
|
||||
int triangle_count);
|
||||
|
||||
EXPORT void Generate(HalfEdgeMesh* mesh,
|
||||
Eigen::Vector3f* vertices,
|
||||
int* triangles,
|
||||
int vertex_count,
|
||||
int triangle_count,
|
||||
float* scale);
|
||||
|
||||
EXPORT void SetHalfEdges(HalfEdgeMesh* mesh,HalfEdgeMesh::HalfEdge* half_edges, int count);
|
||||
EXPORT void SetVertices(HalfEdgeMesh* mesh,HalfEdgeMesh::Vertex* vertices, int count);
|
||||
EXPORT void SetFaces(HalfEdgeMesh* mesh,HalfEdgeMesh::Face* faces, int count);
|
||||
|
||||
EXPORT void SetNormals(HalfEdgeMesh* mesh,Eigen::Vector3f* normals);
|
||||
EXPORT void SetTangents(HalfEdgeMesh* mesh,Vector4fUnaligned* tangents);
|
||||
EXPORT void SetInverseOrientations(HalfEdgeMesh* mesh,QuaternionfUnaligned* orientations);
|
||||
EXPORT void SetVisualMap(HalfEdgeMesh* mesh,int* map);
|
||||
|
||||
EXPORT int GetHalfEdgeCount(HalfEdgeMesh* mesh);
|
||||
EXPORT int GetVertexCount(HalfEdgeMesh* mesh);
|
||||
EXPORT int GetFaceCount(HalfEdgeMesh* mesh);
|
||||
|
||||
EXPORT void GetPointCloudAnisotropy(Eigen::Vector3f* points,int count,float max_anisotropy,float radius, const Eigen::Vector3f& hint_normal, Eigen::Vector3f& centroid, QuaternionfUnaligned& orientation,Eigen::Vector3f& principal_values);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
90
Assets/Obi/Plugins/iOS/OniHelpers.h.meta
Normal file
90
Assets/Obi/Plugins/iOS/OniHelpers.h.meta
Normal file
@@ -0,0 +1,90 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4f88b733d928048638365465e86b8f3b
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
'': Linux
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: x86
|
||||
- first:
|
||||
'': OSXIntel
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
- first:
|
||||
'': OSXIntel64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
- first:
|
||||
Android: Android
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
DefaultValueInitialized: true
|
||||
OS: AnyOS
|
||||
- first:
|
||||
Facebook: Win
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
- first:
|
||||
Facebook: Win64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
- first:
|
||||
Standalone: Linux64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
- first:
|
||||
Standalone: Win
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
- first:
|
||||
Standalone: Win64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
- first:
|
||||
iPhone: iOS
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CompileFlags:
|
||||
FrameworkDependencies:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Obi/Plugins/iOS/libOni.a
Normal file
BIN
Assets/Obi/Plugins/iOS/libOni.a
Normal file
Binary file not shown.
105
Assets/Obi/Plugins/iOS/libOni.a.meta
Normal file
105
Assets/Obi/Plugins/iOS/libOni.a.meta
Normal file
@@ -0,0 +1,105 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 480286a2338ca4cb6a36110dcd0614f4
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
'': Any
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
Exclude Android: 1
|
||||
Exclude Editor: 1
|
||||
Exclude Linux: 1
|
||||
Exclude Linux64: 1
|
||||
Exclude LinuxUniversal: 1
|
||||
Exclude OSXUniversal: 1
|
||||
Exclude Win: 1
|
||||
Exclude Win64: 1
|
||||
Exclude iOS: 0
|
||||
- first:
|
||||
Android: Android
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: ARMv7
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
DefaultValueInitialized: true
|
||||
OS: AnyOS
|
||||
- first:
|
||||
Facebook: Win
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
- first:
|
||||
Facebook: Win64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
- first:
|
||||
Standalone: Linux
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: x86
|
||||
- first:
|
||||
Standalone: Linux64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
- first:
|
||||
Standalone: LinuxUniversal
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: None
|
||||
- first:
|
||||
Standalone: OSXUniversal
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
- first:
|
||||
Standalone: Win
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
- first:
|
||||
Standalone: Win64
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
- first:
|
||||
iPhone: iOS
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
AddToEmbeddedBinaries: false
|
||||
CompileFlags:
|
||||
FrameworkDependencies:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user