Skip to content

Commit

Permalink
Finish CastleInternalNodesUnsupported unit, separate unit for X3D nod…
Browse files Browse the repository at this point in the history
…es that we can only read/write but don't handle in any other way

This makes is easier to support more nodes "only read/write", like geo or textureprojector or X3D 4.0 audio nodes, without confusing CGE devs

See castle-engine/castle-model-viewer#80
  • Loading branch information
michaliskambi committed Nov 1, 2023
1 parent 9f514b6 commit 64520a9
Show file tree
Hide file tree
Showing 11 changed files with 158 additions and 152 deletions.
20 changes: 19 additions & 1 deletion src/scene/x3d/castleinternalnodesunsupported.pas
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,11 @@

interface

uses X3DNodes, X3DFields, CastleVectors, CastleStringUtils, CastleColors,
CastleTimeUtils, CastleUtils, CastleBoxes;

{$define read_interface}

type
{$I x3dnodes_standard_geospatial.inc}
{$I x3dnodes_standard_dis.inc}
Expand All @@ -43,11 +47,25 @@ interface
{$I x3dnodes_standard_particlesystems.inc}
{$I x3dnodes_standard_textureprojector.inc}

{$undef read_interface}

procedure RegisterUnsupportedNodes;

implementation

uses X3DNodes;
uses SysUtils;

{$define read_implementation}

{$I x3dnodes_standard_geospatial.inc}
{$I x3dnodes_standard_dis.inc}
{$I x3dnodes_standard_layering.inc}
{$I x3dnodes_standard_layout.inc}
{$I x3dnodes_standard_rigidbodyphysics.inc}
{$I x3dnodes_standard_picking.inc}
{$I x3dnodes_standard_followers.inc}
{$I x3dnodes_standard_particlesystems.inc}
{$I x3dnodes_standard_textureprojector.inc}

procedure RegisterUnsupportedNodes;
begin
Expand Down
95 changes: 1 addition & 94 deletions src/scene/x3d/x3dnodes.pas

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions src/scene/x3d/x3dnodes_standard_dis.inc
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,13 @@ const
'networkWriter'
);

{$I auto_generated_node_helpers/x3dnodes_disentitymanager.inc}
{$I auto_generated_node_helpers/x3dnodes_disentitytypemapping.inc}
{$I auto_generated_node_helpers/x3dnodes_espdutransform.inc}
{$I auto_generated_node_helpers/x3dnodes_receiverpdu.inc}
{$I auto_generated_node_helpers/x3dnodes_signalpdu.inc}
{$I auto_generated_node_helpers/x3dnodes_transmitterpdu.inc}

constructor TDISEntityTypeMappingNode.Create(const AX3DName, ABaseUrl: String);
begin
inherited;
Expand Down
14 changes: 14 additions & 0 deletions src/scene/x3d/x3dnodes_standard_followers.inc
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,20 @@

{$ifdef read_implementation}

{$I auto_generated_node_helpers/x3dnodes_x3dfollowernode.inc}
{$I auto_generated_node_helpers/x3dnodes_x3ddampernode.inc}
{$I auto_generated_node_helpers/x3dnodes_x3dchasernode.inc}
{$I auto_generated_node_helpers/x3dnodes_colordamper.inc}
{$I auto_generated_node_helpers/x3dnodes_coordinatedamper.inc}
{$I auto_generated_node_helpers/x3dnodes_orientationchaser.inc}
{$I auto_generated_node_helpers/x3dnodes_orientationdamper.inc}
{$I auto_generated_node_helpers/x3dnodes_positionchaser.inc}
{$I auto_generated_node_helpers/x3dnodes_positionchaser2d.inc}
{$I auto_generated_node_helpers/x3dnodes_positiondamper.inc}
{$I auto_generated_node_helpers/x3dnodes_positiondamper2d.inc}
{$I auto_generated_node_helpers/x3dnodes_scalarchaser.inc}
{$I auto_generated_node_helpers/x3dnodes_texcoorddamper2d.inc}

