Amabilis Software    3D Canvas Community    3D Canvas Discussion Forums  Hop To Forum Categories  Amabilis Announcements    3D Canvas 8.0 Progress (formerly 3D Canvas 7.2)
Page 1 2 3 4 5 6 7 8 9 10 

Closed Topic Closed
Go
New
Find
Notify
Tools
-star Rating Rate It!  Login/Join 
Member
Picture of Amabilis Support
Posted Hide Post
I have one plug-in and a few operations working. That means I can start on a new area: applying operations to multiple objects/displaying layers etc.

Currently 3D Canvas does all the work to apply operations to multiple objects, via various means. It will continue to do that for operations that aren't designed to work on multiple objects.

Eventually many operations will be redesigned to work on multiple objects, but initially, I think I will just get the "Weld" operations doing that. Maybe that is my next task. I'd like to do something "new" and take a break from the "fixing".
 
Posts: 2625 | Registered: Thu November 06 2003Report This Post
Member
Picture of Amabilis Support
Posted Hide Post
3D Canvas seems like itself again. It's possible to select objects, move them around, and apply operations. Nice to see.

There's still plenty to do. It seems like things are coming together, but despite it being only the fourth of the month, I still think 7.2 won't be ready until the end of the month.

Next step: Applying operations to multiple objects. Hopefully I can finish that today or tomorrow.
 
Posts: 2625 | Registered: Thu November 06 2003Report This Post
Member
Picture of Amabilis Support
Posted Hide Post
I just removed the last traces of the old 3D Canvas selection functions. Finally. Glad to have that over with. I broke a few more things while doing it, but I think from now on there won't be anymore "breaking", just "fixing".
 
Posts: 2625 | Registered: Thu November 06 2003Report This Post
Member
Picture of Amabilis Support
Posted Hide Post
Something new for plug-in and operation writers.

Today I'm working on a variation on CSGObject's existing "GetGeometry" method. What's different is that it provides not only the basic geometry, but also the materials, and will optionally triangulate, optionally get the smoothed/mirrored version, and optionally provide a copy that includes all clones.

One of the nice things is that the information is provided in a more simple to access format than GetGeometry provides. Plus it gives access to the adjacency information for points, edges and faces.

The returned information is provided via user defined types, not objects. This means you can make a copy of an object, change it, and have the original still. This is the main reason I'm writing it.
 
Posts: 2625 | Registered: Thu November 06 2003Report This Post
Member
Picture of Amabilis Support
Posted Hide Post
I should have mentioned that this function is particularly useful for writers of exporters because you can easily get a copy of a scene as it appears in 3D Canvas, including mirroring, smoothing and cloning.
 
Posts: 2625 | Registered: Thu November 06 2003Report This Post
Member
Picture of Amabilis Support
Posted Hide Post
It took me a while, but I managed to finish the new "GetGeometry" function, and the corresponding "AddGeometry" function on Tuesday. I had to do a lot of performance testing, and tweeking. It's going to be used heavily in the future, so it has to be good.

Since then I've been doing a lot of "housekeeping" tasks. I am making it easier for myself to keep track of what is exactly what, by renaming various items so they match up with things. For example, when 3D Canvas was created I used "Meshes" and "MeshBuilders". These were the standards from the old Direct3D Retaind Mode. I started using "Object" as a replacement for "MeshBuilder" a while back, but there were many references to "meshes". Also, "Object" is a windows term. It's very confusing at times from a programming perspective to have "Objects". So, I have begun the transition to the word "Shape" to refer to a "Mesh". It is more descriptive, in my mind, and commonly used.

For now, "Shape" replacing "Object/Mesh" is an internal thing, but eventually I will using "Shape" in the 3D Canvas user interface also.

I also have the problem of confusion of "Vertex" and "Point". Direct3D uses Vertex to indicate a combination of Point Position, Normal, UV coordinate etc. I haven't quite decided how to use these. Probably I'll adopt something similar. Consistent usage/naming is helpful.
 
