Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 77757
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 10, 20262026-05-10T20:52:49+00:00 2026-05-10T20:52:49+00:00

I have an existing library (JPhysX) that is a Java wrapper for a native

  • 0

I have an existing library (JPhysX) that is a Java wrapper for a native C++ library (PhysX). The Java library makes use of types generated by SWIG, for example, com.jphysx.SWIGTYPE_p_NxStream, which represents a pointer to an NxStream object in the C++ code. Now I want to create my own C++ class that inherits from the C++ type NxStream, and have the Java wrapper for my class also inherit from the wrapper com.jphysx.SWIGTYPE_p_NxStream.

The problem is that when I call SWIG to generate the wrapper for my class, it also creates a new wrapper called SWIGTYPE_p_NxStream, which is functionally identical to the one in com.jphysx, but still a different type as far as Java is concerned.

How can I convince SWIG to reuse this existing wrapper from com.jphysx and make the wrapper of my class inherit from com.jphysx.SWIGTYPE_p_NxStream instead?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-10T20:52:50+00:00Added an answer on May 10, 2026 at 8:52 pm

    Making the wrapper class explicitly inherit from the desired type did the trick in this case:

    %typemap(javabase) UserStream 'com.jphysx.SWIGTYPE_p_NxStream'; 

    There were some methods in the wrapper class with which I had similar problems, but I simply removed them from the SWIG interface file because they aren’t going to be called from the Java code anyway.

    Edit: this does not work. Since the wrapper type inherits from another wrapper type, it suddenly has two swigCPtr fields. The one in the subtype is initialized, the one in the supertype remains 0… but this is the one that gets used when you use the supertype somewhere.

    Edit 2: I finally solved the problem, by adding a method to the Java wrapper class to convert the UserStream object to a SWIGTYPE_p_NxStream object:

    %typemap(javacode) UserStream %{     public native com.JPhysX.SWIGTYPE_p_NxStream toNxStreamPtr(); %} 

    This JNI method was hand-written outside SWIG’s stuff:

    JNIEXPORT jobject JNICALL Java_physics_UserStream_toNxStreamPtr(JNIEnv *env, jobject userStreamObject) {     jclass userStreamClass = env->GetObjectClass(userStreamObject);     jmethodID getCPtrMethodID = env->GetStaticMethodID(userStreamClass, 'getCPtr', '(Lphysics/UserStream;)J');      jlong cPtr = env->CallStaticLongMethod(userStreamClass, getCPtrMethodID, userStreamObject);     jboolean futureUse = false;      jclass nxStreamPtrClass = env->FindClass('com/JPhysX/SWIGTYPE_p_NxStream');     jmethodID nxStreamPtrConstructor = env->GetMethodID(nxStreamPtrClass, '<init>', '(JZ)V');     jobject nxStreamPtrObject = env->NewObject(nxStreamPtrClass, nxStreamPtrConstructor, cPtr, futureUse);     return nxStreamPtrObject; } 
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 215k
  • Answers 215k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer C doesn't have null, it has NULL. So try this:… May 12, 2026 at 11:02 pm
  • Editorial Team
    Editorial Team added an answer Only populate the DropDownList on first load by checking whether… May 12, 2026 at 11:02 pm
  • Editorial Team
    Editorial Team added an answer Yeah, your initialize should definitely suggest that you're going towards… May 12, 2026 at 11:02 pm

Related Questions

I have an irritating problem, I'm creating an asp.net web service; this service should
I have an image upload facility in my asp.net project, when uploaded a thumbnail
I know there have been similar questions on this topic but I wasn't completely
Edited: SOLUTION FOUND. This is strange and not the best solution, but I just

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.