procedure RegisterFollowersNodes;
begin
NodesManager.RegisterNodeClasses([
Expand Down
12 changes: 12 additions & 0 deletions src/scene/x3d/x3dnodes_standard_geospatial.inc
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,18 @@

{$ifdef read_implementation}

{$I auto_generated_node_helpers/x3dnodes_geocoordinate.inc}
{$I auto_generated_node_helpers/x3dnodes_geoelevationgrid.inc}
{$I auto_generated_node_helpers/x3dnodes_geolocation.inc}
{$I auto_generated_node_helpers/x3dnodes_geolod.inc}
{$I auto_generated_node_helpers/x3dnodes_geometadata.inc}
{$I auto_generated_node_helpers/x3dnodes_geoorigin.inc}
{$I auto_generated_node_helpers/x3dnodes_geopositioninterpolator.inc}
{$I auto_generated_node_helpers/x3dnodes_geoproximitysensor.inc}
{$I auto_generated_node_helpers/x3dnodes_geotouchsensor.inc}
{$I auto_generated_node_helpers/x3dnodes_geotransform.inc}
{$I auto_generated_node_helpers/x3dnodes_geoviewpoint.inc}

{ TGeoCoordinateNode --------------------------------------------------------- }

function TGeoCoordinateNode.CoordCount: Cardinal;
Expand Down
16 changes: 11 additions & 5 deletions src/scene/x3d/x3dnodes_standard_layering.inc
Original file line number Diff line number Diff line change
Expand Up @@ -19,29 +19,35 @@

{ }
TAbstractLayerNode = class(TAbstractNode)
{$I auto_generated_node_helpers/x3dnodes_x3dlayernode.inc}
{$I auto_generated_node_helpers/x3dnodes_x3dlayernode.inc}
end;

TAbstractViewportNode = class(TAbstractGroupingNode)
{$I auto_generated_node_helpers/x3dnodes_x3dviewportnode.inc}
{$I auto_generated_node_helpers/x3dnodes_x3dviewportnode.inc}
end;

TLayerNode = class(TAbstractLayerNode)
{$I auto_generated_node_helpers/x3dnodes_layer.inc}
{$I auto_generated_node_helpers/x3dnodes_layer.inc}
end;

TLayerSetNode = class(TAbstractNode)
{$I auto_generated_node_helpers/x3dnodes_layerset.inc}
{$I auto_generated_node_helpers/x3dnodes_layerset.inc}
end;

TViewportNode = class(TAbstractGroupingNode)
{$I auto_generated_node_helpers/x3dnodes_viewport.inc}
{$I auto_generated_node_helpers/x3dnodes_viewport.inc}
end;

{$endif read_interface}

{$ifdef read_implementation}

{$I auto_generated_node_helpers/x3dnodes_x3dlayernode.inc}
{$I auto_generated_node_helpers/x3dnodes_x3dviewportnode.inc}
{$I auto_generated_node_helpers/x3dnodes_layer.inc}
{$I auto_generated_node_helpers/x3dnodes_layerset.inc}
{$I auto_generated_node_helpers/x3dnodes_viewport.inc}

procedure RegisterLayeringNodes;
begin
NodesManager.RegisterNodeClasses([
Expand Down
24 changes: 18 additions & 6 deletions src/scene/x3d/x3dnodes_standard_layout.inc
Original file line number Diff line number Diff line change
Expand Up @@ -17,33 +17,45 @@
{$ifdef read_interface}
{ }
TAbstractLayoutNode = class(TAbstractChildNode)
{$I auto_generated_node_helpers/x3dnodes_x3dlayoutnode.inc}
{$I auto_generated_node_helpers/x3dnodes_x3dlayoutnode.inc}
end;

TLayoutNode = class(TAbstractLayoutNode)
{$I auto_generated_node_helpers/x3dnodes_layout.inc}
{$I auto_generated_node_helpers/x3dnodes_layout.inc}
end;

TLayoutGroupNode = class(TAbstractGroupingNode)
{$I auto_generated_node_helpers/x3dnodes_layoutgroup.inc}
{$I auto_generated_node_helpers/x3dnodes_layoutgroup.inc}
end;

TLayoutLayerNode = class(TAbstractLayerNode)
{$I auto_generated_node_helpers/x3dnodes_layoutlayer.inc}
{$I auto_generated_node_helpers/x3dnodes_layoutlayer.inc}
end;

TScreenFontStyleNode = class(TAbstractFontStyleNode)
{$I auto_generated_node_helpers/x3dnodes_screenfontstyle.inc}
{$I auto_generated_node_helpers/x3dnodes_screenfontstyle.inc}
end;

TScreenGroupNode = class(TAbstractGroupingNode)
{$I auto_generated_node_helpers/x3dnodes_screengroup.inc}
{$I auto_generated_node_helpers/x3dnodes_screengroup.inc}
end;

{$endif read_interface}

{$ifdef read_implementation}

const
{ TODO: Duplicates X3DNodes definition. }
FontStyleNames: array [TX3DFontStyle] of String =
('PLAIN', 'BOLD', 'ITALIC', 'BOLDITALIC');

{$I auto_generated_node_helpers/x3dnodes_x3dlayoutnode.inc}
{$I auto_generated_node_helpers/x3dnodes_layout.inc}
{$I auto_generated_node_helpers/x3dnodes_layoutgroup.inc}
{$I auto_generated_node_helpers/x3dnodes_layoutlayer.inc}
{$I auto_generated_node_helpers/x3dnodes_screenfontstyle.inc}
{$I auto_generated_node_helpers/x3dnodes_screengroup.inc}

procedure RegisterLayoutNodes;
begin
NodesManager.RegisterNodeClasses([
Expand Down
9 changes: 9 additions & 0 deletions src/scene/x3d/x3dnodes_standard_navigation.inc
Original file line number Diff line number Diff line change
Expand Up @@ -276,6 +276,15 @@ const
ShapeSortNames: array [TShapeSort] of string =
('AUTO', 'NONE', '2D', '3D', '3D_VERTICAL_BILLBOARDS', '3D_ORIGIN', '3D_GROUND', 'CUSTOM');

{$I auto_generated_node_helpers/x3dnodes_x3dviewpointnode.inc}
{$I auto_generated_node_helpers/x3dnodes_billboard.inc}
{$I auto_generated_node_helpers/x3dnodes_collision.inc}
{$I auto_generated_node_helpers/x3dnodes_lod.inc}
{$I auto_generated_node_helpers/x3dnodes_navigationinfo.inc}
{$I auto_generated_node_helpers/x3dnodes_orthoviewpoint.inc}
{$I auto_generated_node_helpers/x3dnodes_viewpoint.inc}
{$I auto_generated_node_helpers/x3dnodes_viewpointgroup.inc}

{ TAbstractViewpointNode -------------------------------------------------- }

constructor TAbstractViewpointNode.Create(const AX3DName: string = ''; const ABaseUrl: string = '');
Expand Down
37 changes: 25 additions & 12 deletions src/scene/x3d/x3dnodes_standard_particlesystems.inc
Original file line number Diff line number Diff line change
Expand Up @@ -22,51 +22,51 @@

{ }
TAbstractParticleEmitterNode = class(TAbstractNode)
{$I auto_generated_node_helpers/x3dnodes_x3dparticleemitternode.inc}
{$I auto_generated_node_helpers/x3dnodes_x3dparticleemitternode.inc}
end;

TAbstractParticlePhysicsModelNode = class(TAbstractNode)
{$I auto_generated_node_helpers/x3dnodes_x3dparticlephysicsmodelnode.inc}
{$I auto_generated_node_helpers/x3dnodes_x3dparticlephysicsmodelnode.inc}
end;

TBoundedPhysicsModelNode = class(TAbstractParticlePhysicsModelNode)
{$I auto_generated_node_helpers/x3dnodes_boundedphysicsmodel.inc}
{$I auto_generated_node_helpers/x3dnodes_boundedphysicsmodel.inc}
end;

TConeEmitterNode = class(TAbstractParticleEmitterNode)
{$I auto_generated_node_helpers/x3dnodes_coneemitter.inc}
{$I auto_generated_node_helpers/x3dnodes_coneemitter.inc}
end;

TExplosionEmitterNode = class(TAbstractParticleEmitterNode)
{$I auto_generated_node_helpers/x3dnodes_explosionemitter.inc}
{$I auto_generated_node_helpers/x3dnodes_explosionemitter.inc}
end;

TForcePhysicsModelNode = class(TAbstractParticlePhysicsModelNode)
{$I auto_generated_node_helpers/x3dnodes_forcephysicsmodel.inc}
{$I auto_generated_node_helpers/x3dnodes_forcephysicsmodel.inc}
end;

TParticleSystemNode = class(TAbstractShapeNode)
{$I auto_generated_node_helpers/x3dnodes_particlesystem.inc}
{$I auto_generated_node_helpers/x3dnodes_particlesystem.inc}
end;

TPointEmitterNode = class(TAbstractParticleEmitterNode)
{$I auto_generated_node_helpers/x3dnodes_pointemitter.inc}
{$I auto_generated_node_helpers/x3dnodes_pointemitter.inc}
end;

TPolylineEmitterNode = class(TAbstractParticleEmitterNode)
{$I auto_generated_node_helpers/x3dnodes_polylineemitter.inc}
{$I auto_generated_node_helpers/x3dnodes_polylineemitter.inc}
end;

TSurfaceEmitterNode = class(TAbstractParticleEmitterNode)
{$I auto_generated_node_helpers/x3dnodes_surfaceemitter.inc}
{$I auto_generated_node_helpers/x3dnodes_surfaceemitter.inc}
end;

TVolumeEmitterNode = class(TAbstractParticleEmitterNode)
{$I auto_generated_node_helpers/x3dnodes_volumeemitter.inc}
{$I auto_generated_node_helpers/x3dnodes_volumeemitter.inc}
end;

TWindPhysicsModelNode = class(TAbstractParticlePhysicsModelNode)
{$I auto_generated_node_helpers/x3dnodes_windphysicsmodel.inc}
{$I auto_generated_node_helpers/x3dnodes_windphysicsmodel.inc}
end;

{$endif read_interface}
Expand All @@ -77,6 +77,19 @@ const
ParticlesGeometryNames: array [TParticlesGeometry] of String =
('LINE', 'POINT', 'QUAD', 'SPRITE', 'TRIANGLE', 'GEOMETRY');

{$I auto_generated_node_helpers/x3dnodes_x3dparticleemitternode.inc}
{$I auto_generated_node_helpers/x3dnodes_x3dparticlephysicsmodelnode.inc}
{$I auto_generated_node_helpers/x3dnodes_boundedphysicsmodel.inc}
{$I auto_generated_node_helpers/x3dnodes_coneemitter.inc}
{$I auto_generated_node_helpers/x3dnodes_explosionemitter.inc}
{$I auto_generated_node_helpers/x3dnodes_forcephysicsmodel.inc}
{$I auto_generated_node_helpers/x3dnodes_particlesystem.inc}
{$I auto_generated_node_helpers/x3dnodes_pointemitter.inc}
{$I auto_generated_node_helpers/x3dnodes_polylineemitter.inc}
{$I auto_generated_node_helpers/x3dnodes_surfaceemitter.inc}
{$I auto_generated_node_helpers/x3dnodes_volumeemitter.inc}
{$I auto_generated_node_helpers/x3dnodes_windphysicsmodel.inc}

procedure RegisterParticleSystemsNodes;
begin
NodesManager.RegisterNodeClasses([
Expand Down
7 changes: 7 additions & 0 deletions src/scene/x3d/x3dnodes_standard_picking.inc
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,13 @@ const
'ALL_SORTED'
);

{$I auto_generated_node_helpers/x3dnodes_x3dpicksensornode.inc}
{$I auto_generated_node_helpers/x3dnodes_linepicksensor.inc}
{$I auto_generated_node_helpers/x3dnodes_pickablegroup.inc}
{$I auto_generated_node_helpers/x3dnodes_pointpicksensor.inc}
{$I auto_generated_node_helpers/x3dnodes_primitivepicksensor.inc}
{$I auto_generated_node_helpers/x3dnodes_volumepicksensor.inc}

procedure RegisterPickingNodes;
begin
NodesManager.RegisterNodeClasses([
Expand Down

0 comments on commit 64520a9

Please sign in to comment.