Posts: 2625 | Registered: Thu November 06 2003Report This Post
Member
Picture of Amabilis Support
Posted Hide Post
I'm really tempted to do a bit more cleanup. I think a couple more days would do wonders.

I have a pretty firm "latest date" possible for the release of 7.2. It's March 9th. I'm flying to Canada on the 10th and won't be available to any great extent for about three weeks. So, I have to be careful to not waste too much time on unncessary "nicities".
 
Posts: 2625 | Registered: Thu November 06 2003Report This Post
Member
Picture of Amabilis Support
Posted Hide Post
Maybe a "point" has three attributes: Position, Normal and UV(s). That would be consistent. A "vertex" would be reserved for the D3D ones.

The confusion right now comes from the fact that a 3D Canvas "Point" has three attributes: Point, Normal and UV(s).

I'd really like to refer to things consistently to avoid confusion.

This message has been edited. Last edited by: Amabilis Support,
 
Posts: 2625 | Registered: Thu November 06 2003Report This Post
Member
Picture of Paul Gausden
Posted Hide Post
I'm really looking forward to 7.2 sounds like a lot of changes.

Also a lot of work to convert the plugins Smile I'll do my best to get them out quickly.
 
Posts: 1526 | Location: Surrey, UK® | Registered: Fri November 07 2003Report This Post
Member
Picture of Amabilis Support
Posted Hide Post
Hopefully it will live up to your expectations.

I don't think it is so bad to upgrade plugins. It's mostly just search/replace. But, I guess we'll know soon enough.
 
Posts: 2625 | Registered: Thu November 06 2003Report This Post
Member
Picture of Amabilis Support
Posted Hide Post
I found a code sample to show why I get confused sometimes with "points":

If .PointList(.PointCount).Point = .PointList(0).Point Or blnVectorEqual3(mudtaGeometry(mlngcStandardShape).udtShape(0).PointList(.PointList(.PointCount).Point).Point, mudtaGeometry(mlngcStandardShape).udtShape(0).PointList(.PointList(0).Point).Point, gsngcSmallEpsilon) Then

mudtaGeometry(mlngcStandardShape).udtShape(0).PointList(.PointList(.PointCount).Point).Point = mudtaGeometry(mlngcStandardShape).udtShape(0).PointList(.PointList(0).Point).Point

.PointCount = .PointCount - 1

End If

Anyone know what that means? Wink
 
Posts: 2625 | Registered: Thu November 06 2003Report This Post
Member
Picture of Amabilis Support
Posted Hide Post
I did some work today to aid exporter writers.

I upgraded SortShapeByMaterial (Now GetSortedGeometry) to use the new GetGeometry function. That means you can now get geometry optionally sorted by material, optionally triangulated, optionally including clones, optionally including mirroring/smoothing.

This message has been edited. Last edited by: Amabilis Support,
 
Posts: 2625 | Registered: Thu November 06 2003Report This Post
Member
Picture of Amabilis Support
Posted Hide Post
I finished up part of my code cleanup. I was planning to finish today, but I think I have one more day left.

Very slightly more understandable:

If .PointList(.PointListCount).PointID = .PointList(0).PointID Or bVectorEqual3(mudtaGeometry(mlcStandardShape).udtShape(0).PointList(.PointList(.PointListCount).PointID).PointXYZ, mudtaGeometry(mlcStandardShape).udtShape(0).PointList(.PointList(0).PointID).PointXYZ, gscSmallEpsilon) Then

mudtaGeometry(mlcStandardShape).udtShape(0).PointList(.PointList(.PointListCount).PointID).PointXYZ = mudtaGeometry(mlcStandardShape).udtShape(0).PointList(.PointList(0).PointID).PointXYZ

.PointListCount = .PointListCount - 1

End If

The difference is that now what I mention a point, I make it clear if it is an index (ID appended to the end) or an actual coordinate (XYZ appended to the end). I think it still needs work, but the example here is probably the worst case possible.
 
Posts: 2625 | Registered: Thu November 06 2003Report This Post
Member
Picture of Amabilis Support
Posted Hide Post
I actualy managed to finish something today. I have finished my updated file format, and the functions to convert the old format to the new.

