📄 oxnewtondll.pas
字号:
unit oxNewtondll;
{******************************************************************************}
// [15-9-2007]: oxNewtondll last change by Dave Gravel. //
{******************************************************************************}
{===============================================================================
Version: MPL 1.1
The contents of this file are subject to the Mozilla Public License Version
1.1 (the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/
Software distributed under the License is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the
License.
The Original Code is "oxNewton opengl-Dynamics-delphi-component".
The Initial Developer of the Original Code is
Dave Gravel, OrionX3D Opengl & Delphi Programming, dave.gravel@cgocable.ca.
http://www.Dave.ServeUsers.com
http://www.k00m.sexidude.com
Portions created by Dave Gravel are Copyright (C) 2004 - 2006.
Dave Gravel. All Rights Reserved.
Contributor(s): GLScene (http://www.glscene.org) -
Julio Jerez and Alain Suero (http://www.newtondynamics.com) -
Sascha Willems (www.delphigl.de)
================================================================================
oxNewton v1.55 by Dave Gravel.
PS: I request only one thing from the users of my oxNewton Component,
it is to put on your about or your help a comment saying you using the
oxNewton Component with my name Dave Gravel and my
e-mail: dave.gravel@cgocable.ca
Don't modify or remove any comment or information on my file
if you do some modification on my code please contact me.
Read the Newton license too, it is realy important.
================================================================================}
interface
{******************************************************************************}
// [15-9-2007]: oxNewtondll last change by Dave Gravel. //
{******************************************************************************}
uses
Forms, Windows, Messages, SysUtils, Classes, Graphics, Controls, ExtCtrls,
Dialogs, StdCtrls,
//
GLScene, GLMisc, GLObjects, VectorGeometry, GLVectorFileObjects, VectorLists,
OpenGL1x, GLGeomObjects, VectorTypes, GLTexture,
//
oxNewtonManager, oxNewtonVehicle4Wheels, oxNewtonDynamicObjects, oxNewtonStaticObjects,
oxNewtonDynamicMesh, oxNewtonStaticMesh, {oxNewtonRagdoll,}
oxNewtonJoint, oxNewtonImport, oxNewtonUtils;
const
oxDLL = 'oxNewton.dll';
var
IsOXInitialized: boolean = False;
{******************************************************************************}
// [15-9-2007]: Dll Utils last change by Dave Gravel. //
{******************************************************************************}
// OrionX3D Protection
procedure oxSetProtectionDll; stdcall; external oxDLL name 'oxSetProtectionDll';
procedure oxCloseProtectionDll; stdcall; external oxDLL name 'oxCloseProtectionDll';
// Manager utility
procedure oxLog( const key: ShortString; const level: integer; const description: ShortString ); stdcall; external oxDLL name 'oxLog';
procedure oxSplashCredit; stdcall; external oxDLL name 'oxSplashCredit';
procedure oxSetManagerDll( oxNewtonManager: TOXNewtonManager; debuglog: boolean = true ); stdcall; external oxDLL name 'oxSetManagerDll';
function oxObjectType( obj: TGLBaseSceneObject ): boolean; stdcall; external oxDLL name 'oxObjectType';
procedure oxLimitationWallCollision( wall: TOXNewtonStaCube; wId: integer ); stdcall; external oxDLL name 'oxLimitationWallCollision';
// Mesh utility
procedure oxCreateNewtonTriMeshFromBaseMesh( aMesh: TGLFreeform; Collision: PNewtonCollision; Optimize: integer ); stdcall; cdecl; external oxDLL name 'oxCreateNewtonTriMeshFromBaseMesh';
procedure oxDynMeshConvexHull( Mesh: TOXNewtonDynMesh ); stdcall; cdecl; external oxDLL name 'oxDynMeshConvexHull';
procedure oxStaBuildTreeMeshData( Mesh: TOXNewtonStaMesh; Optimize: integer ); stdcall; cdecl; external oxDLL name 'oxStaBuildTreeMeshData';
// Ragdoll utility
procedure oxRagdollForceAndTorque( const Body: PNewtonBody ); stdcall; cdecl; external oxDLL name 'oxRagdollForceAndTorque';
// Objects utility
procedure oxDataCompressStream( const inpStream, outStream: TStream ); stdcall; cdecl; external oxDLL name 'oxDataCompressStream';
procedure oxDataDecompressStream( const inpStream, outStream: TStream ); stdcall; cdecl; external oxDLL name 'oxDataDecompressStream';
procedure oxObjectDynCompound( Id: Integer; obj: TOXNewtonDynCompound; Trim: TAffineVectorList; TransMat: TOXMatrix; objarray: TCollisionPrimitiveArray; tmparray: TCollisionPrimitiveArray; objlist: TList ); stdcall; external oxDLL name 'oxObjectDynCompound';
procedure oxObjectStaCompound( Id: Integer; obj: TOXNewtonStaCompound; Trim: TAffineVectorList; TransMat: TOXMatrix; objarray: TCollisionPrimitiveArray; tmparray: TCollisionPrimitiveArray; objlist: TList ); stdcall; external oxDLL name 'oxObjectStaCompound';
procedure oxObjectPhysicsApplyForceAndTorque( const Body: PNewtonBody ); stdcall; cdecl; external oxDLL name 'oxObjectPhysicsApplyForceAndTorque';
procedure oxTreeCollisionCallback( const bodyWithTreeCollision : PNewtonBody; const body : PNewtonBody; const vertex : PFloat; vertexstrideInBytes : int; indexCount : int; const indexArray : PInt ); stdcall; cdecl; external oxDLL name 'oxTreeCollisionCallback';
procedure oxPSetTransform( const Body: PNewtonBody; const Matrix: PFloat ); stdcall; cdecl; external oxDLL name 'oxPSetTransform';
procedure oxPSetInitTransform( const Body: PNewtonBody; const Obj: TGLBaseSceneObject ); stdcall; cdecl; external oxDLL name 'oxPSetInitTransform';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -