Author Topic: ORDLL64.dll  (Read 5174 times)

0 Members and 1 Guest are viewing this topic.

Patrice Terrier

  • Jr. Member
  • **
  • Posts: 81
ORDLL64.dll
« on: February 25, 2020, 04:53:18 am »
Charles

I have written a 64-bit DLL based on "ObjReader Lite 3.00".
While this DLL was first intended to work with WinDev, it should work with any 64-bit language.
If you are interrested to use it with O2, then let me know.

John

  • Hero Member
  • *****
  • Posts: 3966
Re: ORDLL64.dll
« Reply #1 on: February 25, 2020, 10:08:07 am »
That would be a nice tribute to Mike for his efforts with your project.

Patrice Terrier

  • Jr. Member
  • **
  • Posts: 81
Re: ORDLL64.dll
« Reply #2 on: February 25, 2020, 01:50:19 pm »
You can figure what it could do, from the WinDev binary demo that is available here.
Use the combobox to select a model.

Of course the same code in O2 should be much smaller (the PC-Soft framework is huge).

The ORDLL64.dll is only 193 Kb, and the GDImage64.dll framework only 410 Kb.

Note: To avoid any UAC problem unlock the .7z file before decompression.

John

  • Hero Member
  • *****
  • Posts: 3966
Re: ORDLL64.dll
« Reply #3 on: February 25, 2020, 09:00:53 pm »
Patrice,

If you were given a series of CT slices could you assemble them into a 3D object in your reader?

Patrice Terrier

  • Jr. Member
  • **
  • Posts: 81
Re: ORDLL64.dll
« Reply #4 on: February 26, 2020, 12:06:37 am »
No, the DLL is a read only viewer.

When i nead to create or assemble new models, i am using C4D R21, and i export the resulting work into a wavefront .obj file.

Then i edit and customize the textures (with PSD or C4D) and the .mtl (material) file using the specific ObjReader #meta commands.

Some of the free models i posted into the collection have taken me literally weeks of work, to fix the many errors found in those downloaded from the internet or to create a new one from scratch.

John

  • Hero Member
  • *****
  • Posts: 3966
Re: ORDLL64.dll
« Reply #5 on: February 26, 2020, 01:26:16 pm »
As Reference:

3D Computed Tomography (CT) is a nondestructive scanning technology that allows you to view and inspect the external and internal structures of an object in 3D space. Computed Tomography works by taking hundreds or thousands of 2D Digital Radiography projections around a 360 degree rotation of an object.

3D CT


Charles Pegge

  • Admin Support Member
  • *****
  • Posts: 4486
    • Oxygen Basic
Re: ORDLL64.dll
« Reply #6 on: February 27, 2020, 02:34:44 am »
Certainly, Patrice,

We can include headers, and examples for ORDLL64.

I must join your forum, if I am tolerable :)

Patrice Terrier

  • Jr. Member
  • **
  • Posts: 81
Re: ORDLL64.dll
« Reply #7 on: February 27, 2020, 04:30:08 am »
Charles

Of course you shall be warmly welcomed, just send me a message here:
http://www.objreader.com/index.php?topic=5.0

and let me know if you are using a .LIB or LoadLibrary with O2, and if you need a specific header.h file.
ORDLL64 is 64-bit only, written in C++ (C style) with the free "Visual Studio Community" version.
« Last Edit: February 27, 2020, 06:54:30 am by Patrice Terrier »

KarenZ

  • Jr. Member
  • **
  • Posts: 51
Re: ORDLL64.dll
« Reply #8 on: February 27, 2020, 10:41:59 am »
Hi Patrice,

How do we call ORDLL64.dll  from an O2 program, can you please provide a simple code example?
Your supreme graphics will greatly compliment O2 capabilities

Regards
Karen

Patrice Terrier

  • Jr. Member
  • **
  • Posts: 81
Re: ORDLL64.dll
« Reply #9 on: February 27, 2020, 11:04:32 am »
Being a C++ programmer, I am not familiar with O2, what i can do is to provide a mockup code like this

Code: [Select]
lp is POINT; ClientToScreen(Handle(Visual_Template..Name), lp)

