Add initial prototype.
This commit is contained in:
80
3-mid/opengl/source/lean/io/opengl-io-wavefront.ads
Normal file
80
3-mid/opengl/source/lean/io/opengl-io-wavefront.ads
Normal file
@@ -0,0 +1,80 @@
|
||||
package openGL.IO.wavefront
|
||||
--
|
||||
-- Provides a function to convert a Wavefront model file (*.obj) to an openGL IO model.
|
||||
--
|
||||
is
|
||||
---------
|
||||
-- Group
|
||||
--
|
||||
|
||||
type group_Kind is (object_Name, group_Name,
|
||||
smoothing_Group, merging_Group);
|
||||
|
||||
type Group (Kind : group_Kind := group_Name) is
|
||||
record
|
||||
case Kind
|
||||
is
|
||||
when object_Name => object_Name : Text;
|
||||
when group_Name => group_Name : Text;
|
||||
when smoothing_Group => smooth_group_Id : Natural;
|
||||
when merging_Group => null;
|
||||
end case;
|
||||
end record;
|
||||
|
||||
function Image (Self : in Group) return String;
|
||||
|
||||
|
||||
--------
|
||||
-- Face
|
||||
--
|
||||
|
||||
type face_Kind is (a_Group, a_Facet);
|
||||
|
||||
type Face (Kind : face_Kind := a_Facet) is
|
||||
record
|
||||
case Kind
|
||||
is
|
||||
when a_Group => Group : wavefront.Group;
|
||||
when a_Facet => Facet : openGL.IO.Face;
|
||||
end case;
|
||||
end record;
|
||||
|
||||
type Faces is array (long_Index_t range <>) of Face;
|
||||
|
||||
function Image (Self : in wavefront.Face) return String;
|
||||
function to_Model (model_File : in String) return IO.Model;
|
||||
|
||||
|
||||
type Sites_view is access openGL.Sites;
|
||||
type Coordinates_2D_view is access openGL.Coordinates_2D;
|
||||
type Normals_view is access openGL.Normals;
|
||||
|
||||
type Model is
|
||||
record
|
||||
material_Library : Text;
|
||||
material_Name : Text;
|
||||
object_Name : Text;
|
||||
group_Name : Text;
|
||||
|
||||
Sites : Sites_view;
|
||||
Coords : Coordinates_2D_view;
|
||||
Normals : Normals_view;
|
||||
Faces : access wavefront.Faces;
|
||||
end record;
|
||||
|
||||
function to_Model (model_Path : in String) return wavefront.Model;
|
||||
|
||||
procedure write (the_Model : in wavefront.Model;
|
||||
to_File : in String);
|
||||
|
||||
|
||||
-----------
|
||||
-- Utility
|
||||
--
|
||||
|
||||
function to_Vector_3 (Self : in String) return Vector_3;
|
||||
function to_Coordinate (Self : in String) return Coordinate_2D;
|
||||
function to_Text (Self : in String) return Text;
|
||||
|
||||
|
||||
end openGL.IO.wavefront;
|
||||
Reference in New Issue
Block a user