73 lines
2.4 KiB
C++
73 lines
2.4 KiB
C++
/*
|
|
* 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)
|
|
#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);
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|