gP.hOR3D = OR_CreateWindow(0, gP.hParent, WS_POPUP | WS_VISIBLE, lp.x, lp.y, Visual_Template..Width, Visual_Template..Height, 0)
IF gP.hOR3D THEN
//EnableWindow(gP.hOR3D, True)
gP.Msg = RegisterWindowMessage("WM_LOADED")
IF gP.Msg THEN Event(&OR_Message(), gP.hParent, gP.Msg)
END IF

OR_CreateWindow is the 3D graphic control to use, it could be a child or a popup window.

Further details are explained here
http://www.objreader.com/index.php?topic=322.msg5972#new
« Last Edit: February 27, 2020, 11:13:09 am by Patrice Terrier »

KarenZ

  • Jr. Member
  • **
  • Posts: 51
Re: ORDLL64.dll
« Reply #10 on: February 27, 2020, 11:18:32 am »
Thanks Patrice,
Perhaps Charles can help in providing some O2 code to call ORDLL64.dll ??
It would be good to be able to interface and communicate with a c++ dll
Regards
Karen

Charles Pegge

  • Admin Support Member
  • *****
  • Posts: 4486
    • Oxygen Basic
Re: ORDLL64.dll
« Reply #11 on: February 27, 2020, 04:46:20 pm »
Thanks Patrice,

The only problem is We can't run ORDLL64.dll for testing without GDImage64.dll. (LoadLibrary won't work)

Patrice Terrier

  • Jr. Member
  • **
  • Posts: 81
Re: ORDLL64.dll
« Reply #12 on: February 27, 2020, 10:10:14 pm »
Charles

GDImage64.dll (and Bass.dll) are available altogether with 3D examples and resource folders, in the WD demo project here:
www.objreader.com/download/demo/OR17.7z
(111 Mb, because of the size of the 3D examples, and the bloated WD framework)
To avoid any UAC problem, make sure to unlock the .7z file before uncompression.

see inside the EXE folder.

The status of GDImage64.dll is the same than for Bass.dll, it is free for non-commercial use.

The demo could help you to figure what to do with O2 to replicate the project.
« Last Edit: February 27, 2020, 10:22:58 pm by Patrice Terrier »

Charles Pegge

  • Admin Support Member
  • *****
  • Posts: 4486
    • Oxygen Basic
Re: ORDLL64.dll
« Reply #13 on: February 28, 2020, 03:49:58 am »
Thanks Patrice,

This o2 header is a lightly retouched verion of your c++ header:

Code: [Select]
'http://www.objreader.com/index.php?topic=322.msg5971#new
'dependencies:
' GDImage64.dll
' Bass.dll
'www.objreader.com/download/demo/OR17.7z

% IN

typedef sys HWND,HMENU

extern lib "ORDLL64.dll"
  HWND    OR_CreateWindow(IN dword dwExStyle, IN HWND hParent, IN dword dwStyle, IN long x, IN long y, IN long w, IN long h, IN HMENU CtrlID)
  long    OR_DetectGPU()
  wchar*  OR_GPUinfo()
  wchar*  OR_About()
  void    OR_ViewReset()
  long    OR_GetAudioVolume()
  void    OR_SetAudioVolume(IN long nVolume)
  void    OR_ProcessCommandLine(IN wchar* lpCmdLine)
  wchar*  OR_Vertices()
  wchar*  OR_Triangles()
  wchar*  OR_Indices()
  wchar*  OR_Meshes()
  wchar*  OR_Materials()
  wchar*  OR_ObjSize()
  wchar*  OR_LoadTime()
  wchar*  OR_Version()
end extern

and some very basic test code with ORDLL64.dll, GDImage64.dll and Bass.dll in the same folder.

Code: [Select]
filename "test.exe"
uses RTL64
'uses corewin
uses OR64

wstring cr=chr(13,10)
print OR_version() cr OR_About() cr OR_GPUinfo()


Patrice Terrier

  • Jr. Member
  • **
  • Posts: 81
Re: ORDLL64.dll
« Reply #14 on: February 28, 2020, 04:22:09 am »
Assuming that you have the OR_resource folder (at the same location than ORDLL64.dll), you can also create a popup window using OR_CreateWindow
and use drag & drop of a 3D model (or a specific 3D model folder), that should work as well ;)