This won't provide anything "new" for this release. I'm just tidying up, and laying the ground work for 8.0.

I have some work to do on the data structures and the scripting/plug-in interfaces. After I get that done, I'll probably release another alpha version, so that plug-ins and scripts can be updated prior to the final release becoming available.
 
Posts: 2625 | Registered: Thu November 06 2003Report This Post
Member
Picture of Amabilis Support
Posted Hide Post
As I look at this 11 year old code, I keep thinking to myself "Gee... I wish I knew then what I know now". Smile I'd be a year ahead of where I am now. Some of it is pretty awful. I was just learning VB when I wrote the early stuff.
 
Posts: 2625 | Registered: Thu November 06 2003Report This Post
Member
Picture of Amabilis Support
Posted Hide Post
I just finished the updated Scripting and Plug-in interfaces.

I'm working on updating some plug-ins right now. Once I have a few working samples, I'll release a new alpha.
 
Posts: 2625 | Registered: Thu November 06 2003Report This Post
Member
Picture of Amabilis Support
Posted Hide Post
A new feature for plug-ins is there is now a standard way to validate that the user has selected something appropriate. This is set in the plug-in via parameters. You can still write your own validation by not returning any parameters.

Unlike operations, it will still be possible to select a plug-in if the selection is wrong. If it is wrong, the 3D Canvas will let the user know what is an appropriate selection.
 
Posts: 2625 | Registered: Thu November 06 2003Report This Post
Member
Picture of Amabilis Support
Posted Hide Post
Btw, when I created the validation, I used the newly exposed adjacency information. That made things so much simpler.

Here's an example (not sure how readable it is without indenting):

With csShape

'get the adjacency to make this easier
.GetInternalGeometryAndAdjacency cdtaPointList, lPointListCount, cdtaNormalList, lNormalListCount _
, cdtaTextureCoordinateList, lTextureCoordinateListCount, cdtaEdgeList, lEdgeListCount, cdtaFaceList, lFaceListCount

'get the selection
.GetSelection cdtSelectionType, cdtSelection

'allocate space for the edge flags
ReDim baEdgeInUse(lEdgeListCount - 1)

'flag each edge used
For lEdge = 0 To cdtSelection.ActiveItemListCount - 1

baEdgeInUse(cdtaFaceList(cdtSelection.ActiveItemList(lEdge).Primary).EdgeListID(cdtSelection.ActiveItemList(lEdge).Sub)) = True

Next lEdge

'count the number of unique (non-reversed) edges
For lEdge = 0 To lEdgeListCount - 1

If baEdgeInUse(lEdge) Then
plGetActualEdgeCount = plGetActualEdgeCount + 1
End If

Next lEdge

End With


The sample code goes through the list of selected edges and determines how many unique edges there are. The new version of 3D Canvas selects both the selected edge and any other edges that share the same points. In this particular example I needed count the unique edges. How many the user actually sees.
 
Posts: 2625 | Registered: Thu November 06 2003Report This Post
Member
Picture of Amabilis Support
Posted Hide Post
I managed to get three plug-ins working. Nothing too exciting.

I posted Alpha 3 in the plug-ins/scripting forum. It's really only for those who write plug-ins.
 
Posts: 2625 | Registered: Thu November 06 2003Report This Post
Member
Picture of Amabilis Support
Posted Hide Post
Tody I've removed the GetRepresentativeEntityType and GetShapeType ("GetType", "GetSubType") methods from the Shape object. They aren't necessary anymore because the GetShape functions will only return modifiable shapes.

I also added the "GetxCustomFieldID" functions, that I had forgotten.
 
Posts: 2625 | Registered: Thu November 06 2003Report This Post
  Powered by Social Strata Page 1 2 3 4 5 6 7 8 9 10  

Closed Topic Closed

Amabilis Software    3D Canvas Community    3D Canvas Discussion Forums  Hop To Forum Categories  Amabilis Announcements    3D Canvas 8.0 Progress (formerly 3D Canvas 7.2)

© Amabilis Software 2003-2010