📄 oxnewtonmanager.pas
字号:
FFrictionMotion2:= False;
FGravity:= TGLCoordinates.CreateInitialized( Self, VectorMake( 0, -9.81, 0 ), csUnknown );
FWorldSize:= TGLCoordinates.CreateInitialized( Self, VectorMake( 500, 500, 500 ), csUnknown );
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
procedure TOXNewtonManager.AddLog( str: string; level: integer; desc: string );
begin
if FLogEnable then begin
oxLog( str, level, desc );
end;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
procedure TOXNewtonManager.SetColor( val: TGLColor );
begin
if ( FColor <> val ) then FColor:= val;
NotifyChange( Self );
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
procedure TOXNewtonManager.SetCadencer( val: TGLCadencer );
begin
if ( FCadencer <> val ) then begin
if Assigned( FCadencer) then FCadencer.UnSubscribe( Self );
FCadencer:= val;
if Assigned( FCadencer ) then FCadencer.Subscribe( Self );
end;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
procedure TOXNewtonManager.Notification( AComponent: TComponent; Operation: TOperation );
begin
if ( Operation = opRemove ) then begin
if ( AComponent = Cadencer ) then Cadencer:= nil;
end;
inherited;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
procedure TOXNewtonManager.SetArchitecture( const val: Integer );
begin
if FArchitecture <> val then begin
FArchitecture:= val;
if FActived then begin
NewtonSetPlatformArchitecture( FWorld, FArchitecture );
end;
end;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
function TOXNewtonManager.GetArchitecture: Integer;
begin
result:= FArchitecture;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
procedure TOXNewtonManager.SetMaterialSurface( Custom: boolean; Softness, Elasticity, StaticFriction, KineticFriction: Float; Collidable: integer );
begin
FMatrialCustom:= Custom;
FMaterialSoftness:= Softness;
FMaterialElasticity:= Elasticity;
FMaterialCollidable:= Collidable;
FMaterialStaticFriction:= StaticFriction;
FMaterialKineticFriction:= KineticFriction;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
procedure TOXNewtonManager.SetMaterialSurfaceMode( const Mode: TOXMaterialSurfaceMode );
begin
case Mode of
mdNone: SetMaterialSurface( True, 0.0, 0.0, 0.0, 0.0, 0 );
mdDefault: SetMaterialSurface( True, 0.05, 0.4, 1.0, 0.5, 1 );
mdHard: SetMaterialSurface( True, 1.0, 0.5, 1.0, 0.5, 1 );
mdSoft: SetMaterialSurface( True, 0.01, 0.2, 1.0, 0.5, 1 );
mdSlide: SetMaterialSurface( True, 0.05, 0.4, 0.25, 0.25, 1 );
mdStatic: SetMaterialSurface( True, 0.05, 0.4, 1.0, 1.0, 1 );
end;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
procedure TOXNewtonManager.SetMaterialSoftness( const val: Float );
begin
if ( FMaterialSoftness <> val ) then
FMaterialSoftness:= val;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
procedure TOXNewtonManager.SetMaterialElasticity( const val: Float );
begin
if ( FMaterialElasticity <> val ) then
FMaterialElasticity:= val;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
procedure TOXNewtonManager.SetMaterialCollidable( const val: integer );
begin
if ( FMaterialCollidable <> val ) then
FMaterialCollidable:= val;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
procedure TOXNewtonManager.SetMaterialStaticFriction( const val: Float );
begin
if ( FMaterialStaticFriction <> val ) then
FMaterialStaticFriction:= val;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
procedure TOXNewtonManager.SetMaterialKineticFriction( const val: Float );
begin
if ( FMaterialKineticFriction <> val ) then
FMaterialKineticFriction:= val;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
function TOXNewtonManager.GetMaterialSoftness: Float;
begin
result:= FMaterialSoftness;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
function TOXNewtonManager.GetMaterialElasticity: Float;
begin
result:= FMaterialElasticity;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
function TOXNewtonManager.GetMaterialCollidable: integer;
begin
result:= FMaterialCollidable;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
function TOXNewtonManager.GetMaterialStaticFriction: Float;
begin
result:= FMaterialStaticFriction;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
function TOXNewtonManager.GetMaterialKineticFriction: Float;
begin
result:= FMaterialKineticFriction;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
function TOXNewtonManager.GetWorld: PNewtonWorld;
begin
if ( FWorld<>nil ) then begin
result:= FWorld
end else begin
AddLog( 'init your OXNewtonManager before using the World.', 1, ':Error Message!' );
result:= nil;
Application.Terminate;
end;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
function TOXNewtonManager.GetLogEnable: boolean;
begin
result:= FLogEnable;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
function TOXNewtonManager.GetNewtonStepTime: Float;
begin
result:= FNewtonStepTime;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
function TOXNewtonManager.GetNewtonMultiplyTime: Float;
begin
result:= FNewtonMultiplyTime;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
function TOXNewtonManager.GetMinimumFrameRate: boolean;
begin
result:= FMinimumFrameRate;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
function TOXNewtonManager.GetMinimumFrameRateValue: Float;
begin
result:= FMinimumFrameRateValue;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
procedure TOXNewtonManager.SetLogEnable( const val: boolean );
begin
if ( val <> FLogEnable ) then
FLogEnable:= val;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
procedure TOXNewtonManager.SetNewtonStepTime( const val: Float );
begin
if ( val <> FNewtonStepTime ) then
FNewtonStepTime:= val;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
procedure TOXNewtonManager.SetNewtonMultiplyTime( const val: Float );
begin
if ( val <> FNewtonMultiplyTime ) then
FNewtonMultiplyTime:= val;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
procedure TOXNewtonManager.SetWorldMultiplyLimit( const val: Float );
begin
if ( val <> FWorldMultiplyLimit ) then
FWorldMultiplyLimit:= val;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
function TOXNewtonManager.GetWorldMultiplyLimit: Float;
begin
result:= FWorldMultiplyLimit;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
procedure TOXNewtonManager.SetWorldMultiplySize( const val: Float );
begin
if ( val <> FWorldMultiplySize ) then
FWorldMultiplySize:= val;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
function TOXNewtonManager.GetWorldMultiplySize: Float;
begin
result:= FWorldMultiplySize;
end;
{******************************************************************************}
// [15-9-2007]: TOXNewtonManager last change by Dave Gravel. //
{******************************************************************************}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -